Changeset 6891
- Timestamp:
- 09/13/10 20:40:44 (3 years ago)
- Location:
- extensions/AMetaData
- Files:
-
- 4 added
- 10 modified
-
admin/amd_metadata_personnal.tpl (modified) (12 diffs)
-
admin/amd_metadata_search.tpl (added)
-
amd.css (modified) (1 diff)
-
amd_aip.class.inc.php (modified) (4 diffs)
-
amd_ajax.php (modified) (10 diffs)
-
amd_install.class.inc.php (modified) (6 diffs)
-
amd_pip.class.inc.php (modified) (5 diffs)
-
amd_rb_callback.class.inc.php (added)
-
amd_root.class.inc.php (modified) (14 diffs)
-
js (added)
-
js/tagListSelector.js (added)
-
language/fr_FR/plugin.lang.php (modified) (3 diffs)
-
main.inc.php (modified) (3 diffs)
-
maintain.inc.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
extensions/AMetaData/admin/amd_metadata_personnal.tpl
r6731 r6891 4 4 {known_script id="gpc.external.interface" src=$ROOT_URL|@cat:"plugins/GrumPluginClasses/js/external/interface/interface.js"} 5 5 {known_script id="gpc.external.inestedsortable" src=$ROOT_URL|@cat:"plugins/GrumPluginClasses/js/external/inestedsortable.pack.js"} 6 {known_script id="tagListSelector" src=$ROOT_URL|@cat:"plugins/AMetaData/js/tagListSelector.js"} 7 6 8 7 9 {literal} 8 10 <script type="text/javascript"> 9 10 /**11 * sorry, tagListSelector is coded like a pork, but I don't have the time to12 * code something better... ^^;13 */14 function tagListSelector(itemId)15 {16 options = {17 itemId:'',18 selectorId:'',19 width:'auto',20 height:'auto',21 maxHeight:250,22 selectedClass:'gcText3',23 selectorClass:'ruleTypeM gcTextInput gcBgInput gcBorderInput',24 selectorItems:'ruleTypeM',25 }26 27 this.init = function (itemId)28 {29 options.itemId=itemId;30 $('body').append("<div id='iTLSDiv' class='"+options.selectorClass+"' style='padding:0px;z-index:5000;overflow:auto;display:none;position:absolute;max-height:"+options.maxHeight+"px'></div>");31 $('#iTLSDiv')32 .prepend($('#'+itemId))33 .bind('mouseleave', function ()34 {35 $('#iTLSDiv').css('display', 'none');36 }37 );38 $('#'+itemId).css('display', 'block');39 $('#iTLSDiv li').bind('click', function ()40 {41 $('#'+options.selectorId).attr('value', $(this).attr('value'));42 $('#'+options.selectorId+' span.ruleContent').html($(this).html());43 $('#iTLSDiv').css('display', 'none');44 }45 );46 }47 48 this.display = function (fromId)49 {50 selectedItem=$('#'+fromId).attr('value');51 52 top=$('#'+fromId).offset().top+$('#'+fromId).outerHeight()-1;53 left=$('#'+fromId).offset().left;54 width=$('#'+fromId).innerWidth();55 $('#iTLSDiv li').removeClass(options.selectedClass);56 $('#iTagListItem'+selectedItem).addClass(options.selectedClass);57 $('#iTLSDiv').css(58 {59 top:top+'px',60 left:left+'px',61 width:width+'px',62 display:'block'63 }64 );65 options.selectorId=fromId;66 }67 68 this.init(itemId);69 }70 11 71 12 … … 75 16 numId:'', 76 17 newRuleId:1, 18 optimalHeight:0, 77 19 } 78 20 … … 107 49 } 108 50 ); 51 109 52 $('#iBDTagId').bind('keyup focusout', function (event) 110 53 { … … 158 101 } 159 102 160 $('#mdRulesArea').css('height', ($('#iDialogEdit').height()-$('#mdRulesArea').position().top)+'px' ); 103 options.optimalHeight=$('#iDialogEdit').height()-$('#mdRulesArea').position().top; 104 $('#mdRulesArea').css('height', options.optimalHeight+'px' ); 161 105 } 162 106 ) … … 309 253 } 310 254 ); 255 checkDialogHeight(); 311 256 }, 312 257 onHover: function (draggedItem) … … 381 326 } 382 327 applyNested(); 328 checkDialogHeight(); 383 329 } 384 330 … … 395 341 } 396 342 ); 343 checkDialogHeight(); 397 344 } 398 345 … … 423 370 $('#iBDRuleTypeC'+id).css('display', 'inline-block'); 424 371 } 372 checkDialogHeight(); 425 373 } 426 374 … … 439 387 $('#iBDRuleTypeCIfValue'+id).css('display', 'inline'); 440 388 } 389 checkDialogHeight(); 441 390 } 442 391 … … 456 405 { 457 406 $('#iBDRuleType'+value).get(0).disabled=false; 407 } 408 } 409 410 /** 411 * check if it necessary to calculate the height of the dialogbox 412 */ 413 var checkDialogHeight = function() 414 { 415 if($('#iBDRules').height() < options.optimalHeight && 416 $('#mdRulesArea').get(0).scrollHeight > options.optimalHeight) 417 { 418 $('#iDialogEdit').height(options.optimalHeight+$('#mdRulesArea').get(0).offsetTop); 419 $('#mdRulesArea').height(options.optimalHeight); 420 } 421 else if($('#mdRulesArea').get(0).scrollHeight > options.optimalHeight) 422 { 423 $('#iDialogEdit').height($('#mdRulesArea').get(0).scrollHeight+$('#mdRulesArea').get(0).offsetTop); 424 $('#mdRulesArea').height($('#mdRulesArea').get(0).scrollHeight); 458 425 } 459 426 } … … 749 716 <option value='%'>{'g003_typeCIfLike'|@translate}</option> 750 717 <option value='!%'>{'g003_typeCIfNotLike'|@translate}</option> 751 </select> 718 <option value='^%'>{'g003_typeCIfBeginWith'|@translate}</option> 719 <option value='!^%'>{'g003_typeCIfNotBeginWith'|@translate}</option> 720 <option value='$%'>{'g003_typeCIfEndWith'|@translate}</option> 721 <option value='!$%'>{'g003_typeCIfNotEndWith'|@translate}</option> </select> 752 722 <input type='text' id='iBDRuleTypeCIfValueZZZZZ' value='' maxlength=200 size=26 style='display:none;'> 753 723 </div> … … 770 740 </ul> 771 741 742 {literal} 772 743 <script type="text/javascript"> 773 744 var udm=new userDefManage(); 774 var tls=new tagListSelector( 'iTagList');745 var tls=new tagListSelector({itemId:'iTagList'}); 775 746 </script> 747 {/literal} -
extensions/AMetaData/amd.css
r6729 r6891 135 135 font-weight:bold; 136 136 } 137 138 #mdRulesAreaCheckOne, 139 #mdRulesAreaCheckAll { 140 margin:3px; 141 text-align:left; 142 } 143 144 145 li.valueItems { 146 -moz-border-radius:4px 4px 4px 4px; 147 border:1px solid #666666; 148 margin-bottom:5px; 149 padding:4px; 150 } 151 152 #iDMCListValues { 153 list-style:none; 154 margin:8px; 155 padding:0; 156 } -
extensions/AMetaData/amd_aip.class.inc.php
r6729 r6891 28 28 29 29 30 31 30 class AMD_AIP extends AMD_root 32 31 { … … 114 113 break; 115 114 case 'search': 116 //$this->displaySearch($_REQUEST['fAMD_page']);115 $this->displaySearch($_REQUEST['fAMD_page']); 117 116 break; 118 117 } … … 128 127 public function initEvents() 129 128 { 129 if(isset($_REQUEST['fAMD_tabsheet']) and $_REQUEST['fAMD_tabsheet']=='search') 130 { 131 // load request builder JS only on the search page 132 GPCRequestBuilder::loadJSandCSS(); 133 } 134 130 135 add_event_handler('loc_end_page_header', array(&$this->css, 'applyCSS')); 131 136 GPCCss::applyGpcCss(); … … 235 240 return(false); 236 241 } 242 243 244 245 246 /** 247 * display and manage the search page 248 */ 249 protected function displaySearch() 250 { 251 global $template, $lang; 252 253 $template->set_filename('body_page', 254 dirname($this->getFileLocation()).'/admin/amd_metadata_search.tpl'); 255 256 $template->assign('amd_search_page', GPCRequestBuilder::displaySearchPage($this->getPluginName())); 257 258 $template->assign_var_from_handle('AMD_BODY_PAGE', 'body_page'); 259 } 260 261 237 262 238 263 -
extensions/AMetaData/amd_ajax.php
r6729 r6891 83 83 $_REQUEST['ajaxfct']=='admin.userDefined.setTag' or 84 84 $_REQUEST['ajaxfct']=='admin.userDefined.deleteTag' or 85 $_REQUEST['ajaxfct']=='admin.tag.getValues' or 85 86 86 87 $_REQUEST['ajaxfct']=='public.makeStats.doPictureAnalyze')) $_REQUEST['ajaxfct']=''; … … 309 310 310 311 /* 312 * check admin.tag.getValues values 313 */ 314 if($_REQUEST['ajaxfct']=="admin.tag.getValues" and !isset($_REQUEST['id'])) 315 { 316 $_REQUEST['ajaxfct']=''; 317 } 318 319 320 /* 311 321 * check public.makeStats.doPictureAnalyze values 312 322 */ … … 387 397 $result=$this->ajax_amd_admin_userDefinedDeleteTag($_REQUEST['id']); 388 398 break; 399 case 'admin.tag.getValues': 400 $result=$this->ajax_amd_admin_tagGetValues($_REQUEST['id']); 401 break; 389 402 390 403 … … 406 419 { 407 420 // get a randomly picture... 408 $sql="SELECT pai.imageId, pi.path 421 $sql="SELECT pai.imageId, pi.path, pi.has_high 409 422 FROM ".$this->tables['images']." pai 410 423 LEFT JOIN ".IMAGES_TABLE." pi ON pai.imageId=pi.id … … 426 439 { 427 440 $imageId=$row['imageId']; 428 $filename=$path."/".$row['path']; 441 if($row['has_high']===true and $this->config['amd_UseMetaFromHD']=='y') 442 { 443 $filename=$path."/".dirname($row['path'])."/pwg_high/".basename($row['path']); 444 } 445 else 446 { 447 $filename=$path."/".$row['path']; 448 } 429 449 } 430 450 … … 546 566 $path=dirname(dirname(dirname(__FILE__))); 547 567 548 $sql="SELECT id, path FROM ".IMAGES_TABLE." WHERE id IN (".implode(", ", $list).")";568 $sql="SELECT id, path, has_high FROM ".IMAGES_TABLE." WHERE id IN (".implode(", ", $list).")"; 549 569 $result=pwg_query($sql); 550 570 if($result) … … 564 584 //$mem1=memory_get_usage(); 565 585 //echo "memory before analyze:".$mem1."\n"; 566 $returned.=$this->analyzeImageFile($path."/".$row['path'], $row['id']); 586 if($row['has_high']===true and $this->config['amd_UseMetaFromHD']=='y') 587 { 588 $returned.=$this->analyzeImageFile($path."/".dirname($row['path'])."/pwg_high/".basename($row['path']), $row['id']); 589 } 590 else 591 { 592 $returned.=$this->analyzeImageFile($path."/".$row['path'], $row['id']); 593 } 567 594 //echo $returned."\n"; 568 595 //$mem2=memory_get_usage(); … … 722 749 { 723 750 $datas[]=array( 724 "value" => $this->prepareValueForDisplay($row['value'], ($row['translatable']=='y'), ", "),751 "value" => AMD_root::prepareValueForDisplay($row['value'], ($row['translatable']=='y'), ", "), 725 752 "nb" => $row['Nb'], 726 753 "pct" => ($row['numOfImg']!=0)?sprintf("%.2f", 100*$row['Nb']/$row['numOfImg']):"-" … … 1342 1369 foreach($properties['rules'] as $rule) 1343 1370 { 1371 print_r($rule['value']); 1344 1372 $inserts[]="('$id', '".$rule['defId']."', '".$rule['parentId']."', '".$rule['order']."', '".$rule['type']."', '".$rule['value']."', '".$rule['conditionType']."', '".$rule['conditionValue']."')"; 1345 1373 } … … 1401 1429 } 1402 1430 1431 1432 /** 1433 * return the known values for a given tag id 1434 * 1435 * @param String $id : a tag numId 1436 * @return String : an HTML list ready to use 1437 */ 1438 private function ajax_amd_admin_tagGetValues($numId) 1439 { 1440 $returned=""; 1441 1442 $sql="SELECT DISTINCT pait.value, COUNT(pait.imageId) AS nbImg, paut.translatable 1443 FROM ".$this->tables['images_tags']." pait 1444 LEFT JOIN ".$this->tables['used_tags']." paut 1445 ON pait.numId=paut.numId 1446 WHERE pait.numId = '$numId' 1447 GROUP BY pait.value 1448 ORDER BY pait.value"; 1449 $result=pwg_query($sql); 1450 if($result) 1451 { 1452 while($row=pwg_db_fetch_assoc($result)) 1453 { 1454 $value=htmlspecialchars(AMD_root::prepareValueForDisplay($row['value'], ($row['translatable']=='y'), ", "), ENT_QUOTES); 1455 $returned.="<option displayvalue='$value' rawvalue='".$row['value']."'>$value (".$row['nbImg']." ".l10n('images').")</option>"; 1456 } 1457 } 1458 return($returned); 1459 } 1460 1461 1403 1462 /** 1404 1463 * set value(s) for option(s) -
extensions/AMetaData/amd_install.class.inc.php
r6730 r6891 19 19 */ 20 20 21 @include_once('amd_root.class.inc.php');21 include_once('amd_root.class.inc.php'); 22 22 include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/tables.class.inc.php'); 23 23 … … 66 66 `imageId` mediumint(8) unsigned NOT NULL default '0', 67 67 `numId` int(10) unsigned NOT NULL default '0', 68 `value` text default NULL, 69 PRIMARY KEY USING BTREE (`imageId`,`numId`) 68 `value` text, 69 `numValue` decimal(10,8) default NULL, 70 PRIMARY KEY USING BTREE (`imageId`,`numId`), 71 KEY `byNumId` (`numId`,`value`(35)), 72 KEY `byNumId2` (`numId`,`numValue`) 70 73 );", 71 74 "CREATE TABLE `".$this->tables['images']."` ( … … 194 197 { 195 198 /* 196 * create new tables 199 * create new tables & alter existing tables 197 200 */ 198 201 $tableDef=array( … … 215 218 KEY `byTagParentId` USING BTREE (`numId`,`parentId`,`order`), 216 219 KEY `byTagOrder` (`numId`,`order`) 217 );" 220 );", 221 "ALTER TABLE `".$this->tables['images_tags']."` 222 ADD COLUMN `numValue` DECIMAL(10,8) DEFAULT NULL AFTER `value`, 223 ADD INDEX `byNumId`(`numId`, `value`(35)), 224 ADD INDEX `byNumId2`(`numId`, `numValue`) 225 ;" 218 226 ); 219 227 $tablesDef = create_table_add_character_set($tablesDef); … … 305 313 $excludeList=""; 306 314 } 307 $sql="SELECT ti.id, ti.path 315 $sql="SELECT ti.id, ti.path, ti.has_high 308 316 FROM ".IMAGES_TABLE." ti ".$excludeList." 309 317 ORDER BY RAND() LIMIT ".(25-count($listToAnalyze[0])).";"; … … 328 336 foreach($listToAnalyze[0] as $val) 329 337 { 330 $this->analyzeImageFile($path."/".$val['path'], $val['id']); 338 if($val['has_high']===true and $this->config['amd_UseMetaFromHD']=='y') 339 { 340 $this->analyzeImageFile($path."/".dirname($val['path'])."/pwg_high/".basename($val['path']), $val['id']); 341 } 342 else 343 { 344 $this->analyzeImageFile($path."/".$val['path'], $val['id']); 345 } 346 331 347 } 332 348 -
extensions/AMetaData/amd_pip.class.inc.php
r6722 r6891 92 92 ) 93 93 ); 94 95 trigger_action('amd_jpegMD_loaded', $this->jpegMD); 94 96 95 97 $conf['show_exif']=false; … … 140 142 $value=serialize($value); 141 143 } 142 $userDefinedList['values'][$row['numId']]= $this->prepareValueForDisplay($value, $picturesTags[$row['tagId']]->isTranslatable());;144 $userDefinedList['values'][$row['numId']]=AMD_root::prepareValueForDisplay($value, $picturesTags[$row['tagId']]->isTranslatable());; 143 145 } 144 146 } … … 146 148 } 147 149 148 $metadata= Array();150 $metadata=$template->get_template_vars('metadata'); 149 151 $md=null; 150 152 $group=null; 151 153 152 154 $userDefinedValues=$this->pictureGetUserDefinedTags($userDefinedList['list'], $userDefinedList['values']); 155 156 trigger_action('amd_jpegMD_userDefinedValues_built', 157 array( 158 'picture' => $userDefinedList['values'], 159 'user' => $userDefinedValues, 160 ) 161 ); 153 162 154 163 foreach($tagsList as $key => $tagProperties) … … 187 196 $value=serialize($value); 188 197 } 189 $md['lines'][L10n::get($picturesTags[$key]->getName())]=$this->prepareValueForDisplay($value, $picturesTags[$key]->isTranslatable()); 190 } 191 elseif($userDefined) 198 199 if($value!="") 200 { 201 $md['lines'][L10n::get($picturesTags[$key]->getName())]=AMD_root::prepareValueForDisplay($value, $picturesTags[$key]->isTranslatable()); 202 } 203 } 204 elseif($userDefined and isset($userDefinedValues[$tagProperties['numId']]) and $userDefinedValues[$tagProperties['numId']]!='') 192 205 { 193 206 $md['lines'][$tagProperties['name']]=$userDefinedValues[$tagProperties['numId']]; … … 195 208 } 196 209 197 if(!is_null($md) )210 if(!is_null($md) and count($md['lines'])>0) 198 211 { 199 212 $metadata[]=$md; -
extensions/AMetaData/amd_root.class.inc.php
r6734 r6891 23 23 include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/CommonPlugin.class.inc.php'); 24 24 include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCCss.class.inc.php'); 25 include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCRequestBuilder.class.inc.php'); 25 26 26 27 include_once('amd_jpegmetadata.class.inc.php'); … … 48 49 'groups', 49 50 'user_tags_label', 50 'user_tags_def'); 51 'user_tags_def', 52 'tags_values'); 51 53 $this->setTablesList($tableList); 52 54 … … 66 68 //parent::__destruct(); 67 69 } 68 69 70 70 71 /* --------------------------------------------------------------------------- … … 85 86 'amd_FillDataBaseContinuously' => "y", 86 87 'amd_FillDataBaseIgnoreSchemas' => array(), 88 'amd_UseMetaFromHD' => "y", 87 89 88 90 // theses options can be set manually … … 178 180 public function doRandomAnalyze() 179 181 { 180 $sql="SELECT tai.imageId, ti.path FROM ".$this->tables['images']." tai182 $sql="SELECT tai.imageId, ti.path, ti.has_high FROM ".$this->tables['images']." tai 181 183 LEFT JOIN ".IMAGES_TABLE." ti ON tai.imageId = ti.id 182 184 WHERE tai.analyzed = 'n' … … 190 192 while($row=pwg_db_fetch_assoc($result)) 191 193 { 192 $this->analyzeImageFile($path."/".$row['path'], $row['imageId']); 194 if($row['has_high']===true and $this->config['amd_UseMetaFromHD']=='y') 195 { 196 $this->analyzeImageFile($path."/".dirname($row['path'])."/pwg_high/".basename($row['path']), $row['imageId']); 197 } 198 else 199 { 200 $this->analyzeImageFile($path."/".$row['path'], $row['imageId']); 201 } 193 202 } 194 203 … … 234 243 } 235 244 236 $sqlInsert="";245 //$sqlInsert=""; 237 246 $massInsert=array(); 238 247 $nbTags=0; … … 272 281 { 273 282 $nbTags++; 274 if($sqlInsert!="") $sqlInsert.=", ";275 $sqlInsert.="($imageId, '$numId', '".addslashes($value)."')";283 //if($sqlInsert!="") $sqlInsert.=", "; 284 //$sqlInsert.="($imageId, '$numId', '".addslashes($value)."')"; 276 285 $massInsert[]="('$imageId', '$numId', '".addslashes($value)."') "; 277 286 } … … 291 300 pwg_query($sql); 292 301 302 unset($massInsert); 293 303 294 304 return("$imageId=$nbTags;"); … … 398 408 if(!is_null($buildValue['value'])) 399 409 { 410 $buildValue['value']=addslashes($buildValue['value']); 400 411 $inserts[]=$buildValue; 401 412 $num++; … … 483 494 if(isset($values[$rule['value']]) and 484 495 !preg_match('/'.$rule['conditionValue'].'/i', $values[$rule['value']])) $ok=true; 496 break; 497 case '^%': 498 if(isset($values[$rule['value']]) and 499 preg_match('/^'.$rule['conditionValue'].'/i', $values[$rule['value']])) $ok=true; 500 break; 501 case '!^%': 502 if(isset($values[$rule['value']]) and 503 !preg_match('/^'.$rule['conditionValue'].'/i', $values[$rule['value']])) $ok=true; 504 break; 505 case '$%': 506 if(isset($values[$rule['value']]) and 507 preg_match('/'.$rule['conditionValue'].'$/i', $values[$rule['value']])) $ok=true; 508 break; 509 case '!$%': 510 if(isset($values[$rule['value']]) and 511 !preg_match('/'.$rule['conditionValue'].'$/i', $values[$rule['value']])) $ok=true; 485 512 break; 486 513 } … … 557 584 } 558 585 559 560 586 /** 561 587 * This function : … … 569 595 * @return String : the value prepared 570 596 */ 571 protectedfunction prepareValueForDisplay($value, $translatable=true, $separator=", ")597 static public function prepareValueForDisplay($value, $translatable=true, $separator=", ") 572 598 { 573 599 global $user; … … 720 746 } 721 747 748 722 749 } // amd_root class 723 750 724 751 725 752 753 Class AMD_functions { 754 /** 755 * return all HTML&JS code necessary to display a dialogbox to choose 756 * a metadata 757 */ 758 static public function dialogBoxMetadata() 759 { 760 global $template, $prefixeTable; 761 762 $tables=array( 763 'used_tags' => $prefixeTable.'amd_used_tags', 764 'selected_tags' => $prefixeTable.'amd_selected_tags', 765 ); 766 767 $template->set_filename('metadata_choose', 768 dirname(__FILE__).'/templates/amd_dialog_metadata_choose.tpl'); 769 770 $datas=array( 771 'urlRequest' => 'plugins/'.basename(dirname(__FILE__)).'/amd_ajax.php', 772 'tagList' => array(), 773 ); 774 775 /* 776 * build tagList 777 */ 778 $sql="SELECT ut.name, ut.numId, ut.tagId 779 FROM ".$tables['used_tags']." ut 780 JOIN ".$tables['selected_tags']." st ON st.tagId = ut.tagId 781 ORDER BY tagId"; 782 $result=pwg_query($sql); 783 if($result) 784 { 785 while($row=pwg_db_fetch_assoc($result)) 786 { 787 $datas['tagList'][]=Array( 788 'tagId' => $row['tagId'], 789 'name' => L10n::get($row['name']), 790 'numId' => $row['numId'] 791 ); 792 } 793 } 794 795 $template->assign('datas', $datas); 796 unset($data); 797 798 return($template->parse('metadata_choose', true)); 799 } 800 } 801 802 803 726 804 ?> -
extensions/AMetaData/language/fr_FR/plugin.lang.php
r6729 r6891 193 193 $lang['g003_typeCIfLike'] = "contient"; 194 194 $lang['g003_typeCIfNotLike'] = "ne contient pas"; 195 $lang['g003_typeCIfBeginWith'] = "commence par"; 196 $lang['g003_typeCIfNotBeginWith'] = "ne commence pas par"; 197 $lang['g003_typeCIfEndWith'] = "finit par"; 198 $lang['g003_typeCIfNotEndWith'] = "ne finit pas par"; 195 199 $lang['g003_conditionIf'] = "Tester si la métadonnée"; 196 200 … … 212 216 $lang['g003_informations'] = "Informations"; 213 217 $lang['g003_databaseInformation'] = "Informations importantes à propos du référentiel"; 214 $lang['g003_databaseWarning1']="[p]Le référentiel est constitué des métadonnées contenues dans les images de galerie ainsi que de métadonnées calculées par le plugin. En fonction du nombre d'images et du nombre de métadonnées y étant rattachées, le référentiel peut s'avérer être très volumineux.218 $lang['g003_databaseWarning1']="[p]Le référentiel est constitué des métadonnées contenues dans les images de la galerie ainsi que de métadonnées calculées par le plugin. En fonction du nombre d'images et du nombre de métadonnées y étant rattachées, le référentiel peut s'avérer être très volumineux. 215 219 Avant d'alimenter le référentiel, assurez-vous que la base de données proposée par votre hébergeur permet ce type d'usage. 216 220 [/p][p]Il est toutefois à noter que l'usage du référentiel est facultatif, ce dernier n'étant pas exploité pour l'affichage des métadonnées des photos de la galerie. … … 230 234 $lang['g003_analyze_analyzed_pictures'] = "L'analyse ne porte que sur les images ayant déjà fait l'objet d'une analyse"; 231 235 $lang['g003_fillDatabaseIgnoreWarning'] = "Pour être prise en compte, la modification des paramètres de cette option nécessite d'effectuer une analyse"; 236 237 238 $lang['g003_add_metadata'] = "Ajouter une métadonnée"; 239 240 $lang['g003_choose_a_metadata'] = "Recherche sur l\'évaluation d\'une métadonnée"; 241 $lang['g003_add'] = "Ajouter"; 242 $lang['g003_metadata_value_check_one'] = "Au moins une des valeurs suivantes doit être vérifiée :"; 243 $lang['g003_metadata_value_check_all'] = "Toutes les valeurs suivantes doivent être vérifiées :"; 244 245 $lang['g003_metadata_exists']="La métadonnée %s est présente"; 246 $lang['g003_metadata_dont_exists']="La métadonnée %s n'est pas présente"; 247 $lang['g003_metadata_equals_all']="La métadonnée %s est présente et est égale à l\'une des valeurs suivantes :"; 248 $lang['g003_metadata_equals_one']="La métadonnée %s est présente et est égale à la valeur suivante :"; 249 $lang['g003_metadata_not_equals_all']="La métadonnée %s est présente et n'est égale à aucune des valeurs suivantes :"; 250 $lang['g003_metadata_not_equals_one']="La métadonnée %s est présente et n'est pas égale à la valeur suivante :"; 251 $lang['g003_metadata_like_all']="La métadonnée %s est présente et contient l\'une des valeurs suivantes :"; 252 $lang['g003_metadata_like_one']="La métadonnée %s est présente et contient la valeur suivante :"; 253 $lang['g003_metadata_not_like_all']="La métadonnée %s est présente et ne contient aucune des valeurs suivantes :"; 254 $lang['g003_metadata_not_like_one']="La métadonnée %s est présente et n'est contient pas la valeur suivante :"; 255 $lang['g003_metadata_begin_all']="La métadonnée %s est présente et commence par l\'une des valeurs suivantes :"; 256 $lang['g003_metadata_begin_one']="La métadonnée %s est présente et commence par la valeur suivante :"; 257 $lang['g003_metadata_not_begin_all']="La métadonnée %s est présente et ne commence pas par l\'une des valeurs suivantes :"; 258 $lang['g003_metadata_not_begin_one']="La métadonnée %s est présente et ne commence pas par la valeur suivante :"; 259 $lang['g003_metadata_end_all']="La métadonnée %s est présente et finit par l\'une des valeurs suivantes :"; 260 $lang['g003_metadata_end_one']="La métadonnée %s est présente et finit par la valeur suivante :"; 261 $lang['g003_metadata_not_end_all']="La métadonnée %s est présente et ne finit pas par l\'une des valeurs suivantes :"; 262 $lang['g003_metadata_not_end_one']="La métadonnée %s est présente et ne finit pas par la valeur suivante :"; 263 264 $lang['g003_value_already_set'] = "La valeur est déjà définie dans le domaine de valeurs"; 265 $lang['g003_please_set_a_value'] = "Merci de définir une valeur"; 232 266 233 267 /* -
extensions/AMetaData/main.inc.php
r6729 r6891 37 37 | | | * update some html/css 38 38 | | | 39 | 0.5.0 | 2010/07/24 | * update to the JpegMetadata class 1.0.1 to fix the 39 | 0.5.0 | 2010/07/24 | * release 0.5.0 not published, features are reported in 40 | | | the release 0.5.1 41 | | | 42 | 0.5.1 | 2010/09/12 | * update to the JpegMetadata class 1.0.1 to fix the 40 43 | | | mantis bugs&features 1686, 1718 and 1719 41 44 | | | * mantis : bug 1686 … … 59 62 | | | . Weight of the metadata database can becomes very 60 63 | | | heavy 61 | | | * ajax management was entirely rewritted 64 | | | * mantis : feature 1691 65 | | | . Add possibility to search picture by metadata 66 | | | properties 67 | | | * mantis : feature 1846 68 | | | . Read the metadata in the HD picture 69 | | | * ajax management entirely rewritted 62 70 | | | * user interface reviewed 71 | | | * add some triggers events when picture metadata are 72 | | | loaded in the picture.php page 73 | | | . amd_jpegMD_loaded 74 | | | . amd_jpegMD_userDefinedValues_built 75 | | | 76 | | | 77 | | | 78 | | | 79 | | | 63 80 | | | 64 81 | | | … … 73 90 74 91 -------------------------------------------------------------------------------- 75 76 :: NFO 77 AMD_AIM : classe to manage plugin integration into plugin menu 78 AMD_AIP : classe to manage plugin admin pages 79 AMD_PIP : classe to manage plugin public integration 80 92 * 93 * :: NFO 94 * AMD_AIM : classe to manage plugin integration into plugin menu 95 * AMD_AIP : classe to manage plugin admin pages 96 * AMD_PIP : classe to manage plugin public integration 97 * 98 * 99 * :: Triggers & data provided 100 * - amd_jpegMD_loaded 101 * . triggered on the picture.php page, when metadata were loaded from the 102 * picture file 103 * . the JpegMetadata object is provided as data to the callback function 104 * 105 * - amd_jpegMD_userDefinedValues_built 106 * . triggered on the picture.php page, when metadata were loaded from the 107 * picture file and user defined tags were built 108 * . an array is provided as data to the callback function 109 * $data['picture'] : an array of (tagId => value) with only the selected 110 * metadata 111 * $data['user'] : an array of (tagId => value) with only the user 112 * defined metadata built 113 * 114 * 81 115 -------------------------------------------------------------------------------- 82 116 */ -
extensions/AMetaData/maintain.inc.php
r6729 r6891 88 88 $result=$amd->activate(); 89 89 GPCCore::register($amd->getPluginName(), AMD_VERSION, $gpcNeeded); 90 GPCRequestBuilder::register($amd->getPluginName(), dirname($amd->getFileLocation()).'/amd_rb_callback.class.inc.php'); 90 91 } 91 92 92 93 function plugin_deactivate($plugin_id) 93 94 { 95 global $prefixeTable, $gpcNeeded; 96 97 $amd=new AMD_install($prefixeTable, __FILE__); 98 GPCRequestBuilder::unregister($amd->getPluginName()); 94 99 } 95 100
![(please configure the [header_logo] section in trac.ini)](http://piwigo.org/screenshots/piwigo_logo_on_white.png)