コード例 #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
                 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;
 case 'col':
     if (false !== ($count = $rexsearch->indexColumn($_GET['t'], $_GET['c'], false, false, $_GET['s'], $_GET['w']))) {
         echo '<p style="color:#5a5">Done: <em>`' . $_GET['t'] . '`.`' . $_GET['c'] . '` (' . $_GET['s'] . ' - ' . ($_GET['s'] + $_GET['w']) . ')</em> (<strong>' . $count . '</strong> row(s) indexed)</p>';
     } else {
         echo '<p style="color:#a55">Error: <em>`' . $_GET['t'] . '`.`' . $_GET['c'] . '`</em> not found</p>';
     }
     break;
 case 'file':
 case 'mediapool':
     $additionalOutput = '';
     if ($_GET['type'] == 'file') {
         $return = $rexsearch->indexFile($_GET['name']);
     } else {
         $return = $rexsearch->indexFile(str_replace('\\', '/', substr($REX['MEDIAFOLDER'], strlen(realpath($_SERVER['DOCUMENT_ROOT'])))) . '/' . $_GET['name'], false, false, $_GET['file_id'], $_GET['category_id']);
         $additionalOutput = ' <em>(Mediapool)</em>';
     }
     switch ($return) {