function a587_rexsearch_reindex($_params)
{
    global $REX;
    $columns = array();
    $id = 0;
    if (!empty($_params['xform'])) {
        $tablename = $_params['form']->params['main_table'];
        //$wherecondition = $_params['sql']->wherevar;
        $wherecondition = $_params['form']->params['main_where'];
    } else {
        $tablename = $_params['form']->tableName;
        $wherecondition = $_params['form']->whereCondition;
    }
    $last_id = intval($_params['sql']->getLastId());
    if (!isset($REX['ADDON']['settings']['rexsearch']['include'][$tablename]) or !is_array($REX['ADDON']['settings']['rexsearch']['include'][$tablename])) {
        return true;
    }
    if (empty($id)) {
        $id = $last_id;
    }
    $rexsearch = new RexSearch();
    foreach ($REX['ADDON']['settings']['rexsearch']['include'][$tablename] as $col) {
        $rexsearch->indexColumn($tablename, $col, false, false, false, false, $wherecondition);
    }
    return true;
}
Beispiel #2
0
<?php

$parent = 'rexsearch';
$mypage = 'reindex';
$REX['ADDON']['version'][$mypage] = '0.1';
$REX['ADDON']['author'][$mypage] = 'Robert Rupf';
$REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de';
$REX['EXTRAPERM'][] = $parent . '[' . $mypage . ']';
include_once dirname(__FILE__) . '/functions/function.reindex.inc.php';
include_once dirname(__FILE__) . '/functions/function.reindex_article.inc.php';
if ($REX['REDAXO'] and is_object($REX['USER']) and ($REX['USER']->hasPerm($parent . '[' . $mypage . ']') or $REX['USER']->isAdmin())) {
    $I18N->appendFile(dirname(__FILE__) . '/lang/');
    if (rex_get('func') == 'reindex' and rex_get('article_id', 'int') and 0 <= rex_get('clang', 'int', -1)) {
        rex_register_extension('ADDONS_INCLUDED', function () {
            global $REX;
            $rexsearch = new RexSearch();
            $rexsearch->indexArticle($REX['ARTICLE_ID'], $REX['CUR_CLANG']);
            rex_register_extension('PAGE_CONTENT_OUTPUT', function ($_params) {
                global $I18N;
                echo rex_info($I18N->msg('a587_reindex_done'));
            });
        });
    }
}
if (OOAddon::isActivated('rexsearch') or class_exists('rexsearch')) {
    rex_register_extension('REX_FORM_SAVED', 'a587_rexsearch_reindex');
    rex_register_extension('REX_XFORM_SAVED', 'a587_rexsearch_reindex');
    rex_register_extension('REX_FORM_DELETED', 'a587_rexsearch_reindex');
    rex_register_extension('PAGE_CONTENT_MENU', 'a587_rexsearch_reindex_article');
}