source: trunk/admin/configuration.php @ 1877

Last change on this file since 1877 was 1877, checked in by rub, 17 years ago

Undo revision 1865 in order to add tabsheet for categories.

(Not really undo help)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 9.6 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | PhpWebGallery - a PHP based picture gallery                           |
4// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
5// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
6// +-----------------------------------------------------------------------+
7// | branch        : BSF (Best So Far)
8// | file          : $RCSfile$
9// | last update   : $Date: 2007-03-07 22:21:35 +0000 (Wed, 07 Mar 2007) $
10// | last modifier : $Author: rub $
11// | revision      : $Revision: 1877 $
12// +-----------------------------------------------------------------------+
13// | This program is free software; you can redistribute it and/or modify  |
14// | it under the terms of the GNU General Public License as published by  |
15// | the Free Software Foundation                                          |
16// |                                                                       |
17// | This program is distributed in the hope that it will be useful, but   |
18// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
19// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
20// | General Public License for more details.                              |
21// |                                                                       |
22// | You should have received a copy of the GNU General Public License     |
23// | along with this program; if not, write to the Free Software           |
24// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
25// | USA.                                                                  |
26// +-----------------------------------------------------------------------+
27
28if( !defined("PHPWG_ROOT_PATH") )
29{
30  die ("Hacking attempt!");
31}
32
33include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
34
35// +-----------------------------------------------------------------------+
36// | Check Access and exit when user status is not ok                      |
37// +-----------------------------------------------------------------------+
38check_status(ACCESS_ADMINISTRATOR);
39
40//-------------------------------------------------------- sections definitions
41if (!isset($_GET['section']))
42{
43  $page['section'] = 'general';
44}
45else
46{
47  $page['section'] = $_GET['section'];
48}
49
50$general_checkboxes = array(
51    'log',
52    'history_admin',
53    'history_guest',
54    'email_admin_on_new_user',
55    'allow_user_registration',
56   );
57
58$comments_checkboxes = array(
59    'comments_forall',
60    'comments_validation',
61    'email_admin_on_comment',
62    'email_admin_on_comment_validation',
63  );
64
65//------------------------------ verification and registration of modifications
66if (isset($_POST['submit']) and !is_adviser())
67{
68  $int_pattern = '/^\d+$/';
69  switch ($page['section'])
70  {
71    case 'general' :
72    {
73      if ( !url_is_remote($_POST['gallery_url']) )
74      {
75        array_push($page['errors'], $lang['conf_gallery_url_error']);
76      }
77      foreach( $general_checkboxes as $checkbox)
78      {
79        $_POST[$checkbox] = empty($_POST[$checkbox])?'false':'true';
80      }
81      break;
82    }
83    case 'comments' :
84    {
85      // the number of comments per page must be an integer between 5 and 50
86      // included
87      if (!preg_match($int_pattern, $_POST['nb_comment_page'])
88           or $_POST['nb_comment_page'] < 5
89           or $_POST['nb_comment_page'] > 50)
90      {
91        array_push($page['errors'], $lang['conf_nb_comment_page_error']);
92      }
93      foreach( $comments_checkboxes as $checkbox)
94      {
95        $_POST[$checkbox] = empty($_POST[$checkbox])?'false':'true';
96      }
97      break;
98    }
99    case 'default' :
100    {
101      // periods must be integer values, they represents number of days
102      if (!preg_match($int_pattern, $_POST['recent_period'])
103          or $_POST['recent_period'] <= 0)
104      {
105        array_push($page['errors'], $lang['periods_error']);
106      }
107      // maxwidth
108      if (isset($_POST['default_maxwidth'])
109          and !empty($_POST['default_maxwidth'])
110          and (!preg_match($int_pattern, $_POST['default_maxwidth'])
111               or $_POST['default_maxwidth'] < 50))
112      {
113        array_push($page['errors'], $lang['maxwidth_error']);
114      }
115      // maxheight
116      if (isset($_POST['default_maxheight'])
117          and !empty($_POST['default_maxheight'])
118          and (!preg_match($int_pattern, $_POST['default_maxheight'])
119               or $_POST['default_maxheight'] < 50))
120      {
121        array_push($page['errors'], $lang['maxheight_error']);
122      }
123      break;
124    }
125  }
126
127  // updating configuration if no error found
128  if (count($page['errors']) == 0)
129  {
130    //echo '<pre>'; print_r($_POST); echo '</pre>';
131    $result = pwg_query('SELECT param FROM '.CONFIG_TABLE);
132    while ($row = mysql_fetch_array($result))
133    {
134      if (isset($_POST[$row['param']]))
135      {
136        $value = $_POST[$row['param']];
137
138        if ('gallery_title' == $row['param'])
139        {
140          if (!$conf['allow_html_descriptions'])
141          {
142            $value = strip_tags($value);
143          }
144        }
145
146        $query = '
147UPDATE '.CONFIG_TABLE.'
148  SET value = \''. str_replace("\'", "''", $value).'\'
149  WHERE param = \''.$row['param'].'\'
150;';
151        pwg_query($query);
152      }
153    }
154    array_push($page['infos'], $lang['conf_confirmation']);
155  }
156
157  //------------------------------------------------------ $conf reinitialization
158  load_conf_from_db();
159}
160
161//----------------------------------------------------- template initialization
162$template->set_filenames( array('config'=>'admin/configuration.tpl') );
163
164$action = PHPWG_ROOT_PATH.'admin.php?page=configuration';
165$action.= '&amp;section='.$page['section'];
166
167$template->assign_vars(
168  array(
169    'L_YES'=>$lang['yes'],
170    'L_NO'=>$lang['no'],
171    'L_SUBMIT'=>$lang['submit'],
172    'L_RESET'=>$lang['reset'],
173
174    'U_HELP' => PHPWG_ROOT_PATH.'popuphelp.php?page=configuration',
175
176    'F_ACTION'=>$action
177    ));
178
179$html_check='checked="checked"';
180
181switch ($page['section'])
182{
183  case 'general' :
184  {
185    $lock_yes = ($conf['gallery_locked']==true)?'checked="checked"':'';
186    $lock_no = ($conf['gallery_locked']==false)?'checked="checked"':'';
187
188    $template->assign_block_vars(
189      'general',
190      array(
191        'GALLERY_LOCKED_YES'=>$lock_yes,
192        'GALLERY_LOCKED_NO'=>$lock_no,
193        ($conf['rate']==true?'RATE_YES':'RATE_NO')=>$html_check,
194        ($conf['rate_anonymous']==true
195             ? 'RATE_ANONYMOUS_YES' : 'RATE_ANONYMOUS_NO')=>$html_check,
196        'CONF_GALLERY_TITLE' => $conf['gallery_title'],
197        'CONF_PAGE_BANNER' => $conf['page_banner'],
198        'CONF_GALLERY_URL' => $conf['gallery_url'],
199        ));
200
201    foreach( $general_checkboxes as $checkbox)
202    {
203      $template->merge_block_vars(
204          'general',
205          array(
206            strtoupper($checkbox) => ($conf[$checkbox]==true)?$html_check:''
207            )
208        );
209    }
210    break;
211  }
212  case 'comments' :
213  {
214    $template->assign_block_vars(
215      'comments',
216      array(
217        'NB_COMMENTS_PAGE'=>$conf['nb_comment_page'],
218        ));
219
220    foreach( $comments_checkboxes as $checkbox)
221    {
222      $template->merge_block_vars(
223          'comments',
224          array(
225            strtoupper($checkbox) => ($conf[$checkbox]==true)?$html_check:''
226            )
227        );
228    }
229    break;
230  }
231  case 'default' :
232  {
233    $show_yes = ($conf['show_nb_comments']==true)?'checked="checked"':'';
234    $show_no = ($conf['show_nb_comments']==false)?'checked="checked"':'';
235    $hits_yes = ($conf['show_nb_hits']==true)?'checked="checked"':'';
236    $hits_no = ($conf['show_nb_hits']==false)?'checked="checked"':'';
237    $expand_yes = ($conf['auto_expand']==true)?'checked="checked"':'';
238    $expand_no  = ($conf['auto_expand']==false)?'checked="checked"':'';
239
240    $template->assign_block_vars(
241      'default',
242      array(
243        'NB_IMAGE_LINE'=>$conf['nb_image_line'],
244        'NB_ROW_PAGE'=>$conf['nb_line_page'],
245        'CONF_RECENT'=>$conf['recent_period'],
246        'NB_COMMENTS_PAGE'=>$conf['nb_comment_page'],
247        'MAXWIDTH'=>$conf['default_maxwidth'],
248        'MAXHEIGHT'=>$conf['default_maxheight'],
249        'EXPAND_YES'=>$expand_yes,
250        'EXPAND_NO'=>$expand_no,
251        'SHOW_COMMENTS_YES'=>$show_yes,
252        'SHOW_COMMENTS_NO'=>$show_no,
253        'SHOW_HITS_YES'=>$hits_yes,
254        'SHOW_HITS_NO'=>$hits_no,
255        ));
256
257    $blockname = 'default.language_option';
258
259    foreach (get_languages() as $language_code => $language_name)
260    {
261      if (isset($_POST['submit']))
262      {
263        $selected =
264          $_POST['default_language'] == $language_code
265            ? 'selected="selected"' : '';
266      }
267      else if ($conf['default_language'] == $language_code)
268      {
269        $selected = 'selected="selected"';
270      }
271      else
272      {
273        $selected = '';
274      }
275
276      $template->assign_block_vars(
277        $blockname,
278        array(
279          'VALUE'=> $language_code,
280          'CONTENT' => $language_name,
281          'SELECTED' => $selected
282          ));
283    }
284
285    $blockname = 'default.template_option';
286
287    foreach (get_pwg_themes() as $pwg_template)
288    {
289      if (isset($_POST['submit']))
290      {
291        $selected =
292          $_POST['default_template'] == $pwg_template
293            ? 'selected="selected"' : '';
294      }
295      else if ($conf['default_template'] == $pwg_template)
296      {
297        $selected = 'selected="selected"';
298      }
299      else
300      {
301        $selected = '';
302      }
303
304      $template->assign_block_vars(
305        $blockname,
306        array(
307          'VALUE'=> $pwg_template,
308          'CONTENT' => $pwg_template,
309          'SELECTED' => $selected
310          )
311        );
312    }
313
314
315    break;
316  }
317}
318//----------------------------------------------------------- sending html code
319$template->assign_var_from_handle('ADMIN_CONTENT', 'config');
320?>
Note: See TracBrowser for help on using the repository browser.