Ignore:
Timestamp:
Feb 19, 2011, 11:13:22 PM (13 years ago)
Author:
patdenice
Message:

Lot of optimization.
Add privacy level management.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/AdditionalPages/admin/add_page.inc.php

    r9275 r9310  
    55if (!isset($edited_page))
    66{
    7   $edited_page = array();
    8   $edited_page['id'] = 0;
    9   $edited_page['homepage'] = false;
    107  $page_title = l10n('ap_create');
     8  $default_user = get_default_user_info(true);
     9  $edited_page = array(
     10    'id'         => 0,
     11    'title'      => '',
     12    'permalink'  => '',
     13    'homepage'   => false,
     14    'standalone' => false,
     15    'level'      => $default_user['level'],
     16    'users'      => array('guest', 'generic', 'normal', 'admin', 'webmaster'),
     17    'groups'     => array(),
     18    'content'    => '',
     19  );
    1120}
    1221
     
    4756  if ($conf['additional_pages']['user_perm'])
    4857  {
    49     $user_access = !empty($_POST['users']) ? '"'.implode(',', $_POST['users']).'"' : '"admin"';
     58    $user_access = !empty($_POST['users']) ? '"'.implode(',', $_POST['users']).'"' : '""';
    5059  }
    5160
     
    6170  users = '.$user_access.',
    6271  groups = '.$group_access.',
     72  level = '.$_POST['level'].',
    6373  permalink = '.$permalink.',
    6474  standalone = '.$standalone.'
     
    7181      $query = 'SELECT MAX(ABS(pos)) AS pos FROM ' . ADD_PAGES_TABLE . ';';
    7282      list($position) = array_from_query($query, 'pos');
    73      
     83
    7484      $query = '
    75 INSERT INTO ' . ADD_PAGES_TABLE . ' ( pos , lang , title , content , users , groups , permalink, standalone)
    76 VALUES ('.($position+1).' , '.$language.' , "'.$_POST['title'].'" , "'.$_POST['ap_content'].'" , '.$user_access.' , '.$group_access.' , '.$permalink.' , '.$standalone.');';
     85INSERT INTO '.ADD_PAGES_TABLE.' ( pos , lang , title , content , users , groups , level , permalink, standalone)
     86VALUES (
     87  '.($position+1).',
     88  '.$language.',
     89  "'.$_POST['title'].'",
     90  "'.$_POST['ap_content'].'",
     91  '.$user_access.',
     92  '.$group_access.',
     93  '.$_POST['level'].',
     94  '.$permalink.',
     95  '.$standalone.'
     96);';
    7797      pwg_query($query);
    7898      $edited_page['id'] = mysql_insert_id();
     
    90110    mkgetdir($conf['local_data_dir'].'/additional_pages_backup', MKGETDIR_DEFAULT&~MKGETDIR_DIE_ON_ERROR);
    91111    $sav_file = @fopen($conf['local_data_dir'].'/additional_pages_backup/' . $edited_page['id'] . '.txt', "w");
    92     @fwrite($sav_file, "Title: ".$_POST['title']."
    93 Permalink: ".$_POST['permalink']."
    94 Language: ".$_POST['lang']."
    95 
    96 " . $_POST['ap_content']);
     112    @fwrite($sav_file, "Title: ".$_POST['title']."\nPermalink: ".$_POST['permalink']."\nLanguage: ".$_POST['lang']."\n\n" . $_POST['ap_content']);
    97113    @fclose($sav_file);
    98114
     
    105121
    106122  $edited_page['title'] = stripslashes($_POST['title']);
    107   $edited_page['permalink'] = $_POST['permalink'];
     123  $edited_page['permalink'] = stripslashes($_POST['permalink']);
    108124  $edited_page['lang'] = $_POST['lang'];
    109125  $edited_page['content'] = stripslashes($_POST['ap_content']);
    110   $edited_page['groups'] = !empty($_POST['groups']) ? trim($group_access, '"') : '';
    111   $edited_page['users'] = !empty($_POST['users']) ? trim($user_access, '"') :  '';
     126  $edited_page['groups'] = !empty($_POST['groups']) ? $_POST['groups'] : array();
     127  $edited_page['users'] = !empty($_POST['users']) ? $_POST['users'] :  array();
     128  $edited_page['level'] = $_POST['level'];
    112129  $edited_page['homepage'] = isset($_POST['homepage']);
    113130  $edited_page['standalone'] = isset($_POST['standalone']);
     
    129146  'SELECTED' => $selected));
    130147
    131 // Selection des groupes
     148// Groups options
    132149if ($conf['additional_pages']['group_perm'])
    133150{
    134         include_once(AP_PATH . 'admin/functions_groups.php');
    135   $groups = !empty($edited_page['groups']) ? explode(',', $edited_page['groups']) : array();
    136         $template->assign('GROUPSELECTION', get_html_groups_selection(get_all_groups(), 'groups', $groups));
    137 }
    138 
    139 // Selection des utilisateurs
     151        $query = 'SELECT id, name FROM '.GROUPS_TABLE.' ORDER BY name ASC;';
     152  $result = pwg_query($query);
     153  $groups = array();
     154  while ($row = pwg_db_fetch_assoc($result))
     155  {
     156    $groups[$row['id']] = $row['name'];
     157  }
     158  $template->assign(array(
     159    'groups' => $groups,
     160    'selected_groups' => $edited_page['groups'],
     161    )
     162  );
     163}
     164
     165// Users options
    140166if ($conf['additional_pages']['user_perm'])
    141167{
    142   $selected_users = array('guest', 'generic', 'normal');
    143   if (isset($_GET['edit']) and isset($edited_page['users']))
    144   {
    145     $selected_users = explode(',', $edited_page['users']);
    146   }
    147 
    148         $template->assign('user_perm', array(
    149       'GUEST' => in_array('guest', $selected_users) ? 'checked="checked"' : '',
    150       'GENERIC' => in_array('generic', $selected_users) ? 'checked="checked"' : '',
    151       'NORMAL' => in_array('normal', $selected_users) ? 'checked="checked"' : ''
     168  $users_id = array('guest', 'generic', 'normal', 'admin', 'webmaster');
     169  $users = array();
     170  foreach ($users_id as $id)
     171  {
     172    $users[$id] = l10n('user_status_'.$id);
     173  }
     174  $template->assign(array(
     175    'users' => $users,
     176    'selected_users' => $edited_page['users'],
    152177    )
    153178  );
    154179}
    155180
    156 // Chargement des données pour l'édition
    157 if ($page['tab'] == 'edit_page')
    158 {
     181// User level options
     182if ($conf['additional_pages']['level_perm'])
     183{
     184  foreach ($conf['available_permission_levels'] as $level)
     185  {
     186    $level_options[$level] = l10n(sprintf('Level %d', $level));
     187  }
    159188  $template->assign(array(
    160     'NAME' => $edited_page['title'],
    161     'PERMALINK' => $edited_page['permalink'],
    162     'HOMEPAGE' => $edited_page['homepage'],
    163     'STANDALONE' => $edited_page['standalone'],
    164     'CONTENT' => $edited_page['content']));
    165 }
    166 
    167 // Parametrage du template
    168 $template->assign('AP_TITLE', $page_title);
     189    'level_perm' => $level_options,
     190    'level_selected' => $edited_page['level']
     191    )
     192  );
     193}
     194
     195// template output
     196$template->assign(array(
     197  'AP_TITLE' => $page_title,
     198  'NAME' => $edited_page['title'],
     199  'PERMALINK' => $edited_page['permalink'],
     200  'HOMEPAGE' => $edited_page['homepage'],
     201  'STANDALONE' => $edited_page['standalone'],
     202  'CONTENT' => $edited_page['content']));
    169203
    170204$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/add_page.tpl');
Note: See TracChangeset for help on using the changeset viewer.