• User

    [SMF] sintassi php

    Parse error: syntax error, unexpected T_IF, expecting ')' in //*/Sources/ManagePosts.php on line 279

    			// 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']);
    

    quella evidenzionata e la 279 l'errore dice che c'è qualche errore di parentesi come risolvo?


  • User

    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('"' => '&quot;'));
        }
    
        // 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('~&amp;#(\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