Changeset 7310


Ignore:
Timestamp:
Oct 20, 2010, 11:04:22 PM (14 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.