Changeset 1119
- Timestamp:
- Apr 3, 2006, 12:26:19 AM (18 years ago)
- Location:
- trunk
- Files:
-
- 7 added
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin.php
r1091 r1119 93 93 'U_RATING'=> $link_start.'rating', 94 94 'U_CADDIE'=> $link_start.'element_set&cat=caddie', 95 'U_TAGS'=> $link_start.'tags', 95 96 'U_THUMBNAILS'=> $link_start.'thumbnail', 96 97 'U_USERS'=> $link_start.'user_list', -
trunk/admin/element_set_global.php
r1092 r1119 45 45 46 46 // +-----------------------------------------------------------------------+ 47 // | functions |48 // +-----------------------------------------------------------------------+49 50 /**51 * returns the list of uniq keywords among given elements52 *53 * @param array element_ids54 */55 function get_elements_keywords($element_ids)56 {57 if (0 == count($element_ids))58 {59 return array();60 }61 62 $keywords = array();63 64 $query = '65 SELECT keywords66 FROM '.IMAGES_TABLE.'67 WHERE id IN ('.implode(',', $element_ids).')68 ;';69 $result = pwg_query($query);70 while ($row = mysql_fetch_array($result))71 {72 if (isset($row['keywords']) and !empty($row['keywords']))73 {74 $keywords = array_merge($keywords, explode(',', $row['keywords']));75 }76 }77 return array_unique($keywords);78 }79 80 // +-----------------------------------------------------------------------+81 47 // | global mode form submission | 82 48 // +-----------------------------------------------------------------------+ … … 112 78 } 113 79 80 if (isset($_POST['add_tags']) and count($collection) > 0) 81 { 82 add_tags($_POST['add_tags'], $collection); 83 } 84 85 if (isset($_POST['del_tags']) and count($collection) > 0) 86 { 87 $query = ' 88 DELETE 89 FROM '.IMAGE_TAG_TABLE.' 90 WHERE image_id IN ('.implode(',', $collection).') 91 AND tag_id IN ('.implode(',', $_POST['del_tags']).') 92 ;'; 93 pwg_query($query); 94 } 95 114 96 if ($_POST['associate'] != 0 and count($collection) > 0) 115 97 { … … 193 175 $dbfields = array('primary' => array('id'), 'update' => array()); 194 176 195 if (!empty($_POST['add_keywords']) or $_POST['remove_keyword'] != '0')196 {197 array_push($dbfields['update'], 'keywords');198 }199 200 177 $formfields = array('author', 'name', 'date_creation'); 201 178 foreach ($formfields as $formfield) … … 211 188 { 212 189 $query = ' 213 SELECT id , keywords190 SELECT id 214 191 FROM '.IMAGES_TABLE.' 215 192 WHERE id IN ('.implode(',', $collection).') … … 221 198 $data = array(); 222 199 $data['id'] = $row['id']; 223 224 if (!empty($_POST['add_keywords']))225 {226 $data['keywords'] =227 implode(228 ',',229 array_unique(230 array_merge(231 get_keywords(empty($row['keywords']) ? '' : $row['keywords']),232 get_keywords($_POST['add_keywords'])233 )234 )235 );236 }237 238 if ($_POST['remove_keyword'] != '0')239 {240 if (!isset($data['keywords']))241 {242 $data['keywords'] = empty($row['keywords']) ? '' : $row['keywords'];243 }244 245 $data['keywords'] =246 implode(247 ',',248 array_unique(249 array_diff(250 get_keywords($data['keywords']),251 array($_POST['remove_keyword'])252 )253 )254 );255 256 if ($data['keywords'] == '')257 {258 unset($data['keywords']);259 }260 }261 200 262 201 if ('set' == $_POST['author_action']) … … 385 324 } 386 325 387 $blockname = 'remove_keyword_option'; 388 389 $template->assign_block_vars( 390 $blockname, 391 array('VALUE'=> 0, 392 'OPTION' => '------------' 393 )); 394 395 $keywords = get_elements_keywords($page['cat_elements_id']); 396 397 foreach ($keywords as $keyword) 398 { 399 $template->assign_block_vars( 400 $blockname, 401 array('VALUE'=> $keyword, 402 'OPTION' => $keyword 403 )); 404 } 326 // add tags 327 $template->assign_vars( 328 array( 329 'ADD_TAG_SELECTION' => get_html_tag_selection(get_all_tags(), 'add_tags'), 330 ) 331 ); 332 333 // remove tags 334 $query = ' 335 SELECT tag_id, name, url_name, count(*) counter 336 FROM '.IMAGE_TAG_TABLE.' 337 INNER JOIN '.TAGS_TABLE.' ON tag_id = id 338 WHERE image_id IN ('.implode(',', $page['cat_elements_id']).') 339 GROUP BY tag_id 340 ORDER BY name ASC 341 ;'; 342 $result = pwg_query($query); 343 344 $tags = array(); 345 while($row = mysql_fetch_array($result)) 346 { 347 array_push($tags, $row); 348 } 349 350 $template->assign_vars( 351 array( 352 'DEL_TAG_SELECTION' => get_html_tag_selection($tags, 'del_tags'), 353 ) 354 ); 405 355 406 356 // creation date -
trunk/admin/element_set_unit.php
r1084 r1119 104 104 $data{'date_creation'} = $row['date_creation']; 105 105 } 106 107 $keywords = get_keywords($_POST['keywords-'.$row['id']]); 108 if (count($keywords) > 0) 109 { 110 $data{'keywords'} = implode(',', $keywords); 111 } 112 else 113 { 114 $data{'keywords'} = ''; 115 } 116 106 117 107 array_push($datas, $data); 108 109 // tags management 110 if (isset($_POST[ 'tags-'.$row['id'] ])) 111 { 112 set_tags($_POST[ 'tags-'.$row['id'] ], $row['id']); 113 } 118 114 } 119 115 … … 122 118 array( 123 119 'primary' => array('id'), 124 'update' => array('name','author','comment','date_creation' ,'keywords')120 'update' => array('name','author','comment','date_creation') 125 121 ), 126 122 $datas … … 193 189 $template->assign_vars(array('NAV_BAR' => $nav_bar)); 194 190 191 // tags 192 $all_tags = get_all_tags(); 195 193 196 194 $element_ids = array(); 197 195 198 196 $query = ' 199 SELECT id,path,tn_ext,name,date_creation,comment, keywords,author,file197 SELECT id,path,tn_ext,name,date_creation,comment,author,file 200 198 FROM '.IMAGES_TABLE.' 201 199 WHERE id IN ('.implode(',', $page['cat_elements_id']).') … … 211 209 212 210 $src = get_thumbnail_src($row['path'], @$row['tn_ext']); 211 212 $query = ' 213 SELECT tag_id 214 FROM '.IMAGE_TAG_TABLE.' 215 WHERE image_id = '.$row['id'].' 216 ;'; 217 $selected_tags = array_from_query($query, 'tag_id'); 213 218 214 219 // creation date … … 238 243 'DESCRIPTION' => @$row['comment'], 239 244 'DATE_CREATION_YEAR' => $year, 240 'KEYWORDS' => @$row['keywords'] 245 246 'TAG_SELECTION' => get_html_tag_selection( 247 $all_tags, 248 'tags-'.$row['id'], 249 $selected_tags 250 ), 241 251 ) 242 252 ); -
trunk/admin/include/functions.php
r1116 r1119 270 270 pwg_query($query); 271 271 272 // destruction of the links between images and tags 273 $query = ' 274 DELETE FROM '.IMAGE_TAG_TABLE.' 275 WHERE image_id IN ( 276 '.wordwrap(implode(', ', $ids), 80, "\n").') 277 ;'; 278 pwg_query($query); 279 272 280 // destruction of the favorites associated with the picture 273 281 $query = ' … … 575 583 return ''; 576 584 } 577 }578 579 /**580 * returns an array with relevant keywords found in the given string.581 *582 * Keywords must be separated by comma or space characters.583 *584 * @param string keywords_string585 * @return array586 */587 function get_keywords($keywords_string)588 {589 return590 array_unique(591 preg_split(592 '/[\s,]+/',593 $keywords_string594 )595 );596 585 } 597 586 … … 2095 2084 2096 2085 /** 2086 * Set tags to an image. Warning: given tags are all tags associated to the 2087 * image, not additionnal tags. 2088 * 2089 * @param array tag ids 2090 * @param int image id 2091 * @return void 2092 */ 2093 function set_tags($tags, $image_id) 2094 { 2095 $query = ' 2096 DELETE 2097 FROM '.IMAGE_TAG_TABLE.' 2098 WHERE image_id = '.$image_id.' 2099 ;'; 2100 pwg_query($query); 2101 2102 if (count($tags) > 0) 2103 { 2104 $inserts = array(); 2105 foreach ($tags as $tag_id) 2106 { 2107 array_push( 2108 $inserts, 2109 array( 2110 'tag_id' => $tag_id, 2111 'image_id' => $image_id 2112 ) 2113 ); 2114 } 2115 mass_inserts( 2116 IMAGE_TAG_TABLE, 2117 array_keys($inserts[0]), 2118 $inserts 2119 ); 2120 } 2121 } 2122 2123 /** 2124 * Add new tags to a set of images. 2125 * 2126 * @param array tag ids 2127 * @param array image ids 2128 * @return void 2129 */ 2130 function add_tags($tags, $images) 2131 { 2132 if (count($tags) == 0 or count($tags) == 0) 2133 { 2134 return; 2135 } 2136 2137 // we can't insert twice the same {image_id,tag_id} so we must first 2138 // delete lines we'll insert later 2139 $query = ' 2140 DELETE 2141 FROM '.IMAGE_TAG_TABLE.' 2142 WHERE image_id IN ('.implode(',', $images).') 2143 AND tag_id IN ('.implode(',', $tags).') 2144 ;'; 2145 pwg_query($query); 2146 2147 $inserts = array(); 2148 foreach ($images as $image_id) 2149 { 2150 foreach ($tags as $tag_id) 2151 { 2152 array_push( 2153 $inserts, 2154 array( 2155 'image_id' => $image_id, 2156 'tag_id' => $tag_id, 2157 ) 2158 ); 2159 } 2160 } 2161 mass_inserts( 2162 IMAGE_TAG_TABLE, 2163 array_keys($inserts[0]), 2164 $inserts 2165 ); 2166 } 2167 2168 function tag_id_from_tag_name($tag_name) 2169 { 2170 global $page; 2171 2172 if (isset($page['tag_id_from_tag_name_cache'][$tag_name])) 2173 { 2174 return $page['tag_id_from_tag_name_cache'][$tag_name]; 2175 } 2176 2177 if (function_exists('mysql_real_escape_string')) 2178 { 2179 $tag_name = mysql_real_escape_string($tag_name); 2180 } 2181 else 2182 { 2183 $tag_name = mysql_escape_string($tag_name); 2184 } 2185 2186 // does the tag already exist? 2187 $query = ' 2188 SELECT id 2189 FROM '.TAGS_TABLE.' 2190 WHERE name = \''.$tag_name.'\' 2191 ;'; 2192 $existing_tags = array_from_query($query, 'id'); 2193 2194 if (count($existing_tags) == 0) 2195 { 2196 mass_inserts( 2197 TAGS_TABLE, 2198 array('name', 'url_name'), 2199 array( 2200 array( 2201 'name' => $tag_name, 2202 'url_name' => str2url($tag_name), 2203 ) 2204 ) 2205 ); 2206 2207 $page['tag_id_from_tag_name_cache'][$tag_name] = mysql_insert_id(); 2208 } 2209 else 2210 { 2211 $page['tag_id_from_tag_name_cache'][$tag_name] = $existing_tags[0]; 2212 } 2213 2214 return $page['tag_id_from_tag_name_cache'][$tag_name]; 2215 } 2216 2217 function set_tags_of($tags_of) 2218 { 2219 if (count($tags_of) > 0) 2220 { 2221 $query = ' 2222 DELETE 2223 FROM '.IMAGE_TAG_TABLE.' 2224 WHERE image_id IN ('.implode(',', array_keys($tags_of)).') 2225 ;'; 2226 pwg_query($query); 2227 2228 $inserts = array(); 2229 2230 foreach ($tags_of as $image_id => $tag_ids) 2231 { 2232 foreach ($tag_ids as $tag_id) 2233 { 2234 array_push( 2235 $inserts, 2236 array( 2237 'image_id' => $image_id, 2238 'tag_id' => $tag_id, 2239 ) 2240 ); 2241 } 2242 } 2243 2244 mass_inserts( 2245 IMAGE_TAG_TABLE, 2246 array_keys($inserts[0]), 2247 $inserts 2248 ); 2249 } 2250 } 2251 2252 /** 2097 2253 * Do maintenance on all PWG tables 2098 2254 * … … 2144 2300 2145 2301 } 2146 2147 2148 2302 ?> -
trunk/admin/include/functions_metadata.php
r1064 r1119 51 51 if (isset($iptc['keywords'])) 52 52 { 53 // keywords separator is the comma, nothing else. Allowed characters in 54 // keywords : [A-Za-z0-9], "-" and "_". All other characters will be 55 // considered as separators 56 $iptc['keywords'] = preg_replace('/[^\w-]+/', ',', $iptc['keywords']); 53 // keywords separator is the comma 57 54 $iptc['keywords'] = preg_replace('/^,+|,+$/', '', $iptc['keywords']); 58 55 } … … 91 88 92 89 $datas = array(); 90 $tags_of = array(); 93 91 94 92 foreach ($files as $id => $file) … … 124 122 foreach (array_keys($iptc) as $key) 125 123 { 126 $data[$key] = addslashes($iptc[$key]); 124 if ($key == 'keywords' or $key == 'tags') 125 { 126 if (!isset($tags_of[$id])) 127 { 128 $tags_of[$id] = array(); 129 } 130 131 foreach (explode(',', $iptc[$key]) as $tag_name) 132 { 133 array_push( 134 $tags_of[$id], 135 tag_id_from_tag_name($tag_name) 136 ); 137 } 138 } 139 else 140 { 141 $data[$key] = addslashes($iptc[$key]); 142 } 127 143 } 128 144 } … … 158 174 array_merge( 159 175 $update_fields, 160 array_keys($conf['use_iptc_mapping']) 176 array_diff( 177 array_keys($conf['use_iptc_mapping']), 178 array('tags', 'keywords') 179 ) 161 180 ); 162 181 } … … 167 186 'update' => array_unique($update_fields) 168 187 ); 188 echo '<pre>'; print_r($datas); echo '</pre>'; 169 189 mass_updates(IMAGES_TABLE, $fields, $datas); 170 190 } 191 192 set_tags_of(tags_of); 171 193 } 172 194 -
trunk/admin/picture_modify.php
r1092 r1119 101 101 } 102 102 103 $keywords = get_keywords($_POST['keywords']);104 if (count($keywords) > 0)105 {106 $data{'keywords'} = implode(',', $keywords);107 }108 else109 {110 $data{'keywords'} = '';111 }112 113 103 mass_updates( 114 104 IMAGES_TABLE, … … 120 110 ); 121 111 112 set_tags( 113 isset($_POST['tags']) ? $_POST['tags'] : array(), 114 $_GET['image_id'] 115 ); 116 122 117 array_push($page['infos'], l10n('Picture informations updated')); 123 118 } … … 216 211 $image_file = $row['file']; 217 212 213 // tags 214 $query = ' 215 SELECT tag_id 216 FROM '.IMAGE_TAG_TABLE.' 217 WHERE image_id = '.$_GET['image_id'].' 218 ;'; 219 $selected_tags = array_from_query($query, 'tag_id'); 220 218 221 // Navigation path 219 222 … … 258 261 'CREATION_DATE' => $date, 259 262 260 'KEYWORDS' => 261 isset($_POST['keywords']) ? 262 stripslashes($_POST['keywords']) : @$row['keywords'], 263 'TAG_SELECTION' => get_html_tag_selection( 264 get_all_tags(), 265 'tags', 266 $selected_tags 267 ), 263 268 264 269 'DESCRIPTION' => -
trunk/admin/site_update.php
r1107 r1119 716 716 $start = get_moment(); 717 717 $datas = array(); 718 $tags_of = array(); 718 719 foreach ( $files as $id=>$file ) 719 720 { … … 724 725 $data['id']=$id; 725 726 array_push($datas, $data); 727 728 foreach (array('keywords', 'tags') as $key) 729 { 730 if (isset($data[$key])) 731 { 732 if (!isset($tags_of[$id])) 733 { 734 $tags_of[$id] = array(); 735 } 736 737 foreach (explode(',', $data[$key]) as $tag_name) 738 { 739 array_push( 740 $tags_of[$id], 741 tag_id_from_tag_name($tag_name) 742 ); 743 } 744 } 745 } 726 746 } 727 747 else … … 730 750 } 731 751 } 732 $update_fields = $site_reader->get_update_attributes(); 733 $update_fields = array_merge($update_fields, array('date_metadata_update')); 734 $fields = 735 array( 736 'primary' => array('id'), 737 'update' => array_unique($update_fields) 738 ); 739 //print_r($datas); 740 if (!$simulate and count($datas)>0 ) 741 { 742 mass_updates(IMAGES_TABLE, $fields, $datas); 752 753 if (!$simulate) 754 { 755 if (count($datas) > 0) 756 { 757 mass_updates( 758 IMAGES_TABLE, 759 // fields 760 array( 761 'primary' => array('id'), 762 'update' => array_unique( 763 array_merge( 764 array_diff( 765 $site_reader->get_update_attributes(), 766 // keywords and tags fields are managed separately 767 array('keywords', 'tags') 768 ), 769 array('date_metadata_update')) 770 ) 771 ), 772 $datas 773 ); 774 } 775 set_tags_of($tags_of); 743 776 } 744 777 -
trunk/include/category_default.inc.php
r1098 r1119 80 80 $thumbnail_title .= ' : '.$row['filesize'].' KB'; 81 81 } 82 82 83 83 // link on picture.php page 84 84 $url = duplicate_picture_url( -
trunk/include/common.inc.php
r1117 r1119 149 149 { 150 150 ob_start();// buffer output so that cookies work 151 151 152 echo 152 153 '<p>' -
trunk/include/config_default.inc.php
r1116 r1119 440 440 441 441 // +-----------------------------------------------------------------------+ 442 // | tags | 443 // +-----------------------------------------------------------------------+ 444 445 // full_tag_cloud_items_number: number of tags to show in the full tag 446 // cloud. Only the most represented tags will be shown 447 $conf['full_tag_cloud_items_number'] = 200; 448 449 // tags_levels: number of levels to use for display. Each level is bind to a 450 // CSS class tagLevelX. 451 $conf['tags_levels'] = 10; 452 453 // +-----------------------------------------------------------------------+ 442 454 // | Notification by mail | 443 455 // +-----------------------------------------------------------------------+ … … 456 468 // Max mails sended on one pass 457 469 $conf['nbm_max_mails_send'] = 35; 458 459 470 ?> -
trunk/include/constants.php
r1072 r1119 71 71 define('USER_MAIL_NOTIFICATION_TABLE', $prefixeTable.'user_mail_notification'); 72 72 define('CATEGORIES_LINK_TABLE', $prefixeTable.'categories_link'); 73 define('TAGS_TABLE', $prefixeTable.'tags'); 74 define('IMAGE_TAG_TABLE', $prefixeTable.'image_tag'); 73 75 ?> -
trunk/include/functions.inc.php
r1113 r1119 32 32 include_once( PHPWG_ROOT_PATH .'include/functions_group.inc.php' ); 33 33 include_once( PHPWG_ROOT_PATH .'include/functions_html.inc.php' ); 34 include_once( PHPWG_ROOT_PATH .'include/functions_tag.inc.php' ); 34 35 include_once( PHPWG_ROOT_PATH .'include/functions_url.inc.php' ); 35 36 … … 268 269 return $picture_size; 269 270 } 271 272 /** 273 * simplify a string to insert it into an URL 274 * 275 * based on str2url function from Dotclear 276 * 277 * @param string 278 * @return string 279 */ 280 function str2url($str) 281 { 282 $str = strtr( 283 $str, 284 'ÀÁÂÃÄÅàáâãäåÇçÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûü¾ÝÿýÑñ', 285 'AAAAAAaaaaaaCcOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuYYyyNn' 286 ); 287 288 $str = str_replace('Æ', 'AE', $str); 289 $str = str_replace('æ', 'ae', $str); 290 $str = str_replace('¼', 'OE', $str); 291 $str = str_replace('½', 'oe', $str); 292 293 $str = preg_replace('/[^a-z0-9_\s\'\:\/\[\]-]/','',strtolower($str)); 294 $str = preg_replace('/[\s\'\:\/\[\]-]+/',' ',trim($str)); 295 $res = str_replace(' ','_',$str); 296 297 return $res; 298 } 299 270 300 //-------------------------------------------- PhpWebGallery specific functions 271 301 … … 830 860 return $available_upgrade_ids; 831 861 } 832 833 862 ?> -
trunk/include/functions_html.inc.php
r1113 r1119 6 6 // +-----------------------------------------------------------------------+ 7 7 // | branch : BSF (Best So Far) 8 // | file : $Id$9 8 // | last update : $Date$ 10 9 // | last modifier : $Author$ … … 496 495 497 496 /** 497 * Returns an HTML list of tags. It can be a multi select field or a list of 498 * checkboxes. 499 * 500 * @param string HTML field name 501 * @param array selected tag ids 502 * @return array 503 */ 504 function get_html_tag_selection( 505 $tags, 506 $fieldname, 507 $selecteds = array(), 508 $forbidden_categories = null 509 ) 510 { 511 global $conf; 512 513 $output = '<ul class="tagSelection">'; 514 foreach ($tags as $tag) 515 { 516 $output.= 517 '<li>' 518 .'<label>' 519 .'<input type="checkbox" name="'.$fieldname.'[]"' 520 .' value="'.$tag['tag_id'].'"' 521 ; 522 523 if (in_array($tag['tag_id'], $selecteds)) 524 { 525 $output.= ' checked="checked"'; 526 } 527 528 $output.= 529 ' />' 530 .' '.$tag['name'] 531 .'</label>' 532 .'</li>' 533 ."\n" 534 ; 535 } 536 $output.= '</ul>'; 537 538 return $output; 539 } 540 541 function name_compare($a, $b) 542 { 543 return strcmp($a['name'], $b['name']); 544 } 545 546 /** 498 547 * exits the current script (either exit or redirect) 499 548 */ -
trunk/include/functions_search.inc.php
r1113 r1119 85 85 $clauses = array(); 86 86 87 foreach (array('file','name','comment',' keywords','author') as $textfield)87 foreach (array('file','name','comment','author') as $textfield) 88 88 { 89 89 if (isset($search['fields'][$textfield])) … … 110 110 if (isset($search['fields']['allwords'])) 111 111 { 112 $fields = array('file', 'name', 'comment', ' keywords', 'author');112 $fields = array('file', 'name', 'comment', 'author'); 113 113 // in the OR mode, request bust be : 114 114 // ((field1 LIKE '%word1%' OR field2 LIKE '%word1%') … … 209 209 $search_clause = $where_separator; 210 210 211 if (isset($forbidden))212 {213 $search_clause.= "\n AND ".$forbidden;214 }215 216 211 return $search_clause; 217 212 } 218 213 214 /** 215 * returns the list of items corresponding to the search id 216 * 217 * @param int search id 218 * @return array 219 */ 220 function get_search_items($search_id) 221 { 222 $items = array(); 223 224 $search_clause = get_sql_search_clause($search_id); 225 226 if (!empty($search_clause)) 227 { 228 $query = ' 229 SELECT DISTINCT(id) 230 FROM '.IMAGES_TABLE.' 231 INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id 232 WHERE '.$search_clause.' 233 ;'; 234 $items = array_from_query($query, 'id'); 235 } 236 237 $search = get_search_array($search_id); 238 239 if (isset($search['fields']['tags'])) 240 { 241 $tag_items = get_image_ids_for_tags( 242 $search['fields']['tags']['words'], 243 $search['fields']['tags']['mode'] 244 ); 245 246 switch ($search['mode']) 247 { 248 case 'AND': 249 { 250 if (empty($search_clause)) 251 { 252 $items = $tag_items; 253 } 254 else 255 { 256 $items = array_intersect($items, $tag_items); 257 } 258 break; 259 } 260 case 'OR': 261 { 262 $items = array_unique( 263 array_merge( 264 $items, 265 $tag_items 266 ) 267 ); 268 break; 269 } 270 } 271 } 272 273 return $items; 274 } 219 275 ?> -
trunk/include/functions_url.inc.php
r1109 r1119 259 259 $section_string = ''; 260 260 261 $section_of = array( 262 'category' => 'categories', 263 'tags' => 'tags', 264 'list' => 'list', 265 'search' => 'search', 266 ); 267 268 foreach ($section_of as $param => $section) 269 { 270 if (isset($params[$param])) 271 { 272 $params['section'] = $section; 273 } 274 } 275 261 276 if (!isset($params['section'])) 262 277 { 263 if (isset($params['category']))264 {265 $params['section'] = 'categories';266 }267 else if (isset($params['tags']))268 {269 $params['section'] = 'tags';270 }271 else if (isset($params['list']))272 {273 $params['section'] = 'list';274 }275 else if (isset($params['search']))276 {277 $params['section'] = 'search';278 }279 }280 281 if (!isset($params['section']))282 {283 278 $params['section'] = 'categories'; 284 279 } … … 290 285 if (!isset($params['category'])) 291 286 { 292 //$section_string.= '/categories';287 $section_string.= '/categories'; 293 288 } 294 289 else … … 310 305 foreach ($params['tags'] as $tag) 311 306 { 312 $section_string.= '/'.$tag; 307 $section_string.= '/'.$tag['id']; 308 309 if (isset($tag['url_name'])) 310 { 311 $section_string.= '-'.$tag['url_name']; 312 } 313 313 } 314 314 -
trunk/include/functions_user.inc.php
r1117 r1119 634 634 return ($user['adviser'] == 'true'); 635 635 } 636 637 636 ?> -
trunk/include/section_init.inc.php
r1113 r1119 146 146 147 147 $next_token++; 148 149 for ($i = $next_token; ; $i++) 150 { 151 if (!isset($tokens[$i])) 152 { 153 break; 154 } 155 156 preg_match('/^(\d+)/', $tokens[$i], $matches); 148 $i = $next_token; 149 150 while (isset($tokens[$i])) 151 { 152 preg_match('/^(\d+)(?:-(.*))?/', $tokens[$i], $matches); 157 153 if (!isset($matches[1])) 158 154 { … … 166 162 } 167 163 } 168 array_push($page['tags'], $matches[1]); 164 165 array_push( 166 $page['tags'], 167 array( 168 'id' => $matches[1], 169 'url_name' => isset($matches[2]) ? $matches[2] : '', 170 ) 171 ); 172 173 $i++; 169 174 } 170 175 … … 226 231 } 227 232 228 for ($i = $next_token; ; $i++) 229 { 230 if (!isset($tokens[$i])) 231 { 232 break; 233 } 234 233 $i = $next_token; 234 235 while (isset($tokens[$i])) 236 { 235 237 if (preg_match('/^start-(\d+)/', $tokens[$i], $matches)) 236 238 { … … 241 243 { 242 244 $chronology_tokens = explode('-', $tokens[$i] ); 245 243 246 $page['chronology_field'] = $chronology_tokens[0]; 247 244 248 array_shift($chronology_tokens); 245 249 $page['chronology_style'] = $chronology_tokens[0]; 250 246 251 array_shift($chronology_tokens); 247 252 if ( count($chronology_tokens)>0 ) … … 256 261 } 257 262 } 263 264 $i++; 258 265 } 259 266 … … 339 346 } 340 347 // +-----------------------------------------------------------------------+ 348 // | tags section | 349 // +-----------------------------------------------------------------------+ 350 if ($page['section'] == 'tags') 351 { 352 $page['tag_ids'] = array(); 353 foreach ($page['tags'] as $tag) 354 { 355 array_push($page['tag_ids'], $tag['id']); 356 } 357 358 $items = get_image_ids_for_tags($page['tag_ids']); 359 360 // permissions depends on category, so to only keep images that are 361 // reachable to the connected user, we need to check category 362 // associations 363 if (!empty($user['forbidden_categories'])) 364 { 365 $query = ' 366 SELECT image_id 367 FROM '.IMAGE_CATEGORY_TABLE.' 368 WHERE image_id IN ('.implode(',', $items).') 369 AND '.$forbidden.' 370 ;'; 371 $items = array_unique( 372 array_from_query($query, 'image_id') 373 ); 374 } 375 376 // tag names 377 $query = ' 378 SELECT name, url_name, id 379 FROM '.TAGS_TABLE.' 380 WHERE id IN ('.implode(',', $page['tag_ids']).') 381 ;'; 382 $result = pwg_query($query); 383 $tag_infos = array(); 384 385 while ($row = mysql_fetch_array($result)) 386 { 387 $tag_infos[ $row['id'] ]['name'] = $row['name']; 388 $tag_infos[ $row['id'] ]['url_name'] = $row['url_name']; 389 } 390 391 $title = count($page['tags']) > 1 ? l10n('Tags') : l10n('Tag'); 392 $title.= ' '; 393 394 $tag_num = 1; 395 foreach ($page['tag_ids'] as $tag_id) 396 { 397 $title.= 398 ($tag_num++ > 1 ? ' + ' : '') 399 .'<a href="' 400 .make_index_url( 401 array( 402 'tags' => array( 403 array( 404 'id' => $tag_id, 405 'url_name' => $tag_infos[$tag_id]['url_name'], 406 ), 407 ) 408 ) 409 ) 410 .'">' 411 .$tag_infos[$tag_id]['name'] 412 .'</a>'; 413 } 414 415 $page = array_merge( 416 $page, 417 array( 418 'title' => $title, 419 'items' => array_values($items), 420 'thumbnails_include' => 'include/category_default.inc.php', 421 ) 422 ); 423 } 424 // +-----------------------------------------------------------------------+ 341 425 // | search section | 342 426 // +-----------------------------------------------------------------------+ … … 344 428 { 345 429 include_once( PHPWG_ROOT_PATH .'include/functions_search.inc.php' ); 430 346 431 $query = ' 347 432 SELECT DISTINCT(id) 348 433 FROM '.IMAGES_TABLE.' 349 434 INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id 350 WHERE '.get_sql_search_clause($page['search']).'435 WHERE id IN ('.implode(',', get_search_items($page['search'])).') 351 436 AND '.$forbidden.' 352 437 '.$conf['order_by'].' 353 ;'; 438 ;'; 354 439 355 440 $page = array_merge( -
trunk/index.php
r1117 r1119 222 222 } 223 223 } 224 //------------------------------------------------------------------------ tags 225 if ('tags' == $page['section']) 226 { 227 $template->assign_block_vars('tags', array()); 228 229 // display tags associated to currently tagged items, less current tags 230 $query = ' 231 SELECT tag_id, name, url_name, count(*) counter 232 FROM '.IMAGE_TAG_TABLE.' 233 INNER JOIN '.TAGS_TABLE.' ON tag_id = id 234 WHERE image_id IN ('.implode(',', $items).') 235 AND tag_id NOT IN ('.implode(',', $page['tag_ids']).') 236 GROUP BY tag_id 237 ORDER BY name ASC 238 ;'; 239 $result = pwg_query($query); 240 241 $tags = array(); 242 243 while($row = mysql_fetch_array($result)) 244 { 245 array_push($tags, $row); 246 } 247 248 $tags = add_level_to_tags($tags); 249 250 foreach ($tags as $tag) 251 { 252 $template->assign_block_vars( 253 'tags.tag', 254 array( 255 'URL_ADD' => make_index_URL( 256 array( 257 'tags' => array_merge( 258 $page['tags'], 259 array( 260 array( 261 'id' => $tag['tag_id'], 262 'url_name' => $tag['url_name'], 263 ), 264 ) 265 ) 266 ) 267 ), 268 269 'URL' => make_index_URL( 270 array( 271 'tags' => array( 272 array( 273 'id' => $tag['tag_id'], 274 'url_name' => $tag['url_name'], 275 ), 276 ) 277 ) 278 ), 279 280 'NAME' => $tag['name'], 281 282 'TITLE' => l10n('See pictures linked to this tag only'), 283 284 'TITLE_ADD' => sprintf( 285 l10n('%d pictures are also linked to current tags'), 286 $tag['counter'] 287 ), 288 289 'CLASS' => 'tagLevel'.$tag['level'] 290 ) 291 ); 292 } 293 } 224 294 //---------------------------------------------------------- special categories 225 295 // favorites categories … … 333 403 } 334 404 405 // tags link 406 $template->assign_block_vars( 407 'summary', 408 array( 409 'TITLE' => l10n('See available tags'), 410 'NAME' => l10n('Tags'), 411 'U_SUMMARY'=> get_root_url().'tags.php', 412 ) 413 ); 414 335 415 // search link 336 416 $template->assign_block_vars( -
trunk/install/phpwebgallery_structure.sql
r1116 r1119 1 -- MySQL dump 9.112 1 -- MySQL dump 9.11 3 2 -- … … 147 146 148 147 -- 148 -- Table structure for table `phpwebgallery_image_tag` 149 -- 150 151 DROP TABLE IF EXISTS `phpwebgallery_image_tag`; 152 CREATE TABLE `phpwebgallery_image_tag` ( 153 `image_id` mediumint(8) unsigned NOT NULL default '0', 154 `tag_id` smallint(5) unsigned NOT NULL default '0', 155 PRIMARY KEY (`image_id`,`tag_id`) 156 ) TYPE=MyISAM; 157 158 -- 149 159 -- Table structure for table `phpwebgallery_images` 150 160 -- … … 164 174 `width` smallint(9) unsigned default NULL, 165 175 `height` smallint(9) unsigned default NULL, 166 `keywords` varchar(255) default NULL,167 `storage_category_id` smallint(5) unsigned default NULL,168 176 `representative_ext` varchar(4) default NULL, 169 177 `date_metadata_update` date default NULL, … … 173 181 PRIMARY KEY (`id`), 174 182 KEY `images_i2` (`date_available`), 175 KEY `images_i1` (`storage_category_id`),176 183 KEY `images_i3` (`average_rate`), 177 184 KEY `images_i4` (`hit`), … … 230 237 231 238 -- 239 -- Table structure for table `phpwebgallery_tags` 240 -- 241 242 DROP TABLE IF EXISTS `phpwebgallery_tags`; 243 CREATE TABLE `phpwebgallery_tags` ( 244 `id` smallint(5) unsigned NOT NULL auto_increment, 245 `name` varchar(255) binary NOT NULL default '', 246 `url_name` varchar(255) binary NOT NULL default '', 247 PRIMARY KEY (`id`) 248 ) TYPE=MyISAM; 249 250 -- 232 251 -- Table structure for table `phpwebgallery_upgrade` 233 252 -- … … 261 280 `need_update` enum('true','false') NOT NULL default 'true', 262 281 `forbidden_categories` text, 263 `nb_total_images` mediumint(8) unsigned ,282 `nb_total_images` mediumint(8) unsigned default NULL, 264 283 PRIMARY KEY (`user_id`) 265 284 ) TYPE=MyISAM; … … 297 316 `nb_image_line` tinyint(1) unsigned NOT NULL default '5', 298 317 `nb_line_page` tinyint(3) unsigned NOT NULL default '3', 299 `status` enum('webmaster', 'admin', 'normal', 'generic','guest') NOT NULL default 'guest',318 `status` enum('webmaster','admin','normal','generic','guest') NOT NULL default 'guest', 300 319 `adviser` enum('true','false') NOT NULL default 'false', 301 320 `language` varchar(50) NOT NULL default 'english', -
trunk/language/en_UK.iso-8859-1/admin.lang.php
r1116 r1119 41 41 $lang['A new version of PhpWebGallery is available.'] = 'A new version of PhpWebGallery is available.'; 42 42 $lang['Actions'] = 'Actions'; 43 $lang['Add a tag'] = 'Add a tag'; 43 44 $lang['Add a user'] = 'Add a user'; 44 45 $lang['Add group'] = 'Add group'; … … 59 60 $lang['Controversy'] = 'Controversy'; 60 61 $lang['Creation date'] = 'Creation date'; 62 $lang['Current name'] = 'Current name'; 61 63 $lang['Database'] = 'Database'; 62 64 $lang['Delete Representant'] = 'Delete Representant'; 65 $lang['Delete selected tags'] = 'Delete selected tags'; 63 66 $lang['Delete selected users'] = 'Delete selected users'; 64 67 $lang['Deletions'] = 'Deletions'; … … 70 73 $lang['Does not represent'] = 'Does not represent'; 71 74 $lang['Edit all picture informations'] = 'Edit all picture informations'; 75 $lang['Edit selected tags'] = 'Edit selected tags'; 76 $lang['Edit tags'] = 'Edit tags'; 72 77 $lang['Elements'] = 'Elements'; 73 78 $lang['Empty caddie'] = 'Empty caddie'; … … 92 97 $lang['Manage permissions for group "%s"'] = 'Manage permissions for group "%s"'; 93 98 $lang['Manage permissions for user "%s"'] = 'Manage permissions for user "%s"'; 99 $lang['Manage tags'] = 'Manage tags'; 94 100 $lang['Maximum height of the pictures'] = 'Maximum height of the pictures'; 95 101 $lang['Maximum width of the pictures'] = 'Maximum width of the pictures'; … … 99 105 $lang['Move'] = 'Move'; 100 106 $lang['Name'] = 'Name'; 107 $lang['New name'] = 'New name'; 101 108 $lang['New parent category'] = 'New parent category'; 109 $lang['New tag'] = 'New tag'; 102 110 $lang['No'] = 'No'; 103 111 $lang['Number of comments per page'] = 'Number of comments per page'; … … 112 120 $lang['Order by'] = 'Order by'; 113 121 $lang['Other private categories'] = 'Other private categories'; 122 $lang['Page banner'] = 'Page banner'; 114 123 $lang['Parent category'] = 'Parent category'; 115 124 $lang['Path'] = 'Path'; … … 119 128 $lang['PhpWebGallery Administration'] = 'PhpWebGallery Administration'; 120 129 $lang['PhpWebGallery version'] = 'PhpWebGallery version'; 121 $lang['Page banner'] = 'Page banner';122 130 $lang['Picture informations updated'] = 'Picture informations updated'; 123 131 $lang['Position'] = 'Position'; … … 147 155 $lang['Submit'] = 'Submit'; 148 156 $lang['Sum of rates'] = 'Sum of rates'; 157 $lang['Tag selection'] = 'Tag selection'; 149 158 $lang['Take selected elements out of caddie'] = 'Take selected elements out of caddie'; 150 159 $lang['Unable to check for upgrade since allow_url_fopen is disabled.'] = 'Unable to check for upgrade since allow_url_fopen is disabled.'; … … 163 172 $lang['You need to confirm deletion'] = 'You need to confirm deletion'; 164 173 $lang['actions'] = 'Actions'; 165 $lang['properties'] = 'Properties'; 166 $lang['is_high_enabled'] = 'High definition'; 167 $lang['is_high_disabled'] = ''; 168 $lang['enabled_high'] = 'High definition enabled'; 174 $lang['add keywords'] = 'add keywords'; 175 $lang['add tags'] = 'add tags'; 169 176 $lang['adviser'] = 'Adviser'; 170 $lang['add keywords'] = 'add keywords';171 177 $lang['associate to category'] = 'associate to category'; 172 178 $lang['associate to group'] = 'associate to group'; … … 209 215 $lang['elements per page'] = 'elements per page'; 210 216 $lang['elements'] = 'elements'; 217 $lang['enabled_high'] = 'High definition enabled'; 211 218 $lang['file'] = 'file'; 212 219 $lang['filesize'] = 'filesize'; … … 225 232 $lang['history'] = 'History'; 226 233 $lang['instructions'] = 'Instructions'; 234 $lang['is_high_disabled'] = ''; 235 $lang['is_high_enabled'] = 'High definition'; 227 236 $lang['jump to category'] = 'jump to category'; 228 237 $lang['jump to image'] = 'jump to image'; … … 240 249 $lang['name'] = 'name'; 241 250 $lang['nbm_break_list_user'] = 'List of users to send mail is limited to %d. Others users are not listed.'; 242 $lang['nbm_nbm_break_send_mail'] = 'Sent mail is limited to %d send by pass. Others mails are skipped.'; 243 $lang['nbm_msg_no_mail_to_send'] = '%d mails were not sent.'; 244 $lang['nbm_msg_n_mails_sent'] = '%d mails were sent.'; 251 $lang['nbm_col_check_user_send_mail'] = 'To send ?'; 252 $lang['nbm_col_last_send'] = 'Last send'; 253 $lang['nbm_col_mail'] = 'email'; 254 $lang['nbm_col_user'] = 'User'; 255 $lang['nbm_complementary_mail_content'] = 'Complementary mail content'; 256 $lang['nbm_content_byebye'] = 'See you soon'; 257 $lang['nbm_content_goto'] = 'Go to %s %s.'; 258 $lang['nbm_content_hello'] = 'Hello %s'; 259 $lang['nbm_content_new_elements'] = 'New elements were added on %s'; 260 $lang['nbm_content_new_elements_between'] = 'New elements were added between %s and %s'; 261 $lang['nbm_content_subscribe_by_admin'] = 'You are subcribed by webmaster for the notification by mail'; 262 $lang['nbm_content_subscribe_by_himself'] = 'You are subcribed for the notification by mail'; 263 $lang['nbm_content_subscribe_link'] = 'To subscribe, click on %s .'; 264 $lang['nbm_content_subscribe_unsubscribe_contact'] = 'On problems or questions, send a message to %s.'; 265 $lang['nbm_content_unsubscribe_by_admin'] = 'You are unsubcribed by webmaster for the notification by mail'; 266 $lang['nbm_content_unsubscribe_by_himself'] = 'You are unsubcribed for the notification by mail'; 267 $lang['nbm_content_unsubscribe_link'] = 'To unsubscribe, click on %s .'; 268 $lang['nbm_info_send_mail_as'] = 'With blank value, gallery title will be used'; 269 $lang['nbm_item_notification'] = 'Notification'; 245 270 $lang['nbm_msg_error_sending_email_to'] = 'Error when sending email to %s [%s].'; 246 271 $lang['nbm_msg_mail_sent_to'] = 'Mail sent to %s [%s].'; 272 $lang['nbm_msg_n_mails_sent'] = '%d mails were sent.'; 273 $lang['nbm_msg_no_mail_to_send'] = '%d mails were not sent.'; 274 $lang['nbm_nbm_break_send_mail'] = 'Sent mail is limited to %d send by pass. Others mails are skipped.'; 275 $lang['nbm_no_mail_to_send'] = 'No mail to send.'; 276 $lang['nbm_no_user_available_to_send_L1'] = 'No user are available in order to send mail.'; 277 $lang['nbm_no_user_available_to_send_L2'] = 'A user is available, if the are news elements to notify'; 278 $lang['nbm_no_user_to send_notifications_by_mail'] = 'No user to send notifications by mail.'; 247 279 $lang['nbm_object_news'] = 'New elements added'; 248 280 $lang['nbm_object_subcribe'] = 'Subcribe of notification by mail'; 249 281 $lang['nbm_object_unsubcribe'] = 'Unsubcribe of notification by mail'; 250 $lang['nbm_content_hello'] = 'Hello %s'; 251 $lang['nbm_content_new_elements_between'] = 'New elements were added between %s and %s'; 252 $lang['nbm_content_new_elements'] = 'New elements were added on %s'; 253 $lang['nbm_content_goto'] = 'Go to %s %s.'; 254 $lang['nbm_content_subscribe_by_admin'] = 'You are subcribed by webmaster for the notification by mail'; 255 $lang['nbm_content_unsubscribe_by_admin'] = 'You are unsubcribed by webmaster for the notification by mail'; 256 $lang['nbm_content_subscribe_by_himself'] = 'You are subcribed for the notification by mail'; 257 $lang['nbm_content_unsubscribe_by_himself'] = 'You are unsubcribed for the notification by mail'; 258 $lang['nbm_content_byebye'] = 'See you soon'; 259 $lang['nbm_content_unsubscribe_link'] = 'To unsubscribe, click on %s .'; 260 $lang['nbm_content_subscribe_link'] = 'To subscribe, click on %s .'; 261 $lang['nbm_content_subscribe_unsubscribe_contact'] = 'On problems or questions, send a message to %s.'; 262 $lang['nbm_no_mail_to_send'] = 'No mail to send.'; 263 $lang['nbm_no_user_to send_notifications_by_mail'] = 'No user to send notifications by mail.'; 282 $lang['nbm_param_mode'] = 'Parameter'; 283 $lang['nbm_send_check_all'] = 'Check All'; 284 $lang['nbm_send_complementary_mail_content'] = 'Complementary mail content'; 285 $lang['nbm_send_detailed_content'] = 'Send detailed content'; 286 $lang['nbm_send_mail_as'] = 'Send mail as'; 264 287 $lang['nbm_send_mail_to_users'] = 'Send mail to users'; 288 $lang['nbm_send_mode'] = 'Send'; 289 $lang['nbm_send_options'] = 'Options'; 290 $lang['nbm_send_submit'] = 'Send'; 291 $lang['nbm_send_uncheck_all'] = 'Uncheck All'; 292 $lang['nbm_subscribe_col'] = 'Subscribed'; 293 $lang['nbm_subscribe_mode'] = 'Subscribe'; 294 $lang['nbm_title_param'] = 'Parameters'; 295 $lang['nbm_title_send'] = 'Select sendings'; 296 $lang['nbm_title_subscribe'] = 'Subscribe/unscribe users'; 297 $lang['nbm_unsubscribe_col'] = 'Unsubcribed'; 298 $lang['nbm_updated_param_count'] = '%d parameters are updated.'; 299 $lang['nbm_user_change_enabled_error_on_updated_data_count'] = '%d user(s) are not updated.'; 300 $lang['nbm_user_change_enabled_false'] = 'User %s [%s] removed of subscribe list.'; 301 $lang['nbm_user_change_enabled_true'] = 'User %s [%s] added to subscribe list.'; 302 $lang['nbm_user_change_enabled_updated_data_count'] = '%d user(s) are updated.'; 303 $lang['nbm_user_not_change_enabled_false'] = 'User %s [%s] not removed of subscribe list.'; 304 $lang['nbm_user_not_change_enabled_true'] = 'User %s [%s] not added to subscribe list.'; 265 305 $lang['nbm_user_x_added'] = 'User %s [%s] added.'; 266 $lang['nbm_item_notification'] = 'Notification';267 $lang['nbm_param_mode'] = 'Parameter';268 $lang['nbm_subscribe_mode'] = 'Subscribe';269 $lang['nbm_send_mode'] = 'Send';270 $lang['nbm_title_param'] = 'Parameters';271 $lang['nbm_updated_param_count'] = '%d parameters are updated.';272 $lang['nbm_send_mail_as'] = 'Send mail as';273 $lang['nbm_info_send_mail_as'] = 'With blank value, gallery title will be used';274 $lang['nbm_send_detailed_content'] = 'Send detailed content';275 $lang['nbm_complementary_mail_content'] = 'Complementary mail content';276 $lang['nbm_title_subscribe'] = 'Subscribe/unscribe users';277 306 $lang['nbm_warning_subscribe_unsubcribe'] = 'Warning, subscribe or unscribe send mails to users'; 278 $lang['nbm_subscribe_col'] = 'Subscribed';279 $lang['nbm_unsubscribe_col'] = 'Unsubcribed';280 $lang['nbm_no_user_available_to_send_L1'] = 'No user are available in order to send mail.';281 $lang['nbm_no_user_available_to_send_L2'] = 'A user is available, if the are news elements to notify';282 $lang['nbm_title_send'] = 'Select sendings';283 $lang['nbm_col_user'] = 'User';284 $lang['nbm_col_mail'] = 'email';285 $lang['nbm_col_last_send'] = 'Last send';286 $lang['nbm_col_check_user_send_mail'] = 'To send ?';287 $lang['nbm_send_options'] = 'Options';288 $lang['nbm_send_complementary_mail_content'] = 'Complementary mail content';289 $lang['nbm_send_submit'] = 'Send';290 $lang['nbm_send_check_all'] = 'Check All';291 $lang['nbm_send_uncheck_all'] = 'Uncheck All';292 $lang['nbm_user_change_enabled_true'] = 'User %s [%s] added to subscribe list.';293 $lang['nbm_user_change_enabled_false'] = 'User %s [%s] removed of subscribe list.';294 $lang['nbm_user_not_change_enabled_true'] = 'User %s [%s] not added to subscribe list.';295 $lang['nbm_user_not_change_enabled_false'] = 'User %s [%s] not removed of subscribe list.';296 $lang['nbm_user_change_enabled_updated_data_count'] = '%d user(s) are updated.';297 $lang['nbm_user_change_enabled_error_on_updated_data_count'] = '%d user(s) are not updated.';298 307 $lang['no_write_access'] = 'no write access'; 299 308 $lang['order_by'] = 'order by'; … … 304 313 $lang['pictures'] = 'pictures'; 305 314 $lang['private'] = 'private'; 315 $lang['properties'] = 'Properties'; 306 316 $lang['public'] = 'public'; 307 317 $lang['purge history'] = 'purge history'; 308 318 $lang['purge never used notification feeds'] = 'purge never used notification feeds'; 309 $lang['repair and optimize database'] = 'repair and optimize database';310 319 $lang['purge sessions'] = 'purge sessions'; 311 320 $lang['randomly represented'] = 'randomly represented'; … … 323 332 $lang['remote_site_uncorrect_url'] = 'Remote site url must start by http or https and must only contain characters among "/", "a-zA-Z0-9", "-" or "_"'; 324 333 $lang['remove keyword'] = 'remove keyword'; 334 $lang['remove tags'] = 'remove tags'; 335 $lang['repair and optimize database'] = 'repair and optimize database'; 325 336 $lang['selection'] = 'selection'; 326 337 $lang['set to'] = 'set to'; … … 443 454 $lang['user_id URL parameter is missing'] = 'user_id URL parameter is missing'; 444 455 $lang['user_status'] = 'User status'; 445 $lang['user_status_webmaster'] = 'Webmaster';446 456 $lang['user_status_admin'] = 'Administrator'; 447 $lang['user_status_normal'] = 'User';448 457 $lang['user_status_generic'] = 'Generic'; 449 458 $lang['user_status_guest'] = 'Guest'; 459 $lang['user_status_normal'] = 'User'; 460 $lang['user_status_webmaster'] = 'Webmaster'; 450 461 $lang['username'] = 'username'; 451 462 $lang['users'] = 'Users'; -
trunk/language/en_UK.iso-8859-1/common.lang.php
r1116 r1119 40 40 $lang['%d new elements'] = '%d new elements'; 41 41 $lang['%d new users'] = '%d new users'; 42 $lang['%d pictures are also linked to current tags'] = '%d pictures are also linked to current tags'; 42 43 $lang['%d waiting elements'] = '%d waiting elements'; 43 44 $lang['About'] = 'About'; 45 $lang['All tags must match'] = 'All tags must match'; 46 $lang['All tags'] = 'All tags'; 47 $lang['Any tag'] = 'Any tag'; 44 48 $lang['At least one listed rule must be satisfied.'] = 'At least one listed rule must be satisfied.'; 49 $lang['At least one tag must match'] = 'At least one tag must match'; 45 50 $lang['Author'] = 'Author'; 46 51 $lang['Average rate'] = 'Average rate'; … … 63 68 $lang['Enter your personnal informations'] = 'Enter your personnal informations'; 64 69 $lang['Error sending email'] = 'Error sending email'; 70 $lang['File name'] = 'File name'; 65 71 $lang['File'] = 'File'; 66 $lang['File name'] = 'File name';67 72 $lang['Filesize'] = 'Filesize'; 68 73 $lang['Filter and display'] = 'Filter and display'; … … 92 97 $lang['Profile'] = 'Profile'; 93 98 $lang['Quick connect'] = 'Quick connect'; 99 $lang['RSS feed'] = 'RSS feed'; 94 100 $lang['Rate'] = 'Rate'; 95 $lang['RSS feed'] = 'RSS feed';96 101 $lang['Register'] = 'Register'; 97 102 $lang['Registration'] = 'Registration'; 103 $lang['Related tags'] = 'Related tags'; 98 104 $lang['Reset'] = 'Reset'; 99 105 $lang['Retrieve password'] = 'Retrieve password'; 100 106 $lang['Search rules'] = 'Search rules'; 107 $lang['Search tags'] = 'Search tags'; 101 108 $lang['Search'] = 'Search'; 109 $lang['See available tags'] = 'See available tags'; 110 $lang['See pictures linked to this tag only'] = 'See pictures linked to this tag only'; 102 111 $lang['Send new password'] = 'Send new password'; 103 112 $lang['Since'] = 'Since'; 104 113 $lang['Sort by'] = 'Sort by'; 105 114 $lang['Sort order'] = 'Sort order'; 115 $lang['Tag'] = 'Tag'; 116 $lang['Tags'] = 'Tags'; 106 117 $lang['The RSS notification feed provides notification on news from this website : new pictures, updated categories, new comments. Use a RSS feed reader.'] = 'The RSS notification feed provides notification on news from this website : new pictures, updated categories, new comments. Use a RSS feed reader.'; 107 118 $lang['Unknown feed identifier'] = 'Unknown feed identifier'; 108 $lang['nbm_unknown_identifier'] = 'Unknown identifier';109 119 $lang['User comments'] = 'User comments'; 110 120 $lang['Username'] = 'Username'; … … 118 128 $lang['add_favorites_hint'] = 'Add this picture to your favorites'; 119 129 $lang['admin'] = 'Administration'; 130 $lang['adviser_mode_enabled'] = 'Adviser mode enabled'; 120 131 $lang['all'] = 'all'; 121 132 $lang['all_categories'] = 'all categories'; … … 136 147 $lang['calendar_picture_hint'] = 'displays pictures added on '; 137 148 $lang['calendar_view'] = 'View'; 149 $lang['chronology_monthly_calendar'] = 'Monthly calendar'; 138 150 $lang['chronology_monthly_list'] = 'Monthly list'; 139 $lang['chronology_monthly_calendar'] = 'Monthly calendar';140 151 $lang['chronology_weekly_list'] = 'Weekly list'; 141 152 $lang['click_to_redirect'] = 'Click here if your browser does not automatically forward you'; … … 212 223 $lang['maxwidth'] = 'Maximum width of the pictures'; 213 224 $lang['maxwidth_error'] = 'Maximum width must be a number superior to 50'; 225 $lang['mode_created_hint'] = 'displays a calendar by creation date'; 214 226 $lang['mode_normal_hint'] = 'return to normal view mode'; 215 $lang['mode_created_hint'] = 'displays a calendar by creation date';216 227 $lang['mode_posted_hint'] = 'displays a calendar by date posted'; 217 228 $lang['month'][10] = 'October'; … … 229 240 $lang['most_visited_cat'] = 'Most visited'; 230 241 $lang['most_visited_cat_hint'] = 'displays most visited pictures'; 242 $lang['nb_image_line_error'] = 'The number of images per row must be a not null scalar'; 231 243 $lang['nb_image_per_row'] = 'Number of images per row'; 232 $lang['nb_ image_line_error'] = 'The number of images per rowmust be a not null scalar';244 $lang['nb_line_page_error'] = 'The number of rows per page must be a not null scalar'; 233 245 $lang['nb_row_per_page'] = 'Number of rows per page'; 234 $lang['nb _line_page_error'] = 'The number of rows per page must be a not null scalar';246 $lang['nbm_unknown_identifier'] = 'Unknown identifier'; 235 247 $lang['never_rated'] = 'You\'ve never rated this item'; 236 248 $lang['new_password'] = 'New password'; … … 333 345 $lang['w_month'] = 'Month'; 334 346 $lang['yes'] = 'Yes'; 335 $lang['adviser_mode_enabled'] = 'Adviser mode enabled';336 347 ?> -
trunk/language/fr_FR.iso-8859-1/admin.lang.php
r1116 r1119 26 26 // +-----------------------------------------------------------------------+ 27 27 28 28 29 $lang['%d categories including %d physical and %d virtual'] = '%d catégories dont %d physiques et %d virtuelles'; 29 30 $lang['%d categories moved'] = '%d catégories déplacées'; … … 41 42 $lang['A new version of PhpWebGallery is available.'] = 'Une nouvelle version de PhpWebGallery est disponible.'; 42 43 $lang['Actions'] = 'Actions'; 44 $lang['Add a tag'] = 'Ajouter un tag'; 43 45 $lang['Add a user'] = 'Ajouter un utilisateur'; 44 46 $lang['Add group'] = 'Ajouter un groupe'; … … 59 61 $lang['Controversy'] = 'Controverse'; 60 62 $lang['Creation date'] = 'Date de création'; 63 $lang['Current name'] = 'Nom courant'; 61 64 $lang['Database'] = 'Base de données'; 62 65 $lang['Delete Representant'] = 'Supprimer le représentant'; 66 $lang['Delete selected tags'] = 'Supprimer les tags sélectionnés'; 63 67 $lang['Delete selected users'] = 'Supprimer les utilisateurs sélectionnés'; 64 68 $lang['Deletions'] = 'Suppressions'; … … 70 74 $lang['Does not represent'] = 'Ne représente pas'; 71 75 $lang['Edit all picture informations'] = 'Modifier toutes les informations liées à cette image'; 76 $lang['Edit selected tags'] = 'Editer les tags sélectionnés'; 77 $lang['Edit tags'] = 'Editer les tags'; 72 78 $lang['Elements'] = 'Éléments'; 73 79 $lang['Empty caddie'] = 'Vider le panier'; … … 92 98 $lang['Manage permissions for group "%s"'] = 'Gérer les permissions pour le groupe "%s"'; 93 99 $lang['Manage permissions for user "%s"'] = 'Gérer les permissions pour l\'utilisateur "%s"'; 100 $lang['Manage tags'] = 'Gérer les tags'; 94 101 $lang['Maximum height of the pictures'] = 'Hauteur maximum des images'; 95 102 $lang['Maximum width of the pictures'] = 'Largeur maximum des images'; … … 99 106 $lang['Move'] = 'Déplacer'; 100 107 $lang['Name'] = 'Nom'; 108 $lang['New name'] = 'Nouveau nom'; 101 109 $lang['New parent category'] = 'Nouvelle catégorie parente'; 110 $lang['New tag'] = 'Nouveau tag'; 102 111 $lang['No'] = 'Non'; 103 112 $lang['Number of comments per page'] = 'Nombre de commentaires utilisateur par page'; … … 147 156 $lang['Submit'] = 'Valider'; 148 157 $lang['Sum of rates'] = 'Somme des notes'; 158 $lang['Tag selection'] = 'Sélection de tags'; 149 159 $lang['Take selected elements out of caddie'] = 'Sortir les éléments sélectionnés du panier'; 150 160 $lang['Unable to check for upgrade since allow_url_fopen is disabled.'] = 'Impossible de connaître la dernière version cat la fonction allow_url_fopen est désactivée.'; … … 163 173 $lang['You need to confirm deletion'] = 'Vous devez confirmer la suppression'; 164 174 $lang['actions'] = 'Actions'; 165 $lang['properties'] = 'Propriétés'; 166 $lang['is_high_enabled'] = 'Haute définition'; 167 $lang['is_high_disabled'] = ''; 168 $lang['enabled_high'] = 'Haute définition actif'; 175 $lang['add keywords'] = 'ajouter des mots-clef'; 176 $lang['add tags'] = 'ajouter les tags'; 169 177 $lang['adviser'] = 'Conseiller'; 170 $lang['add keywords'] = 'ajouter des mots-clef';171 178 $lang['associate to category'] = 'associer à la catégorie'; 172 179 $lang['associate to group'] = 'associer au groupe'; … … 209 216 $lang['elements per page'] = 'éléments par page'; 210 217 $lang['elements'] = 'éléments'; 218 $lang['enabled_high'] = 'Haute définition actif'; 211 219 $lang['file'] = 'fichier'; 212 220 $lang['filesize'] = 'poids'; … … 225 233 $lang['history'] = 'Historique'; 226 234 $lang['instructions'] = 'Instructions'; 235 $lang['is_high_disabled'] = ''; 236 $lang['is_high_enabled'] = 'Haute définition'; 227 237 $lang['jump to category'] = 'se rendre dans la catégorie'; 228 238 $lang['jump to image'] = 'se rendre à l\'image'; … … 240 250 $lang['name'] = 'nom'; 241 251 $lang['nbm_break_list_user'] = 'La liste des utilisateurs pour l\'envoi est limitéé à %d. Les autres utilisateurs ne sont pas listés.'; 242 $lang['nbm_nbm_break_send_mail'] = 'Les mails envoyés sont limités à %d envois d\'une seule passe. Les autres envois de mail ont été ignorés.'; 243 $lang['nbm_msg_no_mail_to_send'] = '%s mails n\'ont pas été envoyés.'; 244 $lang['nbm_msg_n_mails_sent'] = '%s mails ont été envoyés.'; 252 $lang['nbm_col_check_user_send_mail'] = 'A envoyer ?'; 253 $lang['nbm_col_last_send'] = 'Dernier envoi'; 254 $lang['nbm_col_mail'] = 'email'; 255 $lang['nbm_col_user'] = 'Utilisateur'; 256 $lang['nbm_complementary_mail_content'] = 'Contenu complémentaire au mail'; 257 $lang['nbm_content_byebye'] = 'A bientôt'; 258 $lang['nbm_content_goto'] = 'Rendez-vous sur %s %s.'; 259 $lang['nbm_content_hello'] = 'Bonjour %s'; 260 $lang['nbm_content_new_elements'] = 'Des nouveaux éléments ont été ajoutés le %s'; 261 $lang['nbm_content_new_elements_between'] = 'Des nouveaux éléments ont été ajoutés entre le %s et le %s'; 262 $lang['nbm_content_subscribe_by_admin'] = 'Vous venez d\'être inscrit par le webmestre du site pour revevoir la notification par mail.'; 263 $lang['nbm_content_subscribe_by_himself'] = 'Vous venez de vous inscrire pour revevoir la notification par mail.'; 264 $lang['nbm_content_subscribe_link'] = 'Pour vous inscrire, cliquez sur %s .'; 265 $lang['nbm_content_subscribe_unsubscribe_contact'] = 'En cas de problèmes ou de questions, envoyer un mail à %s.'; 266 $lang['nbm_content_unsubscribe_by_admin'] = 'Vous venez d\'être désinscrit par le webmestre du site pour revevoir la notification par mail.'; 267 $lang['nbm_content_unsubscribe_by_himself'] = 'Vous venez de vous désinscrire pour revevoir la notification par mail.'; 268 $lang['nbm_content_unsubscribe_link'] = 'Pour vous désinscrire, cliquez sur %s .'; 269 $lang['nbm_info_send_mail_as'] = 'Sans valeur, le titre de la galerie sera utilisé'; 270 $lang['nbm_item_notification'] = 'Notification'; 245 271 $lang['nbm_msg_error_sending_email_to'] = 'Erreur lors de l\'envoi du mail à %s [%s].'; 246 272 $lang['nbm_msg_mail_sent_to'] = 'Mail envoyé à %s [%s].'; 273 $lang['nbm_msg_n_mails_sent'] = '%s mails ont été envoyés.'; 274 $lang['nbm_msg_no_mail_to_send'] = '%s mails n\'ont pas été envoyés.'; 275 $lang['nbm_nbm_break_send_mail'] = 'Les mails envoyés sont limités à %d envois d\'une seule passe. Les autres envois de mail ont été ignorés.'; 276 $lang['nbm_no_mail_to_send'] = 'Pas de mail à envoyer.'; 277 $lang['nbm_no_user_available_to_send_L1'] = 'Il n\'y a pas d\'utilisateur à notifier par mail.'; 278 $lang['nbm_no_user_available_to_send_L2'] = 'Un utilisateur est à notifier si de nouveaux éléments sont disponibles pour cet utilisateur.'; 279 $lang['nbm_no_user_to send_notifications_by_mail'] = 'Pas d\'utilisateur pour envoyer des notifications par mails.'; 247 280 $lang['nbm_object_news'] = 'Nouveaux éléments ajoutés'; 248 281 $lang['nbm_object_subcribe'] = 'Inscription à la notification par mail'; 249 282 $lang['nbm_object_unsubcribe'] = 'Désinscription à la notification par mail'; 250 $lang['nbm_content_hello'] = 'Bonjour %s'; 251 $lang['nbm_content_new_elements_between'] = 'Des nouveaux éléments ont été ajoutés entre le %s et le %s'; 252 $lang['nbm_content_new_elements'] = 'Des nouveaux éléments ont été ajoutés le %s'; 253 $lang['nbm_content_goto'] = 'Rendez-vous sur %s %s.'; 254 $lang['nbm_content_subscribe_by_admin'] = 'Vous venez d\'être inscrit par le webmestre du site pour revevoir la notification par mail.'; 255 $lang['nbm_content_unsubscribe_by_admin'] = 'Vous venez d\'être désinscrit par le webmestre du site pour revevoir la notification par mail.'; 256 $lang['nbm_content_subscribe_by_himself'] = 'Vous venez de vous inscrire pour revevoir la notification par mail.'; 257 $lang['nbm_content_unsubscribe_by_himself'] = 'Vous venez de vous désinscrire pour revevoir la notification par mail.'; 258 $lang['nbm_content_byebye'] = 'A bientôt'; 259 $lang['nbm_content_unsubscribe_link'] = 'Pour vous désinscrire, cliquez sur %s .'; 260 $lang['nbm_content_subscribe_link'] = 'Pour vous inscrire, cliquez sur %s .'; 261 $lang['nbm_content_subscribe_unsubscribe_contact'] = 'En cas de problèmes ou de questions, envoyer un mail à %s.'; 262 $lang['nbm_no_mail_to_send'] = 'Pas de mail à envoyer.'; 263 $lang['nbm_no_user_to send_notifications_by_mail'] = 'Pas d\'utilisateur pour envoyer des notifications par mails.'; 283 $lang['nbm_param_mode'] = 'Paramètrage'; 284 $lang['nbm_send_check_all'] = 'Tout cocher'; 285 $lang['nbm_send_complementary_mail_content'] = 'Contenu complémentaire du mail'; 286 $lang['nbm_send_detailed_content'] = 'Envoi d\'un contenu détaillé'; 287 $lang['nbm_send_mail_as'] = 'Envoyer le mail en tant que'; 264 288 $lang['nbm_send_mail_to_users'] = 'Envoi de mail aux utilisateurs'; 289 $lang['nbm_send_mode'] = 'Envoi'; 290 $lang['nbm_send_options'] = 'Options'; 291 $lang['nbm_send_submit'] = 'Envoyer'; 292 $lang['nbm_send_uncheck_all'] = 'Tout décocher'; 293 $lang['nbm_subscribe_col'] = 'Inscrits'; 294 $lang['nbm_subscribe_mode'] = 'Inscription'; 295 $lang['nbm_title_param'] = 'Paramètres'; 296 $lang['nbm_title_send'] = 'Sélection des envois'; 297 $lang['nbm_title_subscribe'] = 'Inscrire/desinscrire les utilisateurs'; 298 $lang['nbm_unsubscribe_col'] = 'Non Inscrits'; 299 $lang['nbm_updated_param_count'] = '%d paramètres ont été mis à jour.'; 300 $lang['nbm_user_change_enabled_error_on_updated_data_count'] = '%d utilisateurs n\'ont pas été mis à jour.'; 301 $lang['nbm_user_change_enabled_false'] = 'L\'utilisateur %s [%s] a été supprimé de la liste des inscrits.'; 302 $lang['nbm_user_change_enabled_true'] = 'L\'utilisateur %s [%s] a été ajouté à la liste des inscrits.'; 303 $lang['nbm_user_change_enabled_updated_data_count'] = '%d utilisateurs ont été mis à jour.'; 304 $lang['nbm_user_not_change_enabled_false'] = 'L\'utilisateur %s [%s] n\'a pas été supprimé de la liste des inscrits.'; 305 $lang['nbm_user_not_change_enabled_true'] = 'L\'utilisateur %s [%s] n\'a pas été ajouté à la liste des inscrits.'; 265 306 $lang['nbm_user_x_added'] = 'Utilisateur %s [%s] ajouté.'; 266 $lang['nbm_item_notification'] = 'Notification';267 $lang['nbm_param_mode'] = 'Paramètrage';268 $lang['nbm_subscribe_mode'] = 'Inscription';269 $lang['nbm_send_mode'] = 'Envoi';270 $lang['nbm_title_param'] = 'Paramètres';271 $lang['nbm_updated_param_count'] = '%d paramètres ont été mis à jour.';272 $lang['nbm_send_mail_as'] = 'Envoyer le mail en tant que';273 $lang['nbm_info_send_mail_as'] = 'Sans valeur, le titre de la galerie sera utilisé';274 $lang['nbm_send_detailed_content'] = 'Envoi d\'un contenu détaillé';275 $lang['nbm_complementary_mail_content'] = 'Contenu complémentaire au mail';276 $lang['nbm_title_subscribe'] = 'Inscrire/desinscrire les utilisateurs';277 307 $lang['nbm_warning_subscribe_unsubcribe'] = 'Attention, l\'inscription ou la desincription entraine l\'envoi de mails aux utilisateurs concernés'; 278 $lang['nbm_subscribe_col'] = 'Inscrits';279 $lang['nbm_unsubscribe_col'] = 'Non Inscrits';280 $lang['nbm_no_user_available_to_send_L1'] = 'Il n\'y a pas d\'utilisateur à notifier par mail.';281 $lang['nbm_no_user_available_to_send_L2'] = 'Un utilisateur est à notifier si de nouveaux éléments sont disponibles pour cet utilisateur.';282 $lang['nbm_title_send'] = 'Sélection des envois';283 $lang['nbm_col_user'] = 'Utilisateur';284 $lang['nbm_col_mail'] = 'email';285 $lang['nbm_col_last_send'] = 'Dernier envoi';286 $lang['nbm_col_check_user_send_mail'] = 'A envoyer ?';287 $lang['nbm_send_options'] = 'Options';288 $lang['nbm_send_complementary_mail_content'] = 'Contenu complémentaire du mail';289 $lang['nbm_send_submit'] = 'Envoyer';290 $lang['nbm_send_check_all'] = 'Tout cocher';291 $lang['nbm_send_uncheck_all'] = 'Tout décocher';292 $lang['nbm_user_change_enabled_true'] = 'L\'utilisateur %s [%s] a été ajouté à la liste des inscrits.';293 $lang['nbm_user_change_enabled_false'] = 'L\'utilisateur %s [%s] a été supprimé de la liste des inscrits.';294 $lang['nbm_user_not_change_enabled_true'] = 'L\'utilisateur %s [%s] n\'a pas été ajouté à la liste des inscrits.';295 $lang['nbm_user_not_change_enabled_false'] = 'L\'utilisateur %s [%s] n\'a pas été supprimé de la liste des inscrits.';296 $lang['nbm_user_change_enabled_updated_data_count'] = '%d utilisateurs ont été mis à jour.';297 $lang['nbm_user_change_enabled_error_on_updated_data_count'] = '%d utilisateurs n\'ont pas été mis à jour.';298 308 $lang['no_write_access'] = 'pas d\'accès en écriture'; 299 309 $lang['order_by'] = 'trier selon'; … … 304 314 $lang['pictures'] = 'images'; 305 315 $lang['private'] = 'privée'; 316 $lang['properties'] = 'Propriétés'; 306 317 $lang['public'] = 'publique'; 307 318 $lang['purge history'] = 'purger l\'historique'; 308 319 $lang['purge never used notification feeds'] = 'purger les flux de notification jamais utilisés'; 309 $lang['repair and optimize database'] = 'réparer et optimiser la base de données';310 320 $lang['purge sessions'] = 'purger les sessions'; 311 321 $lang['randomly represented'] = 'représentant au hasard'; … … 323 333 $lang['remote_site_uncorrect_url'] = 'L\'URL d\'un site distant doit commencer par "http" ou "https" et ne doit contenir des caractères que parmi "/", "a-zA-Z0-9", "-" ou "_"'; 324 334 $lang['remove keyword'] = 'supprimer mot-clef'; 335 $lang['remove tags'] = 'supprimer les tags'; 336 $lang['repair and optimize database'] = 'réparer et optimiser la base de données'; 325 337 $lang['selection'] = 'sélection'; 326 338 $lang['set to'] = 'changer en'; … … 443 455 $lang['user_id URL parameter is missing'] = 'le paramètre d\'URL "user_id" manque'; 444 456 $lang['user_status'] = 'Statut de l\'utilisateur'; 445 $lang['user_status_webmaster'] = 'Webmestre';446 457 $lang['user_status_admin'] = 'Administrateur'; 447 $lang['user_status_normal'] = 'Visiteur';448 458 $lang['user_status_generic'] = 'Générique'; 449 459 $lang['user_status_guest'] = 'Invité'; 460 $lang['user_status_normal'] = 'Visiteur'; 461 $lang['user_status_webmaster'] = 'Webmestre'; 450 462 $lang['username'] = 'nom utilisateur'; 451 463 $lang['users'] = 'Utilisateurs'; -
trunk/language/fr_FR.iso-8859-1/common.lang.php
r1116 r1119 40 40 $lang['%d new elements'] = '%d nouveaux éléments'; 41 41 $lang['%d new users'] = '%d nouveaux utilisateurs'; 42 $lang['%d pictures are also linked to current tags'] = '%d images sont également liées aux tags courants'; 42 43 $lang['About'] = 'À propos'; 44 $lang['All tags must match'] = 'Tous les tags doivent correspondre'; 45 $lang['All tags'] = 'Tous les tags'; 46 $lang['Any tag'] = 'N\'importe quel tag'; 43 47 $lang['At least one listed rule must be satisfied.'] = 'Au moins un des critères doit être satisfait.'; 48 $lang['At least one tag must match'] = 'Au moins un tag doit correspondre'; 44 49 $lang['Author'] = 'Auteur'; 45 50 $lang['Average rate'] = 'Note moyenne'; … … 62 67 $lang['Enter your personnal informations'] = 'Entrer vos informations personnelles'; 63 68 $lang['Error sending email'] = 'Erreur à l\'envoi du mail'; 69 $lang['File name'] = 'Nom du fichier'; 64 70 $lang['File'] = 'Fichier'; 65 $lang['File name'] = 'Nom du fichier';66 71 $lang['Filesize'] = 'Poids'; 67 72 $lang['Filter and display'] = 'Filtrer et afficher'; … … 91 96 $lang['Profile'] = 'Profil'; 92 97 $lang['Quick connect'] = 'Connexion rapide'; 98 $lang['RSS feed'] = 'flux RSS'; 93 99 $lang['Rate'] = 'Note'; 94 $lang['RSS feed'] = 'flux RSS';95 100 $lang['Register'] = 'S\'enregistrer'; 96 101 $lang['Registration'] = 'Enregistrement'; 102 $lang['Related tags'] = 'Tags liés'; 97 103 $lang['Reset'] = 'Annuler'; 98 104 $lang['Retrieve password'] = 'Récupérer un mot de passe'; 99 105 $lang['Search rules'] = 'Critères de recherche'; 106 $lang['Search tags'] = 'Rechercher les tags'; 100 107 $lang['Search'] = 'Rechercher'; 108 $lang['See available tags'] = 'Voir les tags disponibles'; 109 $lang['See pictures linked to this tag only'] = 'Voir les images liées uniquement à ce tag'; 101 110 $lang['Send new password'] = 'Envoyer le nouveau mot de passe'; 102 111 $lang['Since'] = 'Depuis'; 103 112 $lang['Sort by'] = 'Trier selon'; 104 113 $lang['Sort order'] = 'Ordre de tri'; 114 $lang['Tag'] = 'Tag'; 115 $lang['Tags'] = 'Tags'; 105 116 $lang['The RSS notification feed provides notification on news from this website : new pictures, updated categories, new comments. Use a RSS feed reader.'] = 'Le flux RSS notifie les événements de la galerie : nouvelles images, catégories mises à jour, nouveaux commentaires utilisateur. À utiliser avec un lecteur de flux RSS.'; 106 117 $lang['Unknown feed identifier'] = 'Identifiant de flux inconnu'; 107 $lang['nbm_unknown_identifier'] = 'Identifiants inconnus';108 118 $lang['User comments'] = 'Commentaires utilisateur'; 109 119 $lang['Username'] = 'Nom d\'utilisateur'; … … 117 127 $lang['add_favorites_hint'] = 'Ajouter cette image à vos favoris'; 118 128 $lang['admin'] = 'Administration'; 129 $lang['adviser_mode_enabled'] = 'Mode conseiller actif'; 119 130 $lang['all'] = 'tout'; 120 131 $lang['all_categories'] = 'toutes les catégories'; … … 135 146 $lang['calendar_picture_hint'] = 'afficher les images du '; 136 147 $lang['calendar_view'] = 'Vue'; 148 $lang['chronology_monthly_calendar'] = 'Calendrier mensuel'; 137 149 $lang['chronology_monthly_list'] = 'Liste mensuelle'; 138 $lang['chronology_monthly_calendar'] = 'Calendrier mensuel';139 150 $lang['chronology_weekly_list'] = 'Liste hebdomadaire'; 140 151 $lang['click_to_redirect'] = 'Cliquez ici si votre navigateur ne vous redirige pas.'; … … 211 222 $lang['maxwidth'] = 'Largeur maximum des images'; 212 223 $lang['maxwidth_error'] = 'La largeur des images doit être supérieure à 50'; 224 $lang['mode_created_hint'] = 'afficher un calendrier par date de création'; 213 225 $lang['mode_normal_hint'] = 'retourne à la vue normale'; 214 $lang['mode_created_hint'] = 'afficher un calendrier par date de création';215 226 $lang['mode_posted_hint'] = 'afficher un calendrier par date d\'ajout'; 216 227 $lang['month'][10] = 'Octobre'; … … 228 239 $lang['most_visited_cat'] = 'Plus vues'; 229 240 $lang['most_visited_cat_hint'] = 'afficher les images les plus vues'; 241 $lang['nb_image_line_error'] = 'Le nombre d\'images par ligne doit être un entier non nul'; 230 242 $lang['nb_image_per_row'] = 'Nombre de miniatures par ligne'; 231 $lang['nb_ image_line_error'] = 'Le nombre d\'images par ligne doit être un entier non nul';243 $lang['nb_line_page_error'] = 'Le nombre de lignes par page doit être un entier non nul'; 232 244 $lang['nb_row_per_page'] = 'Nombre de lignes par page'; 233 $lang['nb _line_page_error'] = 'Le nombre de lignes par page doit être un entier non nul';245 $lang['nbm_unknown_identifier'] = 'Identifiants inconnus'; 234 246 $lang['never_rated'] = 'Vous n\'avez jamais voté pour cette image'; 235 247 $lang['new_password'] = 'Nouveau mot de passe'; … … 333 345 $lang['w_month'] = 'Mois'; 334 346 $lang['yes'] = 'Oui'; 335 $lang['adviser_mode_enabled'] = 'Mode conseiller actif';336 347 ?> -
trunk/picture.php
r1107 r1119 699 699 $infos['INFO_FILE'] = $picture['current']['file']; 700 700 701 // keywords 702 if (!empty($picture['current']['keywords'])) 703 { 704 $infos['INFO_KEYWORDS'] = 705 // FIXME because of search engine partial rewrite, giving the author 706 // name threw GET is not supported anymore. This feature should come 707 // back later, with a better design (tag classification). 708 // preg_replace( 709 // '/([^,]+)/', 710 // '<a href="'. 711 // PHPWG_ROOT_PATH.'category.php?cat=search&search=keywords:$1' 712 // .'">$1</a>', 713 // $picture['current']['keywords'] 714 // ); 715 $picture['current']['keywords']; 701 // tags 702 $query = ' 703 SELECT id, name, url_name 704 FROM '.IMAGE_TAG_TABLE.' 705 INNER JOIN '.TAGS_TABLE.' ON tag_id = id 706 WHERE image_id = '.$page['image_id'].' 707 ;'; 708 $result = pwg_query($query); 709 710 if (mysql_num_rows($result) > 0) 711 { 712 $tags = array(); 713 714 while ($row = mysql_fetch_array($result)) 715 { 716 array_push( 717 $tags, 718 '<a href="' 719 .make_index_URL( 720 array( 721 'tags' => array( 722 array( 723 'id' => $row['id'], 724 'url_name' => $row['url_name'], 725 ), 726 ) 727 ) 728 ) 729 .'">'.$row['name'].'</a>' 730 ); 731 } 732 733 $infos['INFO_TAGS'] = implode(', ', $tags); 716 734 } 717 735 else 718 736 { 719 $infos['INFO_ KEYWORDS'] = l10n('N/A');737 $infos['INFO_TAGS'] = l10n('N/A'); 720 738 } 721 739 -
trunk/search.php
r1082 r1119 66 66 } 67 67 68 if (isset($_POST['tags'])) 69 { 70 $search['fields']['tags'] = array( 71 'words' => $_POST['tags'], 72 'mode' => $_POST['tag_mode'], 73 ); 74 } 75 68 76 if ($_POST['search_author']) 69 77 { … … 201 209 'U_HELP' => PHPWG_ROOT_PATH.'/popuphelp.php?page=search', 202 210 'U_HOME' => make_index_url(), 211 212 'TAG_SELECTION' => get_html_tag_selection( 213 get_available_tags( 214 isset($user['forbidden_categories']) 215 ? explode(',', $user['forbidden_categories']) 216 : null 217 ), 218 'tags', 219 isset($_POST['tags']) ? $_POST['tags'] : array() 220 ), 203 221 ) 204 222 ); -
trunk/search_rules.php
r1113 r1119 84 84 } 85 85 86 if (isset($search['fields']['tags'])) 87 { 88 $template->assign_block_vars( 89 'tags', 90 array( 91 'LIST_INTRO' => ($search['fields']['tags']['mode'] == 'AND') 92 ? l10n('All tags must match') 93 : l10n('At least one tag must match') 94 ) 95 ); 96 97 $query = ' 98 SELECT name 99 FROM '.TAGS_TABLE.' 100 WHERE id IN ('.implode(',', $search['fields']['tags']['words']).') 101 ;'; 102 $result = pwg_query($query); 103 while ($row = mysql_fetch_array($result)) 104 { 105 $template->assign_block_vars( 106 'tags.tag', 107 array( 108 'NAME' => $row['name'], 109 ) 110 ); 111 } 112 } 113 86 114 if (isset($search['fields']['author'])) 87 115 { -
trunk/template/yoga/admin.tpl
r1091 r1119 55 55 <li><a href="{U_RATING}">{lang:Rating}</a></li> 56 56 <li><a href="{U_CADDIE}">{lang:Caddie}</a></li> 57 <li><a href="{U_TAGS}">{lang:Tags}</a></li> 57 58 </ul> 58 59 </dd> -
trunk/template/yoga/admin/element_set_global.tpl
r1085 r1119 84 84 85 85 <tr> 86 <td>{lang:add keywords}</td>87 <td> <input type="text" name="add_keywords" value="" /></td>86 <td>{lang:add tags}</td> 87 <td>{ADD_TAG_SELECTION}</td> 88 88 </tr> 89 89 90 90 <tr> 91 <td>{lang:remove keyword}</td> 92 <td> 93 <select name="remove_keyword"> 94 <!-- BEGIN remove_keyword_option --> 95 <option value="{remove_keyword_option.VALUE}">{remove_keyword_option.OPTION}</option> 96 <!-- END remove_keyword_option --> 97 </select> 98 </td> 91 <td>{lang:remove tags}</td> 92 <td>{DEL_TAG_SELECTION}</td> 99 93 </tr> 100 94 101 95 <tr> 102 96 <td>{lang:author}</td> -
trunk/template/yoga/admin/element_set_unit.tpl
r1085 r1119 70 70 71 71 <tr> 72 <td><strong>{lang: Keywords}</strong></td>73 <td> <input type="text" name="keywords-{element.ID}" value="{element.KEYWORDS}" size="50" /></td>72 <td><strong>{lang:Tags}</strong></td> 73 <td>{element.TAG_SELECTION}</td> 74 74 </tr> 75 75 -
trunk/template/yoga/admin/picture_modify.tpl
r1085 r1119 100 100 101 101 <tr> 102 <td><strong>{lang: Keywords}</strong></td>103 <td> <input type="text" name="keywords" value="{KEYWORDS}" size="50" /></td>102 <td><strong>{lang:Tags}</strong></td> 103 <td>{TAG_SELECTION}</td> 104 104 </tr> 105 105 106 106 107 <tr> 107 108 <td><strong>{lang:Description}</strong></td> -
trunk/template/yoga/content.css
r1118 r1119 14 14 BODY#thePasswordPage #content, 15 15 BODY#theNotificationPage #content, 16 BODY#theTagsPage #content, 16 17 BODY#theNBMPage #content 17 18 { -
trunk/template/yoga/default-layout.css
r1096 r1119 262 262 } 263 263 264 UL.tagSelection { 265 width: 500px; 266 padding: 0; 267 } 268 269 UL.tagSelection LI { 270 display: inline; 271 white-space: nowrap; 272 } -
trunk/template/yoga/index.tpl
r1109 r1119 20 20 </dd> 21 21 </dl> 22 23 <!-- BEGIN tags --> 24 <dl> 25 <dt>{lang:Related tags}</dt> 26 <dd> 27 <ul id="menuTagCloud"> 28 <!-- BEGIN tag --> 29 <li> 30 <a href="{tags.tag.URL_ADD}" title="{tags.tag.TITLE_ADD}"><img src="{pwg_root}{themeconf:icon_dir}/add_tag.png" alt="+"></a> 31 <a href="{tags.tag.URL}" class="{tags.tag.CLASS}" title="{tags.tag.TITLE}">{tags.tag.NAME}</a> 32 </li> 33 <!-- END tag --> 34 </ul> 35 </dd> 36 </dl> 37 <!-- END tags --> 38 22 39 <dl> 23 40 <dt>{lang:special_categories}</dt> -
trunk/template/yoga/menubar.css
r1096 r1119 96 96 } 97 97 98 #menubar #menuTagCloud { 99 text-align: center; 100 margin: 5px 0; 101 } 102 103 #menubar #menuTagCloud LI 104 { 105 display: inline; 106 } -
trunk/template/yoga/picture.tpl
r1092 r1119 108 108 </tr> 109 109 <tr> 110 <td class="label">{lang: Keywords}</td>111 <td class="value">{INFO_ KEYWORDS}</td>110 <td class="label">{lang:Tags}</td> 111 <td class="value">{INFO_TAGS}</td> 112 112 </tr> 113 113 <tr> -
trunk/template/yoga/search.tpl
r1059 r1119 36 36 </td> 37 37 </tr> 38 39 <tr> 40 <td colspan="2"><b>{lang:Search tags} :</b></td> 41 <td colspan="2" valign="middle"> 42 {TAG_SELECTION} 43 <br /><label><input type="radio" name="tag_mode" value="AND" checked="checked" /> {lang:All tags}</label> 44 <br /><label><input type="radio" name="tag_mode" value="OR" /> {lang:Any tag}</label> 45 </td> 46 </tr> 47 38 48 <tr> 39 49 <td colspan="2"><b>{L_SEARCH_DATE} :</b> -
trunk/template/yoga/search_rules.tpl
r1015 r1119 10 10 <!-- END words --> 11 11 12 <!-- BEGIN tags --> 13 <li> 14 <p>{tags.LIST_INTRO}</p> 15 16 <ul> 17 <!-- BEGIN tag --> 18 <li>{tags.tag.NAME}</li> 19 <!-- END tag --> 20 </ul> 21 </li> 22 <!-- END tags --> 23 12 24 <!-- BEGIN author --> 13 25 <li>{author.CONTENT}</li>
Note: See TracChangeset
for help on using the changeset viewer.