Changeset 11546


Ignore:
Timestamp:
06/28/11 15:19:44 (8 years ago)
Author:
mistic100
Message:

keep category representant if possible

Location:
extensions/SmartAlbums
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • extensions/SmartAlbums/admin/albums.inc.php

    r11392 r11546  
    6565      array_push( 
    6666        $page['infos'],  
    67         l10n_args(get_l10n_args( 
    68           '%d photos associated to album «%s»',  
    69           array( 
    70             count($associated_images),  
    71             trigger_event( 
    72               'render_category_name', 
    73               $category['name'], 
    74               'admin_cat_list' 
    75               ) 
    76             ) 
    77           )) 
     67        sprintf( 
     68          l10n('%d photos associated to album %s'),  
     69          count($associated_images),  
     70          '«'.trigger_event( 
     71            'render_category_name', 
     72            $category['name'], 
     73            'admin_cat_list' 
     74            ).'»' 
     75          ) 
    7876        ); 
    7977    } 
     
    8583    array_push( 
    8684      $page['infos'],  
    87       l10n_args(get_l10n_args( 
    88         '%d photos associated to album «%s»',  
    89         array( 
    90           count($associated_images),  
    91           trigger_event( 
    92             'render_category_name', 
    93             $categories[$_GET['smart_generate']]['name'], 
    94             'admin_cat_list' 
    95             ) 
    96           ) 
    97         )) 
     85      sprintf( 
     86        l10n('%d photos associated to album %s'),  
     87        count($associated_images),  
     88        '«'.trigger_event( 
     89          'render_category_name', 
     90          $categories[$_GET['smart_generate']]['name'], 
     91          'admin_cat_list' 
     92          ).'»' 
     93        ) 
    9894      ); 
    9995  } 
  • extensions/SmartAlbums/include/functions.inc.php

    r11381 r11546  
    99function smart_make_associations($cat_id) 
    1010{ 
    11   pwg_query('DELETE FROM '.IMAGE_CATEGORY_TABLE.' WHERE category_id = '.$cat_id.' AND smart = true;'); 
     11  $query = ' 
     12DELETE FROM '.IMAGE_CATEGORY_TABLE.'  
     13  WHERE  
     14    category_id = '.$cat_id.'  
     15    AND smart = true 
     16;'; 
     17  pwg_query($query); 
    1218   
    1319  $images = smart_get_pictures($cat_id); 
     
    3036  } 
    3137   
    32   if (!function_exists('set_random_representant')) 
    33   { 
    34     include(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
    35   } 
    36   set_random_representant(array($cat_id)); 
     38  // represantant, try to not overwrite if still in images list 
     39  $query = ' 
     40SELECT representative_picture_id 
     41  FROM '.CATEGORIES_TABLE.' 
     42  WHERE id = '.$cat_id.' 
     43;'; 
     44  list($rep_id) = pwg_db_fetch_row(pwg_query($query)); 
     45   
     46  if ( !in_array($rep_id, $images) ) 
     47  { 
     48    if (!function_exists('set_random_representant')) 
     49    { 
     50      include(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
     51    } 
     52    set_random_representant(array($cat_id)); 
     53  } 
    3754   
    3855  return $images; 
     
    7996  if ($filters == null) 
    8097  { 
     98    $filters = array(); 
     99     
    81100    $query = ' 
    82101SELECT *  
     
    85104  ORDER BY type ASC, cond ASC 
    86105;'; 
    87     $filters = pwg_query($query); 
    88      
    89     if (!pwg_db_num_rows($filters)) return array(); 
    90      
    91     while ($filter = pwg_db_fetch_assoc($filters)) 
    92     { 
    93       $temp[] = array( 
    94         'type' => $filter['type'], 
    95         'cond' => $filter['cond'], 
    96         'value' => $filter['value'], 
     106    $result = pwg_query($query); 
     107     
     108    if (!pwg_db_num_rows($result)) return $filters; 
     109     
     110    while ($row = pwg_db_fetch_assoc($result)) 
     111    { 
     112      $filters[] = array( 
     113        'type' => $row['type'], 
     114        'cond' => $row['cond'], 
     115        'value' => $row['value'], 
    97116        ); 
    98117    } 
    99       
    100     $filters = $temp; 
    101118  } 
    102119     
     
    110127    if ($filter['type'] == 'tags') 
    111128    { 
    112         if($filter['cond'] == "all") 
    113         { 
    114           $tags_arr = explode(',', $filter['value']); 
    115            
    116           foreach($tags_arr as $value) 
    117           { 
    118             $join[] = IMAGE_TAG_TABLE.' AS it_'.$i_tags.' ON i.id = it_'.$i_tags.'.image_id'; 
    119             $where[] = 'it_'.$i_tags.'.tag_id = '.$value; 
    120             $i_tags++; 
    121           } 
    122         } 
    123         else if ($filter['cond'] == 'one')  
     129      if($filter['cond'] == "all") 
     130      { 
     131        $tags_arr = explode(',', $filter['value']); 
     132         
     133        foreach($tags_arr as $value) 
    124134        { 
    125135          $join[] = IMAGE_TAG_TABLE.' AS it_'.$i_tags.' ON i.id = it_'.$i_tags.'.image_id'; 
    126           $where[] = 'it_'.$i_tags.'.tag_id IN ('.$filter['value'].')'; 
     136          $where[] = 'it_'.$i_tags.'.tag_id = '.$value; 
    127137          $i_tags++; 
    128138        } 
    129         else if ($filter['cond'] == 'none')  
    130         { 
    131           $sub_query = ' 
     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 = ' 
    132149      SELECT it_'.$i_tags.'.image_id 
    133150        FROM '.IMAGE_TAG_TABLE.' AS it_'.$i_tags.' 
     
    137154        GROUP BY it_'.$i_tags.'.image_id 
    138155    '; 
    139           $where[] = 'NOT EXISTS ('.$sub_query.')'; 
    140           $i_tags++; 
    141         } 
    142         else if ($filter['cond'] == 'only')  
    143         { 
    144           $sub_query = ' 
     156        $where[] = 'NOT EXISTS ('.$sub_query.')'; 
     157        $i_tags++; 
     158      } 
     159      else if ($filter['cond'] == 'only')  
     160      { 
     161        $sub_query = ' 
    145162      SELECT it_'.$i_tags.'.image_id 
    146163        FROM '.IMAGE_TAG_TABLE.' AS it_'.$i_tags.' 
     
    150167        GROUP BY it_'.$i_tags.'.image_id 
    151168    '; 
    152           $where[] = 'NOT EXISTS ('.$sub_query.')'; 
     169        $where[] = 'NOT EXISTS ('.$sub_query.')'; 
     170       
     171        $i_tags++; 
     172        $tags_arr = explode(',', $filter['value']); 
    153173         
     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; 
    154178          $i_tags++; 
    155           $tags_arr = explode(',', $filter['value']); 
    156            
    157           foreach($tags_arr as $value) 
    158           { 
    159             $join[] = IMAGE_TAG_TABLE.' AS it_'.$i_tags.' ON i.id = it_'.$i_tags.'.image_id'; 
    160             $where[] = 'it_'.$i_tags.'.tag_id = '.$value; 
    161             $i_tags++; 
    162           } 
    163         }         
     179        } 
     180      }         
    164181    } 
    165182    // date 
     
    234251/** 
    235252 * Check if the filter is proper 
    236  * 
    237253 * @param array filter 
    238254 * @return array or false 
     
    246262  if ($filter['type'] == 'tags') 
    247263  { 
    248     if ($filter['value'] == null) // tags fields musn't be null 
     264    if ($filter['value'] == null) 
    249265    { 
    250266      $error = true; 
     
    259275  else if ($filter['type'] == 'date') 
    260276  { 
    261     if (!preg_match('#([0-9]{4})-([0-9]{2})-([0-9]{2})#', $filter['value'])) // dates must be proper 
     277    if (!preg_match('#([0-9]{4})-([0-9]{2})-([0-9]{2})#', $filter['value'])) 
    262278    { 
    263279      $error = true; 
     
    268284  else if ($filter['type'] == 'limit') 
    269285  { 
    270     if (!preg_match('#([0-9]{1,})#', $filter['value'])) // limit must be an integer 
     286    if (!preg_match('#([0-9]{1,})#', $filter['value'])) 
    271287    { 
    272288      $error = true; 
     
    298314/** 
    299315 * inserts multiple lines in a table, ignore duplicate entries 
    300  * 
    301316 * @param string table_name 
    302317 * @param array dbfields 
  • extensions/SmartAlbums/include/init_cat_list.php

    r11392 r11546  
    4444        array_push( 
    4545          $page['infos'],  
    46           l10n_args(get_l10n_args( 
    47             '%d photos associated to album «%s»',  
    48             array( 
    49               count($associated_images),  
    50               trigger_event( 
    51                 'render_category_name', 
    52                 $category['name'], 
    53                 'admin_cat_list' 
    54                 ) 
    55               ) 
    56             )) 
     46          sprintf( 
     47            l10n('%d photos associated to album %s'),  
     48            count($associated_images),  
     49            '«'.trigger_event( 
     50              'render_category_name', 
     51              $category['name'], 
     52              'admin_cat_list' 
     53              ).'»' 
     54            ) 
    5755          ); 
    5856      } 
     
    6462      array_push( 
    6563        $page['infos'],  
    66         l10n_args(get_l10n_args( 
    67           '%d photos associated to album «%s»',  
    68           array( 
    69             count($associated_images),  
    70             trigger_event( 
    71               'render_category_name', 
    72               $smart_cats[$_GET['smart_generate']]['name'], 
    73               'admin_cat_list' 
    74               ) 
    75             ) 
    76           )) 
     64        sprintf( 
     65          l10n('%d photos associated to album %s'),  
     66          count($associated_images),  
     67          '«'.trigger_event( 
     68            'render_category_name', 
     69            $smart_cats[$_GET['smart_generate']]['name'], 
     70            'admin_cat_list' 
     71            ).'»' 
     72          ) 
    7773        ); 
    7874    } 
     
    113109  { 
    114110    $search[1] = '</ul> 
    115 </form> 
    116 {/if}'; 
     111</form>'; 
    117112    $replacement[1] = $search[1].' 
    118113<form method="post" action="{$SMART_URL.all}"> 
  • extensions/SmartAlbums/include/init_cat_modify.php

    r11392 r11546  
    6262      $associated_images = smart_make_associations($cat_id); 
    6363      $template->assign('IMAGE_COUNT', l10n_dec('%d photo', '%d photos', count($associated_images))); 
     64       
     65      array_push( 
     66          $page['infos'],  
     67          sprintf( 
     68            l10n('%d photos associated to album %s'),  
     69            count($associated_images),  
     70            '' 
     71            ) 
     72          ); 
    6473       
    6574      define('SMART_NOT_UPDATE', 1); 
  • extensions/SmartAlbums/language/en_UK/plugin.lang.php

    r11451 r11546  
    11<?php 
    22 
    3 $lang['%d photos associated to album &laquo;%s&raquo;'] = '%d photos associated to album &laquo;%s&raquo;'; 
     3$lang['%d photos associated to album %s'] = '%d photos associated to album %s'; 
    44$lang['No filter selected'] = 'No filter selected'; 
    55$lang['No tag selected'] = 'No tag selected'; 
  • extensions/SmartAlbums/language/fr_FR/plugin.lang.php

    r11451 r11546  
    11<?php 
    22 
    3 $lang['%d photos associated to album &laquo;%s&raquo;'] = '%d photos associées à l\'album &laquo;%s&raquo;'; 
     3$lang['%d photos associated to album %s'] = '%d photos associées à l\'album %s'; 
    44$lang['No filter selected'] = 'Aucun filtre sélectionné'; 
    55$lang['No tag selected'] = 'Aucun tag sélectionné'; 
  • extensions/SmartAlbums/language/it_IT/plugin.lang.php

    r11451 r11546  
    11<?php 
    22 
    3 $lang['%d photos associated to album &laquo;%s&raquo;'] = '%d foto associate all\'album "%s"'; 
     3$lang['%d photos associated to album %s'] = '%d foto associate all\'album %s'; 
    44$lang['No filter selected'] = 'Nessun filtro selezionato'; 
    55$lang['No tag selected'] = 'Nessun tag selezionato'; 
  • extensions/SmartAlbums/language/lv_LV/plugin.lang.php

    r11451 r11546  
    11<?php 
    22 
    3 $lang['%d photos associated to album «%s»'] = '%d fotogrāfiju saistītas ar albūmu «%s»'; 
     3$lang['%d photos associated to album %s'] = '%d fotogrāfiju saistītas ar albūmu %s'; 
    44$lang['No filter selected'] = 'Nav izvēlēts neviens no filtriem'; 
    55$lang['No tag selected'] = 'Nav izvēlēts neviens no tagiem'; 
Note: See TracChangeset for help on using the changeset viewer.