Ignore:
Timestamp:
10/20/10 23:04:22 (9 years ago)
Author:
grum
Message:

fix bug on the rbuilder and migrate ajax call on the gpc ajax manager
fix bug:1945
add some functionnalities

Location:
extensions/GrumPluginClasses
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • extensions/GrumPluginClasses/admin/plugin_admin.php

    r6106 r7310  
    2121 
    2222 
    23 if(isset($_REQUEST['searchRequest'])) 
    24 { 
    25   load_language('requestBuilder.lang', GPC_PATH); 
    26   // if set, this is probably an ajax search request 
    27   include_once(GPC_PATH."classes/GPCRequestBuilder.class.inc.php"); 
    28   GPCRequestBuilder::init($prefixeTable, 'gpc'); 
    29   GPCRequestBuilder::executeRequest(); 
    30 } 
    31 else 
    32 { 
    33   include(GPC_PATH."gpc_aip.class.inc.php"); 
    3423 
    35   $main_plugin_object = get_plugin_data($plugin_id); 
     24include(GPC_PATH."gpc_aip.class.inc.php"); 
    3625 
    37   $plugin_ai = new GPC_AIP($prefixeTable, $main_plugin_object->getFileLocation()); 
    38   $plugin_ai->manage(); 
    39 } 
     26$main_plugin_object = get_plugin_data($plugin_id); 
     27 
     28$plugin_ai = new GPC_AIP($prefixeTable, $main_plugin_object->getFileLocation()); 
     29$plugin_ai->manage(); 
     30 
    4031 
    4132 
  • extensions/GrumPluginClasses/classes/CommonPlugin.class.inc.php

    r6975 r7310  
    125125  public function __construct($prefixeTable, $filelocation) 
    126126  { 
    127     $this->debug_file="debug.txt"; 
     127    $this->debug_file=GPCCore::getPiwigoSystemPath()."/_data/debug.txt"; 
    128128 
    129129    $this->fileLocation=$filelocation; 
  • extensions/GrumPluginClasses/classes/GPCCategorySelector.class.inc.php

    r7175 r7310  
    33 * ----------------------------------------------------------------------------- 
    44 * class name     : GPCCategorySelector 
    5  * class version  : 1.0.0 
    6  * plugin version : 3.3.0 
    7  * date           : 2010-10-09 
     5 * class version  : 1.0.1 
     6 * plugin version : 3.3.3 
     7 * date           : 2010-10-20 
    88 * ----------------------------------------------------------------------------- 
    99 * author: grum at piwigo.org 
     
    1414 * 
    1515| release | date       | 
    16 | 1.0.0   | 2010/04/18 | * create class 
    17 |         |            | 
    18 |         |            | 
     16| 1.0.0   | 2010/10/09 | * create class 
     17|         |            | 
     18| 1.0.1   | 2010/10/20 | * fix bug on the private select methods 
    1919|         |            | 
    2020|         |            | 
     
    242242 
    243243    $sql="SELECT DISTINCT pct.id, pct.name, pct.global_rank AS rank, pct.status 
    244           FROM (".CATEGORIES_TABLE." pct "; 
    245  
    246     if($this->options['userMode']==self::USER_MODE_PUBLIC) 
    247     { 
    248       $sql.=" JOIN ".USER_CACHE_CATEGORIES_TABLE." pucc 
    249                 ON (pucc.cat_id = pct.id) AND pucc.user_id='".$user['id']."') "; 
    250     } 
    251     else 
    252     { 
    253       $sql.=") "; 
    254     } 
     244          FROM ".CATEGORIES_TABLE." pct "; 
    255245 
    256246    switch($this->options['filter']) 
     
    260250        break; 
    261251      case self::FILTER_ACCESSIBLE : 
    262         $sql.=" JOIN ( 
    263                   SELECT DISTINCT pgat.cat_id AS catId FROM ".GROUP_ACCESS_TABLE." pgat 
    264                   UNION DISTINCT 
    265                   SELECT DISTINCT puat.cat_id AS catId FROM ".USER_ACCESS_TABLE." puat 
    266                      ) pat 
    267                 ON (pat.catId = pct.id AND pct.status = 'private') OR (pct.status = 'public') "; 
     252        if(!is_admin()) 
     253        { 
     254          $sql.=" JOIN ".USER_CACHE_CATEGORIES_TABLE." pucc 
     255                  ON (pucc.cat_id = pct.id) AND pucc.user_id='".$user['id']."' "; 
     256        } 
     257        else 
     258        { 
     259          $sql.=" JOIN ( 
     260                    SELECT DISTINCT pgat.cat_id AS catId FROM ".GROUP_ACCESS_TABLE." pgat 
     261                    UNION DISTINCT 
     262                    SELECT DISTINCT puat.cat_id AS catId FROM ".USER_ACCESS_TABLE." puat 
     263                    UNION DISTINCT 
     264                    SELECT DISTINCT pct2.id AS catId FROM ".CATEGORIES_TABLE." pct2 WHERE pct2.status='public' 
     265                       ) pat 
     266                  ON pat.catId = pct.id "; 
     267        } 
     268 
    268269        break; 
    269270    } 
  • extensions/GrumPluginClasses/classes/GPCCore.class.inc.php

    r7175 r7310  
    33/* ----------------------------------------------------------------------------- 
    44  class name     : GPCCore 
    5   class version  : 1.3.0 
    6   plugin version : 3.3.0 
    7   date           : 2010-07-28 
     5  class version  : 1.3.1 
     6  plugin version : 3.3.2 
     7  date           : 2010-10-20 
    88  ------------------------------------------------------------------------------ 
    99  author: grum at piwigo.org 
     
    2121|         |            | 
    2222| 1.3.0   | 2010/10/13 | * add the addHeaderCSS, addHeaderJS functions 
     23|         |            | 
     24| 1.3.1   | 2010/10/20 | * applyHeaderItems functions implemented with an 
     25|         |            |   higher priority on the 'loc_begin_page_header' event 
     26|         |            | 
     27|         |            | * implement the getUserLanguageDesc() function, using 
     28|         |            |   extended description function if present 
     29|         |            | 
     30|         |            | * implement the getPiwigoSystemPath function 
    2331|         |            | 
    2432|         |            | 
     
    3745    - static function addHeaderCSS 
    3846    - static function addHeaderJS 
     47    - static function getUserLanguageDesc 
     48    - static function getPiwigoSystemPath 
     49    - static function formatOctet 
    3950   ---------------------------------------------------------------------- */ 
    4051 
     
    4354class GPCCore 
    4455{ 
     56  static private $piwigoSystemPath; 
     57 
    4558  static public $pluginName = "GPCCore"; 
    4659  static protected $headerItems = array( 
     
    4861    'js'  => array() 
    4962  ); 
     63 
     64  static public function init() 
     65  { 
     66    self::$piwigoSystemPath=dirname(dirname(dirname(dirname(__FILE__)))); 
     67  } 
    5068 
    5169  /* --------------------------------------------------------------------------- 
     
    328346    global $template; 
    329347 
     348    if(!isset($template->known_scripts)) $template->known_scripts=array(); 
     349 
    330350    if(!array_key_exists($id,  $template->known_scripts) and !array_key_exists($file, self::$headerItems['js'])) 
    331351    { 
    332      $template->known_scripts[$id]=$url; 
     352     $template->known_scripts[$id]=$file; 
    333353     self::$headerItems['js'][$id]=$file; 
    334354    } 
     
    345365    foreach(self::$headerItems['css'] as $file) 
    346366    { 
    347       $template->block_html_head(null, '<link rel="stylesheet" type="text/css" href="'.$file.'"/>', $template->smarty, $false); 
     367      $template->append('head_elements', '<link rel="stylesheet" type="text/css" href="'.$file.'"/>'); 
    348368    } 
    349369 
    350370    foreach(self::$headerItems['js'] as $file) 
    351371    { 
    352       $template->block_html_head(null, '<script type="text/javascript" src="'.$file.'"></script>', $template->smarty, $false); 
    353     } 
    354   } 
     372      $template->append('head_elements', '<script type="text/javascript" src="'.$file.'"></script>'); 
     373    } 
     374  } 
     375 
     376  /** 
     377   * use the extended description get_user_language_desc() function if exist 
     378   * otherwise returns the value 
     379   * 
     380   * @param String $value : value to translate 
     381   * @return String : translated value 
     382   */ 
     383  static public function getUserLanguageDesc($value) 
     384  { 
     385    if(function_exists('get_user_language_desc')) 
     386    { 
     387      return(get_user_language_desc($value)); 
     388    } 
     389    else 
     390    { 
     391      return($value); 
     392    } 
     393  } 
     394 
     395  /** 
     396   * returns the piwigo system path 
     397   * @return String 
     398   */ 
     399  static public function getPiwigoSystemPath() 
     400  { 
     401    return(self::$piwigoSystemPath); 
     402  } 
     403 
     404 
     405 /** 
     406  * formats a file size into a human readable size 
     407  * 
     408  * @param String $format : "A"  : auto 
     409  *                         "Ai" : auto (io) 
     410  *                         "O"  : o 
     411  *                         "K"  : Ko 
     412  *                         "M"  : Mo 
     413  *                         "G"  : Go 
     414  *                         "Ki" : Kio 
     415  *                         "Mi" : Mio 
     416  *                         "Gi" : Gio 
     417  * @param String $thsep : thousand separator 
     418  * @param Integer $prec : number of decimals 
     419  * @param Bool $visible : display or not the unit 
     420  * @return String : a formatted file size 
     421  */ 
     422 static public function formatOctet($octets, $format="Ai", $thsep="", $prec=2, $visible=true) 
     423 { 
     424  if($format=="Ai") 
     425  { 
     426   if($octets<1024) 
     427   { $format="O"; } 
     428   elseif($octets<1024000) 
     429   { $format="Ki"; } 
     430   elseif($octets<1024000000) 
     431   { $format="Mi"; } 
     432   else 
     433   { $format="Gi"; } 
     434  } 
     435  elseif($format=="A") 
     436  { 
     437   if($octets<1000) 
     438   { $format="O"; } 
     439   elseif($octets<1000000) 
     440   { $format="Ki"; } 
     441   elseif($octets<1000000000) 
     442   { $format="Mi"; } 
     443   else 
     444   { $format="Gi"; } 
     445  } 
     446 
     447  switch($format) 
     448  { 
     449   case "O": 
     450    $unit="o"; $div=1; 
     451    break; 
     452   case "K": 
     453    $unit="Ko"; $div=1000; 
     454    break; 
     455   case "M": 
     456    $unit="Mo"; $div=1000000; 
     457    break; 
     458   case "G": 
     459    $unit="Go"; $div=1000000000; 
     460    break; 
     461   case "Ki": 
     462    $unit="Kio"; $div=1024; 
     463    break; 
     464   case "Mi": 
     465    $unit="Mio"; $div=1024000; 
     466    break; 
     467   case "Gi": 
     468    $unit="Gio"; $div=1024000000; 
     469    break; 
     470  } 
     471 
     472  $returned=number_format($octets/$div, $prec, '.', $thsep); 
     473  if($visible) $returned.=' '.$unit; 
     474  return($returned); 
     475 } //function formatOctet 
     476 
    355477 
    356478} //class 
    357479 
    358 add_event_handler('loc_end_page_header', array('GPCCore', 'applyHeaderItems')); 
    359  
     480add_event_handler('loc_begin_page_header', array('GPCCore', 'applyHeaderItems'), 10); 
     481 
     482GPCCore::init(); 
    360483 
    361484?> 
  • extensions/GrumPluginClasses/classes/GPCRequestBuilder.class.inc.php

    r7200 r7310  
    7171|         |            |   . adding 'DISTINCT' keyword to the SQL requests 
    7272|         |            | 
     73|         |            | * ajax management moved into the gpc_ajax.php file 
     74|         |            | 
     75|         |            | * fix bug on user level access to picture 
    7376|         |            | 
    7477|         |            | 
     
    7982  --------------------------------------------------------------------------- */ 
    8083 
    81 include_once('GPCAjax.class.inc.php'); 
    8284include_once('GPCTables.class.inc.php'); 
    8385 
     
    397399  static public function updateTables($pluginPreviousRelease) 
    398400  { 
     401    $tablef=new GPCTables(array(self::$tables['temp'])); 
     402 
    399403    switch($pluginPreviousRelease) 
    400404    { 
     
    415419 
    416420 
    417         $tablef=new GPCTables(array(self::$tables['temp'])); 
    418421 
    419422        $tablef->create($tablesCreate); 
     
    459462  static public function loadJSandCSS() 
    460463  { 
    461     add_event_handler('loc_end_page_header', array('GPCRequestBuilder', 'insertJSandCSSFiles')); 
     464    add_event_handler('loc_begin_page_header', array('GPCRequestBuilder', 'insertJSandCSSFiles'), 9); 
    462465  } 
    463466 
     
    466469   * insert JS a CSS file in header 
    467470   * 
    468    * the function is declared public because it used by the 'loc_end_page_header' 
     471   * the function is declared public because it used by the 'loc_begin_page_header' 
    469472   * event callback 
    470473   * 
     
    475478  { 
    476479    global $template; 
     480 
    477481 
    478482    $baseName=basename(dirname(dirname(__FILE__))).'/css/'; 
     
    480484 
    481485    $baseName=basename(dirname(dirname(__FILE__))).'/js/'; 
    482     $template->append('head_elements', '<script type="text/javascript" src="plugins/'.$baseName.'external/interface/interface.js"></script>'); 
    483     $template->append('head_elements', '<script type="text/javascript" src="plugins/'.$baseName.'external/inestedsortable.pack.js"></script>'); 
    484     $template->append('head_elements', '<script type="text/javascript" src="plugins/'.$baseName.'criteriaBuilder.packed.js"></script>'); 
     486    GPCCore::addHeaderJS('jquery', 'themes/default/js/jquery.packed.js'); 
     487    GPCCore::addHeaderJS('gpc.interface', 'plugins/'.$baseName.'external/interface/interface.js'); 
     488    GPCCore::addHeaderJS('gpc.inestedsortable', 'plugins/'.$baseName.'external/inestedsortable.pack.js'); 
     489    GPCCore::addHeaderJS('gpc.criteriaBuilder', 'plugins/'.$baseName.'criteriaBuilder.js'); 
     490 
    485491    $template->append('head_elements', 
    486492"<script type=\"text/javascript\"> 
     
    490496      imgEditUrl:'', 
    491497      imgDeleteUrl:'', 
    492       ajaxUrl:'admin.php?page=plugin&section=".basename(GPC_DIR)."/admin/plugin_admin.php&searchRequest=', 
     498      ajaxUrl:'plugins/GrumPluginClasses/gpc_ajax.php', 
    493499  } 
    494500</script>"); 
     
    501507   * @return String : a ready to use HTML code 
    502508   */ 
    503   static public function executeRequest() 
    504   { 
    505     if(self::checkAjaxRequest()) 
    506     { 
    507       switch($_REQUEST['searchRequest']) 
    508       { 
    509         case 'execute': 
    510           $result=self::doCache(); 
    511           break; 
    512         case 'getPage': 
    513           $result=self::getPage($_REQUEST['requestNumber'], $_REQUEST['page'], $_REQUEST['numPerPage']); 
    514           break; 
    515       } 
    516       GPCAjax::returnResult($result); 
    517     } 
    518     else 
    519     { 
    520       GPCAjax::returnResult(l10n('gpc_rb_invalid_request')); 
    521     } 
     509  static public function executeRequest($ajaxfct) 
     510  { 
     511    switch($ajaxfct) 
     512    { 
     513      case 'admin.rbuilder.searchExecute': 
     514        $result=self::doCache(); 
     515        break; 
     516      case 'admin.rbuilder.searchGetPage': 
     517        $result=self::getPage($_REQUEST['requestNumber'], $_REQUEST['page'], $_REQUEST['numPerPage']); 
     518        break; 
     519    } 
     520    return($result); 
    522521  } 
    523522 
     
    566565 
    567566    $sql="INSERT INTO ".self::$tables['temp']." ".self::buildGroupRequest($_REQUEST[$_REQUEST['requestName']], $tmpWHERE, $_REQUEST['operator'], ' AND ', $requestNumber); 
    568 //echo $sql; 
     567 
    569568    $result=pwg_query($sql); 
    570569 
     
    602601      'SELECT' => 'pit.id', 
    603602      'FROM' => '', 
    604       'WHERE' => '', 
     603      'WHERE' => 'pit.level <= '.$user['level'], 
    605604      'GROUPBY' => '', 
    606605      'FILTER' => '', 
     
    13011300 
    13021301  /** 
    1303    * check if this is a valid ajax request 
    1304    * 
    1305    * @return Boolean : true if this is a valide ajax request 
    1306    */ 
    1307   static protected function checkAjaxRequest() 
    1308   { 
    1309     if(isset($_REQUEST['searchRequest'])) 
    1310     { 
    1311       if($_REQUEST['searchRequest']=='execute') 
    1312       { 
    1313         if(!isset($_REQUEST['requestName'])) return(false); 
    1314  
    1315         return(true); 
    1316       } 
    1317  
    1318       if($_REQUEST['searchRequest']=='getPage') 
    1319       { 
    1320         if(!isset($_REQUEST['requestNumber'])) return(false); 
    1321  
    1322         if(!isset($_REQUEST['page'])) 
    1323         { 
    1324           $_REQUEST['page']=0; 
    1325         } 
    1326         if($_REQUEST['page']<0) $_REQUEST['page']=0; 
    1327  
    1328         if(!isset($_REQUEST['numPerPage'])) 
    1329         { 
    1330           $_REQUEST['numPerPage']=25; 
    1331         } 
    1332  
    1333         if($_REQUEST['numPerPage']>100) $_REQUEST['numPerPage']=100; 
    1334  
    1335         return(true); 
    1336       } 
    1337  
    1338     } 
    1339     return(false); 
    1340   } 
    1341  
    1342  
    1343  
    1344   /** 
    13451302   * display search page 
    13461303   * 
  • extensions/GrumPluginClasses/css/gpc.css

    r7175 r7310  
    8989  padding:0 40px 6px; 
    9090} 
    91  
     91.error, input.error { 
     92  background:#FFAAAA; 
     93  border:1px solid #800000; 
     94  color:#800000; 
     95} 
  • extensions/GrumPluginClasses/gpc_ajax.php

    r7175 r7310  
    7474      if(!( 
    7575           $_REQUEST['ajaxfct']=='admin.rbuilder.fillCaddie' or 
     76           $_REQUEST['ajaxfct']=='admin.rbuilder.searchExecute' or 
     77           $_REQUEST['ajaxfct']=='admin.rbuilder.searchGetPage' or 
    7678           $_REQUEST['ajaxfct']=='admin.categorySelector.getList' or 
    7779           $_REQUEST['ajaxfct']=='public.categorySelector.getList' 
     
    9799 
    98100        /* 
     101         * check admin.rbuilder.searchExecute values 
     102         */ 
     103        if($_REQUEST['ajaxfct']=="admin.rbuilder.searchExecute") 
     104        { 
     105          if(!isset($_REQUEST['requestName'])) $_REQUEST['ajaxfct']=""; 
     106        } 
     107 
     108        /* 
     109         * check admin.rbuilder.searchGetPage values 
     110         */ 
     111        if($_REQUEST['ajaxfct']=="admin.rbuilder.searchGetPage") 
     112        { 
     113           if(!isset($_REQUEST['requestNumber'])) $_REQUEST['ajaxfct']=""; 
     114 
     115          if(!isset($_REQUEST['page'])) $_REQUEST['page']=0; 
     116 
     117          if($_REQUEST['page']<0) $_REQUEST['page']=0; 
     118 
     119          if(!isset($_REQUEST['numPerPage'])) $_REQUEST['numPerPage']=25; 
     120 
     121          if($_REQUEST['numPerPage']>100) $_REQUEST['numPerPage']=100; 
     122        } 
     123 
     124 
     125        /* 
    99126         * check admin.categorySelector.getList values 
    100127         */ 
     
    137164        case 'admin.rbuilder.fillCaddie': 
    138165          $result=$this->ajax_gpc_admin_rbuilderFillCaddie($_REQUEST['fillMode'], $_REQUEST['requestNumber']); 
     166          break; 
     167        case 'admin.rbuilder.searchExecute': 
     168          $result=$this->ajax_gpc_admin_rbuilderSearchExecute(); 
     169          break; 
     170        case 'admin.rbuilder.searchGetPage': 
     171          $result=$this->ajax_gpc_admin_rbuilderSearchGetPage(); 
    139172          break; 
    140173        case 'admin.categorySelector.getList': 
     
    261294 
    262295 
     296    /** 
     297     * 
     298     * @return String : 
     299     */ 
     300    private function ajax_gpc_admin_rbuilderSearchExecute() 
     301    { 
     302      global $prefixeTable; 
     303      include_once(GPC_PATH."classes/GPCRequestBuilder.class.inc.php"); 
     304      GPCRequestBuilder::init($prefixeTable, 'gpc'); 
     305      return(GPCRequestBuilder::executeRequest($_REQUEST['ajaxfct'])); 
     306    } 
     307 
     308    /** 
     309     * 
     310     * @return String : 
     311     */ 
     312    private function ajax_gpc_admin_rbuilderSearchGetPage() 
     313    { 
     314      global $prefixeTable; 
     315      include_once(GPC_PATH."classes/GPCRequestBuilder.class.inc.php"); 
     316      GPCRequestBuilder::init($prefixeTable, 'gpc'); 
     317      return(GPCRequestBuilder::executeRequest($_REQUEST['ajaxfct'])); 
     318    } 
     319 
    263320 
    264321  } //class 
  • extensions/GrumPluginClasses/gpc_version.inc.php

    r7179 r7310  
    1515  if(!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
    1616 
    17   if(!defined('GPC_VERSION')) define('GPC_VERSION',  '3.3.1'); 
    18   if(!defined('GPC_VERSION2')) define('GPC_VERSION2', '03.03.01'); 
     17  if(!defined('GPC_VERSION')) define('GPC_VERSION',  '3.3.2'); 
     18  if(!defined('GPC_VERSION2')) define('GPC_VERSION2', '03.03.02'); 
    1919?> 
  • extensions/GrumPluginClasses/js/criteriaBuilder.js

    r7175 r7310  
    22 * ----------------------------------------------------------------------------- 
    33 * file: criteriaBuilder.js 
    4  * file version: 1.0.0 
     4 * file version: 1.1.0 
    55 * date: 2010-05-01 
    66 * 
     
    5454 * 
    5555 * | release | date       | 
    56  * | 1.0.0   | 2010/04/27 | start to coding 
     56 * | 1.0.0   | 2010/04/27 | * start to coding 
    5757 * |         |            | 
    58  * |         |            | 
     58 * | 1.1.0   | 2010/10/20 | * change ajax methods 
    5959 * |         |            | 
    6060 * |         |            | 
     
    559559  var sendRequest = function() 
    560560  { 
    561     datas=encodeURI('requestName='+itemsId.container+'&'+getItems()); 
     561    datas=encodeURI('ajaxfct=admin.rbuilder.searchExecute&requestName='+itemsId.container+'&'+getItems()); 
    562562    $.ajax( 
    563563      { 
    564564        type: "POST", 
    565         url: options.ajaxUrl+'execute', 
     565        url: options.ajaxUrl, 
    566566        async: true, 
    567567        data: datas, 
     
    585585  var getPage = function(requestNumber, pageNumber, numberPerPage) 
    586586  { 
    587     datas=encodeURI('requestName='+itemsId.container+'&'+getItems()); 
    588587    $.ajax( 
    589588      { 
    590589        type: "POST", 
    591         url: options.ajaxUrl+'getPage', 
     590        url: options.ajaxUrl, 
    592591        async: true, 
    593         data: {page:pageNumber, requestNumber:requestNumber, numPerPage:numberPerPage}, 
     592        data: {ajaxfct:'admin.rbuilder.searchGetPage', page:pageNumber, requestNumber:requestNumber, numPerPage:numberPerPage}, 
    594593        success: function(msg) 
    595594          { 
  • extensions/GrumPluginClasses/js/criteriaBuilder.packed.js

    r7175 r7310  
    1 /* file: criteriaBuilder.packed.js - v1.0.0 | packed on 2010/10/13 with http://joliclic.free.fr/php/javascript-packer/ */ 
    2 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('7 25(k){e a={d:\'2g\',g:\'2h\',k:k,},c={d:0,g:0,},5={1x:\'2b\',1w:\'1K\',2f:\'\',1z:\'\',1A:\'\',1j:\'\',26:\'2i\',1o:0.8,M:f,Q:f,14:f,11:f,X:f,T:f,16:\'\',W:\'\',1l:\'\',},r=1M 1g();6(b.n==2){6(C b[1]==\'1e\'){5=w.29(5,b[1])}}o.2e=7(1v){2v(1v){u\'2q\':6(b.n==3){6(C b[1]==\'V\'){1u(b[1],b[2])}}v;u\'2p\':6(b.n==2){6(C b[1]==\'V\'){1H(b[1])}}v;u\'2l\':6(b.n==4){6(C b[1]==\'V\'&&C b[2]==\'V\'){1C(b[1],b[2],b[3])}}v;u\'2d\':z(Y());v;u\'1a\':6(b.n==2){z(1a(b[1]))}p{z(f)}v;u\'2o\':1F();v;u\'2n\':23();v;u\'Z\':6(b.n==4){Z(b[1],b[2],b[3])}v;u\'1f\':6(b.n==2){z(1f(b[1]))}v}};e 1h=7(m){c.d++;e j="<D l=\'"+a.d+c.d+"\' E=\'1d 18 L "+5.1z+"\'>";j+="<1y></1y></D>";$(\'#\'+m).2t(j);j="<q E=\'17\'>";j+="<q l=\'"+a.d+c.d+"K\' E=\'"+5.1j+"\' 1n=\'s:G;\'>"+5.1x+"</q>";j+="<q l=\'"+a.d+c.d+"H\' E=\'"+5.1j+"\' 1n=\'s:G;\'>"+5.1w+"</q>";j+="</q>";$("#"+a.d+c.d).2j(j);$(\'#\'+a.d+c.d+\'K\').R(\'S\',a.d+c.d,1k);$(\'#\'+a.d+c.d+\'H\').R(\'S\',a.d+c.d,1k);1s()};e 1O=7(h){$(\'#\'+h).1D()};e 1u=7(1J,t){c.g++;e j="<D l=\'"+a.g+c.g+"\' E=\'P 18 "+5.1A+"\'>";j+="<q E=\'2m\' 1n=\'2y:2K;\'>";6(5.16!=\'\'&&5.M!=f&&w.I(5.M))j+="<1N l=\'1L"+c.g+"\' 1B=\'"+5.16+"\'/>";6(5.W!=\'\'&&5.Q!=f&&w.I(5.Q))j+="<1N l=\'1I"+c.g+"\' 1B=\'"+5.W+"\'/>";j+="</q><q E=\'17\'>"+1J+"</q></D>";$(\'#\'+a.k).2J(j);1h(a.g+c.g);6(5.16!=\'\'&&5.M!=f){$(\'#1L\'+c.g).R(\'S\',a.g+c.g,5.M)}6(5.W!=\'\'&&5.Q!=f){$(\'#1I\'+c.g).R(\'S\',a.g+c.g,5.Q)}r[c.g]=t};e 1H=7(m){6($(\'#\'+m).n!=0){$(\'#\'+m).1D();x=/[0-9]*$/;r[1E(x.U(m)[0])]=f;1q()}};e 1C=7(m,j,t){6($(\'#\'+m).n!=0){$(\'#\'+m+\' .17\').1G(j);x=/[0-9]*$/;r[1E(x.U(m)[0])]=t}};e 1F=7(){$(\'#\'+a.k).27();$(\'#\'+a.k).1G("");c.g=0;c.d=0;r=1M 1g()};e 19=7(10,F){O=\'\';6(C F==\'1e\'){1t(e J 2E F){6(C F[J]==\'1e\'){O+=19(10+\'[\'+J+\']\',F[J])}p{O+=\'&\'+10+\'[\'+J+\']=\'+F[J]}}}p{O+=\'&\'+10+\'=\'+F}z(O)};e Y=7(){B=w.2L.2z(a.k)[\'2G\'];2H=1g();1t(i=0;i<r.n;i++){6(r[i]!=f){B+=19(\'r[\'+i+\']\',r[i])}}$(\'#\'+a.k+\' .1d\').28(7(){x=/[0-9]*$/;B+=\'&2Q[\'+x.U(o.l)[0]+\']=\';6($(o).N(\'1i\')){B+=\'1K\'}p{B+=\'2b\'}});z(B)};e 1a=7(m){x=/[0-9]*$/;2a=x.U(m)[0];z(r[2a])};e 1f=7(2c){5=w.29(5,2c)};e 1b=7(h,1c){6($(\'#\'+h).N(\'L\')){6(1c){$(\'#\'+h+\'K\').A(\'s\',\'13\')}p{$(\'#\'+h+\'K\').A(\'s\',\'G\')}}p{6(1c){$(\'#\'+h+\'H\').A(\'s\',\'13\')}p{$(\'#\'+h+\'H\').A(\'s\',\'G\')}}};e 1q=7(){$(\'#\'+a.k+\' D\').28(7(){6($(o).N(\'1d\')){6($(\'#\'+o.l+\' D.P\').n==0){1O(o.l)}p 6($(\'#\'+o.l+\' D.P\').n==1){1b(o.l,1S)}p{1b(o.l,12)}}p 6($(o).N(\'P\')){6($(o).2D().2d(0).l==a.k){1h(o.l)}}})};e 1s=7(){$(\'#\'+a.k).27();$(\'#\'+a.k).2F({2C:\'18\',2B:\'P\',1o:5.1o,2x:5.26,2A:/.*/i,2N:12,2O:\'.17\',2P:1S,2M:15,2I:7(B){1q()},})};1k=7(1Q){h=1Q.t;6($(\'#\'+h).N(\'L\')){$(\'#\'+h).1R(\'L\').1W(\'1i\');$(\'#\'+h+\'K\').A(\'s\',\'G\');$(\'#\'+h+\'H\').A(\'s\',\'13\')}p{$(\'#\'+h).1R(\'1i\').1W(\'L\');$(\'#\'+h+\'K\').A(\'s\',\'13\');$(\'#\'+h+\'H\').A(\'s\',\'G\')}};e 23=7(){1m=24(\'22=\'+a.k+\'&\'+Y());$.21({20:"1Z",1Y:5.1l+\'2w\',1X:12,t:1m,1V:7(y){6(5.14!=f&&w.I(5.14))5.14(y)},1U:7(y){6(5.11!=f&&w.I(5.11))5.11(y)},})};e Z=7(1p,1P,1T){1m=24(\'22=\'+a.k+\'&\'+Y());$.21({20:"1Z",1Y:5.1l+\'Z\',1X:12,t:{2k:1P,1p:1p,2u:1T},1V:7(y){6(5.X!=f&&w.I(5.X))5.X(y)},1U:7(y){6(5.T!=f&&w.I(5.T))5.T(y)},})};1s()};25.2r=7(1r,t){z({1r:1r,2s:t,})}',62,177,'|||||options|if|function|||itemsId|arguments|counters|group|var|null|item|groupId||content|container|id|itemId|length|this|else|div|extraData|display|data|case|break|jQuery|re|msg|return|css|serialized|typeof|li|class|value|none|OpOR|isFunction|key|OpAND|cbOpAND|onEdit|hasClass|returned|cbItem|onDelete|bind|click|onGetPageError|exec|string|imgDeleteUrl|onGetPageSuccess|getItems|getPage|prefix|onRequestError|true|block|onRequestSuccess||imgEditUrl|cbSortHandle|cbSortable|serializeData|getExtraData|displayOperator|visible|cbGroup|object|setOptions|Array|addGroup|cbOpOR|classOperator|onSwitchOperator|ajaxUrl|datas|style|opacity|requestNumber|manage|owner|applyNested|for|addItem|fct|textOR|textAND|ul|classGroup|classItem|src|editItem|remove|eval|clearItems|html|deleteItem|iImgDelete|itemContent|OR|iImgEdit|new|img|removeGroup|pageNumber|event|removeClass|false|numberPerPage|error|success|addClass|async|url|POST|type|ajax|requestName|sendRequest|encodeURI|criteriaBuilder|classHelper|NestedSortableDestroy|each|extend|extraDataNumber|AND|optionsToSet|get|doAction|textHint|iCbGroup|iCbItem|helper|prepend|page|edit|cbItemButtons|send|clear|delete|add|makeExtendedData|param|wrap|numPerPage|switch|execute|helperclass|float|serialize|serializeRegExp|noNestingClass|accept|parent|in|NestedSortable|hash|tmp|onChange|append|right|iNestedSortable|nestingPxSpace|autoScroll|handle|ghosting|operator'.split('|'),0,{})) 
     1/* file: criteriaBuilder.packed.js - v1.1.0 | packed on 2010/10/13 with http://joliclic.free.fr/php/javascript-packer/ */ 
     2eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('7 1A(l){e b={d:\'2u\',g:\'2t\',l:l,},c={d:0,g:0,},5={1I:\'2a\',1G:\'2d\',2s:\'\',1M:\'\',1N:\'\',1d:\'\',26:\'2r\',1f:0.8,L:f,M:f,Y:f,10:f,11:f,12:f,U:\'\',S:\'\',1n:\'\',},q=1y 1a();6(a.o==2){6(B a[1]==\'1e\'){5=u.23(5,a[1])}}n.2v=7(1K){2w(1K){v\'2z\':6(a.o==3){6(B a[1]==\'R\'){1H(a[1],a[2])}}t;v\'2q\':6(a.o==2){6(B a[1]==\'R\'){1w(a[1])}}t;v\'2x\':6(a.o==4){6(B a[1]==\'R\'&&B a[2]==\'R\'){1u(a[1],a[2],a[3])}}t;v\'2b\':x(1q());t;v\'1h\':6(a.o==2){x(1h(a[1]))}p{x(f)}t;v\'2n\':1C();t;v\'2i\':2e();t;v\'1o\':6(a.o==4){1o(a[1],a[2],a[3])}t;v\'1k\':6(a.o==2){x(1k(a[1]))}t}};e 17=7(m){c.d++;e h="<E k=\'"+b.d+c.d+"\' F=\'19 16 N "+5.1M+"\'>";h+="<1J></1J></E>";$(\'#\'+m).2k(h);h="<r F=\'Z\'>";h+="<r k=\'"+b.d+c.d+"J\' F=\'"+5.1d+"\' 1c=\'s:I;\'>"+5.1I+"</r>";h+="<r k=\'"+b.d+c.d+"H\' F=\'"+5.1d+"\' 1c=\'s:I;\'>"+5.1G+"</r>";h+="</r>";$("#"+b.d+c.d).2o(h);$(\'#\'+b.d+c.d+\'J\').X(\'13\',b.d+c.d,1l);$(\'#\'+b.d+c.d+\'H\').X(\'13\',b.d+c.d,1l);1g()};e 28=7(j){$(\'#\'+j).1s()};e 1H=7(1V,w){c.g++;e h="<E k=\'"+b.g+c.g+"\' F=\'Q 16 "+5.1N+"\'>";h+="<r F=\'2R\' 1c=\'2P:2O;\'>";6(5.U!=\'\'&&5.L!=f&&u.G(5.L))h+="<1O k=\'1P"+c.g+"\' 1U=\'"+5.U+"\'/>";6(5.S!=\'\'&&5.M!=f&&u.G(5.M))h+="<1O k=\'1W"+c.g+"\' 1U=\'"+5.S+"\'/>";h+="</r><r F=\'Z\'>"+1V+"</r></E>";$(\'#\'+b.l).2G(h);17(b.g+c.g);6(5.U!=\'\'&&5.L!=f){$(\'#1P\'+c.g).X(\'13\',b.g+c.g,5.L)}6(5.S!=\'\'&&5.M!=f){$(\'#1W\'+c.g).X(\'13\',b.g+c.g,5.M)}q[c.g]=w};e 1w=7(m){6($(\'#\'+m).o!=0){$(\'#\'+m).1s();z=/[0-9]*$/;q[1x(z.V(m)[0])]=f;1r()}};e 1u=7(m,h,w){6($(\'#\'+m).o!=0){$(\'#\'+m+\' .Z\').1X(h);z=/[0-9]*$/;q[1x(z.V(m)[0])]=w}};e 1C=7(){$(\'#\'+b.l).25();$(\'#\'+b.l).1X("");c.g=0;c.d=0;q=1y 1a()};e 1i=7(14,C){O=\'\';6(B C==\'1e\'){2c(e K 2L C){6(B C[K]==\'1e\'){O+=1i(14+\'[\'+K+\']\',C[K])}p{O+=\'&\'+14+\'[\'+K+\']=\'+C[K]}}}p{O+=\'&\'+14+\'=\'+C}x(O)};e 1q=7(){D=u.2l.2A(b.l)[\'2T\'];2H=1a();2c(i=0;i<q.o;i++){6(q[i]!=f){D+=1i(\'q[\'+i+\']\',q[i])}}$(\'#\'+b.l+\' .19\').29(7(){z=/[0-9]*$/;D+=\'&2K[\'+z.V(n.k)[0]+\']=\';6($(n).P(\'1m\')){D+=\'2d\'}p{D+=\'2a\'}});x(D)};e 1h=7(m){z=/[0-9]*$/;1Y=z.V(m)[0];x(q[1Y])};e 1k=7(24){5=u.23(5,24)};e 18=7(j,1j){6($(\'#\'+j).P(\'N\')){6(1j){$(\'#\'+j+\'J\').y(\'s\',\'W\')}p{$(\'#\'+j+\'J\').y(\'s\',\'I\')}}p{6(1j){$(\'#\'+j+\'H\').y(\'s\',\'W\')}p{$(\'#\'+j+\'H\').y(\'s\',\'I\')}}};e 1r=7(){$(\'#\'+b.l+\' E\').29(7(){6($(n).P(\'19\')){6($(\'#\'+n.k+\' E.Q\').o==0){28(n.k)}p 6($(\'#\'+n.k+\' E.Q\').o==1){18(n.k,27)}p{18(n.k,T)}}p 6($(n).P(\'Q\')){6($(n).2U().2b(0).k==b.l){17(n.k)}}})};e 1g=7(){$(\'#\'+b.l).25();$(\'#\'+b.l).2m({2j:\'16\',2f:\'Q\',1f:5.1f,2y:5.26,2B:/.*/i,2p:T,2C:\'.Z\',2M:27,2F:15,2D:7(D){1r()},})};1l=7(20){j=20.w;6($(\'#\'+j).P(\'N\')){$(\'#\'+j).21(\'N\').22(\'1m\');$(\'#\'+j+\'J\').y(\'s\',\'I\');$(\'#\'+j+\'H\').y(\'s\',\'W\')}p{$(\'#\'+j).21(\'1m\').22(\'N\');$(\'#\'+j+\'J\').y(\'s\',\'W\');$(\'#\'+j+\'H\').y(\'s\',\'I\')}};e 2e=7(){1z=2I(\'1Q=1S.1T.2N&2E=\'+b.l+\'&\'+1q());$.1B({1D:"1v",1t:5.1n,1E:T,w:1z,1Z:7(A){6(5.Y!=f&&u.G(5.Y))5.Y(A)},1R:7(A){6(5.10!=f&&u.G(5.10))5.10(A)},})};e 1o=7(1p,1F,1L){$.1B({1D:"1v",1t:5.1n,1E:T,w:{1Q:\'1S.1T.2S\',2Q:1F,1p:1p,2h:1L},1Z:7(A){6(5.11!=f&&u.G(5.11))5.11(A)},1R:7(A){6(5.12!=f&&u.G(5.12))5.12(A)},})};1g()};1A.2J=7(1b,w){x({1b:1b,2g:w,})}',62,181,'|||||options|if|function|||arguments|itemsId|counters|group|var|null|item|content||groupId|id|container|itemId|this|length|else|extraData|div|display|break|jQuery|case|data|return|css|re|msg|typeof|value|serialized|li|class|isFunction|OpOR|none|OpAND|key|onEdit|onDelete|cbOpAND|returned|hasClass|cbItem|string|imgDeleteUrl|true|imgEditUrl|exec|block|bind|onRequestSuccess|cbSortHandle|onRequestError|onGetPageSuccess|onGetPageError|click|prefix||cbSortable|addGroup|displayOperator|cbGroup|Array|owner|style|classOperator|object|opacity|applyNested|getExtraData|serializeData|visible|setOptions|onSwitchOperator|cbOpOR|ajaxUrl|getPage|requestNumber|getItems|manage|remove|url|editItem|POST|deleteItem|eval|new|datas|criteriaBuilder|ajax|clearItems|type|async|pageNumber|textOR|addItem|textAND|ul|fct|numberPerPage|classGroup|classItem|img|iImgEdit|ajaxfct|error|admin|rbuilder|src|itemContent|iImgDelete|html|extraDataNumber|success|event|removeClass|addClass|extend|optionsToSet|NestedSortableDestroy|classHelper|false|removeGroup|each|AND|get|for|OR|sendRequest|noNestingClass|param|numPerPage|send|accept|wrap|iNestedSortable|NestedSortable|clear|prepend|autoScroll|delete|helper|textHint|iCbItem|iCbGroup|doAction|switch|edit|helperclass|add|serialize|serializeRegExp|handle|onChange|requestName|nestingPxSpace|append|tmp|encodeURI|makeExtendedData|operator|in|ghosting|searchExecute|right|float|page|cbItemButtons|searchGetPage|hash|parent'.split('|'),0,{})) 
  • extensions/GrumPluginClasses/main.inc.php

    r7179 r7310  
    22/* 
    33Plugin Name: Grum Plugins Classes.3 
    4 Version: 3.3.1 
     4Version: 3.3.2 
    55Description: Collection de classes partagées entre mes plugins (existants, ou à venir) / Partaged classes between my plugins (actuals or futures) 
    66Plugin URI: http://piwigo.org/ext/extension_view.php?eid=199 
     
    7575|         |            | 
    7676|         |            | * Adding GPCCategorySelector class 
     77|         |            | 
     78| 3.3.1   |            | * nothing changed, the 3.3.1 package was built to 
     79|         |            |   replace a wrong fil 
     80|         |            | 
     81| 3.3.2   | 2010/10/20 | * Fix mantis bug:1945 
     82|         |            |   . categorySelector : category list is empty 
     83|         |            | 
     84|         |            | 
    7785|         |            | 
    7886|         |            | ===== Don't forget to update the plugin version ! ===== 
Note: See TracChangeset for help on using the changeset viewer.