コード例 #1
0
ファイル: functions.inc.php プロジェクト: olien/rexsearch
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();
}
コード例 #2
0
ファイル: ajax.inc.php プロジェクト: olien/rexsearch
<?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;