Changeset 7084 for extensions/event_cats
- Timestamp:
- Oct 4, 2010, 1:38:27 AM (14 years ago)
- Location:
- extensions/event_cats
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/event_cats/include/ec_conf.inc.php
r7068 r7084 33 33 // --------------------------------------------------------------------------- 34 34 35 // ----- Introduction 36 // Not sure I'm very proud of this quite complex configuration initialization 37 // part :-/ ... 38 // The reason of the complexity is the inital intention of building a 39 // configuration management allowing to use in the rest of the script only 40 // two functions: change_ec_conf() and read_ec_conf() . 41 // change_ec_conf() updates the DB systematically. The initialization part 42 // has the only function of determining what is the value of $ec_conf, which 43 // is the root configuration parameters provider. 44 // ----- 45 35 46 // $ec_conf has numeric indexes (instead of string keys like 'activated', 36 47 // 'howto'...) because of its first reading, done with the "explode" function. … … 52 63 53 64 //---------------------------------------------------------------------------- 54 // The following lines allow to change the number of configuration items, the55 // default values they can have, and also their possible other values, very56 // quickly.57 65 58 66 // Give possible $ec_conf values. In case values cannot be predicted, just … … 60 68 $ec_conf_possible_values = array( 61 69 'activated' => array('0', '1'), // 0 70 // plugin activated 62 71 'howto' => array('0', '1'), // 1 72 // whether the small aknowledgement message has already been displayed 63 73 'dup_allow' => array('0', '1', '2'), // 2 74 // duplication allowance : 75 // 0 : no account; 76 // 1 : all accounts; 77 // 2 : specified by group, type, and user ids (default). 78 // If Event Cats is in "simple mode", get the value of 79 // $conf['ec_dup_allow'] if it is set; and an allowance to duplicate only 80 // generic accounts will be defined if the value is 2. 64 81 'duplic_display' => array('0', '1', '2'), // 3 82 // duplication link display in the menubar : 83 // 0 : "Register" for everybody; 84 // 1 : "Duplicate" for everybody; 85 // 2 : "Register" only for generic accounts, 86 // "Duplicate" for all other accounts (default); 87 // If Event Cats is in "simple mode", takes the value of 88 // $conf['ec_duplic_display'] if it's set. 65 89 'auto_code_dg_nb' => array( '4', '5', '8', '10', '12', '15', 66 90 '16', '20', '24', '25', '30', '32'), // 4 91 // number of digits when creating a new code automatically, several values 92 // (default: 10) 93 // If Event Cats is in "simple mode", get the value of 94 // $conf['ec_auto_code_dg_nb'] if set. 67 95 'unknown_code' => array('0', '1', '2'), // 5 96 // what to do in case an unknown code is used with "autolog" parameter : 97 // 0 : nothing (display home page, index.php (not logged in of course)); 98 // 1 : display "access denied" page (default); 99 // 2 : display an A. P. precised below. 68 100 'unknown_code_ap_id' => array(), // 6 101 // the id of the Additional Page which must be used in case of usage of an 102 // unknow code; several vals (default: 0). 69 103 'comment_display' => array('0', '1'), // 7 104 // the way the comment is displayed in "entries" tab: 105 // 0, as tooltip; 1 (default), on a line under code 106 // If Event Cats is in "simple mode", get the value of 107 // $conf['ec_comment_display'] if set. 70 108 'in_help_display' => array('0', '1'), // 8 109 // whether the help banner is displayed (default: 1). 71 110 'display_connection' => array('0', '1'), // 9 111 // whether the "Connection" link must be displayed for generic users 112 // (default: 1) 113 // If Event Cats is in "simple mode", takes the value of 114 // $conf['ec_display_connection'] if set. 72 115 'simple_mode_on' => array('0', '1'), // 10 116 // whether the presentation of the plugin is in "simple mode" or not. 117 // (default: 1) 118 // The default value can be modified to 0 (normal view) if Event Cats was 119 // already installed previously. 73 120 'display_full_button' => array('0', '1'), // 11 121 // whether the "Show full features" button must be displayed (default: 1). 122 // The default value can be modified to 0 (don't display) if 123 // $conf['ec_display_full_button'] is set, and false. 74 124 ); 75 125 … … 81 131 $t = array(); $u = '0'; $v = false; $w = false; $ec_conf = array(); $s = '0'; 82 132 if ($w = ( // $w becomes true if the query succeeds <=> if EC was already in 83 // $t gets event_cats config value , as an array with one unique entry133 // $t gets event_cats config value (array to be "exploded") 84 134 ($t = pwg_db_fetch_row(pwg_query(" 85 135 SELECT `value` … … 89 139 ) { 90 140 $v = (count($ec_conf = explode(',', $t[0])) == count($ec_conf_index)); 91 $u = $ec_conf[ 0];92 $s = ($v) ? $ec_conf[ 1] : '0'; // the aknowledgement message is displayed93 // again if the configuration changes141 $u = $ec_conf[$ec_conf_index['activated']]; 142 $s = ($v) ? $ec_conf[$ec_conf_index['howto']] : '0'; // the aknowledgement 143 // message is displayed again if the configuration changes 94 144 } 95 145 if ($v and !$w) die('$v true with $w false in ec_conf.inc.php'); … … 97 147 // $v is false if the entry in the table doesn't exist; or exists, but its 98 148 // number of parameters is different than the number of default parameters. 99 // $u is '0' if the plugin has not yet been activated, '1' if it has been.149 // $u is '0' if the plugin is not activated, '1' if it is. 100 150 // $s allows to display the aknowledgement message when config changes. 101 151 // If $v or $w are false, all $ec_conf values are set to default values. But 102 152 // default values must first take values specified in $conf, if they are set. 103 153 104 // Determine whether simple mode is ON or OFF 154 // Determine whether simple mode is ON or OFF: simple mode must be on if Event 155 // Cats is just installed, or if it was ON previously, or if 156 // $conf['ec_display_full_button'] is set and is false. 105 157 $simple_mode_on = ( 106 158 (!$v and !$w) or ( 107 // $ec_conf[10] <=> read_ec_conf('simple_mode_on')108 isset($ec_conf[10]) and $ec_conf[10] == '1'159 isset($ec_conf[$ec_conf_index['simple_mode_on']]) and 160 $ec_conf[$ec_conf_index['simple_mode_on']] == '1' 109 161 ) or ( 110 162 isset($conf['ec_display_full_button']) and … … 113 165 ); 114 166 115 if (!$v) { 116 // Give configuration items names and default values. Only strings. 117 $ec_conf_default = array( // PLUGIN CONFIGURATION ($ec_conf) : 118 // --------------------------------- 119 'activated' // 0 // plugin activated, 0 or 1 120 => $u, // 121 // 122 'howto' // 1 // whether the small aknowledgement message has 123 => $s, // already been displayed, 0 or 1 124 // 125 'dup_allow' => ($simple_mode_on and isset($conf['ec_dup_allow']) and 126 in_array($conf['ec_dup_allow'], 127 $ec_conf_possible_values['ec_dup_allow'])) ? 128 $conf['ec_dup_allow'] : (isset($ec_conf[2]) and in_array($ec_conf[2], 129 $ec_conf_possible_values['dup_allow'])) ? $ec_conf[2] : '2', 130 // 2 // duplication allowance : 131 // 0 : no account; 132 // 1 : all accounts; 133 // 2 : specified by group, type, and user ids. 134 // If Event Cats is in "simple mode", takes the 135 // value of $conf['ec_dup_allow'] if it is set; 136 // and an allowance to duplicate only generic 137 // accounts will be defined. 138 // 139 'duplic_display' => ($simple_mode_on and isset($conf['ec_duplic_display']) 140 and in_array($conf['ec_duplic_display'], 141 $ec_conf_possible_values['ec_duplic_display'])) ? 142 $conf['ec_duplic_display'] : (isset($ec_conf[3]) and 143 in_array($ec_conf[3], $ec_conf_possible_values['duplic_display'])) ? 144 $ec_conf[3] : '2', 145 // 3 // duplication link display in the menubar : 146 // 0 : "Register" for everybody; 147 // 1 : "Duplicate" for everybody; 148 // 2 : "Register" only for generic accounts, 149 // "Duplicate" for all other accounts; 150 // If Event Cats is in "simple mode", takes the 151 // value of $conf['ec_duplic_display'] if it's set. 152 // 153 'auto_code_dg_nb' => ($simple_mode_on and isset($conf['ec_auto_code_dg_nb']) 154 and in_array($conf['ec_auto_code_dg_nb'], 155 $ec_conf_possible_values['ec_auto_code_dg_nb'])) ? 156 $conf['ec_auto_code_dg_nb'] : (isset($ec_conf[4]) and 157 in_array($ec_conf[4], $ec_conf_possible_values['auto_code_dg_nb'])) ? 158 $ec_conf[4] : '10', 159 // 4 // number of digits when creating a new code 160 // automatically, several values 161 // If Event Cats is in "simple mode", takes the 162 // value of $conf['ec_auto_code_dg_nb'] if set. 163 // 164 'unknown_code' // 5 // what to do in case an unknown code is used with 165 => (isset($ec_conf[5]) and in_array($ec_conf[5], 166 $ec_conf_possible_values['unknown_code'])) ? $ec_conf[5] : '1', 167 // "autolog" parameter : 168 // 0 : nothing (display home page, index.php 169 // (not logged in of course)); 170 // 1 : display "access denied" page; 171 // 2 : display an A. P. precised below. 172 // 173 'unknown_code_ap_id' // 6| the id of the Additional Page which must be 174 => (isset($ec_conf[6])) ? $ec_conf[6] : '0', 175 // used in case of usage of an unknow code; 176 // several vals. 177 // 178 'comment_display' => ($simple_mode_on and isset($conf['ec_comment_display']) 179 and in_array($conf['ec_comment_display'], 180 $ec_conf_possible_values['ec_comment_display'])) ? 181 $conf['ec_comment_display'] : (isset($ec_conf[7]) and 182 in_array($ec_conf[7], $ec_conf_possible_values['comment_display'])) ? 183 $ec_conf[7] : '1', 184 // 7 // the way the comment is displayed in "entries" 185 // tab : 0, as tooltip; 1, on a line under code 186 // If Event Cats is in "simple mode", takes the 187 // value of $conf['ec_comment_display'] if set. 188 // 189 'in_help_display' // 8 // whether the help banner is displayed. 190 => (isset($ec_conf[8]) and in_array($ec_conf[8], 191 $ec_conf_possible_values['in_help_display'])) ? $ec_conf[8] : '1', 192 // 0: not displayed; 1 : displayed (surprising !) 193 // 194 'display_connection' => ($simple_mode_on and 195 isset($conf['ec_display_connection']) and 196 in_array($conf['ec_display_connection'], 197 $ec_conf_possible_values['ec_display_connection'])) ? 198 $conf['ec_display_connection'] : (isset($ec_conf[9]) and 199 in_array($ec_conf[9], $ec_conf_possible_values['display_connection'])) ? 200 $ec_conf[9] : '1', 201 // 9 // whether the "Connection" link must be displayed 202 // for generic users, 0 or 1. 203 // If Event Cats is in "simple mode", takes the 204 // value of $conf['ec_display_connection'] if set. 205 // 206 'simple_mode_on' => ($simple_mode_on) ? 207 '1' : '0', // 10 // whether the presentation of the plugin is in 208 // "simple mode" or not. 209 // 0: normal view; 1 : simple view. 210 // The default value can be modified to 0 (normal 211 // view) if Event Cats was already installed 212 // previously. 213 // 214 'display_full_button' => ($simple_mode_on and 215 isset($conf['ec_display_full_button']) and 216 in_array($conf['ec_display_full_button'], 217 $ec_conf_possible_values['ec_display_full_button'])) ? 218 $conf['ec_display_full_button'] : (isset($ec_conf[11]) and 219 in_array($ec_conf[11], $ec_conf_possible_values['display_full_button'])) ? 220 $ec_conf[11] : '1', 221 // 11 // whether the "Show full features" button must be 222 // displayed, 0 or 1. The default value can be 223 // modified to 0 (don't display) if 224 // $conf['ec_display_full_button'] has val. false. 225 ); 167 // Change $ec_conf values if needed 168 if (!$v or $simple_mode_on) { 226 169 227 // Once these lines have been updated, you don't need to change anything 228 // else. Everything is managed by the code. 229 //---------------------------------------------------------------------------- 230 231 // Set $ec_conf to proper default values if needed, and writes its values 232 // in the DB 233 $ec_conf = array_values($ec_conf_default); 234 235 change_ec_conf('activated', $u); // writes in the DB 170 // Perform repetitve work 171 function test_conf($tbl, $k, $k2 = NULL) { 172 global $ec_conf_possible_values; 173 if (!isset($k2)) $k2 = $k; 174 return (isset($tbl[$k]) and 175 in_array($tbl[$k], $ec_conf_possible_values[$k2])); 176 } 177 178 // Avoid that $conf (very big) is passed as argument to function test_conf 179 $conf_temp = array(); 180 foreach ($ec_conf_possible_values as $key => $val) 181 if (isset($conf['ec_'.$key])) $conf_temp[$key] = $conf['ec_'.$key]; 182 183 if (!$v) { 184 // Determine default values of $ec_conf 185 $ec_conf = array( 186 $ec_conf_index['activated'] => $u, 187 $ec_conf_index['howto'] => $s, 188 $ec_conf_index['dup_allow'] => 189 ($simple_mode_on and test_conf($conf_temp, 'dup_allow')) ? 190 $conf_temp['dup_allow'] 191 : (test_conf($ec_conf, $ec_conf_index['dup_allow'], 'dup_allow')) ? 192 $ec_conf[$ec_conf_index['dup_allow']] 193 : '2', 194 $ec_conf_index['duplic_display'] => 195 ($simple_mode_on and test_conf($conf_temp, 'duplic_display')) ? 196 $conf_temp['duplic_display'] 197 : (test_conf($ec_conf, $ec_conf_index['duplic_display'], 198 'duplic_display')) ? 199 $ec_conf[$ec_conf_index['duplic_display']] 200 : '2', 201 $ec_conf_index['auto_code_dg_nb'] => 202 ($simple_mode_on and test_conf($conf_temp, 'auto_code_dg_nb')) ? 203 $conf_temp['auto_code_dg_nb'] 204 : (test_conf($ec_conf, $ec_conf_index['auto_code_dg_nb'], 205 'auto_code_dg_nb')) ? 206 $ec_conf[$ec_conf_index['auto_code_dg_nb']] 207 : '10', 208 $ec_conf_index['unknown_code'] => 209 (test_conf($ec_conf, $ec_conf_index['unknown_code'], 210 'unknown_code')) ? 211 $ec_conf[$ec_conf_index['unknown_code']] 212 : '1', 213 $ec_conf_index['unknown_code_ap_id'] => 214 (isset($ec_conf[$ec_conf_index['unknown_code_ap_id']])) ? 215 $ec_conf[$ec_conf_index['unknown_code_ap_id']] 216 : '0', 217 $ec_conf_index['comment_display'] => 218 ($simple_mode_on and test_conf($conf_temp, 'comment_display')) ? 219 $conf_temp['comment_display'] 220 : (test_conf($ec_conf, $ec_conf_index['comment_display'], 221 'comment_display')) ? 222 $ec_conf[$ec_conf_index['comment_display']] 223 : '1', 224 $ec_conf_index['in_help_display'] => 225 (test_conf($ec_conf, $ec_conf_index['in_help_display'], 226 'in_help_display')) ? 227 $ec_conf[$ec_conf_index['in_help_display']] 228 : '1', 229 $ec_conf_index['display_connection'] => 230 ($simple_mode_on and test_conf($conf_temp, 'display_connection')) ? 231 $conf_temp['display_connection'] 232 : (test_conf($ec_conf, $ec_conf_index['display_connection'], 233 'display_connection')) ? 234 $ec_conf[$ec_conf_index['display_connection']] 235 : '1', 236 $ec_conf_index['simple_mode_on'] => 237 ($simple_mode_on) ? '1' : '0', 238 $ec_conf_index['display_full_button'] => 239 ($simple_mode_on and test_conf($conf_temp, 'display_full_button')) ? 240 $conf_temp['display_full_button'] 241 : (test_conf($ec_conf, $ec_conf_index['display_full_button'], 242 'display_full_button')) ? 243 $ec_conf[$ec_conf_index['display_full_button']] 244 : '1', 245 ); 246 change_ec_conf('activated', $u); // write in the DB 247 } 248 else { // $simple_mode_on is true ; check $conf values for Event Cats 249 foreach ($ec_conf_possible_values as $key => $val) 250 if (test_conf($conf_temp, $key)) 251 change_ec_conf($key, $conf_temp[$key]); 252 } 253 unset($conf_temp); 236 254 } 237 255 // now : 238 256 // _ the number of parameters is the same in the DB as the number of 239 // defaultparameters;257 // possible parameters; 240 258 // _ the parameters have the default values if needed; 241 259 // _ the plugin shows it is active if it is the case; -
extensions/event_cats/main.inc.php
r7066 r7084 32 32 // +-----------------------------------------------------------------------+ 33 33 34 // Keeps file coded in UTF-8 without BOM 34 // Keeps file coded in UTF-8 without BOM: é 35 35 36 36 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); … … 43 43 44 44 define( // ------------------------------------------------------------------- 45 'EVNTCATS_INFO_VERSION', // VERSION HISTORY 45 'EVNTCATS_INFO_VERSION', // VERSION HISTORY: 46 46 '1.2.3' // Re-fix bug 1432 :-/ ... 47 47 // '2.1.0' // When done, will simplfy and allow EC management from categories … … 50 50 // '1.2.1' // Improve EN translation thanks to Tosca 51 51 // '1.2.0' // Add feature 1335, Possibility to display the 'Connection' 52 // // link in identification block menu for generic users 52 // // link in identification block menu for generic users; 53 53 // // finish (yes !) english translation 54 54 // '1.1.5' // Fix bugs 1324 and 1325 55 55 // '1.1.4' // Improve help banner 56 // '1.1.3' // Better help banner management 57 // '1.1.2' // Better help banner example 58 // '1.1.1' // Better help banner example 59 // '1.1.0' // First bugs (1305 and 1306) corrected 56 // '1.1.3' // Better help banner management; finalize banner texts 57 // '1.1.2' // Better help banner example: some examples 58 // '1.1.1' // Better help banner example; but still no text in it 59 // '1.1.0' // First bugs (1305 and 1306) corrected; 60 60 // add newly created user/group association with cat/AP (was 61 // forgotten) 61 // forgotten); begin help banner 62 62 // '1.0.0' // Conception version 63 63 ); // ------------------------------------------------------------------------ … … 103 103 return ( 104 104 $help_content = (is_admin() and $page == 'help') ? 105 load_language($page.'.html', EVNTCATS_PATH,array('return' => true)) : false105 load_language($page.'.html',EVNTCATS_PATH,array('return' => true)) : false 106 106 ) ? $popup_help_content.$help_content : $popup_help_content; 107 107 } … … 112 112 * 113 113 * auto_log_user() 114 * the function uses the value of the argument "autolog" of the posted URL, as a code115 * to know which username has to be logged in.114 * the function uses the value of the argument "autolog" of the posted URL, 115 * as a code to know which username has to be logged in. 116 116 * 117 117 * @param no parameter … … 128 128 $ec_img = NULL; 129 129 130 if (isset($_GET['autolog']) and (read_ec_conf('activated') == 1)) {130 if (isset($_GET['autolog']) and (read_ec_conf('activated') == '1')) { 131 131 if (!is_a_guest()) { 132 132 $url = ''; … … 166 166 if (isset($ec_img)) { 167 167 if (ec_image_exists($ec_cat, $ec_img)) { 168 168 redirect(PHPWG_ROOT_PATH.'picture.php?/'.$ec_img.'/category/'.$ec_cat); 169 169 } 170 170 } … … 230 230 global $user; 231 231 232 if (!is_a_guest() and !is_admin()) if ( 233 read_ec_conf('dup_allow') == '1' or ( 234 read_ec_conf('dup_allow') == '2' and 235 dup_allowed($user['id']) 236 ) 237 ) { 238 // User access 239 $result = pwg_query(" 240 SELECT `cat_id` 241 FROM `".USER_ACCESS_TABLE."` 242 WHERE `user_id` = ".$user['id']."; 243 "); 244 $insert = array(); 245 while ($row = pwg_db_fetch_assoc($result)) 246 $insert[] = "(".$new_user['id'].",".$row['cat_id'].")"; 247 if (!empty($insert)) pwg_query(" 248 INSERT INTO `".USER_ACCESS_TABLE."` 249 VALUES ".implode(',', $insert)."; 250 "); 251 252 // User groups 253 $result = pwg_query(" 254 SELECT `group_id` 255 FROM `".USER_GROUP_TABLE."` 256 WHERE `user_id` = ".$user['id']."; 257 "); 258 $insert = array(); 259 while ($row = pwg_db_fetch_assoc($result)) 260 $insert[] = "(".$new_user['id'].",".$row['group_id'].")"; 261 if (!empty($insert)) pwg_query(" 262 INSERT INTO `".USER_GROUP_TABLE."` 263 VALUES ".implode(',', $insert)."; 264 "); 265 266 // User infos 267 $result = pwg_query(" 268 SELECT `level` 269 FROM `".USER_INFOS_TABLE."` 270 WHERE `user_id` = ".$user['id']."; 271 "); 272 $insert = array(); 273 while ($row = pwg_db_fetch_assoc($result)) 274 $insert[] = "(".$new_user['id'].",".$row['level'].")"; 275 if (!empty($insert)) pwg_query(" 276 UPDATE `".USER_INFOS_TABLE."` 277 SET `level` = ".$user['level']." 278 WHERE `user_id` = ".$new_user['id']."; 279 "); 232 if (read_ec_conf('activated') == '1') { 233 if ( 234 !is_a_guest() and !is_admin() and ( 235 read_ec_conf('dup_allow') == '1' or ( 236 read_ec_conf('dup_allow') == '2' and ( 237 dup_allowed($user['id']) or ( 238 read_ec_conf('simple_mode_on') == '1' and 239 is_generic() 240 ) 241 ) 242 ) 243 ) 244 ) { 245 // User access 246 $result = pwg_query(" 247 SELECT `cat_id` 248 FROM `".USER_ACCESS_TABLE."` 249 WHERE `user_id` = ".$user['id']."; 250 "); 251 $insert = array(); 252 while ($row = pwg_db_fetch_assoc($result)) 253 $insert[] = "(".$new_user['id'].",".$row['cat_id'].")"; 254 if (!empty($insert)) pwg_query(" 255 INSERT INTO `".USER_ACCESS_TABLE."` 256 VALUES ".implode(',', $insert)."; 257 "); 258 259 // User groups 260 $result = pwg_query(" 261 SELECT `group_id` 262 FROM `".USER_GROUP_TABLE."` 263 WHERE `user_id` = ".$user['id']."; 264 "); 265 $insert = array(); 266 while ($row = pwg_db_fetch_assoc($result)) 267 $insert[] = "(".$new_user['id'].",".$row['group_id'].")"; 268 if (!empty($insert)) pwg_query(" 269 INSERT INTO `".USER_GROUP_TABLE."` 270 VALUES ".implode(',', $insert)."; 271 "); 272 273 // User infos 274 $result = pwg_query(" 275 SELECT `level` 276 FROM `".USER_INFOS_TABLE."` 277 WHERE `user_id` = ".$user['id']."; 278 "); 279 $insert = array(); 280 while ($row = pwg_db_fetch_assoc($result)) 281 $insert[] = "(".$new_user['id'].",".$row['level'].")"; 282 if (!empty($insert)) pwg_query(" 283 UPDATE `".USER_INFOS_TABLE."` 284 SET `level` = ".$user['level']." 285 WHERE `user_id` = ".$new_user['id']."; 286 "); 287 } 280 288 } 281 289 } … … 313 321 global $lang, $template, $user; 314 322 315 if (version_compare(PHPWG_VERSION, '2.1.0', '<')) { 316 // Makes the "quick connect" fieldset able to redirect to current page 317 // after user identification, just as does the "connection" link. 318 $template->assign(array('U_REDIRECT' => $_SERVER['REQUEST_URI'])); 319 $template->set_prefilter('menubar', 'ec_duplicate_prefilter'); 320 } 321 322 // Adds duplication link, if needed 323 if (!is_admin() and !is_a_guest()) if ( 324 read_ec_conf('dup_allow') == '1' or ( 325 read_ec_conf('dup_allow') == '2' and 326 dup_allowed($user['id']) 327 ) 328 ) { 329 $template->assign('U_REGISTER', get_root_url().'register.php'); 323 if (read_ec_conf('activated') == '1') { 324 if (version_compare(PHPWG_VERSION, '2.1.0', '<')) { 325 // Makes the "quick connect" fieldset able to redirect to current page 326 // after user identification, just as does the "connection" link. 327 $template->assign(array('U_REDIRECT' => $_SERVER['REQUEST_URI'])); 328 $template->set_prefilter('menubar', 'ec_duplicate_prefilter'); 329 } 330 331 // Add duplication link, if needed 330 332 if ( 331 read_ec_conf('duplic_display') == '1' or ( 332 read_ec_conf('duplic_display') == '2' and 333 !is_generic() 333 !is_admin() and !is_a_guest() and ( 334 read_ec_conf('dup_allow') == '1' or ( 335 read_ec_conf('dup_allow') == '2' and ( 336 dup_allowed($user['id']) or ( 337 read_ec_conf('simple_mode_on') == '1' and 338 is_generic() 339 ) 340 ) 341 ) 334 342 ) 335 343 ) { 336 $lang['Register'] = $lang['Duplicate']; 337 $lang['Create a new account'] = 338 $lang['Create a new account with same properties']; 339 } 340 } 341 342 // Adds connection link, if needed 343 if (read_ec_conf('display_connection') == '1' and is_generic()) { 344 // Adds connection link 345 $template->assign( 346 'U_LOGIN', 347 get_root_url().'identification.php?redirect='.$_SERVER['REQUEST_URI'] 348 ); 344 $template->assign('U_REGISTER', get_root_url().'register.php'); 345 if ( 346 read_ec_conf('duplic_display') == '1' or ( 347 read_ec_conf('duplic_display') == '2' and 348 !is_generic() 349 ) 350 ) { 351 $lang['Register'] = $lang['Duplicate']; 352 $lang['Create a new account'] = 353 $lang['Create a new account with same properties']; 354 } 355 } 356 357 // Adds connection link, if needed 358 if (read_ec_conf('display_connection') == '1' and is_generic()) { 359 // Adds connection link 360 $template->assign( 361 'U_LOGIN', 362 get_root_url().'identification.php?redirect='.$_SERVER['REQUEST_URI'] 363 ); 364 } 349 365 } 350 366 } -
extensions/event_cats/maintain.inc.php
r4436 r7084 23 23 // +-----------------------------------------------------------------------+ 24 24 25 // Keeps file coded in UTF-8 without BOM 25 // Keeps file coded in UTF-8 without BOM: é 26 26 27 27 // *********************************************************************** 28 // ** maintain.inc.php : Installation page for Piwigo plugin Event Cats**28 // ** maintain.inc.php: Installation page for Piwigo plugin Event Cats ** 29 29 // *********************************************************************** 30 30 … … 42 42 global $prefixeTable; 43 43 44 pwg_query("DELETE FROM `".CONFIG_TABLE."` WHERE `param` = 'event_cats' LIMIT 1;"); 44 pwg_query(" 45 DELETE IGNORE FROM `".CONFIG_TABLE."` WHERE `param` = 'event_cats' LIMIT 1; 46 "); 45 47 return pwg_query('DROP TABLE IF EXISTS `'.$prefixeTable.'event_cats`;'); 46 48 } … … 72 74 73 75 /* 74 Explanations on table structure 76 Explanations on table structure: 75 77 76 code : the code used as "autolog" argument. If thie code provided by the 77 visitor does not exist in the table, the administrator can choose 78 whether the visitor is redirected to the home page (nothing 79 happens) or to the "access denied" page ; 80 user_id : the account concerned in following values ; 81 action : the action to perform : 82 ec_nok : code disabled : account not logged in, visitor (guest) redirected 83 to an explaining Additional Page (arg2 field). If Additional Page 84 plugin is not activated, redirection to the "access denied" page ; 85 ec_ok : code OK, account logged in. Redirection depends on arg1 and arg2 86 values. There are four cases : 87 arg1 and arg2 are both NULL : home page ; 88 arg1 not NULL and arg2 NULL : category ; 89 arg1 NULL and arg2 not NULL : Additional Page ; 90 arg1 and arg2 both not NULL : Image page. 91 If arg1 is a valid category id, and arg2 is not a valid image id, 92 redirection to category. In all other cases where the arg1 or arg2 93 is not valid, redirection to home page. 94 arg1 : (described above) ; 95 arg2 : (described above) ; 96 forced : allows the administrator to impose that, for certain codes, the 97 settings specified in the database ("action", "arg1", "arg2") are 98 applied, whatever can be the arguments given in the URL. 78 code : the code used as "autolog" argument. If thie code provided by the 79 visitor does not exist in the table, the administrator can choose 80 whether the visitor is redirected to the home page (nothing 81 happens) or to the "access denied" page; 82 user_id: the account concerned in following values; 83 action : the action to perform: 84 ec_nok: code disabled: account not logged in, visitor (guest) redirected 85 to an explaining Additional Page (arg2 field). If Additional Page 86 plugin is not activated, redirection to the "access denied" page; 87 ec_ok : code OK, account logged in. Redirection depends on arg1 and arg2 88 values. There are four cases: 89 arg1 and arg2 are both NULL: home page; 90 arg1 not NULL and arg2 NULL: category; 91 arg1 NULL and arg2 not NULL: Additional Page; 92 arg1 and arg2 both not NULL: Image page. 93 If arg1 is a valid category id, and arg2 is not a valid image id, 94 redirection to category. In all other cases where the arg1 or arg2 95 is not valid, redirection to home page. 96 arg1 : (described above); 97 arg2 : (described above); 98 forced : allows the administrator to impose that, for certain codes, the 99 settings specified in the database ("action", "arg1", "arg2") are 100 applied, whatever can be the arguments given in the URL; 101 comment: a reminder for the webmaster. 99 102 100 * As a precision 103 * As a precision: 101 104 in the PHP code, the "action" can also have the following values, so to 102 display accurate messages in the admin page 103 ec_nok_action_pb 104 105 106 107 108 code;109 ec_nok_userid_pb 110 111 112 impossible to log in using this code;113 ec_nok_userid_miss 114 the user ids table;115 ec_nok_ap_pb : not valid Additional Page id -> access denied;116 ec_ok_ap_pb : not valid Additional Page id -> home page;117 ec_ok_cat_pb : not valid category id -> home page;118 ec_ok_img_pb : not valid image id -> category page;105 display accurate messages in the admin page: 106 ec_nok_action_pb : the same "code" is used in more than one entries in the 107 DB (which is allowed) and is not always associated to 108 the same action ('ec_ok' in one or more entries, and 109 'ec_nok' in one or more other entries). This is 110 confusing and makes impossible to log in using this 111 code; 112 ec_nok_userid_pb : the same "code" is used in more than one entries in the 113 DB (which is allowed) and is not always associated to 114 the same user id. This is confusing and makes 115 impossible to log in using this code; 116 ec_nok_userid_miss: the user id associated to this code does not exist in 117 the user ids table; 118 ec_nok_ap_pb : not valid Additional Page id -> access denied; 119 ec_ok_ap_pb : not valid Additional Page id -> home page; 120 ec_ok_cat_pb : not valid category id -> home page; 121 ec_ok_img_pb : not valid image id -> category page; 119 122 120 123 _ the two main fields are "user_id" and "code", as the main purpose of the … … 124 127 _ though, even if "action", "user_id" and "code" are important, all of them 125 128 can be omitted (thus can be NULL), and both "user_id" and "code" can be 126 repeated (thus are not UNIQUE). This because 129 repeated (thus are not UNIQUE). This because: 127 130 _ the same code can automatically log in ("autolog") the same account 128 131 following several ways, depending on "cat", "img", and "ap" arguments of 129 the URL ; and thus different ways can be stored in the DB;132 the URL; and thus different ways can be stored in the DB; 130 133 _ a "disabled" code (the user tries to "autolog", but (s)he's not allowed 131 to) does not need a corresponding "user_id", thus "user_id" can be NULL 134 to) does not need a corresponding "user_id", thus "user_id" can be NULL; 132 135 _ "user_id" field is used to store groups ids when "code" is NULL, to 133 identify groups authorized to duplication 136 identify groups authorized to duplication; 134 137 _ "code" does not have the MySQL UNIQUE attribute, but it has to be unique 135 138 when the "forced" Event Cats parameter is true, which is the case when this
Note: See TracChangeset
for help on using the changeset viewer.