'', 'file ASC' => l10n('file name, A → Z'), 'file DESC' => l10n('file name, Z → A'), 'name ASC' => l10n('photo title, A → Z'), 'name DESC' => l10n('photo title, Z → A'), 'date_creation DESC' => l10n('date created, new → old'), 'date_creation ASC' => l10n('date created, old → new'), 'date_available DESC' => l10n('date posted, new → old'), 'date_available ASC' => l10n('date posted, old → new'), 'rating_score DESC' => l10n('rating score, high → low'), 'rating_score ASC' => l10n('rating score, low → high'), 'hit DESC' => l10n('visits, high → low'), 'hit ASC' => l10n('visits, low → high'), 'id ASC' => l10n('numeric identifier, 1 → 9'), 'id DESC' => l10n('numeric identifier, 9 → 1'), 'rank ASC' => l10n('manual sort order'), ); $comments_order = array( 'ASC' => l10n('Show oldest comments first'), 'DESC' => l10n('Show latest comment first'), ); //------------------------------ verification and registration of modifications if (isset($_POST['submit'])) { $int_pattern = '/^\d+$/'; switch ($page['section']) { case 'main' : { if ( !isset($conf['order_by_custom']) and !isset($conf['order_by_inside_category_custom']) ) { if ( !empty($_POST['order_by']) ) { // limit to the number of available parameters $order_by = $order_by_inside_category = array_slice($_POST['order_by'], 0, ceil(count($sort_fields)/2)); // there is no rank outside categories unset($order_by[ array_search('rank ASC', $order_by) ]); // must define a default order_by if user want to order by rank only if ( count($order_by) == 0 ) { $order_by = array('id ASC'); } $_POST['order_by'] = 'ORDER BY '.implode(', ', $order_by); $_POST['order_by_inside_category'] = 'ORDER BY '.implode(', ', $order_by_inside_category); } else { array_push($page['errors'], l10n('No field selected')); } } foreach( $main_checkboxes as $checkbox) { $_POST[$checkbox] = empty($_POST[$checkbox])?'false':'true'; } break; } case 'sizes' : { $fields = array( 'original_resize', 'original_resize_maxwidth', 'original_resize_maxheight', 'original_resize_quality', ); $updates = array(); foreach ($fields as $field) { $value = !empty($_POST[$field]) ? $_POST[$field] : null; $form_values[$field] = $value; $updates[$field] = $value; } save_upload_form_config($updates, $page['errors']); if (count($page['errors']) == 0) { array_push( $page['infos'], l10n('Your configuration settings are saved') ); } break; } case 'comments' : { // the number of comments per page must be an integer between 5 and 50 // included if (!preg_match($int_pattern, $_POST['nb_comment_page']) or $_POST['nb_comment_page'] < 5 or $_POST['nb_comment_page'] > 50) { array_push($page['errors'], l10n('The number of comments a page must be between 5 and 50 included.')); } foreach( $comments_checkboxes as $checkbox) { $_POST[$checkbox] = empty($_POST[$checkbox])?'false':'true'; } break; } case 'default' : { // Never go here break; } case 'display' : { foreach( $display_checkboxes as $checkbox) { $_POST[$checkbox] = empty($_POST[$checkbox])?'false':'true'; } foreach( $display_info_checkboxes as $checkbox) { $_POST['picture_informations'][$checkbox] = empty($_POST['picture_informations'][$checkbox])? false : true; } $_POST['picture_informations'] = addslashes(serialize($_POST['picture_informations'])); break; } } // updating configuration if no error found if ('sizes' != $page['section'] and count($page['errors']) == 0) { //echo '
'; print_r($_POST); echo ''; $result = pwg_query('SELECT param FROM '.CONFIG_TABLE); while ($row = pwg_db_fetch_assoc($result)) { if (isset($_POST[$row['param']])) { $value = $_POST[$row['param']]; if ('gallery_title' == $row['param']) { if (!$conf['allow_html_descriptions']) { $value = strip_tags($value); } } $query = ' UPDATE '.CONFIG_TABLE.' SET value = \''. str_replace("\'", "''", $value).'\' WHERE param = \''.$row['param'].'\' ;'; pwg_query($query); } } array_push($page['infos'], l10n('Information data registered in database')); } //------------------------------------------------------ $conf reinitialization load_conf_from_db(); } //----------------------------------------------------- template initialization $template->set_filename('config', 'configuration.tpl'); // TabSheet $tabsheet = new tabsheet(); // TabSheet initialization $tabsheet->add('main', l10n('Main'), $conf_link.'main'); $tabsheet->add('sizes', l10n('Photo sizes'), $conf_link.'sizes'); $tabsheet->add('display', l10n('Display'), $conf_link.'display'); $tabsheet->add('comments', l10n('Comments'), $conf_link.'comments'); $tabsheet->add('default', l10n('Guest Settings'), $conf_link.'default'); // TabSheet selection $tabsheet->select($page['section']); // Assign tabsheet to template $tabsheet->assign(); $action = get_root_url().'admin.php?page=configuration'; $action.= '§ion='.$page['section']; $template->assign( array( 'U_HELP' => get_root_url().'admin/popuphelp.php?page=configuration', 'F_ACTION'=>$action )); switch ($page['section']) { case 'main' : { function order_by_is_local() { @include(PHPWG_ROOT_PATH. 'local/config/config.inc.php'); if (isset($conf['local_dir_site'])) { @include(PHPWG_ROOT_PATH.PWG_LOCAL_DIR. 'config/config.inc.php'); } return isset($conf['order_by']) or isset($conf['order_by_inside_category']); } if (order_by_is_local()) { array_push($page['warnings'], l10n('You have specified $conf[\'order_by\'] in your local configuration file, this parameter in deprecated, please remove it or rename it into $conf[\'order_by_custom\'] !')); } if ( isset($conf['order_by_custom']) or isset($conf['order_by_inside_category_custom']) ) { $order_by = array(''); $template->assign('ORDER_BY_IS_CUSTOM', true); } else { $out = array(); $order_by = trim($conf['order_by_inside_category']); $order_by = str_replace('ORDER BY ', null, $order_by); $order_by = explode(', ', $order_by); } $template->assign( 'main', array( 'CONF_GALLERY_TITLE' => htmlspecialchars($conf['gallery_title']), 'CONF_PAGE_BANNER' => htmlspecialchars($conf['page_banner']), 'week_starts_on_options' => array( 'sunday' => $lang['day'][0], 'monday' => $lang['day'][1], ), 'week_starts_on_options_selected' => $conf['week_starts_on'], 'order_by' => $order_by, 'order_by_options' => $sort_fields, ) ); foreach ($main_checkboxes as $checkbox) { $template->append( 'main', array( $checkbox => $conf[$checkbox] ), true ); } break; } case 'comments' : { $template->assign( 'comments', array( 'NB_COMMENTS_PAGE'=>$conf['nb_comment_page'], 'comments_order'=>$conf['comments_order'], 'comments_order_options'=> $comments_order ) ); foreach ($comments_checkboxes as $checkbox) { $template->append( 'comments', array( $checkbox => $conf[$checkbox] ), true ); } break; } case 'default' : { $edit_user = build_user($conf['guest_id'], false); include_once(PHPWG_ROOT_PATH.'profile.php'); $errors = array(); if (save_profile_from_post($edit_user, $errors)) { // Reload user $edit_user = build_user($conf['guest_id'], false); array_push($page['infos'], l10n('Information data registered in database')); } $page['errors'] = array_merge($page['errors'], $errors); load_profile_in_template( $action, '', $edit_user ); $template->assign('default', array()); break; } case 'display' : { foreach ($display_checkboxes as $checkbox) { $template->append( 'display', array( $checkbox => $conf[$checkbox] ), true ); } $template->append( 'display', array( 'picture_informations' => unserialize($conf['picture_informations']) ), true ); break; } case 'sizes' : { $template->assign( 'sizes', array( 'original_resize_maxwidth' => $conf['original_resize_maxwidth'], 'original_resize_maxheight' => $conf['original_resize_maxheight'], 'original_resize_quality' => $conf['original_resize_quality'], ) ); foreach ($sizes_checkboxes as $checkbox) { $template->append( 'sizes', array( $checkbox => $conf[$checkbox] ), true ); } break; } } //----------------------------------------------------------- sending html code $template->assign_var_from_handle('ADMIN_CONTENT', 'config'); ?>