@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
# backup files |
||||
**~ |
||||
**.bak |
||||
|
||||
# settings files |
||||
Settings.php |
||||
Settings_bak.php |
||||
|
||||
# things that change |
||||
attachments/ |
||||
avatars/ |
||||
cache/ |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
<Files *> |
||||
Order Deny,Allow |
||||
Deny from all |
||||
Allow from localhost |
||||
</Files> |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
<Files *> |
||||
Order Deny,Allow |
||||
Deny from all |
||||
Allow from localhost |
||||
</Files> |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
<?php |
||||
|
||||
// Try to handle it with the upper level index.php. (it should know what to do.) |
||||
if (file_exists(dirname(dirname(__FILE__)) . '/index.php')) |
||||
include (dirname(dirname(__FILE__)) . '/index.php'); |
||||
else |
||||
exit; |
||||
|
||||
?> |
@ -0,0 +1,16 @@
@@ -0,0 +1,16 @@
|
||||
<?php |
||||
|
||||
// This file is here solely to protect your Packages directory. |
||||
|
||||
// Look for Settings.php.... |
||||
if (file_exists(dirname(dirname(__FILE__)) . '/Settings.php')) |
||||
{ |
||||
// Found it! |
||||
require(dirname(dirname(__FILE__)) . '/Settings.php'); |
||||
header('Location: ' . $boardurl); |
||||
} |
||||
// Can't find it... just forget it. |
||||
else |
||||
exit; |
||||
|
||||
?> |
@ -0,0 +1,62 @@
@@ -0,0 +1,62 @@
|
||||
<?php |
||||
|
||||
/** |
||||
* Simple Machines Forum (SMF) |
||||
* |
||||
* @package SMF |
||||
* @author Simple Machines http://www.simplemachines.org |
||||
* @copyright 2011 Simple Machines |
||||
* @license http://www.simplemachines.org/about/smf/license.php BSD |
||||
* |
||||
* @version 2.0 |
||||
*/ |
||||
|
||||
########## Maintenance ########## |
||||
# Note: If $maintenance is set to 2, the forum will be unusable! Change it to 0 to fix it. |
||||
$maintenance = 0; # Set to 1 to enable Maintenance Mode, 2 to make the forum untouchable. (you'll have to make it 0 again manually!) |
||||
$mtitle = 'Maintenance Mode'; # Title for the Maintenance Mode message. |
||||
$mmessage = 'Okay faithful users...we\'re attempting to restore an older backup of the database...news will be posted once we\'re back!'; # Description of why the forum is in maintenance mode. |
||||
|
||||
########## Forum Info ########## |
||||
$mbname = 'My Community'; # The name of your forum. |
||||
$language = 'english'; # The default language file set for the forum. |
||||
$boardurl = 'http://127.0.0.1/smf'; # URL to your forum's folder. (without the trailing /!) |
||||
$webmaster_email = 'noreply@myserver.com'; # Email address to send emails from. (like noreply@yourdomain.com.) |
||||
$cookiename = 'SMFCookie11'; # Name of the cookie to set for authentication. |
||||
|
||||
########## Database Info ########## |
||||
$db_type = 'mysql'; |
||||
$db_server = 'localhost'; |
||||
$db_name = 'smf'; |
||||
$db_user = 'root'; |
||||
$db_passwd = ''; |
||||
$ssi_db_user = ''; |
||||
$ssi_db_passwd = ''; |
||||
$db_prefix = 'smf_'; |
||||
$db_persist = 0; |
||||
$db_error_send = 1; |
||||
|
||||
########## Directories/Files ########## |
||||
# Note: These directories do not have to be changed unless you move things. |
||||
$boarddir = dirname(__FILE__); # The absolute path to the forum's folder. (not just '.'!) |
||||
$sourcedir = dirname(__FILE__) . '/Sources'; # Path to the Sources directory. |
||||
$cachedir = dirname(__FILE__) . '/cache'; # Path to the cache directory. |
||||
|
||||
########## Error-Catching ########## |
||||
# Note: You shouldn't touch these settings. |
||||
$db_last_error = 0; |
||||
|
||||
if (file_exists(dirname(__FILE__) . '/install.php')) |
||||
{ |
||||
header('Location: http' . (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ? 's' : '') . '://' . (empty($_SERVER['HTTP_HOST']) ? $_SERVER['SERVER_NAME'] . (empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':' . $_SERVER['SERVER_PORT']) : $_SERVER['HTTP_HOST']) . (strtr(dirname($_SERVER['PHP_SELF']), '\\', '/') == '/' ? '' : strtr(dirname($_SERVER['PHP_SELF']), '\\', '/')) . '/install.php'); exit; |
||||
} |
||||
|
||||
# Make sure the paths are correct... at least try to fix them. |
||||
if (!file_exists($boarddir) && file_exists(dirname(__FILE__) . '/agreement.txt')) |
||||
$boarddir = dirname(__FILE__); |
||||
if (!file_exists($sourcedir) && file_exists($boarddir . '/Sources')) |
||||
$sourcedir = $boarddir . '/Sources'; |
||||
if (!file_exists($cachedir) && file_exists($boarddir . '/cache')) |
||||
$cachedir = $boarddir . '/cache'; |
||||
|
||||
?> |
After Width: | Height: | Size: 691 B |
After Width: | Height: | Size: 425 B |
After Width: | Height: | Size: 612 B |
After Width: | Height: | Size: 621 B |
After Width: | Height: | Size: 615 B |
After Width: | Height: | Size: 608 B |
After Width: | Height: | Size: 608 B |
After Width: | Height: | Size: 648 B |
After Width: | Height: | Size: 621 B |
After Width: | Height: | Size: 639 B |
After Width: | Height: | Size: 612 B |
After Width: | Height: | Size: 612 B |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
<?php |
||||
|
||||
// Try to handle it with the upper level index.php. (it should know what to do.) |
||||
if (file_exists(dirname(dirname(__FILE__)) . '/index.php')) |
||||
include (dirname(dirname(__FILE__)) . '/index.php'); |
||||
else |
||||
exit; |
||||
|
||||
?> |
After Width: | Height: | Size: 621 B |
After Width: | Height: | Size: 610 B |
After Width: | Height: | Size: 613 B |
After Width: | Height: | Size: 689 B |
After Width: | Height: | Size: 613 B |
After Width: | Height: | Size: 617 B |
After Width: | Height: | Size: 608 B |
After Width: | Height: | Size: 617 B |
After Width: | Height: | Size: 622 B |
After Width: | Height: | Size: 618 B |
After Width: | Height: | Size: 621 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 670 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
<?php |
||||
|
||||
// Try to handle it with the upper level index.php. (it should know what to do.) |
||||
if (file_exists(dirname(dirname(__FILE__)) . '/index.php')) |
||||
include (dirname(dirname(__FILE__)) . '/index.php'); |
||||
else |
||||
exit; |
||||
|
||||
?> |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 622 B |
After Width: | Height: | Size: 1004 B |
After Width: | Height: | Size: 399 B |
After Width: | Height: | Size: 374 B |
After Width: | Height: | Size: 1012 B |
After Width: | Height: | Size: 999 B |
After Width: | Height: | Size: 1017 B |
After Width: | Height: | Size: 1008 B |
After Width: | Height: | Size: 636 B |
After Width: | Height: | Size: 1001 B |
After Width: | Height: | Size: 1005 B |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
<?php |
||||
|
||||
// Try to handle it with the upper level index.php. (it should know what to do.) |
||||
if (file_exists(dirname(dirname(__FILE__)) . '/index.php')) |
||||
include (dirname(dirname(__FILE__)) . '/index.php'); |
||||
else |
||||
exit; |
||||
|
||||
?> |
After Width: | Height: | Size: 1008 B |
After Width: | Height: | Size: 609 B |
After Width: | Height: | Size: 1006 B |
After Width: | Height: | Size: 686 B |
After Width: | Height: | Size: 400 B |
After Width: | Height: | Size: 1009 B |
After Width: | Height: | Size: 1012 B |
After Width: | Height: | Size: 1009 B |
After Width: | Height: | Size: 1005 B |
After Width: | Height: | Size: 405 B |
After Width: | Height: | Size: 1004 B |
@ -0,0 +1,16 @@
@@ -0,0 +1,16 @@
|
||||
<?php |
||||
|
||||
// This file is here solely to protect your Smileys directory. |
||||
|
||||
// Look for Settings.php.... |
||||
if (file_exists(dirname(dirname(__FILE__)) . '/Settings.php')) |
||||
{ |
||||
// Found it! |
||||
require(dirname(dirname(__FILE__)) . '/Settings.php'); |
||||
header('Location: ' . $boardurl); |
||||
} |
||||
// Can't find it... just forget it. |
||||
else |
||||
exit; |
||||
|
||||
?> |
@ -0,0 +1,999 @@
@@ -0,0 +1,999 @@
|
||||
<?php |
||||
|
||||
/** |
||||
* Simple Machines Forum (SMF) |
||||
* |
||||
* @package SMF |
||||
* @author Simple Machines |
||||
* |
||||
* @copyright 2011 Simple Machines |
||||
* @license http://www.simplemachines.org/about/smf/license.php BSD |
||||
* |
||||
* @version 2.0 |
||||
*/ |
||||
|
||||
if (!defined('SMF')) |
||||
die('Hacking attempt...'); |
||||
|
||||
/* This file, unpredictable as this might be, handles basic administration. |
||||
|
||||
void AdminMain() |
||||
- initialises all the basic context required for the admin center. |
||||
- passes execution onto the relevant admin section. |
||||
- if the passed section is not found it shows the admin home page. |
||||
|
||||
void AdminHome() |
||||
- prepares all the data necessary for the administration front page. |
||||
- uses the Admin template along with the admin sub template. |
||||
- requires the moderate_forum, manage_membergroups, manage_bans, |
||||
admin_forum, manage_permissions, manage_attachments, manage_smileys, |
||||
manage_boards, edit_news, or send_mail permission. |
||||
- uses the index administrative area. |
||||
- can be found by going to ?action=admin. |
||||
|
||||
void AdminSearch() |
||||
- allocates out all the search stuff. |
||||
|
||||
void AdminSearchInternal() |
||||
- a complicated but relatively quick internal search. |
||||
|
||||
void AdminSearchMember() |
||||
- pass through to manage members. |
||||
|
||||
void DisplayAdminFile() |
||||
- get one of the admin information files from Simple Machines. |
||||
|
||||
*/ |
||||
|
||||
// The main admin handling function. |
||||
function AdminMain() |
||||
{ |
||||
global $txt, $context, $scripturl, $sc, $modSettings, $user_info, $settings, $sourcedir, $options, $smcFunc, $boarddir; |
||||
|
||||
// Load the language and templates.... |
||||
loadLanguage('Admin'); |
||||
loadTemplate('Admin', 'admin'); |
||||
|
||||
// No indexing evil stuff. |
||||
$context['robot_no_index'] = true; |
||||
|
||||
require_once($sourcedir . '/Subs-Menu.php'); |
||||
|
||||
// Some preferences. |
||||
$context['admin_preferences'] = !empty($options['admin_preferences']) ? unserialize($options['admin_preferences']) : array(); |
||||
|
||||
// Define all the menu structure - see Subs-Menu.php for details! |
||||
$admin_areas = array( |
||||
'forum' => array( |
||||
'title' => $txt['admin_main'], |
||||
'permission' => array('admin_forum', 'manage_permissions', 'moderate_forum', 'manage_membergroups', 'manage_bans', 'send_mail', 'edit_news', 'manage_boards', 'manage_smileys', 'manage_attachments'), |
||||
'areas' => array( |
||||
'index' => array( |
||||
'label' => $txt['admin_center'], |
||||
'function' => 'AdminHome', |
||||
'icon' => 'administration.gif', |
||||
), |
||||
'credits' => array( |
||||
'label' => $txt['support_credits_title'], |
||||
'function' => 'AdminHome', |
||||
'icon' => 'support.gif', |
||||
), |
||||
'news' => array( |
||||
'label' => $txt['news_title'], |
||||
'file' => 'ManageNews.php', |
||||
'function' => 'ManageNews', |
||||
'icon' => 'news.gif', |
||||
'permission' => array('edit_news', 'send_mail', 'admin_forum'), |
||||
'subsections' => array( |
||||
'editnews' => array($txt['admin_edit_news'], 'edit_news'), |
||||
'mailingmembers' => array($txt['admin_newsletters'], 'send_mail'), |
||||
'settings' => array($txt['settings'], 'admin_forum'), |
||||
), |
||||
), |
||||
'packages' => array( |
||||
'label' => $txt['package'], |
||||
'file' => 'Packages.php', |
||||
'function' => 'Packages', |
||||
'permission' => array('admin_forum'), |
||||
'icon' => 'packages.gif', |
||||
'subsections' => array( |
||||
'browse' => array($txt['browse_packages']), |
||||
'packageget' => array($txt['download_packages'], 'url' => $scripturl . '?action=admin;area=packages;sa=packageget;get'), |
||||
'installed' => array($txt['installed_packages']), |
||||
'perms' => array($txt['package_file_perms']), |
||||
'options' => array($txt['package_settings']), |
||||
), |
||||
), |
||||
'search' => array( |
||||
'function' => 'AdminSearch', |
||||
'permission' => array('admin_forum'), |
||||
'select' => 'index' |
||||
), |
||||
), |
||||
), |
||||
'config' => array( |
||||
'title' => $txt['admin_config'], |
||||
'permission' => array('admin_forum'), |
||||
'areas' => array( |
||||
'corefeatures' => array( |
||||
'label' => $txt['core_settings_title'], |
||||
'file' => 'ManageSettings.php', |
||||
'function' => 'ModifyCoreFeatures', |
||||
'icon' => 'corefeatures.gif', |
||||
), |
||||
'featuresettings' => array( |
||||
'label' => $txt['modSettings_title'], |
||||
'file' => 'ManageSettings.php', |
||||
'function' => 'ModifyFeatureSettings', |
||||
'icon' => 'features.gif', |
||||
'subsections' => array( |
||||
'basic' => array($txt['mods_cat_features']), |
||||
'layout' => array($txt['mods_cat_layout']), |
||||
'karma' => array($txt['karma'], 'enabled' => in_array('k', $context['admin_features'])), |
||||
'sig' => array($txt['signature_settings_short']), |
||||
'profile' => array($txt['custom_profile_shorttitle'], 'enabled' => in_array('cp', $context['admin_features'])), |
||||
), |
||||
), |
||||
'securitysettings' => array( |
||||
'label' => $txt['admin_security_moderation'], |
||||
'file' => 'ManageSettings.php', |
||||
'function' => 'ModifySecuritySettings', |
||||
'icon' => 'security.gif', |
||||
'subsections' => array( |
||||
'general' => array($txt['mods_cat_security_general']), |
||||
'spam' => array($txt['antispam_title']), |
||||
'moderation' => array($txt['moderation_settings_short'], 'enabled' => substr($modSettings['warning_settings'], 0, 1) == 1), |
||||
), |
||||
), |
||||
'languages' => array( |
||||
'label' => $txt['language_configuration'], |
||||
'file' => 'ManageServer.php', |
||||
'function' => 'ManageLanguages', |
||||
'icon' => 'languages.gif', |
||||
'subsections' => array( |
||||
'edit' => array($txt['language_edit']), |
||||
'add' => array($txt['language_add']), |
||||
'settings' => array($txt['language_settings']), |
||||
), |
||||
), |
||||
'serversettings' => array( |
||||
'label' => $txt['admin_server_settings'], |
||||
'file' => 'ManageServer.php', |
||||
'function' => 'ModifySettings', |
||||
'icon' => 'server.gif', |
||||
'subsections' => array( |
||||
'general' => array($txt['general_settings']), |
||||
'database' => array($txt['database_paths_settings']), |
||||
'cookie' => array($txt['cookies_sessions_settings']), |
||||
'cache' => array($txt['caching_settings']), |
||||
'loads' => array($txt['load_balancing_settings']), |
||||
), |
||||
), |
||||
'current_theme' => array( |
||||
'label' => $txt['theme_current_settings'], |
||||
'file' => 'Themes.php', |
||||
'function' => 'ThemesMain', |
||||
'custom_url' => $scripturl . '?action=admin;area=theme;sa=settings;th=' . $settings['theme_id'], |
||||
'icon' => 'current_theme.gif', |
||||
), |
||||
'theme' => array( |
||||
'label' => $txt['theme_admin'], |
||||
'file' => 'Themes.php', |
||||
'function' => 'ThemesMain', |
||||
'custom_url' => $scripturl . '?action=admin;area=theme;sa=admin', |
||||
'icon' => 'themes.gif', |
||||
'subsections' => array( |
||||
'admin' => array($txt['themeadmin_admin_title']), |
||||
'list' => array($txt['themeadmin_list_title']), |
||||
'reset' => array($txt['themeadmin_reset_title']), |
||||
'edit' => array($txt['themeadmin_edit_title']), |
||||
), |
||||
), |
||||
'modsettings' => array( |
||||
'label' => $txt['admin_modifications'], |
||||
'file' => 'ManageSettings.php', |
||||
'function' => 'ModifyModSettings', |
||||
'icon' => 'modifications.gif', |
||||
'subsections' => array( |
||||
'general' => array($txt['mods_cat_modifications_misc']), |
||||
// Mod Authors for a "ADD AFTER" on this line. Ensure you end your change with a comma. For example: |
||||
// 'shout' => array($txt['shout']), |
||||
// Note the comma!! The setting with automatically appear with the first mod to be added. |
||||
), |
||||
), |
||||
), |
||||
), |
||||
'layout' => array( |
||||
'title' => $txt['layout_controls'], |
||||
'permission' => array('manage_boards', 'admin_forum', 'manage_smileys', 'manage_attachments', 'moderate_forum'), |
||||
'areas' => array( |
||||
'manageboards' => array( |
||||
'label' => $txt['admin_boards'], |
||||
'file' => 'ManageBoards.php', |
||||
'function' => 'ManageBoards', |
||||
'icon' => 'boards.gif', |
||||
'permission' => array('manage_boards'), |
||||
'subsections' => array( |
||||
'main' => array($txt['boardsEdit']), |
||||
'newcat' => array($txt['mboards_new_cat']), |
||||
'settings' => array($txt['settings'], 'admin_forum'), |
||||
), |
||||
), |
||||
'postsettings' => array( |
||||
'label' => $txt['manageposts'], |
||||
'file' => 'ManagePosts.php', |
||||
'function' => 'ManagePostSettings', |
||||
'permission' => array('admin_forum'), |
||||
'icon' => 'posts.gif', |
||||
'subsections' => array( |
||||
'posts' => array($txt['manageposts_settings']), |
||||
'bbc' => array($txt['manageposts_bbc_settings']), |
||||
'censor' => array($txt['admin_censored_words']), |
||||
'topics' => array($txt['manageposts_topic_settings']), |
||||
), |
||||
), |
||||
'managecalendar' => array( |
||||
'label' => $txt['manage_calendar'], |
||||
'file' => 'ManageCalendar.php', |
||||
'function' => 'ManageCalendar', |
||||
'icon' => 'calendar.gif', |
||||
'permission' => array('admin_forum'), |
||||
'enabled' => in_array('cd', $context['admin_features']), |
||||
'subsections' => array( |
||||
'holidays' => array($txt['manage_holidays'], 'admin_forum', 'enabled' => !empty($modSettings['cal_enabled'])), |
||||
'settings' => array($txt['calendar_settings'], 'admin_forum'), |
||||
), |
||||
), |
||||
'managesearch' => array( |
||||
'label' => $txt['manage_search'], |
||||
'file' => 'ManageSearch.php', |
||||
'function' => 'ManageSearch', |
||||
'icon' => 'search.gif', |
||||
'permission' => array('admin_forum'), |
||||
'subsections' => array( |
||||
'weights' => array($txt['search_weights']), |
||||
'method' => array($txt['search_method']), |
||||
'settings' => array($txt['settings']), |
||||
), |
||||
), |
||||
'smileys' => array( |
||||
'label' => $txt['smileys_manage'], |
||||
'file' => 'ManageSmileys.php', |
||||
'function' => 'ManageSmileys', |
||||
'icon' => 'smiley.gif', |
||||
'permission' => array('manage_smileys'), |
||||
'subsections' => array( |
||||
'editsets' => array($txt['smiley_sets']), |
||||
'addsmiley' => array($txt['smileys_add'], 'enabled' => !empty($modSettings['smiley_enable'])), |
||||
'editsmileys' => array($txt['smileys_edit'], 'enabled' => !empty($modSettings['smiley_enable'])), |
||||
'setorder' => array($txt['smileys_set_order'], 'enabled' => !empty($modSettings['smiley_enable'])), |
||||
'editicons' => array($txt['icons_edit_message_icons'], 'enabled' => !empty($modSettings['messageIcons_enable'])), |
||||
'settings' => array($txt['settings']), |
||||
), |
||||
), |
||||
'manageattachments' => array( |
||||
'label' => $txt['attachments_avatars'], |
||||
'file' => 'ManageAttachments.php', |
||||
'function' => 'ManageAttachments', |
||||
'icon' => 'attachment.gif', |
||||
'permission' => array('manage_attachments'), |
||||
'subsections' => array( |
||||
'browse' => array($txt['attachment_manager_browse']), |
||||
'attachments' => array($txt['attachment_manager_settings']), |
||||
'avatars' => array($txt['attachment_manager_avatar_settings']), |
||||
'maintenance' => array($txt['attachment_manager_maintenance']), |
||||
), |
||||
), |
||||
), |
||||
), |
||||
'members' => array( |
||||
'title' => $txt['admin_manage_members'], |
||||
'permission' => array('moderate_forum', 'manage_membergroups', 'manage_bans', 'manage_permissions', 'admin_forum'), |
||||
'areas' => array( |
||||
'viewmembers' => array( |
||||
'label' => $txt['admin_users'], |
||||
'file' => 'ManageMembers.php', |
||||
'function' => 'ViewMembers', |
||||
'icon' => 'members.gif', |
||||
'permission' => array('moderate_forum'), |
||||
'subsections' => array( |
||||
'all' => array($txt['view_all_members']), |
||||
'search' => array($txt['mlist_search']), |
||||
), |
||||
), |
||||
'membergroups' => array( |
||||
'label' => $txt['admin_groups'], |
||||
'file' => 'ManageMembergroups.php', |
||||
'function' => 'ModifyMembergroups', |
||||
'icon' => 'membergroups.gif', |
||||
'permission' => array('manage_membergroups'), |
||||
'subsections' => array( |
||||
'index' => array($txt['membergroups_edit_groups'], 'manage_membergroups'), |
||||
'add' => array($txt['membergroups_new_group'], 'manage_membergroups'), |
||||
'settings' => array($txt['settings'], 'admin_forum'), |
||||
), |
||||
), |
||||
'permissions' => array( |
||||
'label' => $txt['edit_permissions'], |
||||
'file' => 'ManagePermissions.php', |
||||
'function' => 'ModifyPermissions', |
||||
'icon' => 'permissions.gif', |
||||
'permission' => array('manage_permissions'), |
||||
'subsections' => array( |
||||
'index' => array($txt['permissions_groups'], 'manage_permissions'), |
||||
'board' => array($txt['permissions_boards'], 'manage_permissions'), |
||||
'profiles' => array($txt['permissions_profiles'], 'manage_permissions'), |
||||
'postmod' => array($txt['permissions_post_moderation'], 'manage_permissions', 'enabled' => $modSettings['postmod_active']), |
||||
'settings' => array($txt['settings'], 'admin_forum'), |
||||
), |
||||
), |
||||
'regcenter' => array( |
||||
'label' => $txt['registration_center'], |
||||
'file' => 'ManageRegistration.php', |
||||
'function' => 'RegCenter', |
||||
'icon' => 'regcenter.gif', |
||||
'permission' => array('admin_forum', 'moderate_forum'), |
||||
'subsections' => array( |
||||
'register' => array($txt['admin_browse_register_new'], 'moderate_forum'), |
||||
'agreement' => array($txt['registration_agreement'], 'admin_forum'), |
||||
'reservednames' => array($txt['admin_reserved_set'], 'admin_forum'), |
||||
'settings' => array($txt['settings'], 'admin_forum'), |
||||
), |
||||
), |
||||
'ban' => array( |
||||
'label' => $txt['ban_title'], |
||||
'file' => 'ManageBans.php', |
||||
'function' => 'Ban', |
||||
'icon' => 'ban.gif', |
||||
'permission' => 'manage_bans', |
||||
'subsections' => array( |
||||
'list' => array($txt['ban_edit_list']), |
||||
'add' => array($txt['ban_add_new']), |
||||
'browse' => array($txt['ban_trigger_browse']), |
||||
'log' => array($txt['ban_log']), |
||||
), |
||||
), |
||||
'paidsubscribe' => array( |
||||
'label' => $txt['paid_subscriptions'], |
||||
'enabled' => in_array('ps', $context['admin_features']), |
||||
'file' => 'ManagePaid.php', |
||||
'icon' => 'paid.gif', |
||||
'function' => 'ManagePaidSubscriptions', |
||||
'permission' => 'admin_forum', |
||||
'subsections' => array( |
||||
'view' => array($txt['paid_subs_view']), |
||||
'settings' => array($txt['settings']), |
||||
), |
||||
), |
||||
'sengines' => array( |
||||
'label' => $txt['search_engines'], |
||||
'enabled' => in_array('sp', $context['admin_features']), |
||||
'file' => 'ManageSearchEngines.php', |
||||
'icon' => 'engines.gif', |
||||
'function' => 'SearchEngines', |
||||
'permission' => 'admin_forum', |
||||
'subsections' => array( |
||||
'stats' => array($txt['spider_stats']), |
||||
'logs' => array($txt['spider_logs']), |
||||
'spiders' => array($txt['spiders']), |
||||
'settings' => array($txt['settings']), |
||||
), |
||||
), |
||||
), |
||||
), |
||||
'maintenance' => array( |
||||
'title' => $txt['admin_maintenance'], |
||||
'permission' => array('admin_forum'), |
||||
'areas' => array( |
||||
'maintain' => array( |
||||
'label' => $txt['maintain_title'], |
||||
'file' => 'ManageMaintenance.php', |
||||
'icon' => 'maintain.gif', |
||||
'function' => 'ManageMaintenance', |
||||
'subsections' => array( |
||||
'routine' => array($txt['maintain_sub_routine'], 'admin_forum'), |
||||
'database' => array($txt['maintain_sub_database'], 'admin_forum'), |
||||
'members' => array($txt['maintain_sub_members'], 'admin_forum'), |
||||
'topics' => array($txt['maintain_sub_topics'], 'admin_forum'), |
||||
), |
||||
), |
||||
'scheduledtasks' => array( |
||||
'label' => $txt['maintain_tasks'], |
||||
'file' => 'ManageScheduledTasks.php', |
||||
'icon' => 'scheduled.gif', |
||||
'function' => 'ManageScheduledTasks', |
||||
'subsections' => array( |
||||
'tasks' => array($txt['maintain_tasks'], 'admin_forum'), |
||||
'tasklog' => array($txt['scheduled_log'], 'admin_forum'), |
||||
), |
||||
), |
||||
'mailqueue' => array( |
||||
'label' => $txt['mailqueue_title'], |
||||
'file' => 'ManageMail.php', |
||||
'function' => 'ManageMail', |
||||
'icon' => 'mail.gif', |
||||
'subsections' => array( |
||||
'browse' => array($txt['mailqueue_browse'], 'admin_forum'), |
||||
'settings' => array($txt['mailqueue_settings'], 'admin_forum'), |
||||
), |
||||
), |
||||
'reports' => array( |
||||
'enabled' => in_array('rg', $context['admin_features']), |
||||
'label' => $txt['generate_reports'], |
||||
'file' => 'Reports.php', |
||||
'function' => 'ReportsMain', |
||||
'icon' => 'reports.gif', |
||||
), |
||||
'logs' => array( |
||||
'label' => $txt['logs'], |
||||
'function' => 'AdminLogs', |
||||
'icon' => 'logs.gif', |
||||
'subsections' => array( |
||||
'errorlog' => array($txt['errlog'], 'admin_forum', 'enabled' => !empty($modSettings['enableErrorLogging']), 'url' => $scripturl . '?action=admin;area=logs;sa=errorlog;desc'), |
||||
'adminlog' => array($txt['admin_log'], 'admin_forum', 'enabled' => in_array('ml', $context['admin_features'])), |
||||
'modlog' => array($txt['moderation_log'], 'admin_forum', 'enabled' => in_array('ml', $context['admin_features'])), |
||||
'banlog' => array($txt['ban_log'], 'manage_bans'), |
||||
'spiderlog' => array($txt['spider_logs'], 'admin_forum', 'enabled' => in_array('sp', $context['admin_features'])), |
||||
'tasklog' => array($txt['scheduled_log'], 'admin_forum'), |
||||
'pruning' => array($txt['pruning_title'], 'admin_forum'), |
||||
), |
||||
), |
||||
'repairboards' => array( |
||||
'label' => $txt['admin_repair'], |
||||
'file' => 'RepairBoards.php', |
||||
'function' => 'RepairBoards', |
||||
'select' => 'maintain', |
||||
'hidden' => true, |
||||
), |
||||
), |
||||
), |
||||
); |
||||
|
||||
// Any files to include for administration? |
||||
if (!empty($modSettings['integrate_admin_include'])) |
||||
{ |
||||
$admin_includes = explode(',', $modSettings['integrate_admin_include']); |
||||
foreach ($admin_includes as $include) |
||||
{ |
||||
$include = strtr(trim($include), array('$boarddir' => $boarddir, '$sourcedir' => $sourcedir, '$themedir' => $settings['theme_dir'])); |
||||
if (file_exists($include)) |
||||
require_once($include); |
||||
} |
||||
} |
||||
|
||||
// Let them modify admin areas easily. |
||||
call_integration_hook('integrate_admin_areas', array(&$admin_areas)); |
||||
|
||||
// Make sure the administrator has a valid session... |
||||
validateSession(); |
||||
|
||||
// Actually create the menu! |
||||
$admin_include_data = createMenu($admin_areas); |
||||
unset($admin_areas); |
||||
|
||||
// Nothing valid? |
||||
if ($admin_include_data == false) |
||||
fatal_lang_error('no_access', false); |
||||
|
||||
// Build the link tree. |
||||
$context['linktree'][] = array( |
||||
'url' => $scripturl . '?action=admin', |
||||
'name' => $txt['admin_center'], |
||||
); |
||||
if (isset($admin_include_data['current_area']) && $admin_include_data['current_area'] != 'index') |
||||
$context['linktree'][] = array( |
||||
'url' => $scripturl . '?action=admin;area=' . $admin_include_data['current_area'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
||||
'name' => $admin_include_data['label'], |
||||
); |
||||
if (!empty($admin_include_data['current_subsection']) && $admin_include_data['subsections'][$admin_include_data['current_subsection']][0] != $admin_include_data['label']) |
||||
$context['linktree'][] = array( |
||||
'url' => $scripturl . '?action=admin;area=' . $admin_include_data['current_area'] . ';sa=' . $admin_include_data['current_subsection'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
||||
'name' => $admin_include_data['subsections'][$admin_include_data['current_subsection']][0], |
||||
); |
||||
|
||||
// Make a note of the Unique ID for this menu. |
||||
$context['admin_menu_id'] = $context['max_menu_id']; |
||||
$context['admin_menu_name'] = 'menu_data_' . $context['admin_menu_id']; |
||||
|
||||
// Why on the admin are we? |
||||
$context['admin_area'] = $admin_include_data['current_area']; |
||||
|
||||
// Now - finally - call the right place! |
||||
if (isset($admin_include_data['file'])) |
||||
require_once($sourcedir . '/' . $admin_include_data['file']); |
||||
|
||||
$admin_include_data['function'](); |
||||
} |
||||
|
||||
// The main administration section. |
||||
function AdminHome() |
||||
{ |
||||
global $sourcedir, $forum_version, $txt, $scripturl, $context, $user_info, $boardurl, $modSettings, $smcFunc; |
||||
|
||||
// You have to be able to do at least one of the below to see this page. |
||||
isAllowedTo(array('admin_forum', 'manage_permissions', 'moderate_forum', 'manage_membergroups', 'manage_bans', 'send_mail', 'edit_news', 'manage_boards', 'manage_smileys', 'manage_attachments')); |
||||
|
||||
// Find all of this forum's administrators... |
||||
require_once($sourcedir . '/Subs-Membergroups.php'); |
||||
if (listMembergroupMembers_Href($context['administrators'], 1, 32) && allowedTo('manage_membergroups')) |
||||
{ |
||||
// Add a 'more'-link if there are more than 32. |
||||
$context['more_admins_link'] = '<a href="' . $scripturl . '?action=moderate;area=viewgroups;sa=members;group=1">' . $txt['more'] . '</a>'; |
||||
} |
||||
|
||||
// Load the credits stuff. |
||||
require_once($sourcedir . '/Who.php'); |
||||
Credits(true); |
||||
|
||||
// This makes it easier to get the latest news with your time format. |
||||
$context['time_format'] = urlencode($user_info['time_format']); |
||||
|
||||
$context['current_versions'] = array( |
||||
'php' => array('title' => $txt['support_versions_php'], 'version' => PHP_VERSION), |
||||
'db' => array('title' => sprintf($txt['support_versions_db'], $smcFunc['db_title']), 'version' => ''), |
||||
'server' => array('title' => $txt['support_versions_server'], 'version' => $_SERVER['SERVER_SOFTWARE']), |
||||
); |
||||
$context['forum_version'] = $forum_version; |
||||
|
||||
// Get a list of current server versions. |
||||
require_once($sourcedir . '/Subs-Admin.php'); |
||||
$checkFor = array( |
||||
'gd', |
||||
'db_server', |
||||
'mmcache', |
||||
'eaccelerator', |
||||
'phpa', |
||||
'apc', |
||||
'memcache', |
||||
'xcache', |
||||
'php', |
||||
'server', |
||||
); |
||||
$context['current_versions'] = getServerVersions($checkFor); |
||||
|
||||
$context['can_admin'] = allowedTo('admin_forum'); |
||||
|
||||
$context['sub_template'] = $context['admin_area'] == 'credits' ? 'credits' : 'admin'; |
||||
$context['page_title'] = $context['admin_area'] == 'credits' ? $txt['support_credits_title'] : $txt['admin_center']; |
||||
|
||||
// The format of this array is: permission, action, title, description, icon. |
||||
$quick_admin_tasks = array( |
||||
array('', 'credits', 'support_credits_title', 'support_credits_info', 'support_and_credits.png'), |
||||
array('admin_forum', 'featuresettings', 'modSettings_title', 'modSettings_info', 'features_and_options.png'), |
||||
array('admin_forum', 'maintain', 'maintain_title', 'maintain_info', 'forum_maintenance.png'), |
||||
array('manage_permissions', 'permissions', 'edit_permissions', 'edit_permissions_info', 'permissions.png'), |
||||
array('admin_forum', 'theme;sa=admin;' . $context['session_var'] . '=' . $context['session_id'], 'theme_admin', 'theme_admin_info', 'themes_and_layout.png'), |
||||
array('admin_forum', 'packages', 'package', 'package_info', 'packages.png'), |
||||
array('manage_smileys', 'smileys', 'smileys_manage', 'smileys_manage_info', 'smilies_and_messageicons.png'), |
||||
array('moderate_forum', 'viewmembers', 'admin_users', 'member_center_info', 'members.png'), |
||||
); |
||||
|
||||
$context['quick_admin_tasks'] = array(); |
||||
foreach ($quick_admin_tasks as $task) |
||||
{ |
||||
if (!empty($task[0]) && !allowedTo($task[0])) |
||||
continue; |
||||
|
||||
$context['quick_admin_tasks'][] = array( |
||||
'href' => $scripturl . '?action=admin;area=' . $task[1], |
||||
'link' => '<a href="' . $scripturl . '?action=admin;area=' . $task[1] . '">' . $txt[$task[2]] . '</a>', |
||||
'title' => $txt[$task[2]], |
||||
'description' => $txt[$task[3]], |
||||
'icon' => $task[4], |
||||
'is_last' => false |
||||
); |
||||
} |
||||
|
||||
if (count($context['quick_admin_tasks']) % 2 == 1) |
||||
{ |
||||
$context['quick_admin_tasks'][] = array( |
||||
'href' => '', |
||||
'link' => '', |
||||
'title' => '', |
||||
'description' => '', |
||||
'is_last' => true |
||||
); |
||||
$context['quick_admin_tasks'][count($context['quick_admin_tasks']) - 2]['is_last'] = true; |
||||
} |
||||
elseif (count($context['quick_admin_tasks']) != 0) |
||||
{ |
||||
$context['quick_admin_tasks'][count($context['quick_admin_tasks']) - 1]['is_last'] = true; |
||||
$context['quick_admin_tasks'][count($context['quick_admin_tasks']) - 2]['is_last'] = true; |
||||
} |
||||
|
||||
// Lastly, fill in the blanks in the support resources paragraphs. |
||||
$txt['support_resources_p1'] = sprintf($txt['support_resources_p1'], |
||||
'http://wiki.simplemachines.org/', |
||||
'http://wiki.simplemachines.org/smf/features2', |
||||
'http://wiki.simplemachines.org/smf/options2', |
||||
'http://wiki.simplemachines.org/smf/themes2', |
||||
'http://wiki.simplemachines.org/smf/packages2' |
||||
); |
||||
$txt['support_resources_p2'] = sprintf($txt['support_resources_p2'], |
||||
'http://www.simplemachines.org/community/', |
||||
'http://www.simplemachines.org/redirect/english_support', |
||||
'http://www.simplemachines.org/redirect/international_support_boards', |
||||
'http://www.simplemachines.org/redirect/smf_support', |
||||
'http://www.simplemachines.org/redirect/customize_support' |
||||
); |
||||
} |
||||
|
||||
// Get one of the admin information files from Simple Machines. |
||||
function DisplayAdminFile() |
||||
{ |
||||
global $context, $modSettings, $smcFunc; |
||||
|
||||
@ini_set('memory_limit', '32M'); |
||||
|
||||
if (empty($_REQUEST['filename']) || !is_string($_REQUEST['filename'])) |
||||
fatal_lang_error('no_access', false); |
||||
|
||||
$request = $smcFunc['db_query']('', ' |
||||
SELECT data, filetype |
||||
FROM {db_prefix}admin_info_files |
||||
WHERE filename = {string:current_filename} |
||||
LIMIT 1', |
||||
array( |
||||
'current_filename' => $_REQUEST['filename'], |
||||
) |
||||
); |
||||
|
||||
if ($smcFunc['db_num_rows']($request) == 0) |
||||
fatal_lang_error('admin_file_not_found', true, array($_REQUEST['filename'])); |
||||
|
||||
list ($file_data, $filetype) = $smcFunc['db_fetch_row']($request); |
||||
$smcFunc['db_free_result']($request); |
||||
|
||||
// !!! Temp. |
||||
// Figure out if sesc is still being used. |
||||
if (strpos($file_data, ';sesc=') !== false) |
||||
$file_data = ' |
||||
if (!(\'smfForum_sessionvar\' in window)) |
||||
window.smfForum_sessionvar = \'sesc\'; |
||||
' . strtr($file_data, array(';sesc=' => ';\' + window.smfForum_sessionvar + \'=')); |
||||
|
||||
$context['template_layers'] = array(); |
||||
// Lets make sure we aren't going to output anything nasty. |
||||
@ob_end_clean(); |
||||
if (!empty($modSettings['enableCompressedOutput'])) |
||||
@ob_start('ob_gzhandler'); |
||||
else |
||||
@ob_start(); |
||||
|
||||
// Make sure they know what type of file we are. |
||||
header('Content-Type: ' . $filetype); |
||||
echo $file_data; |
||||
obExit(false); |
||||
} |
||||
|
||||
// This allocates out all the search stuff. |
||||
function AdminSearch() |
||||
{ |
||||
global $txt, $context, $smcFunc, $sourcedir; |
||||
|
||||
isAllowedTo('admin_forum'); |
||||
|
||||
// What can we search for? |
||||
$subactions = array( |
||||
'internal' => 'AdminSearchInternal', |
||||
'online' => 'AdminSearchOM', |
||||
'member' => 'AdminSearchMember', |
||||
); |
||||
|
||||
$context['search_type'] = !isset($_REQUEST['search_type']) || !isset($subactions[$_REQUEST['search_type']]) ? 'internal' : $_REQUEST['search_type']; |
||||
$context['search_term'] = isset($_REQUEST['search_term']) ? $smcFunc['htmlspecialchars']($_REQUEST['search_term'], ENT_QUOTES) : ''; |
||||
|
||||
$context['sub_template'] = 'admin_search_results'; |
||||
$context['page_title'] = $txt['admin_search_results']; |
||||
|
||||
// Keep track of what the admin wants. |
||||
if (empty($context['admin_preferences']['sb']) || $context['admin_preferences']['sb'] != $context['search_type']) |
||||
{ |
||||
$context['admin_preferences']['sb'] = $context['search_type']; |
||||
|
||||
// Update the preferences. |
||||
require_once($sourcedir . '/Subs-Admin.php'); |
||||
updateAdminPreferences(); |
||||
} |
||||
|
||||
if (trim($context['search_term']) == '') |
||||
$context['search_results'] = array(); |
||||
else |
||||
$subactions[$context['search_type']](); |
||||
} |
||||
|
||||
// A complicated but relatively quick internal search. |
||||
function AdminSearchInternal() |
||||
{ |
||||
global $context, $txt, $helptxt, $scripturl, $sourcedir; |
||||
|
||||
// Try to get some more memory. |
||||
@ini_set('memory_limit', '128M'); |
||||
|
||||
// Load a lot of language files. |
||||
$language_files = array( |
||||
'Help', 'ManageMail', 'ManageSettings', 'ManageCalendar', 'ManageBoards', 'ManagePaid', 'ManagePermissions', 'Search', |
||||
'Login', 'ManageSmileys', |
||||
); |
||||
loadLanguage(implode('+', $language_files)); |
||||
|
||||
// All the files we need to include. |
||||
$include_files = array( |
||||
'ManageSettings', 'ManageBoards', 'ManageNews', 'ManageAttachments', 'ManageCalendar', 'ManageMail', 'ManagePaid', 'ManagePermissions', |
||||
'ManagePosts', 'ManageRegistration', 'ManageSearch', 'ManageSearchEngines', 'ManageServer', 'ManageSmileys', |
||||
); |
||||
foreach ($include_files as $file) |
||||
require_once($sourcedir . '/' . $file . '.php'); |
||||
|
||||
/* This is the huge array that defines everything... it's a huge array of items formatted as follows: |
||||
0 = Language index (Can be array of indexes) to search through for this setting. |
||||
1 = URL for this indexes page. |
||||
2 = Help index for help associated with this item (If different from 0) |
||||
*/ |
||||
|
||||
$search_data = array( |
||||
// All the major sections of the forum. |
||||
'sections' => array( |
||||
), |
||||
'settings' => array( |
||||
array('COPPA', 'area=regcenter;sa=settings'), |
||||
array('CAPTCHA', 'area=securitysettings;sa=spam'), |
||||
), |
||||
); |
||||
|
||||
// Go through the admin menu structure trying to find suitably named areas! |
||||
foreach ($context[$context['admin_menu_name']]['sections'] as $section) |
||||
{ |
||||
foreach ($section['areas'] as $menu_key => $menu_item) |
||||
{ |
||||
$search_data['sections'][] = array($menu_item['label'], 'area=' . $menu_key); |
||||
if (!empty($menu_item['subsections'])) |
||||
foreach ($menu_item['subsections'] as $key => $sublabel) |
||||
{ |
||||
if (isset($sublabel['label'])) |
||||
$search_data['sections'][] = array($sublabel['label'], 'area=' . $menu_key . ';sa=' . $key); |
||||
} |
||||
} |
||||
} |
||||
|
||||
// This is a special array of functions that contain setting data - we query all these to simply pull all setting bits! |
||||
$settings_search = array( |
||||
array('ModifyCoreFeatures', 'area=corefeatures'), |
||||
array('ModifyBasicSettings', 'area=featuresettings;sa=basic'), |
||||
array('ModifyLayoutSettings', 'area=featuresettings;sa=layout'), |
||||
array('ModifyKarmaSettings', 'area=featuresettings;sa=karma'), |
||||
array('ModifySignatureSettings', 'area=featuresettings;sa=sig'), |
||||
array('ModifyGeneralSecuritySettings', 'area=securitysettings;sa=general'), |
||||
array('ModifySpamSettings', 'area=securitysettings;sa=spam'), |
||||
array('ModifyModerationSettings', 'area=securitysettings;sa=moderation'), |
||||
array('ModifyGeneralModSettings', 'area=modsettings;sa=general'), |
||||
// Mod authors if you want to be "real freaking good" then add any setting pages for your mod BELOW this line! |
||||
array('ManageAttachmentSettings', 'area=manageattachments;sa=attachments'), |
||||
array('ManageAvatarSettings', 'area=manageattachments;sa=avatars'), |
||||
array('ModifyCalendarSettings', 'area=managecalendar;sa=settings'), |
||||
array('EditBoardSettings', 'area=manageboards;sa=settings'), |
||||
array('ModifyMailSettings', 'area=mailqueue;sa=settings'), |
||||
array('ModifyNewsSettings', 'area=news;sa=settings'), |
||||
array('GeneralPermissionSettings', 'area=permissions;sa=settings'), |
||||
array('ModifyPostSettings', 'area=postsettings;sa=posts'), |
||||
array('ModifyBBCSettings', 'area=postsettings;sa=bbc'), |
||||
array('ModifyTopicSettings', 'area=postsettings;sa=topics'), |
||||
array('EditSearchSettings', 'area=managesearch;sa=settings'), |
||||
array('EditSmileySettings', 'area=smileys;sa=settings'), |
||||
array('ModifyGeneralSettings', 'area=serversettings;sa=general'), |
||||
array('ModifyDatabaseSettings', 'area=serversettings;sa=database'), |
||||
array('ModifyCookieSettings', 'area=serversettings;sa=cookie'), |
||||
array('ModifyCacheSettings', 'area=serversettings;sa=cache'), |
||||
array('ModifyLanguageSettings', 'area=languages;sa=settings'), |
||||
array('ModifyRegistrationSettings', 'area=regcenter;sa=settings'), |
||||
array('ManageSearchEngineSettings', 'area=sengines;sa=settings'), |
||||
array('ModifySubscriptionSettings', 'area=paidsubscribe;sa=settings'), |
||||
array('ModifyPruningSettings', 'area=logs;sa=pruning'), |
||||
); |
||||
|
||||
foreach ($settings_search as $setting_area) |
||||
{ |
||||
// Get a list of their variables. |
||||
$config_vars = $setting_area[0](true); |
||||
|
||||
foreach ($config_vars as $var) |
||||
if (!empty($var[1]) && !in_array($var[0], array('permissions', 'switch'))) |
||||
$search_data['settings'][] = array($var[(isset($var[2]) && in_array($var[2], array('file', 'db'))) ? 0 : 1], $setting_area[1]); |
||||
} |
||||
|
||||
$context['page_title'] = $txt['admin_search_results']; |
||||
$context['search_results'] = array(); |
||||
|
||||
$search_term = strtolower($context['search_term']); |
||||
// Go through all the search data trying to find this text! |
||||
foreach ($search_data as $section => $data) |
||||
{ |
||||
foreach ($data as $item) |
||||
{ |
||||
$found = false; |
||||
if (!is_array($item[0])) |
||||
$item[0] = array($item[0]); |
||||
foreach ($item[0] as $term) |
||||
{ |
||||
$lc_term = strtolower($term); |
||||
if (strpos($lc_term, $search_term) !== false || (isset($txt[$term]) && strpos(strtolower($txt[$term]), $search_term) !== false) || (isset($txt['setting_' . $term]) && strpos(strtolower($txt['setting_' . $term]), $search_term) !== false)) |
||||
{ |
||||
$found = $term; |
||||
break; |
||||
} |
||||
} |
||||
|
||||
if ($found) |
||||
{ |
||||
// Format the name - and remove any descriptions the entry may have. |
||||
$name = isset($txt[$found]) ? $txt[$found] : (isset($txt['setting_' . $found]) ? $txt['setting_' . $found] : $found); |
||||
$name = preg_replace('~<(?:div|span)\sclass="smalltext">.+?</(?:div|span)>~', '', $name); |
||||
|
||||
$context['search_results'][] = array( |
||||
'url' => (substr($item[1], 0, 4) == 'area' ? $scripturl . '?action=admin;' . $item[1] : $item[1]) . ';' . $context['session_var'] . '=' . $context['session_id'] . ((substr($item[1], 0, 4) == 'area' && $section == 'settings' ? '#' . $item[0][0] : '')), |
||||
'name' => $name, |
||||
'type' => $section, |
||||
'help' => shorten_subject(isset($item[2]) ? strip_tags($helptxt[$item2]) : (isset($helptxt[$found]) ? strip_tags($helptxt[$found]) : ''), 255), |
||||
); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
// All this does is pass through to manage members. |
||||
function AdminSearchMember() |
||||
{ |
||||
global $context, $sourcedir; |
||||
|
||||
require_once($sourcedir . '/ManageMembers.php'); |
||||
$_REQUEST['sa'] = 'query'; |
||||
|
||||
$_POST['membername'] = $context['search_term']; |
||||
|
||||
ViewMembers(); |
||||
} |
||||
|
||||
// This file allows the user to search the SM online manual for a little of help. |
||||
function AdminSearchOM() |
||||
{ |
||||
global $context, $sourcedir; |
||||
|
||||
$docsURL = 'docs.simplemachines.org'; |
||||
$context['doc_scripturl'] = 'http://docs.simplemachines.org/index.php'; |
||||
|
||||
// Set all the parameters search might expect. |
||||
$postVars = array( |
||||
'search' => $context['search_term'], |
||||
); |
||||
|
||||
// Encode the search data. |
||||
foreach ($postVars as $k => $v) |
||||
$postVars[$k] = urlencode($k) . '=' . urlencode($v); |
||||
|
||||
// This is what we will send. |
||||
$postVars = implode('&', $postVars); |
||||
|
||||
// Get the results from the doc site. |
||||
require_once($sourcedir . '/Subs-Package.php'); |
||||
$search_results = fetch_web_data($context['doc_scripturl'] . '?action=search2&xml', $postVars); |
||||
|
||||
// If we didn't get any xml back we are in trouble - perhaps the doc site is overloaded? |
||||
if (!$search_results || preg_match('~<' . '\?xml\sversion="\d+\.\d+"\sencoding=".+?"\?' . '>\s*(<smf>.+?</smf>)~is', $search_results, $matches) != true) |
||||
fatal_lang_error('cannot_connect_doc_site'); |
||||
|
||||
$search_results = $matches[1]; |
||||
|
||||
// Otherwise we simply walk through the XML and stick it in context for display. |
||||
$context['search_results'] = array(); |
||||
loadClassFile('Class-Package.php'); |
||||
|
||||
// Get the results loaded into an array for processing! |
||||
$results = new xmlArray($search_results, false); |
||||
|
||||
// Move through the smf layer. |
||||
if (!$results->exists('smf')) |
||||
fatal_lang_error('cannot_connect_doc_site'); |
||||
$results = $results->path('smf[0]'); |
||||
|
||||
// Are there actually some results? |
||||
if (!$results->exists('noresults') && !$results->exists('results')) |
||||
fatal_lang_error('cannot_connect_doc_site'); |
||||
elseif ($results->exists('results')) |
||||
{ |
||||
foreach ($results->set('results/result') as $result) |
||||
{ |
||||
if (!$result->exists('messages')) |
||||
continue; |
||||
|
||||
$context['search_results'][$result->fetch('id')] = array( |
||||
'topic_id' => $result->fetch('id'), |
||||
'relevance' => $result->fetch('relevance'), |
||||
'board' => array( |
||||
'id' => $result->fetch('board/id'), |
||||
'name' => $result->fetch('board/name'), |
||||
'href' => $result->fetch('board/href'), |
||||
), |
||||
'category' => array( |
||||
'id' => $result->fetch('category/id'), |
||||
'name' => $result->fetch('category/name'), |
||||
'href' => $result->fetch('category/href'), |
||||
), |
||||
'messages' => array(), |
||||
); |
||||
|
||||
// Add the messages. |
||||
foreach ($result->set('messages/message') as $message) |
||||
$context['search_results'][$result->fetch('id')]['messages'][] = array( |
||||
'id' => $message->fetch('id'), |
||||
'subject' => $message->fetch('subject'), |
||||
'body' => $message->fetch('body'), |
||||
'time' => $message->fetch('time'), |
||||
'timestamp' => $message->fetch('timestamp'), |
||||
'start' => $message->fetch('start'), |
||||
'author' => array( |
||||
'id' => $message->fetch('author/id'), |
||||
'name' => $message->fetch('author/name'), |
||||
'href' => $message->fetch('author/href'), |
||||
), |
||||
); |
||||
} |
||||
} |
||||
} |
||||
|
||||
// This function decides which log to load. |
||||
function AdminLogs() |
||||