function a587_handle_extensionpoint($_params) { global $REX, $I18N; $rexsearch = new rexsearch(); switch ($_params['extension_point']) { // delete article from index case 'ART_DELETED': $rexsearch->excludeArticle($_params['id']); break; // update meta-infos for article // update meta-infos for article case 'ART_META_UPDATED': foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'article') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['id']); } } } break; // exclude (if offline) or index (if online) article // exclude (if offline) or index (if online) article case 'ART_STATUS': if ($_params['status'] or !empty($REX['ADDON']['settings']['rexsearch']['indexoffline'])) { $rexsearch->indexArticle($_params['id'], $_params['clang']); } else { $rexsearch->excludeArticle($_params['id'], $_params['clang']); } foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'article') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['id']); } } } break; case 'ART_ADDED': foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'article') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['id']); } } } break; case 'ART_UPDATED': foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'article') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['id']); } } } break; case 'CAT_DELETED': echo rex_warning($I18N->Msg('a587_cat_deleted')); break; case 'CAT_STATUS': if ($_params['status'] or !empty($REX['ADDON']['settings']['rexsearch']['indexoffline'])) { foreach (a587_getArticles(array($_params['id'])) as $art_id => $art_name) { $rexsearch->indexArticle($art_id, $_params['clang']); } } else { foreach (a587_getArticles(array($_params['id'])) as $art_id => $art_name) { $rexsearch->excludeArticle($art_id, $_params['clang']); } } foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'article') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['id']); } } } break; case 'CAT_ADDED': foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'article') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['id']); } } } break; case 'CAT_UPDATED': foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'article') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['id']); } } } break; case 'MEDIA_ADDED': //var_dump($_params); $rexsearch->indexFile(str_replace('\\', '/', substr($rexsearch->mediaFolder, strlen($rexsearch->documentRoot))) . '/' . $_params['filename']); foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'file') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column); } } } break; case 'MEDIA_UPDATED': $rexsearch->indexFile(str_replace('\\', '/', substr($rexsearch->mediaFolder, strlen($rexsearch->documentRoot))) . '/' . $_params['filename']); foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'file') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['file_id']); } } } break; case 'MEDIA_DELETED': //var_dump($_params);exit; $rexsearch->indexFile(str_replace('\\', '/', substr($rexsearch->mediaFolder, strlen($rexsearch->documentRoot))) . '/' . $_params['filename']); foreach ($rexsearch->includeColumns as $table => $columnArray) { if ($table == $REX['TABLE_PREFIX'] . 'file') { foreach ($columnArray as $column) { $rexsearch->indexColumn($table, $column, 'id', $_params['file_id']); } } } break; case 'SLICE_UPDATED': $rexsearch->indexArticle($_params['article_id'], $_params['clang']); break; case 'SLICE_SHOW': if (strpos($_params['subject'], '<div class="rex-message"><div class="rex-info">') and (!empty($_params['function']) or !empty($_REQUEST['slice_id']) and $_REQUEST['slice_id'] == $_params['slice_id'])) { $rexsearch->indexArticle($_params['article_id'], $_params['clang']); } break; } // Cache leeren $rexsearch->deleteCache(); }
<?php switch ($ajax) { case 'deleteindex': $delete = new rexsearch(); $delete->deleteIndex(); echo 1; break; case 'generate': // index column or article $rexsearch = new rexsearch(); switch ($_GET['type']) { case 'art': foreach ($rexsearch->indexArticle($_id = intval($_GET['id'])) as $langID => $article) { switch ($article) { case A587_ART_EXCLUDED: echo '<p style="color:#aaa">Article (ID=<strong>' . $_id . '</strong>,<strong>' . $langID . '</strong>) is excluded</p>'; break; case A587_ART_IDNOTFOUND: echo '<p style="color:#a55">Article (ID=<strong>' . $_id . '</strong>,<strong>' . $langID . '</strong>) not found</p>'; break; case A587_ART_REDIRECT: echo '<p style="color:#aaa">Article (ID=<strong>' . $_id . '</strong>,<strong>' . $langID . '</strong>) is excluded because of a redirect</p>'; break; case A587_ART_GENERATED: $article = OOArticle::getArticleById($_id, $langID); echo '<p style="color:#5a5">Done: Article <em>"' . htmlspecialchars($article->getName()) . '"</em> (ID=<strong>' . $_id . '</strong>,<strong>' . $REX['CLANG'][$langID] . '</strong>)</p>'; break; } } break;