Changeset 9863 for extensions/typetags/admin.php
- Timestamp:
- Mar 26, 2011, 3:12:52 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/typetags/admin.php
r9829 r9863 1 1 <?php 2 3 2 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 3 4 4 load_language('plugin.lang', typetags_PATH); 5 5 6 6 function get_color_text($color) 7 7 { 8 9 10 11 12 13 14 elseif (strlen($color) == 4)15 16 17 18 19 20 21 8 if (strlen($color) == 7) 9 { 10 $rgb[] = hexdec(substr($color, 1, 2))/255; 11 $rgb[] = hexdec(substr($color, 3, 2))/255; 12 $rgb[] = hexdec(substr($color, 5, 2))/255; 13 } 14 else if (strlen($color) == 4) 15 { 16 $rgb[] = hexdec(substr($color, 1, 1))/15; 17 $rgb[] = hexdec(substr($color, 2, 1))/15; 18 $rgb[] = hexdec(substr($color, 3, 1))/15; 19 } 20 $l = (min($rgb) + max($rgb)) / 2; 21 return $l > 0.45 ? '#000' : '#fff'; 22 22 } 23 23 … … 26 26 // +-----------------------------------------------------------------------+ 27 27 28 if (isset($_POST['submit']) and !is_adviser()) 29 { 30 $typetag = mysql_escape_string($_POST['edited_typetag']); 31 $typetag_name = mysql_escape_string($_POST['typetag_name']); 32 $typetag_color = mysql_escape_string($_POST['typetag_color']); 33 34 $existing_names = array(); 35 36 $query = ' 37 SELECT id, name, color 38 FROM '.typetags_TABLE.' 39 ;'; 40 $result = pwg_query($query); 41 while ($row = mysql_fetch_array($result)) 42 { 43 array_push($existing_names, $row['name']); 44 if ($typetag == $row['id']) 45 { 46 $current_name = $row['name']; 47 $current_color = $row['color']; 48 } 49 } 50 51 // we must not rename typetag with an already existing name 52 if ($typetag_name != $current_name and in_array($typetag_name, $existing_names)) 53 { 54 array_push($page['errors'], l10n('typetags_already exists')); 55 56 $edited_typetag = array( 57 'id' => $typetag, 58 'name' => $typetag_name, 59 'color' => $typetag_color); 60 } 61 else 62 { 63 array_push($page['infos'], l10n('typetags_saved')); 64 65 mass_updates(typetags_TABLE, 66 array( 67 'primary' => array('id'), 68 'update' => array('name', 'color')), 69 array( 70 array( 71 'id' => $typetag, 72 'name' => $typetag_name, 73 'color' => $typetag_color))); 74 } 75 } 76 77 // +-----------------------------------------------------------------------+ 78 // | delete typetags | 79 // +-----------------------------------------------------------------------+ 80 81 if (isset($_POST['deletetypetag']) and isset($_POST['typetags']) and !is_adviser()) 82 { 83 $query = ' 84 SELECT name 85 FROM '.typetags_TABLE.' 86 WHERE id IN ('.implode(',', $_POST['typetags']).') 87 ;'; 88 $typetag_names = array_from_query($query, 'name'); 89 90 $query = ' UPDATE '. TAGS_TABLE .' 91 SET id_typetags = NULL 92 WHERE id_typetags IN ('.implode(',', $_POST['typetags']).') 93 ;'; 94 pwg_query($query); 95 96 $query = ' 97 DELETE 98 FROM '.typetags_TABLE.' 99 WHERE id IN ('.implode(',', $_POST['typetags']).') 100 ;'; 101 pwg_query($query); 102 103 array_push($page['infos'], 104 l10n_dec('typetag_suppr', 'typetags_suppr', count($typetag_names)) 105 .' : '.implode(', ', $typetag_names) 106 ); 28 if (isset($_POST['edittypetag']) and (empty($_POST['typetag_name']) or empty($_POST['typetag_color']))) 29 { 30 $edited_typetag = array( 31 'id' => $_POST['edited_typetag'], 32 'name' => $_POST['typetag_name'], 33 'color' => $_POST['typetag_color'], 34 ); 35 $page['errors'][] = l10n('typetag_error'); 36 } 37 else if (isset($_POST['edittypetag'])) 38 { 39 $typetag = mysql_escape_string($_POST['edited_typetag']); 40 $typetag_name = mysql_escape_string($_POST['typetag_name']); 41 $typetag_color = mysql_escape_string($_POST['typetag_color']); 42 43 $all_typetags = pwg_query(" 44 SELECT 45 id, 46 name, 47 color 48 FROM `". typetags_TABLE ."`; 49 "); 50 51 while ($row = mysql_fetch_array($all_typetags)) 52 { 53 $existing_names[] = $row['name']; 54 if ($typetag == $row['id']) 55 { 56 $current_name = $row['name']; 57 $current_color = $row['color']; 58 } 59 } 60 61 // we must not rename typetag with an already existing name 62 if ($typetag_name != $current_name AND in_array($typetag_name, $existing_names)) 63 { 64 $edited_typetag = array( 65 'id' => $typetag, 66 'name' => $typetag_name, 67 'color' => $typetag_color, 68 ); 69 70 $page['errors'][] = l10n('typetag_already_exists'); 71 } 72 else 73 { 74 pwg_query(" 75 UPDATE `". typetags_TABLE ."` SET 76 `name` = '". $typetag_name ."', 77 `color` = '". $typetag_color ."' 78 WHERE `id` = ". $typetag ."; 79 "); 80 81 $page['infos'][] = l10n('typetag_saved'); 82 } 83 } 84 85 // +-----------------------------------------------------------------------+ 86 // | delete typetags | 87 // +-----------------------------------------------------------------------+ 88 89 if (isset($_GET['deletetypetag'])) 90 { 91 $query = " 92 SELECT name 93 FROM `". typetags_TABLE ."` 94 WHERE id = ". $_GET['deletetypetag'] ."; 95 "; 96 $typetag_name = array_from_query($query, 'name'); 97 98 if (count($typetag_name) != 0) 99 { 100 pwg_query(" 101 UPDATE `". TAGS_TABLE ."` 102 SET id_typetags = NULL 103 WHERE id_typetags = ". $_GET['deletetypetag'] ."; 104 "); 105 106 pwg_query(" 107 DELETE FROM `". typetags_TABLE ."` 108 WHERE id = ". $_GET['deletetypetag'] ."; 109 "); 110 111 $page['infos'][] = l10n('typetag_suppr').' : '.$typetag_name[0]; 112 } 113 else 114 { 115 $page['errors'][] = l10n('typetag_unknown').' : '.$_GET['deletetypetag']; 116 } 107 117 } 108 118 … … 111 121 // +-----------------------------------------------------------------------+ 112 122 113 if (isset($_POST['addtypetag']) and (empty($_POST['add_typetag']) or empty ($_POST['hexval']))) 114 { 115 array_push($page['errors'], l10n('typetags_error')); 116 117 $template->assign('typetag', array( 118 'NAME' => isset($_POST['add_typetag']) ? $_POST['add_typetag'] : '', 119 'COLOR' => isset($_POST['hexval']) ? $_POST['hexval'] : '')); 120 } 121 elseif (isset($_POST['addtypetag']) and !empty($_POST['add_typetag']) and !empty ($_POST['hexval']) and !is_adviser()) 122 { 123 $typetag_name = $_POST['add_typetag']; 124 $typetag_color = $_POST['hexval']; 125 126 // does the tag already exists? 127 $query = ' 128 SELECT id 129 FROM '.typetags_TABLE.' 130 WHERE name = \''.$typetag_name.'\' 131 ;'; 132 $existing_tags = array_from_query($query, 'id'); 133 134 if (count($existing_tags) == 0) 135 { 136 mass_inserts( 137 typetags_TABLE, 138 array('name', 'color'), 139 array( 140 array( 141 'name' => $typetag_name, 142 'color' => $typetag_color, 143 ) 144 ) 145 ); 146 147 array_push($page['infos'], l10n('typetags_saved')); 148 } 149 else 150 { 151 array_push($page['errors'],l10n('typetags_already exists')); 152 153 $template->assign('typetag', array( 154 'NAME' => $typetag_name, 155 'COLOR' => $typetag_color)); 156 } 157 } 158 elseif (isset($_POST['add']) and !is_adviser()) 159 { 160 array_push($page['errors'], l10n('typetags_error')); 123 if (isset($_POST['addtypetag']) and (empty($_POST['typetag_name']) or empty($_POST['typetag_color']))) 124 { 125 $template->assign('typetag', array( 126 'NAME' => isset($_POST['typetag_name']) ? $_POST['typetag_name'] : '', 127 'COLOR' => isset($_POST['typetag_color']) ? $_POST['typetag_color'] : '', 128 )); 129 130 $page['errors'][] = l10n('typetag_error'); 131 } 132 else if (isset($_POST['addtypetag'])) 133 { 134 $typetag_name = $_POST['typetag_name']; 135 $typetag_color = $_POST['typetag_color']; 136 137 // does the tag already exists? 138 $query = " 139 SELECT id 140 FROM `". typetags_TABLE ."` 141 WHERE name = '". $typetag_name ."'; 142 "; 143 $existing_tags = array_from_query($query, 'id'); 144 145 if (count($existing_tags) == 0) 146 { 147 pwg_query(" 148 INSERT INTO `". typetags_TABLE ."`( 149 `name`, 150 `color` 151 ) 152 VALUES( 153 '". $typetag_name ."', 154 '". $typetag_color ."' 155 ); 156 "); 157 158 $page['infos'][] = l10n('typetag_saved'); 159 } 160 else 161 { 162 $template->assign('typetag', array( 163 'NAME' => $typetag_name, 164 'COLOR' => $typetag_color, 165 )); 166 167 $page['errors'][] = l10n('typetag_already_exists'); 168 } 161 169 } 162 170 … … 165 173 // +-----------------------------------------------------------------------+ 166 174 167 168 if (isset($_POST['associate']) AND !empty($_POST['assoc_tags']) AND ($_POST['typetaglist'] != 0)) 169 { 170 $typetag_id = $_POST['typetaglist']; 171 172 $query = ' UPDATE '. TAGS_TABLE .' 173 SET id_typetags = '. $typetag_id .' 174 WHERE id IN ('.implode(',', $_POST['assoc_tags']).') 175 ;'; 176 pwg_query($query); 177 178 array_push( 179 $page['infos'], 180 sprintf( 181 l10n('typetags_associated'), 182 stripslashes($typetag_id) 183 ) 184 ); 185 } 186 elseif (isset($_POST['associate']) and !is_adviser()) 187 { 188 array_push($page['errors'], l10n('error_associate')); 189 } 190 191 // +-----------------------------------------------------------------------+ 192 // | Dissociate Tag to Typetage | 193 // +-----------------------------------------------------------------------+ 194 195 if (isset($_POST['dissociate']) AND !empty($_POST['dissoc_tags']) and !is_adviser()) 196 { 197 $associated_tag_id = implode(',', $_POST['dissoc_tags']); 198 199 $query = ' UPDATE '. TAGS_TABLE .' 200 SET id_typetags = NULL 201 WHERE id IN (' . $associated_tag_id . ') 202 ;'; 203 pwg_query($query); 204 205 206 array_push($page['infos'], 207 sprintf(l10n('typetags_dissociated'), 208 stripslashes($associated_tag_id ) 209 ) 210 ); 211 } 212 elseif (isset($_POST['dissociate']) and !is_adviser()) 213 { 214 array_push($page['errors'], l10n('error_dissociate')); 215 } 175 if (isset($_POST['delete_all_assoc'])) 176 { 177 pwg_query("UPDATE `". TAGS_TABLE ."` SET id_typetags = NULL;"); 178 $page['infos'][] = l10n('All associations have been removed'); 179 180 } 181 else if (isset($_POST['associations'])) 182 { 183 // beautify the parameters array 184 $string = preg_replace('#[;]$#', '', $_POST['associations']); 185 $associations = array(); 186 $a = explode(';', $string); 187 188 foreach ($a as $s) 189 { 190 $v = explode(':', $s); 191 $associations[ltrim($v[0],'t-')] = ltrim($v[1],'tt-'); 192 } 193 194 // save associations 195 foreach ($associations AS $tag => $typetag) 196 { 197 pwg_query(" 198 UPDATE `". TAGS_TABLE ."` 199 SET id_typetags = ". $typetag ." 200 WHERE id = ". $tag ."; 201 "); 202 } 203 204 $page['infos'][] = l10n('typetags_associated'); 205 } 206 216 207 217 208 // +-----------------------------------------------------------------------+ … … 221 212 $template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/admin/typetags_admin.tpl')); 222 213 223 //Recupere les tags associés224 $query = '225 SELECT t.id , t.name, tt.color226 FROM ' . TAGS_TABLE . ' as t227 INNER JOIN ' .typetags_TABLE. ' as tt228 ON t.id_typetags = tt.id229 WHERE t.id_typetags is NOT NULL230 ORDER by t.id';231 $result = pwg_query($query);232 233 $tags = array();234 235 while ($row = mysql_fetch_assoc($result))236 {237 array_push($tags, $row);238 }239 240 usort($tags, 'name_compare');241 $template->assign('typetags_dissociation', $tags);242 243 214 // Récupère tous les tags 244 $query = ' 245 SELECT t.id , t.name, tt.color 246 FROM ' . TAGS_TABLE . ' as t 247 LEFT JOIN ' .typetags_TABLE.' as tt 248 ON t.id_typetags = tt.id'; 249 $result = pwg_query($query); 250 251 $tags = array(); 252 253 while ($row = mysql_fetch_assoc($result)) 254 { 255 array_push($tags, $row); 256 } 257 258 usort($tags, 'name_compare'); 259 $template->assign('typetags_association', $tags); 260 261 // +-----------------------------------------------------------------------+ 262 // | form creation | 263 // +-----------------------------------------------------------------------+ 264 265 $query = 'SELECT * FROM '.typetags_TABLE.';'; 266 $result = pwg_query($query); 267 $typetags = array(); 268 while ($row = mysql_fetch_assoc($result)) 269 { 270 $row['color_text'] = get_color_text($row['color']); 271 array_push($typetags, $row); 272 } 273 274 usort($typetags, 'name_compare'); 275 276 $template->assign('typetags_selection', $typetags); 277 278 if (isset($_POST['edittypetag']) and isset($_POST['typetags'])) 279 { 280 if (count($_POST['typetags']) > 1) 281 { 282 array_push($page['errors'], l10n('You should select only one Typetag to edit.')); 283 } 284 else 285 { 286 $edited_typetag['id'] = $_POST['typetags'][0]; 287 } 288 } 289 if (isset($edited_typetag)) 290 { 291 $template->assign('edited_typetag', $edited_typetag['id']); 292 293 $query = ' 294 SELECT id, name, color 295 FROM '.typetags_TABLE.' 296 WHERE id = '.$edited_typetag['id'].' 297 ;'; 298 $result = pwg_query($query); 299 while ($row = mysql_fetch_array($result)) 300 { 301 $template->assign('typetag', 302 array( 303 'ID' => $row['id'], 304 'OLD_NAME' => $row['name'], 305 'OLD_COLOR' => $row['color'], 306 'COLOR_TEXT' => get_color_text($row['color']), 307 'NAME' => isset($edited_typetag['name']) ? $edited_typetag['name'] : $row['name'], 308 'COLOR'=> isset($edited_typetag['color']) ? $edited_typetag['color'] : $row['color'])); 309 } 215 $all_tags = pwg_query(" 216 SELECT 217 t.id as tagid, 218 t.name as tagname, 219 tt.id as typetagid, 220 tt.name as typetagname 221 FROM `". TAGS_TABLE ."` as t 222 LEFT JOIN `". typetags_TABLE ."` as tt 223 ON t.id_typetags = tt.id 224 ORDER BY t.name ASC; 225 "); 226 227 while ($row = pwg_db_fetch_assoc($all_tags)) { 228 if ($row['typetagname'] == null) $row['typetagid'] = 'NULL'; 229 $template->append('typetags_association', $row); 230 } 231 232 // Récupère tous les typetags 233 $all_typetags = pwg_query("SELECT * FROM `". typetags_TABLE ."` ORDER BY `name`;"); 234 235 while ($row = mysql_fetch_assoc($all_typetags)) 236 { 237 $row['color_text'] = get_color_text($row['color']); 238 $row['u_edit'] = typetags_ADMIN . '&edittypetag=' . $row['id']; 239 $row['u_delete'] = typetags_ADMIN . '&deletetypetag=' . $row['id']; 240 241 $template->append('typetags_selection', $row); 242 } 243 244 // formualire d'édition 245 if (isset($_GET['edittypetag'])) { 246 $edited_typetag['id'] = $_GET['edittypetag']; 247 } 248 249 if (isset($edited_typetag['id'])) 250 { 251 $template->assign('edited_typetag', $edited_typetag['id']); 252 253 $tag = pwg_query(" 254 SELECT 255 id, 256 name, 257 color 258 FROM `". typetags_TABLE ."` 259 WHERE id = ".$edited_typetag['id']."; 260 "); 261 $row = pwg_db_fetch_assoc($tag); 262 263 $template->assign('typetag', array( 264 'ID' => $row['id'], 265 'OLD_NAME' => $row['name'], 266 'OLD_COLOR' => $row['color'], 267 'COLOR_TEXT' => get_color_text($row['color']), 268 'NAME' => isset($edited_typetag['name']) ? $edited_typetag['name'] : $row['name'], 269 'COLOR'=> isset($edited_typetag['color']) ? $edited_typetag['color'] : $row['color'], 270 )); 310 271 } 311 272 … … 314 275 // +-----------------------------------------------------------------------+ 315 276 277 $template->assign('typetags_ADMIN', typetags_ADMIN); 316 278 $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); 317 279
Note: See TracChangeset
for help on using the changeset viewer.