Changeset 16104


Ignore:
Timestamp:
06/27/12 21:19:07 (7 years ago)
Author:
mistic100
Message:

updated for Piwigo 2.4
new filters : name, author, level, hits

Location:
extensions/SmartAlbums
Files:
10 added
2 deleted
22 edited
5 moved

Legend:

Unmodified
Added
Removed
  • extensions/SmartAlbums/admin.php

    r11392 r16104  
    44global $conf, $template, $page; 
    55 
    6 load_language('plugin.lang', SMART_PATH); 
    7 if (!is_array($conf['SmartAlbums'])) $conf['SmartAlbums'] = unserialize($conf['SmartAlbums']); 
     6$page['tab'] = (isset($_GET['tab'])) ? $_GET['tab'] : $page['tab'] = 'cat_list'; 
    87 
    9 include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); 
    10 $page['tab'] = (isset($_GET['tab'])) ? $_GET['tab'] : $page['tab'] = 'albums'; 
    11    
    12 $tabsheet = new tabsheet(); 
    13 $tabsheet->add('albums', l10n('All SmartAlbums'), SMART_ADMIN.'-albums'); 
    14 $tabsheet->add('config', l10n('Configuration'),   SMART_ADMIN.'-config'); 
    15 $tabsheet->select($page['tab']); 
    16 $tabsheet->assign(); 
     8if ($page['tab'] == 'album') 
     9{ 
     10  include(SMART_PATH . 'admin/album.php'); 
     11} 
     12else 
     13{ 
     14  include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); 
     15  $tabsheet = new tabsheet(); 
     16  $tabsheet->add('cat_list', l10n('All SmartAlbums'), SMART_ADMIN.'-cat_list'); 
     17  $tabsheet->add('config', l10n('Configuration'), SMART_ADMIN.'-config'); 
     18  $tabsheet->select($page['tab']); 
     19  $tabsheet->assign(); 
    1720 
    18 $template->assign(array( 
    19   'SMART_PATH' => SMART_PATH, 
    20 )); 
     21  $template->assign(array( 
     22    'SMART_PATH' => SMART_PATH, 
     23  )); 
    2124 
    22 include(SMART_PATH.'admin/'.$page['tab'].'.inc.php'); 
    23 $template->set_filename('SmartAlbums_content', dirname(__FILE__).'/admin/template/'.$page['tab'].'.tpl'); 
     25  include(SMART_PATH . 'admin/'.$page['tab'].'.php'); 
     26} 
     27 
     28$template->assign('SMART_PATH', SMART_PATH); 
     29 
    2430$template->assign_var_from_handle('ADMIN_CONTENT', 'SmartAlbums_content'); 
    2531 
  • extensions/SmartAlbums/admin/cat_list.php

    r12863 r16104  
    1111// |                            initialization                             | 
    1212// +-----------------------------------------------------------------------+ 
    13 $base_url = get_root_url().'admin.php?page='; 
    14 $self_url = SMART_ADMIN.'-albums'; 
     13$base_url = get_root_url() . 'admin.php?page='; 
     14$self_url = SMART_ADMIN . '-cat_list'; 
    1515 
    1616$categories = array(); 
    1717$query = ' 
    18 SELECT id, name, permalink, dir, rank, status 
     18SELECT  
     19    id, 
     20    name, 
     21    permalink, 
     22    dir, 
     23    rank, 
     24    status 
    1925  FROM '.CATEGORIES_TABLE.' AS cat 
    2026  INNER JOIN '.CATEGORY_FILTERS_TABLE.' AS cf 
     
    5056  { 
    5157    $_SESSION['page_infos'] = array(l10n('SmartAlbum added')); 
    52     $redirect_url = $base_url.'cat_modify&cat_id='.$output_create['id'].'&new_smart'; 
     58    $redirect_url = SMART_ADMIN . '-album&cat_id='.$output_create['id'].'&new_smart'; 
    5359    redirect($redirect_url); 
    5460  } 
     
    5763else if (isset($_GET['smart_generate'])) 
    5864{ 
    59   /* regenerate photo list | all (sub) categories */ 
     65  /* regenerate photo list | all categories */ 
    6066  if ($_GET['smart_generate'] == 'all') 
    6167  { 
     
    6369    { 
    6470      $associated_images = smart_make_associations($category['id']); 
    65       array_push( 
    66         $page['infos'],  
    67         sprintf( 
    68           l10n('%d photos associated to album %s'),  
     71      array_push($page['infos'],  
     72        sprintf(l10n('%d photos associated to album %s'),  
    6973          count($associated_images),  
    70           '«'.trigger_event( 
    71             'render_category_name', 
    72             $category['name'], 
    73             'admin_cat_list' 
    74             ).'»' 
     74          '«'.trigger_event('render_category_name', $category['name'], 'admin_cat_list').'»' 
    7575          ) 
    7676        ); 
     
    8181  { 
    8282    $associated_images = smart_make_associations($_GET['smart_generate']);     
    83     array_push( 
    84       $page['infos'],  
    85       sprintf( 
    86         l10n('%d photos associated to album %s'),  
     83    array_push($page['infos'],  
     84      sprintf(l10n('%d photos associated to album %s'),  
    8785        count($associated_images),  
    88         '«'.trigger_event( 
    89           'render_category_name', 
    90           $categories[$_GET['smart_generate']]['name'], 
    91           'admin_cat_list' 
    92           ).'»' 
     86        '«'.trigger_event('render_category_name', $categories[ $_GET['smart_generate'] ]['name'], 'admin_cat_list').'»' 
    9387        ) 
    9488      ); 
     
    122116{ 
    123117  array_push($page['warnings'], l10n('Only SmartAlbums are displayed on this page')); 
    124   array_push($page['warnings'], l10n('To order albums please go the main albums management page')); 
     118  array_push($page['warnings'], sprintf(l10n('To order albums please go the main albums <a href="%s">management page</a>'), $base_url.'cat_list')); 
    125119  array_push($page['warnings'], '<a href="'.$self_url.'&hide_messages">['.l10n('Don\'t show this message again').']</a>'); 
    126120} 
     
    147141  $tpl_cat = 
    148142    array( 
    149       'NAME'       => get_cat_display_name_from_id($category['id'], $base_url.'cat_modify&amp;cat_id='), 
     143      'NAME'       => get_cat_display_name_from_id($category['id'], $base_url.'album-'), 
    150144      'ID'         => $category['id'], 
    151145      'RANK'       => $category['rank']*10, 
     
    157151        ), 
    158152 
    159       'U_EDIT'     => $base_url.'cat_modify&amp;cat_id='.$category['id'], 
     153      'U_EDIT'     => $base_url.'album-'.$category['id'], 
    160154      'U_DELETE'   => $self_url.'&amp;delete='.$category['id'].'&amp;pwg_token='.get_pwg_token(), 
    161155      'U_SMART'    => $self_url.'&amp;smart_generate='.$category['id'], 
     
    167161      $base_url.'batch_manager&amp;cat='.$category['id']; 
    168162  } 
    169  
    170   if ('private' == $category['status']) 
    171   { 
    172     $tpl_cat['U_MANAGE_PERMISSIONS'] = 
    173       $base_url.'cat_perm&amp;cat='.$category['id']; 
    174   } 
    175163   
    176164  $template->append('categories', $tpl_cat); 
    177165} 
    178166 
     167$template->set_filename('SmartAlbums_content', dirname(__FILE__).'/template/cat_list.tpl'); 
     168 
    179169?> 
  • extensions/SmartAlbums/admin/config.php

    r12863 r16104  
    1515)); 
    1616 
     17$template->set_filename('SmartAlbums_content', dirname(__FILE__).'/template/config.tpl'); 
     18 
    1719?> 
  • extensions/SmartAlbums/admin/index.php

    r11392 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based photo gallery                                    | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/admin/template/cat_list.tpl

    r12863 r16104  
     1{footer_script require='jquery.ui.sortable'}{literal} 
     2jQuery(document).ready(function(){ 
     3  jQuery("#addAlbumOpen").click(function(){ 
     4    jQuery("#createAlbum").toggle(); 
     5    jQuery("input[name=virtual_name]").focus(); 
     6    jQuery("#autoOrder").hide(); 
     7  }); 
     8 
     9  jQuery("#addAlbumClose").click(function(){ 
     10    jQuery("#createAlbum").hide(); 
     11  }); 
     12}); 
     13{/literal}{/footer_script} 
     14 
     15{* è *} 
     16 
    117<div class="titrePage"> 
    218        <h2>SmartAlbums</h2> 
    319</div> 
    420 
    5 <h3> 
    6   <a href="{$F_ACTION}">{'All SmartAlbums'|@translate}</a> 
    7   {if count($categories)>9 } 
    8   <a href="#EoP" class="button" style="border:0;"> 
    9   <img src="{$themeconf.admin_icon_dir}/page_end.png" title="{'Page end'|@translate}" class="button" alt="page_end" style="margin-bottom:-0.6em;"></a> 
    10   {/if} 
    11 </h3> 
     21<form id="categoryOrdering" action="{$F_ACTION}" method="post"> 
     22<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> 
    1223 
    13 <form id="addVirtual" action="{$F_ACTION}" method="post"> 
    14   <fieldset> 
    15     <legend>{'Add a SmartAlbum'|@translate}</legend> 
    16    
    17     <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> 
    18     {'Album name'|@translate} : <input type="text" name="virtual_name"> 
    19     {'Parent album'|@translate} : 
     24<p class="showCreateAlbum"> 
     25  <span id="notManualOrder"> 
     26    <a href="#" id="addAlbumOpen">{'create a new SmartAlbum'|@translate}</a> 
     27    | <a href="{$F_ACTION}&amp;smart_generate=all">{'Regenerate photos list of all SmartAlbums'|@translate}</a> 
     28  </span> 
     29</p> 
     30 
     31<fieldset id="createAlbum" style="display:none;"> 
     32  <legend>{'create a new SmartAlbum'|@translate}</legend> 
     33  <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> 
     34 
     35  <p> 
     36    <strong>{'Album name'|@translate}</strong> : 
     37    <input type="text" name="virtual_name"> 
     38  </p> 
     39  <p> 
     40    <strong>{'Parent album'|@translate}</strong>  : 
    2041    <select class="categoryDropDown" name="parent_id"> 
    2142      <option value="0">------------</option> 
    2243      {html_options options=$category_options} 
    2344    </select> 
    24     <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitAdd"> 
    25    
    26   </fieldset> 
    27 </form> 
     45  </p> 
     46  <p class="actionButtons"> 
     47    <input class="submit" type="submit" value="{'Create'|@translate}" name="submitAdd"> 
     48    <a href="#" id="addAlbumClose">{'Cancel'|@translate}</a> 
     49  </p> 
     50</fieldset> 
    2851 
    2952{if count($categories) } 
    30 <form id="categoryOrdering" action="{$F_ACTION}" method="post"> 
    31   <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> 
    3253 
    3354  <ul class="categoryUl"> 
     
    3657    <li class="categoryLi virtual_cat" id="cat_{$category.ID}"> 
    3758      <!-- category {$category.ID} --> 
    38       <ul class="categoryActions"> 
    39         {if cat_admin_access($category.ID)} 
    40         <li><a href="{$category.U_JUMPTO}" title="{'jump to album'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_jump-to.png" class="button" alt="{'jump to album'|@translate}"></a></li> 
    41         {/if} 
    42         <li><a href="{$category.U_EDIT}" title="{'edit album'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'edit'|@translate}"></a></li> 
    43         {if isset($category.U_MANAGE_ELEMENTS) } 
    44         <li><a href="{$category.U_MANAGE_ELEMENTS}" title="{'manage album photos'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_elements.png" class="button" alt="{'Photos'|@translate}"></a></li> 
    45         {/if} 
    46         {if isset($category.U_MANAGE_PERMISSIONS) } 
    47         <li><a href="{$category.U_MANAGE_PERMISSIONS}" title="{'edit album permissions'|@translate}" ><img src="{$themeconf.admin_icon_dir}/category_permissions.png" class="button" alt="{'Permissions'|@translate}"></a></li> 
    48         {/if} 
    49         <li><a href="{$category.U_SMART}" title="{'Regenerate photos list of this SmartAlbum'|@translate}"><img src="{$themeconf.admin_icon_dir}/synchronize.png" class="button" alt="{'Regenerate photos list of this SmartAlbum'|@translate}"></a></li> 
    50         {if isset($category.U_DELETE) } 
    51         <li><a href="{$category.U_DELETE}" title="{'delete album'|@translate}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');"><img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'delete album'|@translate}"></a></li> 
    52         {/if} 
    53       </ul> 
    54  
    55       <p> 
    56         <strong>{$category.NAME}</strong> 
     59      <p class="albumTitle"> 
     60        <strong><a href="{$category.U_CHILDREN}" title="{'manage sub-albums'|@translate}">{$category.NAME}</a></strong> 
     61        <img src="{$SMART_PATH}admin/template/lightning.png"> 
    5762      </p> 
    5863 
     64      <p class="albumActions"> 
     65        <a href="{$category.U_EDIT}">{'Edit'|@translate}</a> 
     66        | <a href="{$category.U_SMART}">{'Regenerate photos list of this SmartAlbum'|@translate}</a> 
     67        {if isset($category.U_MANAGE_ELEMENTS) } 
     68        | <a href="{$category.U_MANAGE_ELEMENTS}">{'manage album photos'|@translate}</a> 
     69        {/if} 
     70        {if isset($category.U_DELETE) } 
     71        | <a href="{$category.U_DELETE}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');">{'delete album'|@translate}</a> 
     72        {/if} 
     73        {if cat_admin_access($category.ID)} 
     74        | <a href="{$category.U_JUMPTO}">{'jump to album'|@translate} ?</a> 
     75        {/if} 
     76      </p> 
    5977    </li> 
    6078    {/foreach} 
    6179  </ul> 
     80{/if} 
    6281</form> 
    63 {/if} 
    64  
    65 <form method="post" action="{$F_ACTION}&amp;smart_generate=all"> 
    66   <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> 
    67   <p><input class="submit" type="submit" value="{'Regenerate photos list of all SmartAlbums'|@translate}"></p> 
    68 </form> 
    69  
    70 <a name="EoP"></a> 
  • extensions/SmartAlbums/admin/template/config.tpl

    r11451 r16104  
    1111          <span class="property">{'Update albums on file upload'|@translate}</span> 
    1212          <input type="checkbox" name="update_on_upload" value="true" {if $update_on_upload}checked="checked"{/if}/> 
    13           {'(can cause slowdowns on admin pages)'|@translate} 
     13          {'(can cause slowdowns)'|@translate} 
    1414        </label> 
    1515                        </li> 
  • extensions/SmartAlbums/admin/template/index.php

    r11392 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based photo gallery                                    | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/include/cat_list.php

    r12863 r16104  
    4242      { 
    4343        $associated_images = smart_make_associations($category['id']); 
    44         array_push( 
    45           $page['infos'],  
    46           sprintf( 
    47             l10n('%d photos associated to album %s'),  
     44        array_push($page['infos'],  
     45          sprintf(l10n('%d photos associated to album %s'),  
    4846            count($associated_images),  
    49             '&laquo;'.trigger_event( 
    50               'render_category_name', 
    51               $category['name'], 
    52               'admin_cat_list' 
    53               ).'&raquo;' 
     47            '&laquo;'.trigger_event('render_category_name', $category['name'], 'admin_cat_list').'&raquo;' 
    5448            ) 
    5549          ); 
     
    6054    { 
    6155      $associated_images = smart_make_associations($_GET['smart_generate']);     
    62       array_push( 
    63         $page['infos'],  
    64         sprintf( 
    65           l10n('%d photos associated to album %s'),  
     56      array_push($page['infos'],  
     57        sprintf(l10n('%d photos associated to album %s'),  
    6658          count($associated_images),  
    67           '&laquo;'.trigger_event( 
    68             'render_category_name', 
    69             $smart_cats[$_GET['smart_generate']]['name'], 
    70             'admin_cat_list' 
    71             ).'&raquo;' 
     59          '&laquo;'.trigger_event('render_category_name', $smart_cats[ $_GET['smart_generate'] ]['name'], 'admin_cat_list').'&raquo;' 
    7260          ) 
    7361        ); 
     
    9987  global $smart_count; 
    10088   
    101   $search[0] = '{if isset($category.U_SYNC) }'; 
    102   $replacement[0] = ' 
     89  $search[0] = '{if isset($category.U_MANAGE_ELEMENTS) }'; 
     90  $replacement[0] = $search[0].' 
    10391{if isset($SMART_URL[$category.ID])} 
    104         <li><a href="{$SMART_URL[$category.ID]}" title="{\'Regenerate photos list of this SmartAlbum\'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/synchronize.png" class="button" alt="{\'Regenerate photos list of this SmartAlbum\'|@translate}"></a></li> 
    105 {/if}' 
    106 .$search[0]; 
     92| <a href="{$SMART_URL[$category.ID]}">{\'Regenerate photos list of this SmartAlbum\'|@translate}</a> 
     93{/if}'; 
    10794 
    10895  if ($smart_count > 0) 
    10996  { 
    110     $search[1] = '</ul> 
    111 </form>'; 
     97    $search[1] = '<a href="#" id="autoOrderOpen">{\'apply automatic sort order\'|@translate}</a>'; 
    11298    $replacement[1] = $search[1].' 
    113 <form method="post" action="{$SMART_URL.all}"> 
    114   <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> 
    115   <p><input class="submit" type="submit" value="{\'Regenerate photos list of all SmartAlbums\'|@translate}"></p> 
    116 </form>'; 
     99| <a href="{$SMART_URL.all}">{\'Regenerate photos list of all SmartAlbums\'|@translate}</a>'; 
    117100  } 
     101   
     102  $search[2] = '{$category.NAME}</a></strong>'; 
     103  $replacement[2] = $search[2].' 
     104{if isset($SMART_URL[$category.ID])} 
     105<img src="'.SMART_PATH.'admin/template/lightning.png"> 
     106{/if}'; 
    118107 
    119108  return str_replace($search, $replacement, $content); 
  • extensions/SmartAlbums/include/count_images.php

    r11334 r16104  
    66define('PHPWG_ROOT_PATH','./../../../'); 
    77define('IN_ADMIN', true); 
     8 
    89include_once(PHPWG_ROOT_PATH.'include/common.inc.php'); 
     10 
     11if (!is_admin()) die('Hacking attempt!'); 
     12 
    913include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    1014include_once(SMART_PATH.'include/functions.inc.php'); 
     15 
     16load_language('plugin.lang', SMART_PATH); 
     17$conf['SmartAlbums'] = unserialize($conf['SmartAlbums']); 
    1118 
    1219if (isset($_POST['filters'])) 
     
    2229      array_push($filters, $filter); 
    2330    } 
     31    else 
     32    { 
     33      echo '<span class="filter_error">'.$page['errors'][ count($page['errors'])-1 ].'</span>'; 
     34      exit; 
     35    } 
    2436  } 
    2537 
     
    3143} 
    3244 
    33 echo l10n_dec('%d photo', '%d photos', count($associated_images)); 
     45echo '<span class="count_image">'.l10n_dec('%d photo', '%d photos', count($associated_images)).'</span>'; 
    3446 
    3547?> 
  • extensions/SmartAlbums/include/functions.inc.php

    r12864 r16104  
    3636  } 
    3737   
    38   // represantant, try to not overwrite if still in images list 
     38  // representant, try to not overwrite if still in images list 
    3939  $query = ' 
    4040SELECT representative_picture_id 
     
    4646  if ( !in_array($rep_id, $images) ) 
    4747  { 
    48     if (!function_exists('set_random_representant')) 
    49     { 
    50       include(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    51     } 
     48    include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    5249    set_random_representant(array($cat_id)); 
    5350  } 
     
    6461{ 
    6562  global $conf; 
    66      
    67   if (!is_array($conf['SmartAlbums'])) $conf['SmartAlbums'] = unserialize($conf['SmartAlbums']); 
    6863   
    6964  if ( defined('SMART_NOT_UPDATE') OR !$conf['SmartAlbums']['update_on_upload'] ) return; 
     
    9489 
    9590  /* get filters */ 
    96   if ($filters == null) 
    97   { 
    98     $filters = array(); 
    99      
     91  if ($filters === null) 
     92  { 
    10093    $query = ' 
    10194SELECT *  
     
    10699    $result = pwg_query($query); 
    107100     
    108     if (!pwg_db_num_rows($result)) return $filters; 
     101    if (!pwg_db_num_rows($result)) return array(); 
    109102     
     103    $filters = array(); 
    110104    while ($row = pwg_db_fetch_assoc($result)) 
    111105    { 
     
    117111    } 
    118112  } 
     113  else if (!count($filters)) 
     114  { 
     115    return array(); 
     116  } 
    119117     
    120118  /* build constrains */ 
    121119  ## generate 'join', 'where' arrays and 'limit' string to create the SQL query 
    122   ## inspired by PicsEngine by Michael Villar 
     120  ## inspired by PicsEngine 3 by Michael Villar 
    123121  $i_tags = 1; 
    124122  foreach ($filters as $filter) 
    125123  { 
    126     // tags 
    127     if ($filter['type'] == 'tags') 
    128     { 
    129       if($filter['cond'] == "all") 
    130       { 
    131         $tags_arr = explode(',', $filter['value']); 
     124    switch ($filter['type']) 
     125    { 
     126      // tags 
     127      case 'tags': 
     128      { 
     129        switch ($filter['cond']) 
     130        { 
     131          // search images which have all tags 
     132          case 'all': 
     133          { 
     134            $tags_arr = explode(',', $filter['value']); 
     135            foreach($tags_arr as $value) 
     136            { 
     137              $join[] = IMAGE_TAG_TABLE.' AS it'.$i_tags.' ON i.id = it'.$i_tags.'.image_id'; 
     138              $where[] = 'it'.$i_tags.'.tag_id = '.$value; 
     139              $i_tags++; 
     140            } 
     141             
     142            break; 
     143          } 
     144          // search images which tags are in the list 
     145          case 'one': 
     146          { 
     147            $join[] = IMAGE_TAG_TABLE.' AS it'.$i_tags.' ON i.id = it'.$i_tags.'.image_id'; 
     148            $where[] = 'it'.$i_tags.'.tag_id IN ('.$filter['value'].')'; 
     149            $i_tags++; 
     150             
     151            break; 
     152          } 
     153          // exclude images which tags are in the list 
     154          case 'none': 
     155          { 
     156            $sub_query = ' 
     157      SELECT it'.$i_tags.'.image_id 
     158        FROM '.IMAGE_TAG_TABLE.' AS it'.$i_tags.' 
     159        WHERE  
     160          it'.$i_tags.'.image_id = i.id AND 
     161          it'.$i_tags.'.tag_id IN ('.$filter['value'].') 
     162        GROUP BY it'.$i_tags.'.image_id 
     163      '; 
     164            $join[] = IMAGE_TAG_TABLE.' AS it'.$i_tags.' ON i.id = it'.$i_tags.'.image_id'; 
     165            $where[] = 'NOT EXISTS ('.$sub_query.')'; 
     166            $i_tags++; 
     167             
     168            break; 
     169          } 
     170          // exclude images which tags are not in the list and search images which have all tags 
     171          case 'only': 
     172          { 
     173            $sub_query = ' 
     174      SELECT it'.$i_tags.'.image_id 
     175        FROM '.IMAGE_TAG_TABLE.' AS it'.$i_tags.' 
     176        WHERE  
     177          it'.$i_tags.'.image_id = i.id AND 
     178          it'.$i_tags.'.tag_id NOT IN ('.$filter['value'].') 
     179        GROUP BY it'.$i_tags.'.image_id 
     180      '; 
     181            $join[] = IMAGE_TAG_TABLE.' AS it'.$i_tags.' ON i.id = it'.$i_tags.'.image_id'; 
     182            $where[] = 'NOT EXISTS ('.$sub_query.')'; 
     183            $i_tags++; 
     184             
     185            $tags_arr = explode(',', $filter['value']); 
     186            foreach($tags_arr as $value) 
     187            { 
     188              $join[] = IMAGE_TAG_TABLE.' AS it'.$i_tags.' ON i.id = it'.$i_tags.'.image_id'; 
     189              $where[] = 'it'.$i_tags.'.tag_id = '.$value; 
     190              $i_tags++; 
     191            } 
     192             
     193            break; 
     194          } 
     195        } 
    132196         
    133         foreach($tags_arr as $value) 
    134         { 
    135           $join[] = IMAGE_TAG_TABLE.' AS it_'.$i_tags.' ON i.id = it_'.$i_tags.'.image_id'; 
    136           $where[] = 'it_'.$i_tags.'.tag_id = '.$value; 
    137           $i_tags++; 
    138         } 
    139       } 
    140       else if ($filter['cond'] == 'one')  
    141       { 
    142         $join[] = IMAGE_TAG_TABLE.' AS it_'.$i_tags.' ON i.id = it_'.$i_tags.'.image_id'; 
    143         $where[] = 'it_'.$i_tags.'.tag_id IN ('.$filter['value'].')'; 
    144         $i_tags++; 
    145       } 
    146       else if ($filter['cond'] == 'none')  
    147       { 
    148         $sub_query = ' 
    149       SELECT it_'.$i_tags.'.image_id 
    150         FROM '.IMAGE_TAG_TABLE.' AS it_'.$i_tags.' 
    151         WHERE  
    152           it_'.$i_tags.'.image_id = i.id AND 
    153           it_'.$i_tags.'.tag_id IN ('.$filter['value'].') 
    154         GROUP BY it_'.$i_tags.'.image_id 
    155     '; 
    156         $where[] = 'NOT EXISTS ('.$sub_query.')'; 
    157         $i_tags++; 
    158       } 
    159       else if ($filter['cond'] == 'only')  
    160       { 
    161         $sub_query = ' 
    162       SELECT it_'.$i_tags.'.image_id 
    163         FROM '.IMAGE_TAG_TABLE.' AS it_'.$i_tags.' 
    164         WHERE  
    165           it_'.$i_tags.'.image_id = i.id AND 
    166           it_'.$i_tags.'.tag_id NOT IN ('.$filter['value'].') 
    167         GROUP BY it_'.$i_tags.'.image_id 
    168     '; 
    169         $where[] = 'NOT EXISTS ('.$sub_query.')'; 
     197        break; 
     198      } 
     199     
     200      // date 
     201      case 'date': 
     202      { 
     203        switch ($filter['cond']) 
     204        { 
     205          case 'the_post': 
     206            $where[] = 'date_available BETWEEN "'.$filter['value'].' 00:00:00" AND "'.$filter['value'].' 23:59:59"'; 
     207            break; 
     208          case 'before_post': 
     209            $where[] = 'date_available < "'.$filter['value'].' 00:00:00"'; 
     210            break; 
     211          case 'after_post': 
     212            $where[] = 'date_available > "'.$filter['value'].' 23:59:59"'; 
     213            break; 
     214          case 'the_taken': 
     215            $where[] = 'date_creation BETWEEN "'.$filter['value'].' 00:00:00" AND "'.$filter['value'].' 23:59:59"'; 
     216            break; 
     217          case 'before_taken': 
     218            $where[] = 'date_creation < "'.$filter['value'].' 00:00:00"'; 
     219            break; 
     220          case 'after_taken': 
     221            $where[] = 'date_creation > "'.$filter['value'].' 23:59:59"'; 
     222            break; 
     223        } 
     224         
     225        break; 
     226      } 
    170227       
    171         $i_tags++; 
    172         $tags_arr = explode(',', $filter['value']); 
     228      // name 
     229      case 'name': 
     230      { 
     231        switch ($filter['cond']) 
     232        { 
     233          case 'contain': 
     234            $where[] = 'name LIKE "%'.$filter['value'].'%"'; 
     235            break; 
     236          case 'begin': 
     237            $where[] = 'name LIKE "'.$filter['value'].'%"'; 
     238            break; 
     239          case 'end': 
     240            $where[] = 'name LIKE "%'.$filter['value'].'"'; 
     241            break; 
     242          case 'not_contain': 
     243            $where[] = 'name NOT LIKE "%'.$filter['value'].'%"'; 
     244            break; 
     245          case 'not_begin': 
     246            $where[] = 'name NOT LIKE "'.$filter['value'].'%"'; 
     247            break; 
     248          case 'not_end': 
     249            $where[] = 'name NOT LIKE "%'.$filter['value'].'"'; 
     250            break; 
     251        } 
    173252         
    174         foreach($tags_arr as $value) 
    175         { 
    176           $join[] = IMAGE_TAG_TABLE.' AS it_'.$i_tags.' ON i.id = it_'.$i_tags.'.image_id'; 
    177           $where[] = 'it_'.$i_tags.'.tag_id = '.$value; 
    178           $i_tags++; 
    179         } 
    180       }         
    181     } 
    182     // date 
    183     else if ($filter['type'] == 'date') 
    184     { 
    185       switch ($filter['cond']) 
    186       { 
    187         case 'the': 
    188           $where[] = 'date_available BETWEEN "'.$filter['value'].' 00:00:00" AND "'.$filter['value'].' 23:59:59"'; 
    189           break; 
    190         case 'before': 
    191           $where[] = 'date_available < "'.$filter['value'].' 00:00:00"'; 
    192           break; 
    193         case 'after': 
    194           $where[] = 'date_available > "'.$filter['value'].' 23:59:59"'; 
    195           break; 
    196         case 'the_crea': 
    197           $where[] = 'date_creation BETWEEN "'.$filter['value'].' 00:00:00" AND "'.$filter['value'].' 23:59:59"'; 
    198           break; 
    199         case 'before_crea': 
    200           $where[] = 'date_creation < "'.$filter['value'].' 00:00:00"'; 
    201           break; 
    202         case 'after_crea': 
    203           $where[] = 'date_creation > "'.$filter['value'].' 23:59:59"'; 
    204           break; 
    205       } 
    206     } 
    207     // limit 
    208     else if ($filter['type'] == 'limit') 
    209     { 
    210       $limit = '0, '.$filter['value']; 
     253        break; 
     254      } 
     255       
     256      // author 
     257      case 'author': 
     258      { 
     259        switch ($filter['cond']) 
     260        { 
     261          case 'is': 
     262            if ($filter['value'] != 'NULL') $filter['value'] = '"'.$filter['value'].'"'; 
     263            $where[] = 'author = '.$filter['value'].''; 
     264            break; 
     265          case 'not_is': 
     266            if ($filter['value'] != 'NULL') $filter['value'] = '"'.$filter['value'].'"'; 
     267            $where[] = 'author != '.$filter['value'].''; 
     268            break; 
     269          case 'in': 
     270            $filter['value'] = '"'.str_replace(',', '","', $filter['value']).'"'; 
     271            $where[] = 'author IN('.$filter['value'].')'; 
     272            break; 
     273          case 'not_in': 
     274            $filter['value'] = '"'.str_replace(',', '","', $filter['value']).'"'; 
     275            $where[] = 'author NOT IN('.$filter['value'].')'; 
     276            break; 
     277        } 
     278         
     279        break; 
     280      } 
     281       
     282      // hit 
     283      case 'hit': 
     284      { 
     285        switch ($filter['cond']) 
     286        { 
     287          case 'less': 
     288            $where[] = 'hit < '.$filter['value'].''; 
     289            break; 
     290          case 'more': 
     291            $where[] = 'hit >= '.$filter['value'].''; 
     292            break; 
     293        } 
     294         
     295        break; 
     296      } 
     297       
     298      // level 
     299      case 'level': 
     300      { 
     301        $where[] = 'level = '.$filter['value'].''; 
     302        break; 
     303      } 
     304       
     305      // limit 
     306      case 'limit': 
     307      { 
     308        $limit = '0, '.$filter['value']; 
     309        break; 
     310      } 
    211311    } 
    212312  } 
     
    219319    if (isset($join)) 
    220320    { 
    221       foreach ($join as $query) 
    222       { 
    223         $MainQuery .= ' 
    224     LEFT JOIN '.$query; 
    225       } 
     321      $MainQuery.= ' 
     322    LEFT JOIN '.implode("\n    LEFT JOIN ", $join); 
    226323    } 
    227324    if (isset($where)) 
    228325    { 
    229       $MainQuery .= ' 
    230   WHERE'; 
    231       $i = 0; 
    232       foreach ($where as $query) 
    233       { 
    234         if ($i != 0) $MainQuery .= ' AND'; 
    235         $MainQuery .= ' 
    236     '.$query; 
    237         $i++; 
    238       } 
    239     } 
    240  
    241     $MainQuery .= ' 
     326      $MainQuery.= ' 
     327  WHERE 
     328    '.implode("\n    AND ", $where); 
     329    } 
     330 
     331  $MainQuery.= ' 
    242332  GROUP BY i.id 
    243  '.$conf['order_by'].' 
     333  '.$conf['order_by'].' 
    244334  '.(isset($limit) ? "LIMIT ".$limit : null).' 
    245335;'; 
    246336 
     337  // file_put_contents(SMART_PATH.'query.sql', $MainQuery); 
    247338  return array_from_query($MainQuery, 'id'); 
    248339} 
     
    256347function smart_check_filter($filter) 
    257348{ 
    258   global $limit_is_set, $page; 
     349  global $page, $limit_is_set, $level_is_set; 
    259350  $error = false; 
     351   
     352  if (!isset($limit_is_set)) $limit_is_set = false; 
     353  if (!isset($level_is_set)) $level_is_set = false; 
    260354   
    261355  # tags 
     
    281375    } 
    282376  } 
     377  # name 
     378  else if ($filter['type'] == 'name') 
     379  { 
     380    if (empty($filter['value'])) 
     381    { 
     382      $error = true; 
     383      array_push($page['errors'], l10n('Name is empty')); 
     384    } 
     385  } 
     386  # author 
     387  else if ($filter['type'] == 'author') 
     388  { 
     389    if (empty($filter['value'])) 
     390    { 
     391      $error = true; 
     392      array_push($page['errors'], l10n('Author is empty')); 
     393    } 
     394    else 
     395    { 
     396      $filter['value'] = preg_replace('#([ ]?),([ ]?)#', ',', $filter['value']); 
     397    } 
     398  } 
     399  # hit 
     400  else if ($filter['type'] == 'hit') 
     401  { 
     402    if (!preg_match('#([0-9]{1,})#', $filter['value'])) 
     403    { 
     404      $error = true; 
     405      array_push($page['errors'], l10n('Hits must be an integer')); 
     406    } 
     407  } 
     408  # level 
     409  else if ($filter['type'] == 'level') 
     410  { 
     411    if ($level_is_set == true) // only one level is allowed, first is saved 
     412    { 
     413      $error = true; 
     414      array_push($page['errors'], l10n('You can\'t use more than one level filter')); 
     415    } 
     416    else 
     417    { 
     418      $level_is_set = true; 
     419    } 
     420  } 
    283421  # limit 
    284422  else if ($filter['type'] == 'limit') 
     
    292430    { 
    293431      $error = true; 
    294       array_push($page['errors'], l10n('You can\'t use more than one limit')); 
     432      array_push($page['errors'], l10n('You can\'t use more than one limit filter')); 
    295433    } 
    296434    else 
     
    374512  } 
    375513} 
     514 
    376515?> 
  • extensions/SmartAlbums/include/index.php

    r11380 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based photo gallery                                    | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/include/page_items.php

    r12863 r16104  
    33 
    44/** 
    5  * Remove form $page['items'] picture that musn't be displayed 
     5 * Remove picture that musn't be displayed from $page['items'] 
    66 * 
    77 * here we get all pictures that current user could see  
  • extensions/SmartAlbums/index.php

    r11380 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based photo gallery                                    | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/cs_CZ/index.php

    r12982 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/de_DE/index.php

    r11690 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/en_UK/index.php

    r11290 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/en_UK/plugin.lang.php

    r11546 r16104  
    11<?php 
    22 
    3 $lang['%d photos associated to album %s'] = '%d photos associated to album %s'; 
    43$lang['No filter selected'] = 'No filter selected'; 
    5 $lang['No tag selected'] = 'No tag selected'; 
    6 $lang['Date string is malformed'] = 'Date string is malformed'; 
    7 $lang['Limit must be an integer'] = 'Limit must be an integer'; 
    8 $lang['You can\'t use more than one limit'] = 'You can\'t use more than one limit'; 
     4$lang['%d photo'] = '%d photo'; 
     5$lang['%d photos'] = '%d photos'; 
    96$lang['All these tags'] = 'All these tags'; 
    107$lang['One of these tags'] = 'One of these tags'; 
     
    1411$lang['Added before'] = 'Added before'; 
    1512$lang['Added after'] = 'Added after'; 
    16 $lang['Created on'] = 'Created on'; 
    1713$lang['Created before'] = 'Created before'; 
    1814$lang['Created after'] = 'Created after'; 
    19 $lang['%d photo'] = '%d photo'; 
    20 $lang['%d photos'] = '%d photos'; 
    21 $lang['tags filter'] = 'tags filter'; 
    22 $lang['date filter'] = 'date filter'; 
    23 $lang['limit filter'] = 'limit filter'; 
    24 $lang['Add filters here'] = 'Add filters here'; 
    25 $lang['This album is a SmartAlbum'] = 'This album is a SmartAlbum'; 
    26 $lang['Count'] = 'Count'; 
    27 $lang['Regenerate photos list of this SmartAlbum'] = 'Regenerate photos list of this SmartAlbum'; 
    28 $lang['Regenerate photos list of all SmartAlbums'] = 'Regenerate photos list of all SmartAlbums'; 
    29 $lang['Update albums on file upload'] = 'Update albums on file upload'; 
    30 $lang['(can cause slowdowns on admin pages)'] = '(can cause slowdowns on admin pages)'; 
    31 $lang['All SmartAlbums'] = 'All SmartAlbums'; 
    32 $lang['Add a SmartAlbum'] = 'Add a SmartAlbum'; 
     15$lang['Contains'] = 'Contains'; 
     16$lang['Begins with'] = 'Begins with'; 
     17$lang['Ends with'] = 'Ends with'; 
     18$lang['Doesn\'t contain'] = 'Doesn\'t contain'; 
     19$lang['Doesn\'t begin with'] = 'Doesn\'t begin with'; 
     20$lang['Doesn\'t end with'] = 'Doesn\'t end with'; 
     21$lang['Is'] = 'Is'; 
     22$lang['Is in'] = 'Is in'; 
     23$lang['Is not'] = 'Is not'; 
     24$lang['Is not in'] = 'Is not in'; 
     25$lang['Bellow'] = 'Bellow'; 
     26$lang['Above'] = 'Above'; 
    3327$lang['SmartAlbum deleted'] = 'SmartAlbum deleted'; 
    3428$lang['SmartAlbum added'] = 'SmartAlbum added'; 
     29$lang['%d photos associated to album %s'] = '%d photos associated to album %s'; 
    3530$lang['Only SmartAlbums are displayed on this page'] = 'Only SmartAlbums are displayed on this page'; 
    36 $lang['To order albums please go the main albums management page'] = 'To order albums please go the main albums <a href="admin.php?page=cat_list">management page</a>'; 
     31$lang['To order albums please go the main albums <a href="%s">management page</a>'] = 'To order albums please go the main albums <a href="%s">management page</a>'; 
    3732$lang['Don\'t show this message again'] = 'Don\'t show this message again'; 
     33$lang['All SmartAlbums'] = 'All SmartAlbums'; 
     34$lang['No tag selected'] = 'No tag selected'; 
     35$lang['Date string is malformed'] = 'Date string is malformed'; 
     36$lang['Name is empty'] = 'Name is empty'; 
     37$lang['Author is empty'] = 'Author is empty'; 
     38$lang['Hits must be an integer'] = 'Hits must be an integer'; 
     39$lang['Limit must be an integer'] = 'Limit must be an integer'; 
     40$lang['You can\'t use more than one limit filter'] = 'You can\'t use more than one limit filter'; 
     41$lang['You can\'t use more than one level filter'] = 'You can\'t use more than one level filter'; 
     42$lang['tags_filter'] = 'Tags'; 
     43$lang['date_filter'] = 'Date'; 
     44$lang['name_filter'] = 'Photo name'; 
     45$lang['author_filter'] = 'Author'; 
     46$lang['hit_filter'] = 'Hits'; 
     47$lang['level_filter'] = 'Level'; 
     48$lang['limit_filter'] = 'Max. number of photos'; 
     49$lang['For "Is (not) in", separate each author by a comma'] = 'For "Is (not) in", separate each author by a comma'; 
     50$lang['limit_filter'] = 'Max. number of photos'; 
     51$lang['This album is a SmartAlbum'] = 'This album is a SmartAlbum'; 
     52$lang['Add filters here'] = 'Add filters here'; 
     53$lang['Count'] = 'Count'; 
     54$lang['create a new SmartAlbum'] = 'create a new SmartAlbum'; 
     55$lang['Regenerate photos list of all SmartAlbums'] = 'Regenerate photos list of all SmartAlbums'; 
     56$lang['Regenerate photos list of this SmartAlbum'] = 'Regenerate photos list of this SmartAlbum'; 
     57$lang['Update albums on file upload'] = 'Update albums on file upload'; 
     58$lang['(can cause slowdowns)'] = '(can cause slowdowns)'; 
    3859 
    3960?> 
  • extensions/SmartAlbums/language/es_ES/index.php

    r13129 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/fr_FR/index.php

    r11290 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/fr_FR/plugin.lang.php

    r12523 r16104  
    11<?php 
    22 
    3 $lang['%d photos associated to album %s'] = '%d photos associées à l\'album %s'; 
    43$lang['No filter selected'] = 'Aucun filtre sélectionné'; 
    5 $lang['No tag selected'] = 'Aucun tag sélectionné'; 
    6 $lang['Date string is malformed'] = 'La date n\'est pas correcte'; 
    7 $lang['Limit must be an integer'] = 'La limite doit être un entier'; 
    8 $lang['You can\'t use more than one limit'] = 'Vous ne pouvez utiliser qu\'une seule limite'; 
     4$lang['%d photo'] = '%d photo'; 
     5$lang['%d photos'] = '%d photos'; 
    96$lang['All these tags'] = 'Tous les tags'; 
    107$lang['One of these tags'] = 'Un des tags'; 
     
    1411$lang['Added before'] = 'Ajouté avant le'; 
    1512$lang['Added after'] = 'Ajouté après le'; 
    16 $lang['Created on'] = 'Créé le'; 
    1713$lang['Created before'] = 'Créé avant le'; 
    1814$lang['Created after'] = 'Créé après le'; 
    19 $lang['%d photo'] = '%d photo'; 
    20 $lang['%d photos'] = '%d photos'; 
    21 $lang['tags filter'] = 'filtrer par tags'; 
    22 $lang['date filter'] = 'filtrer par date'; 
    23 $lang['limit filter'] = 'nombre max. d\'éléments'; 
    24 $lang['Add filters here'] = 'Ajoutez des filtres ici'; 
    25 $lang['This album is a SmartAlbum'] = 'Cet album est un SmartAlbum'; 
    26 $lang['Count'] = 'Compter'; 
    27 $lang['Regenerate photos list of this SmartAlbum'] = 'Régénérer les photos de ce SmartAlbum'; 
    28 $lang['Regenerate photos list of all SmartAlbums'] = 'Régénérer les photos de tous les SmartAlbums'; 
    29 $lang['Update albums on file upload'] = 'Mettre à jour les albums après la mise en ligne d\'un fichier'; 
    30 $lang['(can cause slowdowns on admin pages)'] = '(peut causer des ralentissements)'; 
    31 $lang['All SmartAlbums'] = 'Tous les SmartAlbums'; 
    32 $lang['Add a SmartAlbum'] = 'Ajouter un SmartAlbum'; 
     15$lang['Contains'] = 'Contient'; 
     16$lang['Begins with'] = 'Commence par'; 
     17$lang['Ends with'] = 'Fini par'; 
     18$lang['Doesn\'t contain'] = 'Ne contient pas'; 
     19$lang['Doesn\'t begin with'] = 'Ne commence pas par'; 
     20$lang['Doesn\'t end with'] = 'Ne fini pas par'; 
     21$lang['Is'] = 'Est'; 
     22$lang['Is in'] = 'Est dans'; 
     23$lang['Is not'] = 'N\'est pas'; 
     24$lang['Is not in'] = 'N\'est pas dans'; 
     25$lang['Bellow'] = 'Moins que'; 
     26$lang['Above'] = 'Plus que'; 
    3327$lang['SmartAlbum deleted'] = 'SmartAlbum supprimé'; 
    3428$lang['SmartAlbum added'] = 'SmartAlbum ajouté'; 
     29$lang['%d photos associated to album %s'] = '%d photos associées à l\'album %s'; 
    3530$lang['Only SmartAlbums are displayed on this page'] = 'Seuls les SmartAlbums sont affichés sur cette page'; 
    36 $lang['To order albums please go the main albums management page'] = 'Pour ordonner les albums veuillez vous rendre sur la page principale de <a href="admin.php?page=cat_list">gestion des albums</a>'; 
     31$lang['To order albums please go the main albums <a href="%s">management page</a>'] = 'Pour trier les SmartAlbums veuillez vous rendre sur la page principale de <a href="%s">gestion des albums</a>'; 
    3732$lang['Don\'t show this message again'] = 'Ne plus afficher ce message'; 
     33$lang['All SmartAlbums'] = 'AlTous les  SmartAlbums'; 
     34$lang['No tag selected'] = 'Aucun tag sélectionné'; 
     35$lang['Date string is malformed'] = 'Date incorrecte'; 
     36$lang['Name is empty'] = 'Le nom est vide'; 
     37$lang['Author is empty'] = 'L\'auteur est vide'; 
     38$lang['Hits must be an integer'] = 'Le nombre de vues doit être un entier'; 
     39$lang['Limit must be an integer'] = 'La nombre d\'éléments doit être un entier'; 
     40$lang['You can\'t use more than one limit filter'] = 'Vous ne pouvez choisir qu\'une seule limite de nombre d\'éléments'; 
     41$lang['You can\'t use more than one level filter'] = 'Vous ne pouvez choisir qu\'un seul niveau de confidentialité'; 
     42$lang['tags_filter'] = 'Tags'; 
     43$lang['date_filter'] = 'Date'; 
     44$lang['name_filter'] = 'Nom de la photo'; 
     45$lang['author_filter'] = 'Auteur'; 
     46$lang['hit_filter'] = 'Nombre de vues'; 
     47$lang['level_filter'] = 'Niveau de confidentialité'; 
     48$lang['limit_filter'] = 'Nombre max. d\'éléments'; 
     49$lang['For "Is (not) in", separate each author by a comma'] = 'Pour "Est/N\'est pas dans", séparez chaque auteur par une virgule'; 
     50$lang['This album is a SmartAlbum'] = 'Cet album est un SmartAlbum'; 
     51$lang['Add filters here'] = 'Ajoutez des filtres ici'; 
     52$lang['Count'] = 'Compter'; 
     53$lang['create a new SmartAlbum'] = 'créer un nouveau SmartAlbum'; 
     54$lang['Regenerate photos list of all SmartAlbums'] = 'Régénérer les photos de tous les SmartAlbums'; 
     55$lang['Regenerate photos list of this SmartAlbum'] = 'Régénérer les photos de ce SmartAlbum'; 
     56$lang['Update albums on file upload'] = 'Mettre à jour les albums après la mise en ligne d\'un fichier'; 
     57$lang['(can cause slowdowns)'] = '(peut causer des ralentissements)'; 
    3858 
    3959?> 
  • extensions/SmartAlbums/language/index.php

    r11290 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/it_IT/index.php

    r11529 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based photo gallery                                    | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/lv_LV/index.php

    r11413 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/nl_NL/index.php

    r12965 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/language/vi_VN/index.php

    r13233 r16104  
    11<?php 
    2 // +-----------------------------------------------------------------------+ 
    3 // | Piwigo - a PHP based picture gallery                                  | 
    4 // +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org | 
    6 // | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    7 // | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
    8 // +-----------------------------------------------------------------------+ 
    9 // | This program is free software; you can redistribute it and/or modify  | 
    10 // | it under the terms of the GNU General Public License as published by  | 
    11 // | the Free Software Foundation                                          | 
    12 // |                                                                       | 
    13 // | This program is distributed in the hope that it will be useful, but   | 
    14 // | WITHOUT ANY WARRANTY; without even the implied warranty of            | 
    15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      | 
    16 // | General Public License for more details.                              | 
    17 // |                                                                       | 
    18 // | You should have received a copy of the GNU General Public License     | 
    19 // | along with this program; if not, write to the Free Software           | 
    20 // | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 
    21 // | USA.                                                                  | 
    22 // +-----------------------------------------------------------------------+ 
    23  
    24 // Recursive call 
    252$url = '../'; 
    263header( 'Request-URI: '.$url ); 
  • extensions/SmartAlbums/main.inc.php

    r11392 r16104  
    1212global $prefixeTable; 
    1313 
    14 define('SMART_DIR', basename(dirname(__FILE__))); 
    15 define('SMART_PATH', PHPWG_PLUGINS_PATH.SMART_DIR.'/'); 
    16 define('CATEGORY_FILTERS_TABLE', $prefixeTable.'category_filters'); 
    17 define('SMART_ADMIN', get_root_url().'admin.php?page=plugin-' . SMART_DIR); 
     14define('SMART_PATH', PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)) . '/'); 
     15define('CATEGORY_FILTERS_TABLE', $prefixeTable . 'category_filters'); 
     16define('SMART_ADMIN', get_root_url() . 'admin.php?page=plugin-' . basename(dirname(__FILE__))); 
    1817 
    1918add_event_handler('invalidate_user_cache', 'smart_make_all_associations'); 
     
    2322{ 
    2423  add_event_handler('loc_end_section_init', 'smart_init_page_items'); 
    25   include_once(SMART_PATH.'include/init_page_items.php'); 
     24  include_once(SMART_PATH.'include/page_items.php'); 
    2625} 
    2726else if (script_basename() == 'admin') 
    2827{ 
     28  global $conf; 
     29   
    2930  load_language('plugin.lang', SMART_PATH); 
    30    
    31   add_event_handler('loc_begin_cat_modify', 'smart_cat_modify');  
    32   include_once(SMART_PATH.'include/init_cat_modify.php'); 
    33    
     31  $conf['SmartAlbums'] = unserialize($conf['SmartAlbums']); 
     32     
    3433  add_event_handler('loc_begin_cat_list', 'smart_cat_list'); 
    35   include_once(SMART_PATH.'include/init_cat_list.php'); 
     34  include_once(SMART_PATH.'include/cat_list.php'); 
    3635   
    3736  add_event_handler('get_admin_plugin_menu_links', 'smart_admin_menu'); 
    38         function smart_admin_menu($menu)  
    39         { 
    40                 array_push($menu, array( 
    41                         'NAME' => 'SmartAlbums', 
    42                         'URL' => SMART_ADMIN, 
    43       ) 
    44     ); 
    45                 return $menu; 
    46         } 
     37  function smart_admin_menu($menu)  
     38  { 
     39    array_push($menu, array( 
     40        'NAME' => 'SmartAlbums', 
     41        'URL' => SMART_ADMIN, 
     42      )); 
     43    return $menu; 
     44  } 
     45     
     46  add_event_handler('loc_begin_admin_page', 'smart_add_admin_album_tab'); 
     47  function smart_add_admin_album_tab() 
     48  { 
     49    global $page, $template; 
     50    if ($page['page'] != 'album') return; 
     51     
     52    $template->set_prefilter('tabsheet', 'smart_add_admin_album_tab_prefilter'); 
     53  } 
     54  function smart_add_admin_album_tab_prefilter($content) 
     55  { 
     56    $search = '{/foreach}'; 
     57    $add = ' 
     58  <li class="{if false}selected_tab{else}normal_tab{/if}"> 
     59    <a href="'.SMART_ADMIN.'-album&amp;cat_id='.$_GET['cat_id'].'"><span>SmartAlbum</span></a> 
     60  </li>'; 
     61    return str_replace($search, $search.$add, $content); 
     62  } 
    4763} 
    4864 
  • extensions/SmartAlbums/maintain.inc.php

    r11451 r16104  
    22if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
    33 
     4global $prefixeTable; 
     5define('smart_table', $prefixeTable . 'category_filters'); 
     6 
     7define('smart_default_config', serialize(array( 
     8    'update_on_upload' => false, 
     9    'show_list_messages' => true, 
     10    ))); 
     11 
    412function plugin_install()  
    513{ 
    6         global $prefixeTable; 
    7  
    814  /* create table to store filters */ 
    915        pwg_query( 
    10 'CREATE TABLE IF NOT EXISTS `' . $prefixeTable . 'category_filters` ( 
     16'CREATE TABLE IF NOT EXISTS `' . smart_table . '` ( 
    1117  `category_id` smallint(5) unsigned NOT NULL, 
    1218  `type` varchar(16) NOT NULL, 
     
    2026       
    2127  /* config parameter */ 
    22   pwg_query(' 
    23 INSERT INTO `' . CONFIG_TABLE . '` 
    24   VALUES ( 
    25     \'SmartAlbums\',  
    26     \''.serialize(array( 
    27         'update_on_upload' => false, 
    28         'show_list_messages' => true, 
    29         ) 
    30       ).'\', 
    31     \'Configuration for SmartAlbums plugin\' 
    32   ) 
    33 ;'); 
    34  
     28  conf_update_param('SmartAlbums', smart_default_config); 
    3529} 
    3630 
     
    4135  if (!isset($conf['SmartAlbums'])) 
    4236  { 
    43     pwg_query(' 
    44 INSERT INTO `' . CONFIG_TABLE . '` 
    45   VALUES ( 
    46     \'SmartAlbums\',  
    47     \''.serialize(array( 
    48         'update_on_upload' => false, 
    49         'show_list_messages' => true, 
    50         ) 
    51       ).'\', 
    52     \'Configuration for SmartAlbums plugin\' 
    53   ) 
    54 ;'); 
     37    conf_update_param('SmartAlbums', smart_default_config); 
     38  } 
     39   
     40  /* some filters renamed in 1.2 */ 
     41  $name_changes = array( 
     42    'the' => 'the_post', 
     43    'before' => 'before_post', 
     44    'after' => 'after_post', 
     45    'the_crea' => 'the_taken', 
     46    'before_crea' => 'before_taken', 
     47    'after_crea' => 'after_taken', 
     48    ); 
     49  foreach ($name_changes as $old => $new) 
     50  { 
     51    pwg_query('UPDATE TABLE ' . smart_table . ' SET cond = "'.$new.'" WHERE cond = "'.$old.'";'); 
    5552  } 
    5653} 
    5754 
    5855function plugin_uninstall()  
    59 { 
    60         global $prefixeTable; 
    61    
    62   pwg_query('DROP TABLE `' . $prefixeTable . 'category_filters`;'); 
     56 
     57  pwg_query('DROP TABLE `' . smart_table . '`;'); 
    6358  pwg_query('ALTER TABLE `' . IMAGE_CATEGORY_TABLE . '` DROP `smart`;'); 
    64   pwg_query('DELETE FROM `' . CONFIG_TABLE . '` WHERE param = \'SmartAlbums\';'); 
     59  pwg_query('DELETE FROM `' . CONFIG_TABLE . '` WHERE param = \'SmartAlbums\' LIMIT 1;'); 
    6560} 
     61 
    6662?> 
Note: See TracChangeset for help on using the changeset viewer.