Ignore:
Timestamp:
11/01/10 22:51:58 (9 years ago)
Author:
grum
Message:

fix bug:1487 - LMT image not displayed with IE8
implement feature:1689 - Add possibility to search picture by licence

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/lmt/lmt_aip.class.inc.php

    r6703 r7560  
    1717include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCTranslate.class.inc.php'); 
    1818include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCTables.class.inc.php'); 
     19include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCRequestBuilder.class.inc.php'); 
    1920include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/genericjs.class.inc.php'); 
    20 include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCPagesNavigation.class.inc.php'); 
    2121include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); 
    2222 
    2323class LMT_AIP extends LMT_root 
    2424{ 
    25   protected $google_translate; 
    2625  protected $tabsheet; 
    2726 
     
    4241                          l10n('lmt_manageaut'), 
    4342                          $this->getAdminLink()."&f_tabsheet=manageaut"); 
     43    $this->tabsheet->add('search', 
     44                          l10n('lmt_search'), 
     45                          $this->getAdminLink()."&f_tabsheet=search"); 
    4446    $this->tabsheet->add('config', 
    4547                          l10n('lmt_config'), 
     
    4850                          l10n('lmt_help'), 
    4951                          $this->getAdminLink()."&f_tabsheet=help"); 
    50  
    51  
    52     // don't create the google_translate object everytime, otherwise google's js 
    53     // code is always included in the header even if translation functionalities 
    54     // aren't needed 
    55     // translation is needed only if we are in a ajax request 
    56     /*if((isset($_POST['fmypolls_gomodify_translation'])||isset($_POST['fmypolls_goadd_translation']))) 
    57     { 
    58       $this->google_translate = new GPCTranslate(); 
    59     } 
    60     */ 
    6152  } 
    6253 
    6354  public function __destruct() 
    6455  { 
    65     unset($this->google_translate); 
    6656    unset($this->tabsheet); 
    6757    parent::__destruct(); 
     
    7464  { 
    7565    parent::initEvents(); 
     66 
     67    if(isset($_REQUEST['f_tabsheet']) and $_REQUEST['f_tabsheet']=='search') 
     68    { 
     69      // load request builder JS only on the search page 
     70      GPCRequestBuilder::loadJSandCSS(); 
     71    } 
     72 
    7673    add_event_handler('loc_end_page_header', array(&$this->css, 'applyCSS')); 
    7774    add_event_handler('loc_end_page_header', array(&$this->css_icn, 'applyCSS')); 
     75 
     76    GPCCss::applyGpcCss(); 
    7877  } 
    7978 
     
    8483  { 
    8584    global $template; 
    86  
    87     $this->return_ajax_content(); 
    8885 
    8986    $template->set_filename('plugin_admin_content', dirname(__FILE__)."/admin/lmt_admin.tpl"); 
     
    108105        $this->display_managedoc_page(); 
    109106        break; 
     107      case 'search': 
     108        $this->displaySearch(); 
     109        break; 
    110110      case 'help': 
    111111        $this->display_help_page(); 
     
    127127    $template->assign('plugin', $template_plugin); 
    128128    $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); 
    129   } 
    130  
    131  
    132   /* 
    133     return ajax content 
    134   */ 
    135   protected function return_ajax_content() 
    136   { 
    137     global $ajax, $template; 
    138  
    139     if(isset($_REQUEST['ajaxfct'])) 
    140     { 
    141       //$this->debug("AJAXFCT:".$_REQUEST['ajaxfct']); 
    142       $result="<p class='errors'>An error has occured</p>"; 
    143       switch($_REQUEST['ajaxfct']) 
    144       { 
    145         case 'img_list': 
    146           $result=$this->ajax_img_list($_REQUEST['numpage']); 
    147           break; 
    148         case 'manage_list': 
    149           $result=$this->ajax_manage_list($_REQUEST['numpage']); 
    150           break; 
    151       } 
    152       GPCAjax::returnResult($result); 
    153     } 
    154129  } 
    155130 
     
    233208 
    234209    $datas=array( 
    235       "LMT_AJAX_URL_LIST" =>  $this->getAdminLink().'&ajaxfct=img_list&numpage=' 
     210      "LMT_AJAX_URL_LIST" =>  $this->getAdminLink('ajax') 
    236211    ); 
    237212 
    238213    $filter_list_selected = ''; 
    239     $filter_list_values = array_slice($this->licences,0,count($this->licences)-1); 
     214    $filter_list_values = array_slice(LMT_root::$licences,0,count(LMT_root::$licences)-1); 
    240215    $filter_list_labels = array(); 
    241216    foreach($filter_list_values as $key=>$val) 
     
    369344 
    370345    $datas=array( 
    371       "LMT_AJAX_URL_LIST" =>  $this->getAdminLink().'&ajaxfct=manage_list&numpage=' 
     346      "LMT_AJAX_URL_LIST" =>  $this->getAdminLink('ajax') 
    372347    ); 
    373348 
     
    395370 
    396371    $licences_list_values = array(); 
    397     $licences_list_values = $this->licences; 
     372    $licences_list_values = self::$licences; 
    398373    $licences_list_labels = array(); 
    399374    foreach($licences_list_values as $key=>$val) 
     
    459434 
    460435    $datas['lmt_redirect_urls']=array(); 
    461     $lmt_licence_default_values = array_slice($this->licences,0,count($this->licences)-1); 
     436    $lmt_licence_default_values = array_slice(self::$licences,0,count(self::$licences)-1); 
    462437    $lmt_licence_default_labels = array(); 
    463438 
     
    540515 
    541516 
     517  /** 
     518   * display the search page 
     519   * 
     520   */ 
     521  protected function displaySearch() 
     522  { 
     523    global $template; 
     524 
     525    $template->set_filename('body_page', 
     526                dirname($this->getFileLocation()).'/admin/lmt_search.tpl'); 
     527 
     528    $template->assign('lmt_search_page', GPCRequestBuilder::displaySearchPage($this->getPluginName())); 
     529 
     530    $template->assign_var_from_handle('LMT_BODY_PAGE', 'body_page'); 
     531  } 
     532 
     533 
    542534 
    543535  /* 
     
    555547      $_REQUEST['id']=""; 
    556548    } 
    557  
    558549 
    559550    /* ------------------------------------------------------------------------ 
     
    780771                  dirname($this->getFileLocation()).'/admin/lmt_js.tpl'); 
    781772 
    782     $lmt_licence_default_values=array_slice($this->licences,0,count($this->licences)-1); 
     773    $lmt_licence_default_values=array_slice(self::$licences,0,count(self::$licences)-1); 
    783774    $datas['shortlicencetext']=array(); 
    784775    foreach($lmt_licence_default_values as $key=>$val) 
     
    795786  } 
    796787 
    797   protected function make_image_data($tmp, $imageId) 
    798   { 
    799     $tmp2=array(); 
    800     foreach($tmp['id'] as $key=>$val) 
    801     { 
    802       $tmp2[]=array( 
    803         'id' => $tmp['id'][$key], 
    804         'name' => $tmp['name'][$key], 
    805         'type' => $tmp['type'][$key], 
    806         'plinks' => $tmp['plinks'][$key], 
    807         'link'=> make_picture_url( 
    808                   array( 
    809                     'image_id' => $imageId, 
    810                     'category' => array 
    811                       ( 
    812                         'id' => $tmp['id'][$key], 
    813                         'name' => $tmp['name'][$key], 
    814                         'permalink' => $tmp['plinks'][$key] 
    815                       ) 
    816                   ) 
    817                 ) 
    818       ); 
    819     } 
    820     return($tmp2); 
    821   } 
    822788 
    823789  /* --------------------------------------------------------------------------- 
     
    826792 
    827793 
    828  
    829  
    830  
    831   /* --------------------------------------------------------------------------- 
    832     ajax functions 
    833   --------------------------------------------------------------------------- */ 
    834  
    835   protected function ajax_img_list($pagenum) 
    836   { 
    837     global $conf; 
    838  
    839     $local_tpl = new Template(LMT_PATH."admin/", ""); 
    840     $local_tpl->set_filename('body_page', 
    841                   dirname($this->getFileLocation()).'/admin/plugin_admin_listitems.tpl'); 
    842  
    843     if(!isset($_REQUEST['filter']) || 
    844        !($_REQUEST['filter']=="BY" || 
    845          $_REQUEST['filter']=="BY-SA" || 
    846          $_REQUEST['filter']=="BY-ND" || 
    847          $_REQUEST['filter']=="BY-NC-ND" || 
    848          $_REQUEST['filter']=="BY-NC-SA" || 
    849          $_REQUEST['filter']=="BY-NC" || 
    850          $_REQUEST['filter']=="CRIGHT" || 
    851          $_REQUEST['filter']=="CLEFT" 
    852       )) 
    853     { 
    854       $_REQUEST['filter']=''; 
    855     } 
    856  
    857     $img_ids=array(); 
    858     $img_liste = array(); 
    859     $sql="SELECT SQL_CALC_FOUND_ROWS lmti.*, img.file, img.path, img.tn_ext, 
    860                   GROUP_CONCAT(cat.id) AS catid, 
    861                   GROUP_CONCAT(CASE WHEN cat.name IS NULL THEN '' ELSE cat.name END SEPARATOR '@sep@') AS catname, 
    862                   GROUP_CONCAT(CASE WHEN cat.permalink IS NULL THEN '' ELSE cat.permalink END SEPARATOR '@sep@') AS catpermalink, 
    863                   GROUP_CONCAT(CASE WHEN cat.dir IS NULL THEN 'V' ELSE 'P' END) AS cattype, 
    864                   lmtla.text1, lmtla.text2 
    865           FROM ".$this->tables["images"]." lmti 
    866                   LEFT OUTER JOIN ".$this->tables["licence_author"]." lmtla ON lmtla.id = lmti.author_id, 
    867                ".IMAGES_TABLE." img 
    868                   LEFT OUTER JOIN ".IMAGE_CATEGORY_TABLE." imgcat ON img.id = imgcat.image_id 
    869                   LEFT OUTER JOIN ".CATEGORIES_TABLE." cat ON imgcat.category_id = cat.id 
    870           WHERE lmti.image_id = img.id "; 
    871     if($_REQUEST['filter']!="") 
    872     { 
    873       $sql.=" AND lmti.licence_type='".$_REQUEST['filter']."'"; 
    874     } 
    875  
    876     $sql.=" GROUP BY lmti.image_id ORDER BY cat.id, img.id "; 
    877  
    878     if($this->config['lmt_list_maxitems']>0) 
    879     { 
    880       $refdbt = ($pagenum-1)*$this->config['lmt_list_maxitems']; 
    881       $sql.=" LIMIT ".$refdbt.", ".$this->config['lmt_list_maxitems']; 
    882     } 
    883  
    884     $result=pwg_query($sql); 
    885     if($result) 
    886     { 
    887       while($row = pwg_db_fetch_assoc($result)) 
    888       { 
    889         $filenfo = pathinfo($row['path']); 
    890         preg_match("/(.*)\./i", $filenfo["basename"], $tmp); 
    891         $filenfo['filename'] = $tmp[1]; 
    892  
    893         $tmp=array( 
    894               'id'=>explode(',',$row['catid']), 
    895               'name'=>explode('@sep@',$row['catname']), 
    896               'type'=>explode(',',$row['cattype']), 
    897               'plinks'=>explode('@sep@',$row['catpermalink']), 
    898               'link'=>array() 
    899             ); 
    900         $tmpcat=$this->make_image_data($tmp, $row['image_id']); 
    901  
    902         $img_ids[]=$row['image_id']; 
    903         $img_liste[]=array( 
    904           'id' => $row['image_id'], 
    905           'licence' => ($row['licence_type']=="CRIGHT")?l10n("lmt_lbl_cc_s-".strtolower($row['licence_type'])):"", 
    906           'licencei' => LMT_PATH."img/".strtolower($row['licence_type'])."_80x15.png", 
    907           'aut_text1' => $row['text1'], 
    908           'aut_text2' => $row['text2'], 
    909           'file' => $row['file'], 
    910           'cat' => $tmpcat, 
    911           'thumb' => $filenfo["dirname"]."/thumbnail/".$conf["prefix_thumbnail"].$filenfo["filename"].".".$row["tn_ext"] 
    912         ); 
    913       } 
    914     } 
    915  
    916     $sql="select FOUND_ROWS()"; 
    917     $result=pwg_query($sql); 
    918     $nb=pwg_db_fetch_row($result); 
    919  
    920     $GPCPagesNavigation = new GPCPagesNavigation(); 
    921     $GPCPagesNavigation->setNbItems($nb[0]); 
    922     $GPCPagesNavigation->setNbItemsPerPage($this->config['lmt_list_maxitems']); 
    923     $GPCPagesNavigation->setCurrentPage($pagenum); 
    924     $GPCPagesNavigation->setOptions(array( 
    925       "text_prev" => l10n("lmt_nav_prev"), 
    926       "text_next" => l10n("lmt_nav_next"), 
    927       "text_first" => l10n("lmt_nav_first"), 
    928       "text_last" => l10n("lmt_nav_last") 
    929     )); 
    930     $navbar=$GPCPagesNavigation->makeNavigation("loadpage"); 
    931     if($navbar!="") 
    932     { 
    933       $navbar=", ".$navbar; 
    934     } 
    935  
    936     $local_tpl->assign('imgliste', $img_liste); 
    937     return($nb[0]."&nbsp;".l10n("lmt_lst_nb_photos").$navbar."#".$local_tpl->parse('body_page', true)); 
    938   } 
    939  
    940   protected function ajax_manage_list($pagenum) 
    941   { 
    942     global $conf, $user; 
    943  
    944     $local_tpl = new Template(LMT_PATH."admin/", ""); 
    945     $local_tpl->set_filename('body_page', 
    946                   dirname($this->getFileLocation()).'/admin/plugin_admin_manageitems.tpl'); 
    947  
    948     if(!isset($_REQUEST['select'])) 
    949     { 
    950       $_REQUEST['select']="caddie"; 
    951     } 
    952  
    953     $img_liste = array(); 
    954     $sql="SELECT SQL_CALC_FOUND_ROWS img.id as image_id, img.file, img.path, img.tn_ext, 
    955                   GROUP_CONCAT(cat.id) AS catid, 
    956                   GROUP_CONCAT(CASE WHEN cat.name IS NULL THEN '' ELSE cat.name END SEPARATOR '@sep@') AS catname, 
    957                   GROUP_CONCAT(CASE WHEN cat.permalink IS NULL THEN '' ELSE cat.permalink END SEPARATOR '@sep@') AS catpermalink, 
    958                   GROUP_CONCAT(CASE WHEN cat.dir IS NULL THEN 'V' ELSE 'P' END) AS cattype, 
    959                  lmti.licence_type, lmtla.text1, lmtla.text2 
    960           FROM ".CADDIE_TABLE." caddie, 
    961               (".IMAGES_TABLE." img 
    962                   LEFT OUTER JOIN ".IMAGE_CATEGORY_TABLE." imgcat ON img.id = imgcat.image_id 
    963                   LEFT OUTER JOIN ".CATEGORIES_TABLE." cat ON imgcat.category_id = cat.id) 
    964                 LEFT OUTER JOIN ".$this->tables["images"]." AS lmti ON img.id = lmti.image_id 
    965                 LEFT OUTER JOIN ".$this->tables["licence_author"]." lmtla  ON lmtla.id = lmti.author_id 
    966           WHERE img.id = caddie.element_id 
    967             AND caddie.user_id = '".$user['id']."' 
    968           GROUP BY img.id 
    969           ORDER BY cat.id, img.id "; 
    970  
    971     if($this->config['lmt_list_maxitems']>0) 
    972     { 
    973       $refdbt = ($pagenum-1)*$this->config['lmt_list_maxitems']; 
    974       $sql.=" LIMIT ".$refdbt.", ".$this->config['lmt_list_maxitems']; 
    975     } 
    976  
    977     $result=pwg_query($sql); 
    978  
    979     if($result) 
    980     { 
    981       while($row = pwg_db_fetch_assoc($result)) 
    982       { 
    983         $filenfo = pathinfo($row['path']); 
    984         preg_match("/(.*)\./i", $filenfo["basename"], $tmp); 
    985         $filenfo['filename'] = $tmp[1]; 
    986  
    987         $tmp=array( 
    988               'id'=>explode(',',$row['catid']), 
    989               'name'=>explode('@sep@',$row['catname']), 
    990               'type'=>explode(',',$row['cattype']), 
    991               'plinks'=>explode('@sep@',$row['catpermalink']), 
    992               'link'=>array() 
    993             ); 
    994         $tmpcat=$this->make_image_data($tmp, $row['image_id']); 
    995  
    996         $img_liste[]=array( 
    997           'id' => $row['image_id'], 
    998           'licence' => ($row['licence_type']=="")?"DEFAULT":$row['licence_type'], 
    999           'licencei' => ($row['licence_type']=="")?"":LMT_PATH."img/".strtolower($row['licence_type'])."_80x15.png", 
    1000           'aut_text1' => $row['text1'], 
    1001           'aut_text2' => $row['text2'], 
    1002           'file' => $row['file'], 
    1003           'cat' => $tmpcat, 
    1004           'thumb' => $filenfo["dirname"]."/thumbnail/".$conf["prefix_thumbnail"].$filenfo["filename"].".".$row["tn_ext"] 
    1005         ); 
    1006       } 
    1007     } 
    1008  
    1009     $sql="select FOUND_ROWS()"; 
    1010     $result=pwg_query($sql); 
    1011     $nb=pwg_db_fetch_row($result); 
    1012  
    1013     $GPCPagesNavigation = new GPCPagesNavigation(); 
    1014     $GPCPagesNavigation->setNbItems($nb[0]); 
    1015     $GPCPagesNavigation->setNbItemsPerPage($this->config['lmt_list_maxitems']); 
    1016     $GPCPagesNavigation->setCurrentPage($pagenum); 
    1017     $GPCPagesNavigation->setOptions(array( 
    1018       "text_prev" => l10n("lmt_nav_prev"), 
    1019       "text_next" => l10n("lmt_nav_next"), 
    1020       "text_first" => l10n("lmt_nav_first"), 
    1021       "text_last" => l10n("lmt_nav_last") 
    1022     )); 
    1023     $navbar=$GPCPagesNavigation->makeNavigation("loadpage"); 
    1024     if($navbar!="") 
    1025     { 
    1026       $navbar=", ".$navbar; 
    1027     } 
    1028  
    1029     $local_tpl->assign('imgliste', $img_liste); 
    1030     return($nb[0]."&nbsp;".l10n("lmt_lst_nb_photos").$navbar."#".$local_tpl->parse('body_page', true)); 
    1031   } 
    1032  
    1033794} //class 
    1034795 
Note: See TracChangeset for help on using the changeset viewer.