本文整理汇总了PHP中forum::get_shared_cm_from_idnumber方法的典型用法代码示例。如果您正苦于以下问题:PHP forum::get_shared_cm_from_idnumber方法的具体用法?PHP forum::get_shared_cm_from_idnumber怎么用?PHP forum::get_shared_cm_from_idnumber使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类forum
的用法示例。
在下文中一共展示了forum::get_shared_cm_from_idnumber方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validation
function validation($data, $files)
{
global $COURSE, $CFG;
$errors = parent::validation($data, $files);
if (isset($data['limitgroup']['maxpostsblock']) && !preg_match('/^[0-9]{1,9}$/', $data['limitgroup']['maxpostsblock'])) {
$errors['limitgroup'] = get_string('err_numeric', 'form');
}
if (!empty($data['reportingemail']) && !validate_email($data['reportingemail'])) {
$errors['reportingemail'] = get_string('invalidemail', 'forumng');
}
// If old discussions are set to be moved to another forum...
$targetforumid = isset($data['removeto']) ? $data['removeto'] : 0;
$removeafter = isset($data['removeafter']) ? $data['removeafter'] : 0;
if ($removeafter && $targetforumid) {
$modinfo = get_fast_modinfo($COURSE);
// Look for target forum
if (!array_key_exists($targetforumid, $modinfo->instances['forumng'])) {
$errors['removeto'] = get_string('errorinvalidforum', 'forumng');
}
}
// If sharing is turned on, check requirements
if (!empty($data['shared'])) {
if (!empty($data['groupmode'])) {
$errors['groupmode'] = get_string('error_notwhensharing', 'forumng');
}
if (!empty($data['grading'])) {
$errors['grading'] = get_string('error_notwhensharing', 'forumng');
}
if (empty($data['cmidnumber'])) {
$errors['cmidnumber'] = get_string('error_sharingrequiresidnumber', 'forumng');
} else {
// Check it's unique
$cmid = isset($data['coursemodule']) ? (int) $data['coursemodule'] : 0;
if (count_records_select('course_modules', "idnumber = '" . addslashes($data['cmidnumber']) . "' AND id <> " . $cmid)) {
$errors['cmidnumber'] = get_string('error_sharingrequiresidnumber', 'forumng');
}
}
} else {
if (isset($data['shared'])) {
// They are trying to turn sharing off. You aren't allowed to do
// this if there are existing references.
$cmid = isset($data['coursemodule']) ? (int) $data['coursemodule'] : -1;
if (count_records('forumng', 'originalcmid', $cmid)) {
$errors['shared'] = get_string('error_sharinginuse', 'forumng');
}
}
}
if (!empty($data['usesharedgroup']['useshared'])) {
if (empty($data['usesharedgroup']['originalcmidnumber'])) {
$errors['usesharedgroup'] = get_string('error_sharingidnumbernotfound', 'forumng');
} else {
// Check we can find it
if (!forum::get_shared_cm_from_idnumber($data['usesharedgroup']['originalcmidnumber'])) {
$errors['usesharedgroup'] = get_string('error_sharingidnumbernotfound', 'forumng');
}
}
}
return $errors;
}
示例2: forumng_decode_content_links_caller
function forumng_decode_content_links_caller($restore)
{
// Get all the items that might have links in, from the relevant new course
try {
global $CFG, $db;
// 1. Intros
if ($intros = get_records_select('forumng', 'course=' . $restore->course_id . ' AND intro IS NOT NULL', '', 'id, intro, name')) {
foreach ($intros as $intro) {
$newintro = $intro->intro;
// Special behaviour hidden in intro
$matches = array();
if (preg_match('~%%CMIDNUMBER:([^%]+)%%$~', $newintro, $matches)) {
$newintro = substr($newintro, 0, -strlen($matches[0]));
$idnumber = $matches[1];
$cm = forum::get_shared_cm_from_idnumber($idnumber);
if ($cm) {
set_field('forumng', 'originalcmid', $cm->id, 'id', $intro->id);
} else {
// The original forum cannot be found, so restore
// this as not shared
if (!defined('RESTORE_SILENTLY')) {
$a = (object) array('name' => s($intro->name), 'idnumber' => s($idnumber));
print '<br />' . get_string('error_nosharedforum', 'forumng', $a) . '<br />';
}
}
}
if (preg_match('~%%REMOVETHIS%%$~', $newintro)) {
$newintro = substr($newintro, 0, -14);
}
$newintro = restore_decode_content_links_worker($newintro, $restore);
if ($newintro != $intro->intro) {
if (!set_field('forumng', 'intro', addslashes($newintro), 'id', $intro->id)) {
throw new forum_exception("Failed to set intro for forum {$intro->id}: " . $db->ErrorMsg());
}
}
}
}
// 2. Post content
$rs = get_recordset_sql("\nSELECT\n fp.id, fp.message, fp.format\nFROM\n {$CFG->prefix}forumng f\n INNER JOIN {$CFG->prefix}forumng_discussions d ON d.forumid = f.id\n INNER JOIN {$CFG->prefix}forumng_posts fp ON fp.discussionid = d.id\nWHERE\n f.course={$restore->course_id}\n");
if (!$rs) {
throw new forum_exception("Failed to query for forum data: " . $db->ErrorMsg());
}
while ($rec = rs_fetch_next_record($rs)) {
$newcontent = restore_decode_content_links_worker($rec->message, $restore);
if ($newcontent != $rec->message) {
if (!set_field('forumng_posts', 'message', addslashes($newcontent), 'id', $rec->id)) {
throw new forum_exception("Failed to update content {$ec->id}: " . $db->ErrorMsg());
}
}
}
rs_close($rs);
// 3. Update search data (note this is not actually do with content
// links, but it has to be done here because we need a course-module
// id.
if (forum::search_installed()) {
forumng_ousearch_update_all(false, $restore->course_id);
}
return true;
} catch (Exception $e) {
forum_utils::handle_backup_exception($e, 'restore');
return false;
}
}