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();
     }
 }