Ignore:
Timestamp:
Jun 24, 2012, 9:18:26 PM (12 years ago)
Author:
grum
Message:

feature:2634- compatibility with Piwigo 2.4
+add some objects on js framework

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/GrumPluginClasses/classes/GPCCore.class.inc.php

    r15373 r16012  
    6767|         |            | * Remove google translate connector (google has changed the useage
    6868|         |            |    and now an API key is needed)
     69|         |            |
     70|         |            | * Add js objects: inputDate, inputFilterBox, inputPages, inputSortBox, inputTag
     71|         |            |                   dynamicTable
     72|         |            |
     73|         |            | * AddHeaderCSS and AddJS are ignored if called in an ajax session (AJAX_CALL defined)
     74|         |            |
     75|         |            |
     76|         |            |
    6977|         |            |
    7078
     
    8189    - static function BBtoHTML
    8290    - static function VarToHTML
     91    - static function TabsToHTML
    8392    - static function FormMailToHTML
    8493    - static function addHeaderCSS
     
    9099    - static function rmDir
    91100    - static function applyMarkups
     101    - static function setTemplateToken
     102    - static function addHeaderContent
    92103   ---------------------------------------------------------------------- */
    93104
     
    129140    return(
    130141      Array(
    131         Array('name' => "CommonPlugin", 'version' => "2.2.0"),
    132         Array('name' => "GPCAjax", 'version' => "3.0.0"),
     142        Array('name' => "CommonPlugin", 'version' => "2.3.0"),
     143        Array('name' => "GPCAjax", 'version' => "3.1.0"),
    133144        Array('name' => "GPCCategorySelector", 'version' => "1.0.1"),
    134145        Array('name' => "GPCCore", 'version' => "1.4.1"),
    135         Array('name' => "GPCCss", 'version' => "3.1.0"),
     146        //Array('name' => "GPCCss", 'version' => "3.1.0"),  removed with v1.4.1
    136147        Array('name' => "GPCPagesNavigation", 'version' => "2.0.0"),
    137148        Array('name' => "GPCPublicIntegration", 'version' => "2.0.0"),
    138         Array('name' => "GPCRequestBuilder", 'version' => "1.1.2"),
     149        Array('name' => "GPCRequestBuilder", 'version' => "1.1.7"),
    139150        Array('name' => "GPCTables", 'version' => "1.5.0"),
    140151        Array('name' => "GPCTabSheet", 'version' => "1.1.1"),
     
    205216
    206217  /**
     218   * return the list of registered plugins
    207219   * @return Array : list of registered plugins
    208220   */
     
    503515  }
    504516
     517  /**
     518   * analyze and replace markups by their value, according to $conf parameted
     519   * @param String $text: text to analyze
     520   * @return String: analyzed text
     521   */
    505522  static public function applyMarkups($text)
    506523  {
     
    532549
    533550  /**
    534    * used to add a css file in the header
     551   * used to add a js or css directly in the header
    535552   *
    536553   * @param String $id : a unique id for the file
    537554   * @param String $file : the css file
     555   * @param String $order: priority
     556   */
     557  static public function addHeaderContent($type, $content)
     558  {
     559    global $template;
     560    $null=null;
     561
     562    if(defined('AJAX_CALL')) return(false); // not needed for an ajax call
     563
     564    switch($type)
     565    {
     566      case 'css':
     567        $template->block_html_style(null, $content, $null, $null);
     568        break;
     569      case 'js':
     570        $template->block_html_head(null, '<script type="text/javascript">'.$content.'</script>', $null, $null);
     571        break;
     572    }
     573  }
     574
     575  /**
     576   * used to add a css file in the header
     577   *
     578   * @param String $id : a unique id for the file
     579   * @param String $file : the css file
     580   * @param String $order: priority
    538581   */
    539582  static public function addHeaderCSS($id, $file, $order=0)
     
    541584    global $template;
    542585
    543     if(!array_key_exists($file, self::$headerItems['css']) and file_exists($file))
     586    if(defined('AJAX_CALL')) return(false); // no CSS needed for an ajax call
     587    if(!array_key_exists($id, self::$headerItems['css']) and file_exists($file))
    544588    {
    545589      self::$headerItems['css'][$id]=$file;
     
    547591    }
    548592  }
     593
     594  /**
     595   * used to add a js file in the header
     596   *
     597   * @param String $id : a unique id for the file
     598   * @param String $file : the js file
     599   * @param Array $require : list of required files
     600   */
    549601  static public function addHeaderJS($id, $file, $require=array())
    550602  {
    551603    global $template;
    552604
    553     if(!array_key_exists($file, self::$headerItems['js']) and file_exists($file))
     605    if(defined('AJAX_CALL')) return(false); // no JS needed for an ajax call
     606    if(!array_key_exists($id, self::$headerItems['js']) and file_exists($file))
    554607    {
    555608      self::$headerItems['js'][$id]=$file;
     
    562615   *
    563616   * @param Array $list : possibles values are
     617   *                        - categorySelector
     618   *                        - dynamicTable
    564619   *                        - inputCheckbox
    565620   *                        - inputColorPicker
    566621   *                        - inputColorsFB
    567622   *                        - inputConsole
     623   *                        - inputDate
    568624   *                        - inputDotArea
     625   *                        - inputFilterBox
    569626   *                        - inputList
    570627   *                        - inputNum
    571628   *                        - inputPosition
    572629   *                        - inputRadio
     630   *                        - inputSortBox
    573631   *                        - inputStatusBar
     632   *                        - inputTag
    574633   *                        - inputText
    575    *                        - categorySelector
    576634   */
    577635  static public function addUI($list)
     
    595653      switch($ui)
    596654      {
     655        case 'gpcCSS':
     656          $fileName='./plugins/'.basename(dirname(dirname(__FILE__))).'/css/gpc';
     657          self::addHeaderCSS('gpc.css', $fileName.'.css', 10);
     658          self::addHeaderCSS('gpc.cssT', $fileName.'_'.$template->get_themeconf('name').'.css', 15);
     659          break;
    597660        case 'categorySelector':
    598661          self::addHeaderCSS('gpc.categorySelector', GPC_PATH.'css/categorySelector.css');
     
    646709          self::addHeaderJS('gpc.inputConsole', GPC_PATH.'js/ui.inputConsole.js', array('jquery.ui.widget'));
    647710          break;
     711        case 'inputDate':
     712          self::addHeaderCSS('gpc.inputDate', GPC_PATH.'css/inputDate.css');
     713          self::addHeaderCSS('gpc.inputDateT', sprintf($themeFile, 'inputDate'));
     714          self::addHeaderJS('jquery.ui', 'themes/default/js/ui/jquery.ui.core.js', array('jquery'));
     715          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
     716          self::addHeaderJS('jquery.ui.datepicker', 'themes/default/js/ui/jquery.ui.datepicker.js', array('jquery.ui.widget'));
     717          self::addHeaderJS('gpc.inputDate', GPC_PATH.'js/ui.inputDate.js', array('jquery.ui.widget'));
     718          break;
    648719        case 'inputDotArea':
    649720          self::addHeaderCSS('gpc.inputDotArea', GPC_PATH.'css/inputDotArea.css');
     
    653724          self::addHeaderJS('gpc.inputDotArea', GPC_PATH.'js/ui.inputDotArea.js', array('jquery.ui.widget'));
    654725          break;
     726        case 'inputFilterBox':
     727          self::addHeaderCSS('gpc.inputNum', GPC_PATH.'css/inputNum.css');
     728          self::addHeaderCSS('gpc.inputNumT', sprintf($themeFile, 'inputNum'));
     729          self::addHeaderCSS('gpc.inputDate', GPC_PATH.'css/inputDate.css');
     730          self::addHeaderCSS('gpc.inputDateT', sprintf($themeFile, 'inputDate'));
     731          self::addHeaderCSS('gpc.inputText', GPC_PATH.'css/inputText.css');
     732          self::addHeaderCSS('gpc.inputTextT', sprintf($themeFile, 'inputText'));
     733          self::addHeaderCSS('gpc.inputList', GPC_PATH.'css/inputList.css');
     734          self::addHeaderCSS('gpc.inputListT', sprintf($themeFile, 'inputList'));
     735          self::addHeaderCSS('gpc.inputFilterBox', GPC_PATH.'css/inputFilterBox.css');
     736          self::addHeaderCSS('gpc.inputFilterBoxT', sprintf($themeFile, 'inputFilterBox'));
     737
     738          self::addHeaderJS('jquery.ui', 'themes/default/js/ui/jquery.ui.core.js', array('jquery'));
     739          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
     740
     741          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
     742          self::addHeaderJS('jquery.ui.mouse', 'themes/default/js/ui/jquery.ui.mouse.js', array('jquery.ui.widget'));
     743          self::addHeaderJS('jquery.ui.position', 'themes/default/js/ui/jquery.ui.position.js', array('jquery.ui.mouse'));
     744          self::addHeaderJS('jquery.ui.resizable', 'themes/default/js/ui/jquery.ui.resizable.js', array('jquery.ui.position'));
     745          self::addHeaderJS('jquery.ui.draggable', 'themes/default/js/ui/jquery.ui.draggable.js', array('jquery.ui.resizable'));
     746          self::addHeaderJS('jquery.ui.sortable', 'themes/default/js/ui/jquery.ui.sortable.js', array('jquery.ui.draggable'));
     747          self::addHeaderJS('jquery.ui.dialog', 'themes/default/js/ui/jquery.ui.dialog.js', array('jquery.ui.sortable'));
     748
     749          self::addHeaderJS('gpc.inputNum', GPC_PATH.'js/ui.inputNum.js', array('jquery.ui.dialog'));
     750          self::addHeaderJS('gpc.inputList', GPC_PATH.'js/ui.inputList.js', array('jquery.ui.dialog'));
     751          self::addHeaderJS('gpc.inputText', GPC_PATH.'js/ui.inputText.js', array('jquery.ui.dialog'));
     752          self::addHeaderJS('gpc.inputDate', GPC_PATH.'js/ui.inputDate.js', array('jquery.ui.dialog'));
     753          self::addHeaderJS('gpc.inputFilterBox', GPC_PATH.'js/ui.inputFilterBox.js', array('jquery.ui.dialog'));
     754          break;
    655755        case 'inputList':
    656756          self::addHeaderCSS('gpc.inputList', GPC_PATH.'css/inputList.css');
     
    669769          self::addHeaderJS('gpc.inputNum', GPC_PATH.'js/ui.inputNum.js', array('jquery','jquery.ui.slider'));
    670770          break;
     771        case 'inputPages':
     772          self::addHeaderCSS('gpc.inputPages', GPC_PATH.'css/inputPages.css');
     773          self::addHeaderCSS('gpc.inputPagesT', sprintf($themeFile, 'inputPages'));
     774          self::addHeaderJS('jquery.ui', 'themes/default/js/ui/jquery.ui.core.js', array('jquery'));
     775          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
     776          self::addHeaderJS('gpc.inputPages', GPC_PATH.'js/ui.inputPages.js', array('jquery','jquery.ui.widget'));
     777          break;
    671778        case 'inputPosition':
    672779          self::addHeaderCSS('gpc.inputPosition', GPC_PATH.'css/inputPosition.css');
     
    681788          self::addHeaderJS('gpc.inputRadio', GPC_PATH.'js/ui.inputRadio.js', array('jquery.ui.widget'));
    682789          break;
     790        case 'inputSortBox':
     791          self::addHeaderCSS('gpc.inputSortBox', GPC_PATH.'css/inputSortBox.css');
     792          self::addHeaderCSS('gpc.inputSortBoxT', sprintf($themeFile, 'inputSortBox'));
     793          self::addHeaderJS('jquery.ui', 'themes/default/js/ui/jquery.ui.core.js', array('jquery'));
     794          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
     795          self::addHeaderJS('jquery.ui.mouse', 'themes/default/js/ui/jquery.ui.mouse.js', array('jquery.ui.widget'));
     796          self::addHeaderJS('jquery.ui.position', 'themes/default/js/ui/jquery.ui.position.js', array('jquery.ui.mouse'));
     797          self::addHeaderJS('jquery.ui.draggable', 'themes/default/js/ui/jquery.ui.draggable.js', array('jquery.ui.position'));
     798          self::addHeaderJS('jquery.ui.sortable', 'themes/default/js/ui/jquery.ui.sortable.js', array('jquery.ui.draggable'));
     799          self::addHeaderJS('jquery.ui.dialog', 'themes/default/js/ui/jquery.ui.dialog.js', array('jquery.ui.sortable'));
     800          self::addHeaderJS('gpc.inputSortBox', GPC_PATH.'js/ui.inputSortBox.js', array('jquery.ui.dialog'));
     801          break;
    683802        case 'inputStatusBar':
    684803          self::addHeaderCSS('gpc.inputStatusBar', GPC_PATH.'css/inputStatusBar.css');
     
    695814          self::addHeaderJS('gpc.inputSwitchButton', GPC_PATH.'js/ui.inputSwitchButton.js', array('jquery.ui.widget'));
    696815          break;
     816        case 'inputTag':
     817          self::addHeaderCSS('gpc.inputTag', GPC_PATH.'css/inputTag.css');
     818          self::addHeaderCSS('gpc.inputTagT', sprintf($themeFile, 'inputTag'));
     819          self::addHeaderJS('jquery.ui', 'themes/default/js/ui/jquery.ui.core.js', array('jquery'));
     820          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
     821          self::addHeaderJS('gpc.inputTag', GPC_PATH.'js/ui.inputTag.js', array('jquery.ui.widget'));
     822          break;
    697823        case 'inputText':
    698824          self::addHeaderCSS('gpc.inputText', GPC_PATH.'css/inputText.css');
     
    708834          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
    709835          self::addHeaderJS('gpc.simpleTip', GPC_PATH.'js/simpleTip.js', array('jquery.ui.widget'));
     836          break;
     837        case 'dynamicTable':
     838          self::addHeaderCSS('gpc.inputNum', GPC_PATH.'css/inputNum.css');
     839          self::addHeaderCSS('gpc.inputNumT', sprintf($themeFile, 'inputNum'));
     840          self::addHeaderCSS('gpc.inputDate', GPC_PATH.'css/inputDate.css');
     841          self::addHeaderCSS('gpc.inputDateT', sprintf($themeFile, 'inputDate'));
     842          self::addHeaderCSS('gpc.inputText', GPC_PATH.'css/inputText.css');
     843          self::addHeaderCSS('gpc.inputTextT', sprintf($themeFile, 'inputText'));
     844          self::addHeaderCSS('gpc.inputList', GPC_PATH.'css/inputList.css');
     845          self::addHeaderCSS('gpc.inputListT', sprintf($themeFile, 'inputList'));
     846          self::addHeaderCSS('gpc.inputSortBox', GPC_PATH.'css/inputSortBox.css');
     847          self::addHeaderCSS('gpc.inputSortBoxT', sprintf($themeFile, 'inputSortBox'));
     848          self::addHeaderCSS('gpc.inputFilterBox', GPC_PATH.'css/inputFilterBox.css');
     849          self::addHeaderCSS('gpc.inputFilterBoxT', sprintf($themeFile, 'inputFilterBox'));
     850          self::addHeaderCSS('gpc.inputPages', GPC_PATH.'css/inputPages.css');
     851          self::addHeaderCSS('gpc.inputPagesT', sprintf($themeFile, 'inputPages'));
     852          self::addHeaderCSS('gpc.inputDynamicTable', GPC_PATH.'css/inputDynamicTable.css');
     853          self::addHeaderCSS('gpc.inputDynamicTableT', sprintf($themeFile, 'inputDynamicTable'));
     854
     855          self::addHeaderJS('jquery.ui', 'themes/default/js/ui/jquery.ui.core.js', array('jquery'));
     856          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
     857
     858          self::addHeaderJS('jquery.ui.widget', 'themes/default/js/ui/jquery.ui.widget.js', array('jquery.ui'));
     859          self::addHeaderJS('jquery.ui.mouse', 'themes/default/js/ui/jquery.ui.mouse.js', array('jquery.ui.widget'));
     860          self::addHeaderJS('jquery.ui.position', 'themes/default/js/ui/jquery.ui.position.js', array('jquery.ui.mouse'));
     861          self::addHeaderJS('jquery.ui.resizable', 'themes/default/js/ui/jquery.ui.resizable.js', array('jquery.ui.position'));
     862          self::addHeaderJS('jquery.ui.draggable', 'themes/default/js/ui/jquery.ui.draggable.js', array('jquery.ui.resizable'));
     863          self::addHeaderJS('jquery.ui.sortable', 'themes/default/js/ui/jquery.ui.sortable.js', array('jquery.ui.draggable'));
     864          self::addHeaderJS('jquery.ui.dialog', 'themes/default/js/ui/jquery.ui.dialog.js', array('jquery.ui.sortable'));
     865
     866          self::addHeaderJS('gpc.inputNum', GPC_PATH.'js/ui.inputNum.js', array('jquery.ui.dialog'));
     867          self::addHeaderJS('gpc.inputList', GPC_PATH.'js/ui.inputList.js', array('jquery.ui.dialog'));
     868          self::addHeaderJS('gpc.inputText', GPC_PATH.'js/ui.inputText.js', array('jquery.ui.dialog'));
     869          self::addHeaderJS('gpc.inputDate', GPC_PATH.'js/ui.inputDate.js', array('jquery.ui.dialog'));
     870          self::addHeaderJS('gpc.inputFilterBox', GPC_PATH.'js/ui.inputFilterBox.js', array('jquery.ui.dialog'));
     871          self::addHeaderJS('gpc.inputSortBox', GPC_PATH.'js/ui.inputSortBox.js', array('jquery.ui.dialog'));
     872          self::addHeaderJS('gpc.inputPages', GPC_PATH.'js/ui.inputPages.js', array('jquery.ui.dialog'));
     873          self::addHeaderJS('gpc.dynamicTable', GPC_PATH.'js/ui.dynamicTable.js', array('jquery.ui.dialog'));
    710874          break;
    711875      }
     
    8521016
    8531017
     1018 /**
     1019  * affect a valid token in a template var {$token}
     1020  */
     1021 static public function setTemplateToken()
     1022 {
     1023   global $template;
     1024
     1025   $template->assign('token', get_pwg_token());
     1026 }
     1027
     1028
    8541029} //class
    8551030
    856 //add_event_handler('loc_begin_page_header', array('GPCCore', 'applyHeaderItems'), 10);
    857 
    8581031GPCCore::init();
    8591032
Note: See TracChangeset for help on using the changeset viewer.