You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

187 lines
6.6 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
// This script may only be included - so its better to die if called directly.
if (strpos($_SERVER['SCRIPT_NAME'], basename(__FILE__)) !== false) {
header('location: index.php');
exit;
}
/**
* @return array
*/
function activated_features()
{
global $prefs;
$activated_features = [];
$features = [
'articles',
'blogs',
'directory',
'comments',
'faqs',
'file_galleries',
'forums',
'wiki',
'trackers',
];
foreach ($features as $feature) {
switch ($feature) {
case 'blogs':
if (isset($prefs['feature_blogs']) and $prefs['feature_blogs'] == 'y') {
$activated_features[] = 'blogs';
$activated_features[] = 'blogs_posts';
}
break;
case 'comments':
$activated_features[] = 'comments';
break;
case 'wiki':
if (isset($prefs['feature_wiki']) and $prefs['feature_wiki'] == 'y') {
$activated_features[] = 'pages';
}
break;
case 'articles':
if (isset($prefs['feature_articles']) and $prefs['feature_articles'] == 'y') {
$activated_features[] = 'articles';
}
break;
case 'faqs':
if (isset($prefs['feature_faqs']) and $prefs['feature_faqs'] == 'y') {
$activated_features[] = 'faqs';
$activated_features[] = 'faqs_questions';
}
break;
case 'file_galleries':
if (isset($prefs['feature_file_galleries']) and $prefs['feature_file_galleries'] == 'y') {
$activated_features[] = 'file_galleries';
$activated_features[] = 'files';
}
break;
case 'forums':
if (isset($prefs['feature_forums']) and $prefs['feature_forums'] == 'y') {
$activated_features[] = 'forums';
}
break;
case 'trackers':
if (isset($prefs['feature_trackers']) and $prefs['feature_trackers'] == 'y') {
$activated_features[] = 'trackers';
$activated_features[] = 'tracker_items';
}
break;
case 'directory':
if (isset($prefs['feature_directory']) and $prefs['feature_directory'] == 'y') {
$activated_features[] = 'directory_categories';
$activated_features[] = 'directory_sites';
}
break;
}
}
return $activated_features;
}
global $tiki_p_admin;
$unifiedsearchlib = TikiLib::lib('unifiedsearch');
$smarty->assign('engine_info', $unifiedsearchlib->getEngineInfo());
if ($tiki_p_admin == 'y') {
if (isset($_REQUEST['rebuild']) && $_REQUEST['rebuild'] == 'now') {
$access->redirect(TikiLib::lib('service')->getUrl([
'controller' => 'search',
'action' => 'rebuild',
]));
}
if (isset($_REQUEST['optimize']) && $_REQUEST['optimize'] == 'now') {
@ini_set('max_execution_time', 0);
@ini_set('memory_limit', -1);
$stat = $unifiedsearchlib->getIndex('data-write')->optimize();
}
if (! empty($_REQUEST['refresh_index_all_now']) && $_REQUEST['refresh_index_all_now'] == 'y') {
require_once('lib/search/refresh-functions.php');
foreach (activated_features() as $feature) {
refresh_index($feature);
}
$smarty->assign('refresh_index_all_now', $_REQUEST['refresh_index_all_now']);
}
if (! empty($_REQUEST['refresh_files_index_now']) && $_REQUEST['refresh_files_index_now'] == 'y') {
require_once('lib/search/refresh-functions.php');
refresh_index('files');
$smarty->assign('refresh_files_index_now', $_REQUEST['refresh_files_index_now']);
}
if (! empty($_REQUEST['refresh_index_now']) && $_REQUEST['refresh_index_now'] == 'y') {
require_once('lib/search/refresh-functions.php');
refresh_index('pages');
$smarty->assign('refresh_index_now', $_REQUEST['refresh_index_now']);
}
if (! empty($_REQUEST['refresh_tracker_index_now']) && $_REQUEST['refresh_tracker_index_now'] == 'y') {
require_once('lib/search/refresh-functions.php');
refresh_index('tracker_items');
$smarty->assign('refresh_tracker_index_now', $_REQUEST['refresh_tracker_index_now']);
}
if (! empty($_POST['string_in_db_search'])) {
require_once('lib/search/report_string_in_db.php');
$smarty->assign('searchString', $_REQUEST['string_in_db_search']);
$smarty->assign('searchStringAgain', $_REQUEST['string_in_db_search']);
if (! empty($_REQUEST['string_in_db_search_table'])) {
$smarty->assign('tableFilter', $_REQUEST['string_in_db_search_table']);
}
}
if (! empty($_POST['query'])) {
require_once('lib/search/report_string_in_db.php');
$smarty->assign('searchStringAgain', $_REQUEST['query']);
$smarty->assign('tableName', $_REQUEST['table']);
if (! empty($_REQUEST['string_in_db_search_table'])) {
$smarty->assign('tableFilter', $_REQUEST['string_in_db_search_table']);
}
}
$tikilib = TikiLib::lib('tiki');
$allTables = $tikilib->listTables();
foreach ($allTables as $table) {
if (substr($table, 0, 6) !== 'index_' || substr($table, 0, 10) == 'index_pref') {
$tables[] = $table;
}
}
$smarty->assign('tables', $tables);
$popularTables = ['tiki_articles', 'tiki_blog_posts', 'tiki_calendar_items', 'tiki_comments', 'tiki_pages', 'tiki_tracker_item_fields'];
$smarty->assign('popularTables', $popularTables);
}
$lastLogItem = $unifiedsearchlib->getLastLogItem();
if ($lastLogItem['web']) {
$smarty->assign('lastLogItemWeb', $lastLogItem['web']);
} else {
$smarty->assign('lastLogItemWeb', tr('Unable to get info from log file.'));
}
if ($lastLogItem['console']) {
$smarty->assign('lastLogItemConsole', $lastLogItem['console']);
} else {
$smarty->assign('lastLogItemConsole', tr('Unable to get info from log file.'));
}
if (isMySQLFulltextSearchSupported()) {
$smarty->assign('no_fulltext_support', false);
} else {
$smarty->assign('no_fulltext_support', true);
}