Changeset 864 in ExiteCMS for trunk/administration/forums.php


Ignore:
Timestamp:
10/03/07 21:38:21 (5 years ago)
Author:
hverton
Message:

More xhtml fixes
Added forum poll configuration to the forum admin module

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/administration/forums.php

    r834 r864  
    1616require_once PATH_ROOT."/includes/theme_functions.php"; 
    1717 
    18 // load the locale for this module 
     18// load the locales for this module 
    1919include PATH_LOCALE.LOCALESET."admin/forums.php"; 
     20include PATH_LOCALE.LOCALESET."admin/forum_polls.php"; 
    2021 
    2122// temp storage for template variables 
     
    3435if (!isset($action)) $action = ""; 
    3536if (!isset($t)) $t = ""; 
     37 
     38// create the forum polls default global settings if not defined 
     39$result = dbquery("SELECT * FROM ".$db_prefix."forum_poll_settings WHERE forum_id = '0'"); 
     40if (dbrows($result) == 0) { 
     41    // create a default global settings record 
     42    $data = array('forum_id' => 0, 
     43                'enable_polls' => 0, 
     44                'create_permissions' => "", 
     45                'vote_permissions' => "", 
     46                'guest_permissions' => 0, 
     47                'require_approval' => 0, 
     48                'lock_threads' => 0, 
     49                'option_max' => 0, 
     50                'option_show' => 0, 
     51                'option_increment' => 0, 
     52                'duration_min' => 0, 
     53                'duration_max' => 0, 
     54                'hide_poll' => 0 
     55            ); 
     56    // and store them 
     57    $result = dbquery("INSERT INTO ".$db_prefix."forum_poll_settings 
     58        (forum_id, enable_polls, create_permissions, vote_permissions, guest_permissions, require_approval, lock_threads, 
     59        option_max, option_show, option_increment, duration_min, duration_max, hide_poll) VALUES 
     60        ('0', '".$data['enable_polls']."', '".$data['create_permissions']."', '".$data['vote_permissions']."', 
     61        '".$data['guest_permissions']."', '".$data['require_approval']."', '".$data['lock_threads']."', 
     62        '".$data['option_max']."', '".$data['option_show']."', '".$data['option_increment']."', '".$data['duration_min']."', 
     63        '".$data['duration_max']."', '".$data['hide_poll']."')" 
     64    ); 
     65} 
    3666 
    3767// refresh the forum order 
     
    90120    $variables = array(); 
    91121}    
     122 
     123// save forum settings? 
     124if (isset($_POST['save_settings']) && !isset($_POST['reset'])) { 
     125    // validate the input 
     126    $enable_polls = isset($_POST['enable_polls']) && $_POST['enable_polls'] == 1 ? 1 : 0; 
     127    $same_voters = isset($_POST['same_voters']) ? 1 : 0; 
     128    $same_creators = isset($_POST['same_creators']) ? 1 : 0; 
     129    $temp_array = isset($_POST['create_groups']) ? explode(",", $_POST['create_groups']) : ""; 
     130    $temp_array2 = array(); 
     131    for($i = 0; $i < count($temp_array); $i ++) { 
     132        if (isNum($temp_array[$i])) { $temp_array2[] = "G".$temp_array[$i]; } 
     133    } 
     134    $temp_array = isset($_POST['create_users']) ? explode(",", $_POST['create_users']) : ""; 
     135    for($i = 0; $i < count($temp_array); $i ++) { 
     136        if (isNum($temp_array[$i])) { $temp_array2[] = $temp_array[$i]; } 
     137    } 
     138    $temp_array = isset($_POST['vote_groups']) ? explode(",", $_POST['vote_groups']) : ""; 
     139    $temp_array3 = array(); 
     140    for($i = 0; $i < count($temp_array); $i ++) { 
     141        if (isNum($temp_array[$i])) { $temp_array3[] = "G".$temp_array[$i]; } 
     142    } 
     143    $temp_array = isset($_POST['vote_users']) ? explode(",", $_POST['vote_users']) : ""; 
     144    for($i = 0; $i < count($temp_array); $i ++) { 
     145        if (isNum($temp_array[$i])) { $temp_array3[] = $temp_array[$i]; } 
     146    } 
     147    $create_array = $same_creators == 1 ? array_merge_recursive($temp_array2, $temp_array3) : $temp_array2; 
     148    $vote_array = $same_voters == 1 ? array_merge_recursive($temp_array2, $temp_array3) : $temp_array3; 
     149    sort($create_array); sort($vote_array); 
     150    $create_permissions = implode(".", $create_array); 
     151    $vote_permissions = implode(".", $vote_array); 
     152    $guest_permissions = isset($_POST['guest_permissions']) && isNum($_POST['guest_permissions']) && $_POST['guest_permissions'] < 3 ? $_POST['guest_permissions'] : 0; 
     153    $require_approval = isset($_POST['require_approval']) && $_POST['require_approval'] == 1 ? 1 : 0; 
     154    $lock_threads = isset($_POST['lock_threads']) && $_POST['lock_threads'] == 1 ? 1 : 0; 
     155    $option_max = isset($_POST['option_max']) && isNum($_POST['option_max']) ? $_POST['option_max'] : 10; 
     156    $option_show = isset($_POST['option_show']) && isNum($_POST['option_show']) ? $_POST['option_show'] : 5; 
     157    $option_increment = isset($_POST['option_increment']) && isNum($_POST['option_increment']) ? $_POST['option_increment'] : 5; 
     158    $duration_min = isset($_POST['duration_min']) && isNum($_POST['duration_min']) && $_POST['duration_min'] >= 1 ? $_POST['duration_min'] : 1; 
     159    $duration_max = isset($_POST['duration_max']) && isNum($_POST['duration_max']) ? $_POST['duration_max'] : 0; 
     160    $hide_poll = isset($_POST['hide_poll']) && $_POST['hide_poll'] == 1 ? 1 : 0; 
     161    // check if this record already exists 
     162    $result = dbquery("SELECT * FROM ".$db_prefix."forum_poll_settings WHERE forum_id = '$forum_id'"); 
     163    if (dbrows($result) != 0) { 
     164        $result = dbquery("UPDATE ".$db_prefix."forum_poll_settings SET forum_id = '$forum_id', 
     165            enable_polls = '".$enable_polls."', create_permissions = '".$create_permissions."', 
     166            vote_permissions = '".$vote_permissions."', guest_permissions = '".$guest_permissions."', 
     167            require_approval = '".$require_approval."', lock_threads = '".$lock_threads."', 
     168            option_max = '".$option_max."', option_show = '".$option_show."', 
     169            option_increment = '".$option_increment."', duration_min = '".($duration_min * 86400)."', 
     170            duration_max = '".($duration_max * 86400)."', hide_poll = '".$hide_poll."' WHERE forum_id='$forum_id'" 
     171        ); 
     172    } else { 
     173        $result = dbquery("INSERT INTO ".$db_prefix."forum_poll_settings 
     174            (forum_id, enable_polls, create_permissions, vote_permissions, guest_permissions, require_approval, lock_threads, 
     175            option_max, option_show, option_increment, duration_min, duration_max, hide_poll) VALUES 
     176            ('$forum_id', '".$enable_polls."', '".$create_permissions."', '".$vote_permissions."', 
     177            '".$guest_permissions."', '".$require_approval."', '".$lock_threads."', 
     178            '".$option_max."', '".$option_show."', '".$option_increment."', '".($duration_min*86400)."', 
     179            '".($duration_max*86400)."', '".$hide_poll."')" 
     180        ); 
     181    } 
     182    unset($forum_id); 
     183} elseif (isset($_POST['reset'])) { 
     184    // delete the record (force to use globals again) 
     185    $result = dbquery("DELETE FROM ".$db_prefix."forum_poll_settings WHERE forum_id = '$forum_id'"); 
     186} 
    92187 
    93188if (isset($_POST['save_cat'])) { 
     
    293388            if (isset($ug)) unset($ug); 
    294389            if ($user_group['0'] == "0") { 
    295                 $ug = array('id' => $user_group['0'], 'name' => ''); 
     390                $ug = array('id' => $user_group['0'], 'name' => '&nbsp;'); 
    296391            } else { 
    297392                if ($user_group['0'] < 100) { 
     
    357452} 
    358453 
     454// get the info for the edit settings panel 
     455if (isset($forum_id)) { 
     456 
     457    // get the name of the forum 
     458    $result = dbquery("SELECT * FROM ".$db_prefix."forums WHERE forum_id = '$forum_id'"); 
     459    if ($forum = dbarray($result)) { 
     460        $variables['forum_name'] = $forum['forum_name']; 
     461    } else { 
     462        fallback(BASEDIR."index.php"); 
     463    } 
     464 
     465    // get the poll settings for this forum. If they don't exist, get the defaults. If the don't exist, make some up! 
     466    $result = dbquery("SELECT * FROM ".$db_prefix."forum_poll_settings WHERE forum_id = '$forum_id'"); 
     467    if ($data = dbarray($result)) { 
     468        // found 
     469        $data['duration_min'] = floor($data['duration_min']/86400); 
     470        $data['duration_max'] = floor($data['duration_max']/86400); 
     471    } else { 
     472        // not found, get the globals 
     473        $result = dbquery("SELECT * FROM ".$db_prefix."forum_poll_settings WHERE forum_id = '0'"); 
     474        if ($data = dbarray($result)) { 
     475            // found 
     476            $data['duration_min'] = floor($data['duration_min']/86400); 
     477            $data['duration_max'] = floor($data['duration_max']/86400); 
     478        } else { 
     479            // not found either. something's wrong... 
     480            fallback(BASEDIR."index.php"); 
     481        } 
     482    } 
     483    // make sure the record has the correct forum_id 
     484    $data['forum_id'] = $forum_id; 
     485    // store the record for use on the template 
     486    $variables['settings'] = $data; 
     487 
     488    // create the group and user arrays 
     489    $fp_group_array = array( 
     490        array(103, $locale['user3']), 
     491        array(102, $locale['user2']), 
     492        array(101, $locale['user1']) 
     493    ); 
     494    $result = dbquery("SELECT * FROM ".$db_prefix."user_groups ORDER BY group_name"); 
     495    if (dbrows($result) != 0) { 
     496        while ($fp_group_data = dbarray($result)) { 
     497            $fp_group_array[] = array($fp_group_data['group_id'], $fp_group_data['group_name']); 
     498        } 
     499    } 
     500    $variables['create_group_1'] = array();  
     501    $variables['create_group_2'] = array(); 
     502    while(list($key, $fp_group) = each($fp_group_array)){ 
     503        $group_id = $fp_group['0']; 
     504        if (!preg_match("(^G{$group_id}$|^G{$group_id}\.|\.G{$group_id}\.|\.G{$group_id}$)", $data['create_permissions'])) { 
     505            $variables['create_group_1'][] = array($fp_group['0'], $fp_group['1']); 
     506        } else { $variables['create_group_2'][] = array($fp_group['0'], $fp_group['1']); } 
     507        unset($group_id); 
     508    } 
     509    unset($fp_group); 
     510 
     511    reset($fp_group_array); 
     512    $variables['vote_group_1'] = array(); 
     513    $variables['vote_group_2'] = array(); 
     514    while(list($key, $fp_group) = each($fp_group_array)){ 
     515        $group_id = $fp_group['0']; 
     516        if (!preg_match("(^G{$group_id}$|^G{$group_id}\.|\.G{$group_id}\.|\.G{$group_id}$)", $data['vote_permissions'])) { 
     517            $variables['vote_group_1'][] = array($fp_group['0'], $fp_group['1']); 
     518        } else { $variables['vote_group_2'][] = array($fp_group['0'], $fp_group['1']); } 
     519        unset($group_id); 
     520    } 
     521 
     522    $variables['create_user_1'] = array(); 
     523    $variables['create_user_2'] = array(); 
     524    $result = dbquery("SELECT user_id,user_name FROM ".$db_prefix."users ORDER BY user_level DESC, user_name"); 
     525    while ($fp_user_data = dbarray($result)) { 
     526        $fp_user_array[] = $fp_user_data; 
     527        $user_id = $fp_user_data['user_id']; 
     528        if (!preg_match("(^{$user_id}$|^{$user_id}\.|\.{$user_id}\.|\.{$user_id}$)", $data['create_permissions'])) { 
     529            $variables['create_user_1'][] = array($fp_user_data['user_id'], $fp_user_data['user_name']); 
     530        } else { $variables['create_user_2'][] = array($fp_user_data['user_id'], $fp_user_data['user_name']); } 
     531        unset($user_id); 
     532    } 
     533    unset($fp_user_data); 
     534 
     535    $variables['vote_user_1'] = array(); 
     536    $variables['vote_user_2'] = array(); 
     537    while(list($key, $fp_user_data) = each($fp_user_array)){ 
     538        $user_id = $fp_user_data['user_id']; 
     539        if (!preg_match("(^{$user_id}$|^{$user_id}\.|\.{$user_id}\.|\.{$user_id}$)", $data['vote_permissions'])) { 
     540            $variables['vote_user_1'][] = array($fp_user_data['user_id'], $fp_user_data['user_name']); 
     541        } else { $variables['vote_user_2'][] = array($fp_user_data['user_id'], $fp_user_data['user_name']); } 
     542        unset($user_id); 
     543    } 
     544    if ($forum_id != 0 && count($variables['create_group_2']) == 0) { 
     545        $variables['create_group_2'][] = array($forum['forum_posting'], getgroupname($forum['forum_posting'])); 
     546    } 
     547    if ($forum_id != 0 && count($variables['vote_group_2']) == 0) { 
     548        $variables['vote_group_2'][] = array($forum['forum_posting'], getgroupname($forum['forum_posting'])); 
     549    } 
     550} 
     551 
    359552// define the admin body panel 
    360 $template_panels[] = array('type' => 'body', 'name' => 'admin.forums', 'template' => 'admin.forums.tpl', 'locale' => PATH_LOCALE.LOCALESET."admin/forums.php"); 
     553$template_panels[] = array('type' => 'body', 'name' => 'admin.forums', 'template' => 'admin.forums.tpl', 'locale' => array(PATH_LOCALE.LOCALESET."admin/forums.php",PATH_LOCALE.LOCALESET."admin/forum_polls.php")); 
    361554$template_variables['admin.forums'] = $variables; 
    362555 
Note: See TracChangeset for help on using the changeset viewer.