Example #1
0
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();
}
Example #2
0
</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&amp;subpage=generate&amp;do=full" class="rex-button"><span>' . $I18N->Msg('a587_settings_generate_full') . '</span></a></p>