本文整理汇总了PHP中forum::search_installed方法的典型用法代码示例。如果您正苦于以下问题:PHP forum::search_installed方法的具体用法?PHP forum::search_installed怎么用?PHP forum::search_installed使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类forum
的用法示例。
在下文中一共展示了forum::search_installed方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: forumng_delete_instance
function forumng_delete_instance($id, $ociskip = true)
{
require_once dirname(__FILE__) . '/forum.php';
try {
$forum = forum::get_from_id($id, forum::CLONE_DIRECT);
// avoid deleting OCI specific forum if running in upload block
if ($ociskip) {
global $restore;
if (isset($restore) && $restore->restoreto == 0 && strpos($_SERVER['HTTP_REFERER'], 'blocks/versions/upload.php') !== false) {
if ($forum->get_name() == get_string('newunitforumname', 'createcourse')) {
//Unit forum
echo ' found forumng ' . $forum->get_id() . ' ' . $forum->get_name();
return true;
}
}
}
$forum->delete_all_data();
if (forum::search_installed()) {
$cm = $forum->get_course_module();
ousearch_document::delete_module_instance_data($cm);
}
} catch (Exception $e) {
return false;
}
return delete_records('forumng', 'id', $id);
}
示例2: require_capability
<?php
require_once '../../config.php';
require_once $CFG->dirroot . '/mod/forumng/forum.php';
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
// This script is for use only temporarily to respond to a glitch in the
// forum -> ForumNG conversion script where it didn't build search indexes.
// This file lets the search index be manually rebuilt. We should probably
// delete it later.
$cmid = required_param('id', PARAM_INT);
$cloneid = optional_param('clone', 0, PARAM_INT);
try {
$forum = forum::get_from_cmid($cmid, $cloneid);
$cm = $forum->get_course_module();
forum::search_installed();
// This script is not very user friendly. Once it finishes, it's done...
print_header();
forum::search_update_all(true, $cm->course, $cm->id);
print_footer();
} catch (forum_exception $e) {
forum_utils::handle_exception($e);
}
示例3: create_reply
/**
* Used by forum_post when creating a reply. Do not call directly.
* @param forum_post $parentpost Parent post object (NULL when creating root post)
* @param string $subject Subject
* @param string $message Message
* @param int $format Moodle format used for message
* @param array $attachments Array of paths to temporary files of
* attachments in post. [Note that these should have already been checked
* and renamed by the Moodle upload manager. They will be moved or
* deleted by the time this method returns.]
* @param bool $setimportant If true, highlight the post
* @param bool $mailnow If true, sends mail ASAP
* @param int $userid User ID (0 = current)
*
* @return int ID of newly-created post
*/
function create_reply($parentpost, $subject, $message, $format, $attachments = array(), $setimportant = false, $mailnow = false, $userid = 0)
{
if ($userid == 0) {
global $USER;
$userid = $USER->id;
if (!$userid) {
throw new forum_exception('Cannot determine user ID');
}
}
// Prepare post object
$postobj = new StdClass();
$postobj->discussionid = $this->discussionfields->id;
$postobj->parentpostid = $parentpost ? $parentpost->get_id() : null;
$postobj->userid = $userid;
$postobj->created = time();
$postobj->modified = $postobj->created;
$postobj->deleted = 0;
$postobj->mailstate = $mailnow ? forum::MAILSTATE_NOW_NOT_MAILED : forum::MAILSTATE_NOT_MAILED;
$postobj->important = $setimportant ? 1 : 0;
$postobj->oldversion = 0;
$postobj->edituserid = null;
$postobj->subject = strlen(trim($subject)) == 0 ? null : addslashes($subject);
$postobj->message = addslashes($message);
$postobj->format = $format;
$postobj->attachments = count($attachments) > 0;
forum_utils::start_transaction();
try {
// Create post
$postobj->id = forum_utils::insert_record('forumng_posts', $postobj);
$post = new forum_post($this, $postobj);
// For replies, update last post id
if ($parentpost) {
$discussionchange = new stdClass();
$discussionchange->id = $parentpost->get_discussion()->get_id();
$discussionchange->lastpostid = $postobj->id;
forum_utils::update_record('forumng_discussions', $discussionchange);
}
// Place attachments
foreach ($attachments as $path) {
$post->add_attachment($path);
}
// Update search index (replies only)
if (forum::search_installed() && $parentpost) {
$post->search_update();
}
// Update completion state
$post->update_completion(true);
// Outside the catch so we don't commit transaction if something
// fails
forum_utils::finish_transaction();
return $post->get_id();
} catch (Exception $e) {
// Erase attachments from temp storage if error occurs
foreach ($attachments as $path) {
unlink($path);
}
throw $e;
}
}
示例4: display_search_form
/**
* Returns HTML for search form, or blank if there is no search facility
* in this forum.
* @param string $querytext Text of query (not escaped)
* @return string HTML code for search form
*/
public function display_search_form($querytext = '')
{
$cmid = $this->get_course_module_id();
$strsearchthisactivity = get_string('searchthisforum', 'forumng');
$queryesc = htmlspecialchars($querytext);
$linkfields = $this->get_link_params(forum::PARAM_FORM);
$buttontext = !forum::search_installed() ? '' : <<<EOF
<form action="search.php" method="get"><div>
{$linkfields}
<label class="accesshide" for="forumng-searchquery">{$strsearchthisactivity}</label>
<input type="text" name="query" id="forumng-searchquery" value="{$queryesc}"/>
<input type="submit" value="{$strsearchthisactivity}"/>
</div></form>
EOF;
return $buttontext;
}
示例5: search_update_children
/**
* Calls search_update on each child of the current post, and recurses.
* Used when the subject's discussion is changed.
*/
function search_update_children()
{
if (!forum::search_installed()) {
return;
}
// If the in-memory post object isn't already part of a full
// discussion...
if (!is_array($this->children)) {
// ...then get one
$discussion = forum_discussion::get_from_id($this->discussion->get_id(), $this->get_forum()->get_course_module_id());
$post = $discussion->get_root_post()->find_child($this->get_id());
// Do this update on the new discussion
$post->search_update_children();
return;
}
// Loop through all children
foreach ($this->children as $child) {
// Update its search fields
$child->search_update();
// Recurse
$child->search_update_children();
}
}
示例6: xmldb_forumng_upgrade
function xmldb_forumng_upgrade($oldversion = 0)
{
global $CFG, $THEME, $db;
require_once $CFG->dirroot . '/mod/forumng/forum.php';
$result = true;
/// And upgrade begins here. For each one, you'll need one
/// block of code similar to the next one. Please, delete
/// this comment lines once this file start handling proper
/// upgrade code.
/// if ($result && $oldversion < YYYYMMDD00) { //New version in version.php
/// $result = result of "/lib/ddllib.php" function calls
/// }
if ($result && $oldversion < 2009071703) {
/// Add search data
require_once dirname(__FILE__) . '/../lib.php';
require_once dirname(__FILE__) . '/../forum.php';
if (forum::search_installed()) {
global $db;
$olddebug = $db->debug;
$db->debug = false;
print '<ul>';
forumng_ousearch_update_all(true);
print '</ul>';
$db->debug = $olddebug;
}
}
if ($result && $oldversion < 2009102001) {
/// Define table forumng_drafts to be created
$table = new XMLDBTable('forumng_drafts');
/// Adding fields to table forumng_drafts
$table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
$table->addFieldInfo('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
$table->addFieldInfo('forumid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
$table->addFieldInfo('groupid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
$table->addFieldInfo('parentpostid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
$table->addFieldInfo('subject', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
$table->addFieldInfo('message', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
$table->addFieldInfo('format', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
$table->addFieldInfo('attachments', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
$table->addFieldInfo('saved', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
$table->addFieldInfo('options', XMLDB_TYPE_TEXT, 'small', null, null, null, null, null, null);
/// Adding keys to table forumng_drafts
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
$table->addKeyInfo('userid', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id'));
$table->addKeyInfo('forumid', XMLDB_KEY_FOREIGN, array('forumid'), 'forumng', array('id'));
$table->addKeyInfo('parentpostid', XMLDB_KEY_FOREIGN, array('parentpostid'), 'forumng_posts', array('id'));
/// Launch create table for forumng_drafts
$result = $result && create_table($table);
}
if ($result && $oldversion < 2009110401) {
/// Define field important to be added to forumng_posts
$table = new XMLDBTable('forumng_posts');
$field = new XMLDBField('important');
$field->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'deleteuserid');
/// Launch add field important
$result = $result && add_field($table, $field);
}
if ($result && $oldversion < 2009110600) {
/// Define field subscribed to be added to forumng_subscriptions
$table = new XMLDBTable('forumng_subscriptions');
$field = new XMLDBField('subscribed');
$field->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '1', 'forumid');
/// Launch add field subscribed
$result = $result && add_field($table, $field);
/// Changing the default of field subscribed on table forumng_subscriptions to drop it
$table = new XMLDBTable('forumng_subscriptions');
$field = new XMLDBField('subscribed');
$field->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null, 'forumid');
/// Launch change of default for field subscribed
$result = $result && change_field_default($table, $field);
}
if ($result && $oldversion < 2009111001) {
/// Define field reportingemail to be added to forumng
$table = new XMLDBTable('forumng');
$field = new XMLDBField('reportingemail');
$field->setAttributes(XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null, 'attachmentmaxbytes');
/// Launch add field reportingemail
$result = $result && add_field($table, $field);
}
if ($result && $oldversion < 2009111002) {
/// Define table forumng_flags to be created
$table = new XMLDBTable('forumng_flags');
/// Adding fields to table forumng_flags
$table->addFieldInfo('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
$table->addFieldInfo('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
$table->addFieldInfo('postid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
$table->addFieldInfo('flagged', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
/// Adding keys to table forumng_flags
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
$table->addKeyInfo('userid', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id'));
$table->addKeyInfo('postid', XMLDB_KEY_FOREIGN, array('postid'), 'forumng_posts', array('id'));
/// Launch create table for forumng_flags
$result = $result && create_table($table);
}
if ($result && $oldversion < 2009120200) {
// For OU version only, rebuild course cache - it is missing some of
// the completion information
if (class_exists('ouflags')) {
rebuild_course_cache(0, true);
}
//.........这里部分代码省略.........
示例7: 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;
}
}