public static function get() { if (self::$instance === null) { self::$instance = new Globalsearch(); } return self::$instance; }
public function indexing_action() { if (!$GLOBALS['perm']->have_perm("root")) { throw new AccessDeniedException("Kein Zugriff"); } //indexiert Veranstaltungen: $db = DBManager::get(); $count = 0; $seminare = $db->query("SELECT * FROM seminare " . ""); $index = Globalsearch::get(); while ($seminar = $seminare->fetch(PDO::FETCH_ASSOC)) { $searchtext = $seminar['VeranstaltungsNummer'] . " " . $seminar['Name'] . " " . $seminar['Untertitel'] . " " . $seminar['Beschreibung'] . " " . $seminar['Sonstiges'] . " " . $seminar['Ort']; $sem_tree_ids = $db->query("SELECT sem_tree_id FROM seminar_sem_tree WHERE seminar_id = " . $db->quote($seminar['Seminar_id']))->fetchAll(PDO::FETCH_COLUMN, 0); $searchtext .= GlobalSearchPlugin::getStudyareaSearchstring($sem_tree_ids); $index->setEntry($seminar['Name'], "seminar", "details.php?cid=" . $seminar['Seminar_id'], $seminar['visible'] ? null : $seminar['Seminar_id'], $searchtext, CourseAvatar::getAvatar($seminar['Seminar_id'])->getImageTag(Avatar::SMALL) . " " . htmlReady($seminar['Name']), $seminar['Seminar_id']); $count++; } $users = $db->query("SELECT * FROM auth_user_md5 " . ""); while ($user = $users->fetch(PDO::FETCH_ASSOC)) { $searchtext = $user['Vorname'] . " " . $user['Nachname']; $index->setEntry($user['Vorname'] . " " . $user['Nachname'], "user", "about.php?username="******"never" ? null : $user['user_id'], $searchtext, Avatar::getAvatar($user['user_id'])->getImageTag(Avatar::SMALL) . " " . htmlReady($user['Vorname']) . " " . htmlReady($user['Nachname']), $user['user_id']); $count++; } $documents = $db->query("SELECT * FROM dokumente " . ""); while ($document = $documents->fetch(PDO::FETCH_ASSOC)) { $seminar_name = $db->query("SELECT Name FROM seminare WHERE Seminar_id = " . $db->quote($document['seminar_id']) . " ")->fetch(PDO::FETCH_COLUMN, 0); $searchtext = $document['name'] . " " . $document['description'] . " " . $document['filename']; $sem_tree_ids = $db->query("SELECT sem_tree_id FROM seminar_sem_tree WHERE seminar_id = " . $db->quote($document['seminar_id']))->fetchAll(PDO::FETCH_COLUMN, 0); $searchtext .= GlobalSearchPlugin::getStudyareaSearchstring($sem_tree_ids); $index->setEntry($document['name'] . ($seminar_name ? " in " . $seminar_name : ""), "document", "folder.php?cid=" . $document['seminar_id'] . "&cmd=all&open=" . $document['dokument_id'] . "#anker", $document['seminar_id'], $searchtext, "<strong>" . htmlReady($document['filename']) . "</strong>: " . htmlReady($document['description']), $document['dokument_id']); $count++; } $resources = $db->query("SELECT * FROM resources_objects WHERE category_id != '' " . ""); while ($object = $resources->fetch(PDO::FETCH_ASSOC)) { $index->setEntry($object['name'], "resource", "resources.php?show_object=" . $object['resource_id'] . "&view=view_schedule", null, $object['name'] . " " . $object['description'], htmlReady($object['description']), $object['resource_id']); $count++; } $postings = $db->query("SELECT * FROM px_topics "); while ($posting = $postings->fetchAll(PDO::FETCH_ASSOC)) { $posting_content = preg_replace("/\\[quote([=\\d\\w\\s]*)\\]([\\d\\w\\s]*)\\[\\/quote\\]/", "", $posting['description']); $posting_content = strip_tags(formatReady(str_replace("\n", " ", $posting_content))); $searchtext = get_fullname($posting['user_id']) . " " . $posting_content; $sem_tree_ids = $db->query("SELECT sem_tree_id FROM seminar_sem_tree WHERE seminar_id = " . $db->quote($posting['Seminar_id']))->fetchAll(PDO::FETCH_COLUMN, 0); $searchtext .= GlobalSearchPlugin::getStudyareaSearchstring($sem_tree_ids); $index->setEntry($posting['name'], "posting", "forum.php?cid=" . $posting['Seminar_id'] . "&view=tree&open=" . $posting['topic_id'] . "#anker", $posting['Seminar_id'], $searchtext, $posting_content, $posting['topic_id']); $count++; } $result_object = new stdClass(); $result_object->count = 0; NotificationCenter::postNotification("indexing_plugin_items", $result_object); $count += $result_object->count; if ($GLOBALS['IS_CLI']) { echo "Index ersellt mit " . $count . " Einträgen."; } else { $template = $this->getTemplate("indexing.php"); $template->set_attribute("count", $count); $template->set_attribute("plugin", $this); echo $template->render(); } }