il file completo e questo
<?php
if (!defined('SMF'))
die('Hacking attempt...');
/* This file contains all the screens that control settings for topics and
posts.
void ManagePostSettings()
- the main entrance point for the 'Posts and topics' screen.
- accessed from ?action=postsettings.
- calls the right function based on the given sub-action.
- defaults to sub-action 'posts'.
- requires (and checks for) the admin_forum permission.
void SetCensor()
- shows an interface to set and test word censoring.
- requires the moderate_forum permission.
- uses the Admin template and the edit_censored sub template.
- tests the censored word if one was posted.
- uses the censor_vulgar, censor_proper, censorWholeWord, and
censorIgnoreCase settings.
- accessed from ?action=postsettings;sa=censor.
void ModifyPostSettings()
- set any setting related to posts and posting.
- requires the admin_forum permission
- uses the edit_post_settings sub template of the Admin template.
- accessed from ?action=postsettings;sa=posts.
void ModifyBBCSettings()
- set a few Bulletin Board Code settings.
- requires the admin_forum permission
- uses the edit_bbc_settings sub template of the Admin template.
- accessed from ?action=postsettings;sa=bbc.
- loads a list of Bulletin Board Code tags to allow disabling tags.
void ModifyTopicSettings()
- set any setting related to topics.
- requires the admin_forum permission
- uses the edit_topic_settings sub template of the Admin template.
- accessed from ?action=postsettings;sa=topics.
*/
function ManagePostSettings()
{
global $context, $txt, $scripturl;
// Boldify "Posts and Topics" on the admin bar.
adminIndex('posts_and_topics');
$subActions = array(
'posts' => array('ModifyPostSettings', 'admin_forum'),
'bbc' => array('ModifyBBCSettings', 'admin_forum'),
'censor' => array('SetCensor', 'moderate_forum'),
'topics' => array('ModifyTopicSettings', 'admin_forum'),
);
// Default the sub-action to 'view ban list'.
$_REQUEST['sa'] = isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]) ? $_REQUEST['sa'] : (allowedTo('admin_forum') ? 'posts' : 'censor');
// Make sure you can do this.
isAllowedTo($subActions[$_REQUEST['sa']][1]);
$context['page_title'] = $txt['manageposts_title'];
// Tabs for browsing the different ban functions.
$context['admin_tabs'] = array(
'title' => $txt['manageposts_title'],
'help' => 'posts_and_topics',
'description' => $txt['manageposts_description'],
'tabs' => array()
);
if (allowedTo('admin_forum'))
{
$context['admin_tabs']['tabs'][] = array(
'title' => $txt['manageposts_settings'],
'description' => $txt['manageposts_settings_description'],
'href' => $scripturl . '?action=postsettings;sa=posts',
'is_selected' => $_REQUEST['sa'] == 'posts',
);
$context['admin_tabs']['tabs'][] = array(
'title' => $txt['manageposts_bbc_settings'],
'description' => $txt['manageposts_bbc_settings_description'],
'href' => $scripturl . '?action=postsettings;sa=bbc',
'is_selected' => $_REQUEST['sa'] == 'bbc',
);
}
if (allowedTo('moderate_forum'))
$context['admin_tabs']['tabs'][] = array(
'title' => $txt[135],
'description' => $txt[141],
'href' => $scripturl . '?action=postsettings;sa=censor',
'is_selected' => $_REQUEST['sa'] == 'censor',
'is_last' => !allowedTo('admin_forum'),
);
if (allowedTo('admin_forum'))
$context['admin_tabs']['tabs'][] = array(
'title' => $txt['manageposts_topic_settings'],
'description' => $txt['manageposts_topic_settings_description'],
'href' => $scripturl . '?action=postsettings;sa=topics',
'is_selected' => $_REQUEST['sa'] == 'topics',
'is_last' => true,
);
// Call the right function for this sub-acton.
$subActions[$_REQUEST['sa']][0]();
}
// Set the censored words.
function SetCensor()
{
global $txt, $modSettings, $context;
if (!empty($_POST['save_censor']))
{
// Make sure censoring is something they can do.
checkSession();
$censored_vulgar = array();
$censored_proper = array();
// Rip it apart, then split it into two arrays.
if (isset($_POST['censortext']))
{
$_POST['censortext'] = explode("\n", strtr($_POST['censortext'], array("\r" => '')));
foreach ($_POST['censortext'] as $c)
list ($censored_vulgar[], $censored_proper[]) = array_pad(explode('=', trim($c)), 2, '');
}
elseif (isset($_POST['censor_vulgar'], $_POST['censor_proper']))
{
if (is_array($_POST['censor_vulgar']))
{
foreach ($_POST['censor_vulgar'] as $i => $value)
if ($value == '')
{
unset($_POST['censor_vulgar']*);
unset($_POST['censor_proper']*);
}
$censored_vulgar = $_POST['censor_vulgar'];
$censored_proper = $_POST['censor_proper'];
}
else
{
$censored_vulgar = explode("\n", strtr($_POST['censor_vulgar'], array("\r" => '')));
$censored_proper = explode("\n", strtr($_POST['censor_proper'], array("\r" => '')));
}
}
// Set the new arrays and settings in the database.
$updates = array(
'censor_vulgar' => implode("\n", $censored_vulgar),
'censor_proper' => implode("\n", $censored_proper),
'censorWholeWord' => empty($_POST['censorWholeWord']) ? '0' : '1',
'censorIgnoreCase' => empty($_POST['censorIgnoreCase']) ? '0' : '1',
);
updateSettings($updates);
}
if (isset($_POST['censortest']))
{
$censorText = htmlspecialchars(stripslashes($_POST['censortest']), ENT_QUOTES);
$context['censor_test'] = strtr(censorText($censorText), array('"' => '"'));
}
// Set everything up for the template to do its thang.
$censor_vulgar = explode("\n", $modSettings['censor_vulgar']);
$censor_proper = explode("\n", $modSettings['censor_proper']);
$context['censored_words'] = array();
for ($i = 0, $n = count($censor_vulgar); $i < $n; $i++)
{
if (empty($censor_vulgar*))
continue;
// Skip it, it's either spaces or stars only.
if (trim(strtr($censor_vulgar*, '*', ' ')) == '')
continue;
$context['censored_words'][htmlspecialchars(trim($censor_vulgar*))] = isset($censor_proper*) ? htmlspecialchars($censor_proper*) : '';
}
$context['sub_template'] = 'edit_censored';
$context['page_title'] = $txt[135];
}
// Modify all settings related to posts and posting.
function ModifyPostSettings()
{
global $context, $txt, $db_prefix, $modSettings;
// Setup the template.
$context['sub_template'] = 'edit_post_settings';
//Load the jump to data.
loadJumpTo();
$context['page_title'] = $txt['manageposts_settings'];
// Saving?
if (isset($_POST['save_settings']))
{
checkSession();
// Let's find out if they want things way too long...
if (!empty($_POST['max_messageLength']) && $_POST['max_messageLength'] != $modSettings['max_messageLength'])
{
$request = db_query("
SHOW COLUMNS
FROM {$db_prefix}messages", false, false);
if ($request !== false)
{
while ($row = mysql_fetch_assoc($request))
if ($row['Field'] == 'body')
$body_type = $row['Type'];
mysql_free_result($request);
}
$request = db_query("
SHOW INDEX
FROM {$db_prefix}messages", false, false);
if ($request !== false)
{
while ($row = mysql_fetch_assoc($request))
if ($row['Column_name'] == 'body' && (isset($row['Index_type']) && $row['Index_type'] == 'FULLTEXT' || isset($row['Comment']) && $row['Comment'] == 'FULLTEXT'))
$fulltext = true;
mysql_free_result($request);
}
if (isset($body_type) && $_POST['max_messageLength'] > 65535 && $body_type == 'text')
{
// !!! Show an error message?!
// MySQL only likes fulltext indexes on text columns... for now?
if (!empty($fulltext))
$_POST['max_messageLength'] = 65535;
else
{
// Make it longer so we can do their limit.
db_query("
ALTER TABLE {$db_prefix}messages
CHANGE COLUMN body body mediumtext", __FILE__, __LINE__);
}
}
elseif (isset($body_type) && $_POST['max_messageLength'] <= 65535 && $body_type != 'text')
{
// Shorten the column so we can have the benefit of fulltext searching again!
db_query("
ALTER TABLE {$db_prefix}messages
CHANGE COLUMN body body text", __FILE__, __LINE__);
}
}
// Update the actual settings.
updateSettings(array('removeNestedQuotes' => empty($_POST['removeNestedQuotes']) ? '0' : '1'));
// The boards for post_prefix
if (in_array(0, $_POST['post_prefix_boards']))
$_POST['post_prefix_boards'] = 0;
else
$_POST['post_prefix_boards'] = implode(',', $_POST['post_prefix_boards']);
// Fix UTF-8 stuff.
$_POST['post_prefix'] = preg_replace('~&#(\d{4,5}|[2-9]\d{2,4}|1[2-9]\d);~', '&#$1;', $_POST['post_prefix']);
$_POST['post_prefix'] = preg_replace('~&(#\d*)?$~', '', $_POST['post_prefix']);
'enableEmbeddedFlash' => empty($_POST['enableEmbeddedFlash']) ? '0' : '1',
'enableSpellChecking' => empty($_POST['enableSpellChecking']) ? '0' : '1',
'max_messageLength' => empty($_POST['max_messageLength']) ? '0' : (int) $_POST['max_messageLength'],
'fixLongWords' => empty($_POST['fixLongWords']) ? '0' : (int) $_POST['fixLongWords'],
'topicSummaryPosts' => empty($_POST['topicSummaryPosts']) ? '0' : (int) $_POST['topicSummaryPosts'],
'spamWaitTime' => empty($_POST['spamWaitTime']) ? '0' : (int) $_POST['spamWaitTime'],
'edit_wait_time' => empty($_POST['edit_wait_time']) ? '0' : (int) $_POST['edit_wait_time'],
'post_prefix' => htmlspecialchars($_POST['post_prefix'], ENT_QUOTES),
'post_prefix_boards' => $_POST['post_prefix_boards'],
'edit_disable_time' => empty($_POST['edit_disable_time']) ? '0' : (int) $_POST['edit_disable_time'],
));
}
// Check if your PHP is able to use spell checking.
// Explode post_prefix boards
if (!empty($modSettings['post_prefix_boards']) && $modSettings['post_prefix_boards'] != '0')
$modSettings['post_prefix_boards'] = explode(',', $modSettings['post_prefix_boards']);
$context['spellcheck_installed'] = function_exists('pspell_new');
}
// Bulletin Board Code...a lot of Bulletin Board Code.
function ModifyBBCSettings()
{
global $context, $txt, $modSettings, $helptxt;
// Setup the template.
$context['sub_template'] = 'edit_bbc_settings';
$context['page_title'] = $txt['manageposts_bbc_settings_title'];
// Ask parse_bbc() for its bbc code list.
$temp = parse_bbc(false);
$bbcTags = array();
foreach ($temp as $tag)
$bbcTags[] = $tag['tag'];
$bbcTags = array_unique($bbcTags);
$totalTags = count($bbcTags);
// The number of columns we want to show the BBC tags in.
$numColumns = 3;
// In case we're saving.
if (isset($_POST['save_settings']))
{
checkSession();
if (!isset($_POST['enabledTags']))
$_POST['enabledTags'] = array();
elseif (!is_array($_POST['enabledTags']))
$_POST['enabledTags'] = array($_POST['enabledTags']);
// Update the actual settings.
updateSettings(array(
'enableBBC' => empty($_POST['enableBBC']) ? '0' : '1',
'enablePostHTML' => empty($_POST['enablePostHTML']) ? '0' : '1',
'autoLinkUrls' => empty($_POST['autoLinkUrls']) ? '0' : '1',
'disabledBBC' => implode(',', array_diff($bbcTags, $_POST['enabledTags'])),
));
}
$context['bbc_columns'] = array();
$tagsPerColumn = ceil($totalTags / $numColumns);
$disabledTags = empty($modSettings['disabledBBC']) ? array() : explode(',', $modSettings['disabledBBC']);
$col = 0;
$i = 0;
foreach ($bbcTags as $tag)
{
if ($i % $tagsPerColumn == 0 && $i != 0)
$col++;
$context['bbc_columns'][$col][] = array(
'tag' => $tag,
'is_enabled' => !in_array($tag, $disabledTags),
// !!! 'tag_' . ?
'show_help' => isset($helptxt[$tag]),
);
$i++;
}
$context['bbc_all_selected'] = empty($disabledTags);
}
// Function for modifying topic settings. Not very exciting.
function ModifyTopicSettings()
{
global $context, $txt, $modSettings;
// Setup the template.
$context['sub_template'] = 'edit_topic_settings';
$context['page_title'] = $txt['manageposts_topic_settings'];
// Wanna save this page?
if (isset($_POST['save_settings']))
{
checkSession();
// Update the actual settings.
updateSettings(array(
'enableStickyTopics' => empty($_POST['enableStickyTopics']) ? '0' : '1',
'enableParticipation' => empty($_POST['enableParticipation']) ? '0' : '1',
'oldTopicDays' => empty($_POST['oldTopicDays']) ? '0' : (int) $_POST['oldTopicDays'],
'defaultMaxTopics' => empty($_POST['defaultMaxTopics']) ? '0' : (int) $_POST['defaultMaxTopics'],
'defaultMaxMessages' => empty($_POST['defaultMaxMessages']) ? '0' : (int) $_POST['defaultMaxMessages'],
'hotTopicPosts' => empty($_POST['hotTopicPosts']) ? '0' : (int) $_POST['hotTopicPosts'],
'hotTopicVeryPosts' => empty($_POST['hotTopicVeryPosts']) ? '0' : (int) $_POST['hotTopicVeryPosts'],
'enableAllMessages' => empty($_POST['enableAllMessages']) ? '0' : (int) $_POST['enableAllMessages'],
'enablePreviousNext' => empty($_POST['enablePreviousNext']) ? '0' : '1',
));
}
}
?>
ora mi dice questo:
Parse error: syntax error, unexpected T_DOUBLE_ARROW in //***/Sources/ManagePosts.php** on line 286