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(); }
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) { case A587_FILE_FORBIDDEN_EXTENSION: echo '<p style="color:#a55">File' . $additionalOutput . ' <strong>"' . htmlspecialchars($_GET['name']) . '"</strong> has a forbidden filename extension.</p>'; break; case A587_FILE_NOEXIST: echo '<p style="color:#a55">File' . $additionalOutput . ' <strong>"' . htmlspecialchars($_GET['name']) . '"</strong> does not exist.</p>'; break; case A587_FILE_XPDFERR_OPENSRC: echo '<p style="color:#a55">XPDF-error: Error opening a PDF file. File' . $additionalOutput . ': <strong>"' . htmlspecialchars($_GET['name']) . '"</strong>.</p>'; break; case A587_FILE_XPDFERR_OPENDEST: