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(); }
</script> <?php } else { if (!empty($_GET['do'])) { switch ($_GET['do']) { case 'done': echo '<div class="rex-message"><div class="rex-info"><p><span>' . $I18N->Msg('a587_settings_generate_done') . '</span></p></div></div>'; break; case 'full': $index = new rexsearch(); $index->generateIndex(); echo '<div class="rex-message"><div class="rex-info"><p><span>' . $I18N->Msg('a587_settings_generate_done') . '</span></p></div></div>'; break; case 'deletecache': $index = new rexsearch(); $index->deleteCache(); echo '<div class="rex-message"><div class="rex-info"><p><span>' . $I18N->Msg('a587_settings_generate_cache_deleted') . '</span></p></div></div>'; break; case 'deletekeywords': $index = new rexsearch(); $index->deleteKeywords(); echo '<div class="rex-message"><div class="rex-info"><p><span>' . $I18N->Msg('a587_settings_generate_keywords_deleted') . '</span></p></div></div>'; break; } } $content = ' <div class="rex-area"> <div class="rex-area-content"> <p class="rex-tx1">' . $I18N->Msg('a587_settings_generate_full_text') . '</p> <p class="rex-button"><a href="index.php?page=rexsearch&subpage=generate&do=full" class="rex-button"><span>' . $I18N->Msg('a587_settings_generate_full') . '</span></a></p>