Changeset 5188


Ignore:
Timestamp:
03/19/10 13:50:19 (10 years ago)
Author:
plg
Message:

feature 724: FCBKcomplete propagated to element_set_global and
element_set_unit to manage tags.

Note: multiple instances of FCBKcomplete on the same page does not work as
good as a single instance.

Location:
trunk/admin
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/element_set_global.php

    r4731 r5188  
    149149  if (isset($_POST['add_tags']) and count($collection) > 0) 
    150150  { 
    151     add_tags($_POST['add_tags'], $collection); 
     151    $tag_ids = get_fckb_tag_ids($_POST['add_tags']); 
     152    add_tags($tag_ids, $collection); 
    152153  } 
    153154 
     
    368369} 
    369370 
    370 $all_tags = get_all_tags(); 
    371  
    372 if (count($all_tags) > 0) 
    373 {// add tags 
    374   $template->assign( 
    375     array( 
    376       'ADD_TAG_SELECTION' => get_html_tag_selection( 
    377                               $all_tags, 
    378                               'add_tags' 
    379                               ), 
    380       ) 
    381     ); 
    382 } 
    383  
    384371if (count($page['cat_elements_id']) > 0) 
    385372{ 
  • trunk/admin/element_set_unit.php

    r4334 r5188  
    106106    if (isset($_POST[ 'tags-'.$row['id'] ])) 
    107107    { 
    108       set_tags($_POST[ 'tags-'.$row['id'] ], $row['id']); 
     108      $tag_ids = get_fckb_tag_ids($_POST[ 'tags-'.$row['id'] ]); 
     109      set_tags($tag_ids, $row['id']); 
    109110    } 
    110111  } 
     
    208209    $src = get_thumbnail_url($row); 
    209210 
     211    // creation date 
     212    if (!empty($row['date_creation'])) 
     213    { 
     214      list($year,$month,$day) = explode('-', $row['date_creation']); 
     215    } 
     216    else 
     217    { 
     218      list($year,$month,$day) = array('',0,0); 
     219    } 
     220 
    210221    $query = ' 
    211 SELECT tag_id 
    212   FROM '.IMAGE_TAG_TABLE.' 
     222SELECT 
     223    tag_id, 
     224    name AS tag_name 
     225  FROM '.IMAGE_TAG_TABLE.' AS it 
     226    JOIN '.TAGS_TABLE.' AS t ON t.id = it.tag_id 
    213227  WHERE image_id = '.$row['id'].' 
    214228;'; 
    215     $selected_tags = array_from_query($query, 'tag_id'); 
    216  
    217     // creation date 
    218     if (!empty($row['date_creation'])) 
    219     { 
    220       list($year,$month,$day) = explode('-', $row['date_creation']); 
    221     } 
    222     else 
    223     { 
    224       list($year,$month,$day) = array('',0,0); 
    225     } 
    226  
    227     if (count($all_tags) > 0) 
    228     { 
    229       $tag_selection = get_html_tag_selection( 
    230         $all_tags, 
    231         'tags-'.$row['id'], 
    232         $selected_tags 
    233         ); 
    234     } 
    235     else 
    236     { 
    237       $tag_selection = 
    238         '<p>'. 
    239         l10n('No tag defined. Use Administration>Pictures>Tags'). 
    240         '</p>'; 
    241     } 
     229    $tag_selection = get_fckb_taglist($query); 
    242230 
    243231    $template->append( 
     
    259247        'DATE_CREATION_DAY' => (int)$day, 
    260248 
    261         'TAG_SELECTION' => $tag_selection, 
     249        'TAGS' => $tag_selection, 
    262250        ) 
    263251      ); 
  • trunk/admin/include/functions.php

    r5173 r5188  
    19821982  return 0; 
    19831983} 
     1984 
     1985function get_fckb_taglist($query) 
     1986{ 
     1987  $result = pwg_query($query); 
     1988  $taglist = array(); 
     1989  while ($row = pwg_db_fetch_assoc($result)) 
     1990  { 
     1991    array_push( 
     1992      $taglist, 
     1993      array( 
     1994        'caption' => $row['tag_name'], 
     1995        'value' => '~~'.$row['tag_id'].'~~', 
     1996        ) 
     1997      ); 
     1998  } 
     1999   
     2000  return $taglist; 
     2001} 
     2002 
     2003function get_fckb_tag_ids($raw_tags) 
     2004{ 
     2005  // In $raw_tags we receive something like array('~~6~~', '~~59~~', 'New 
     2006  // tag', 'Another new tag') The ~~34~~ means that it is an existing 
     2007  // tag. I've added the surrounding ~~ to permit creation of tags like "10" 
     2008  // or "1234" (numeric characters only) 
     2009 
     2010  $tag_ids = array(); 
     2011   
     2012  foreach ($raw_tags as $raw_tag) 
     2013  { 
     2014    if (preg_match('/^~~(\d+)~~$/', $raw_tag, $matches)) 
     2015    { 
     2016      array_push($tag_ids, $matches[1]); 
     2017    } 
     2018    else 
     2019    { 
     2020      // we have to create a new tag 
     2021      array_push( 
     2022        $tag_ids,  
     2023        tag_id_from_tag_name($raw_tag) 
     2024        ); 
     2025    } 
     2026  } 
     2027 
     2028  return $tag_ids; 
     2029} 
    19842030?> 
  • trunk/admin/picture_modify.php

    r5067 r5188  
    107107    ); 
    108108 
    109   // In $_POST[tags] we receive something like array('~~6~~', '~~59~~', 'New 
    110   // tag', 'Another new tag') The ~~34~~ means that it is an existing 
    111   // tag. I've added the surrounding ~~ to permit creation of tags like "10" 
    112   // or "1234" (numeric characters only) 
     109  // time to deal with tags 
    113110  $tag_ids = array(); 
    114111  if (isset($_POST['tags'])) 
    115112  { 
    116     foreach ($_POST['tags'] as $raw_tag) 
    117     { 
    118       if (preg_match('/^~~(\d+)~~$/', $raw_tag, $matches)) 
    119       { 
    120         array_push($tag_ids, $matches[1]); 
    121       } 
    122       else 
    123       { 
    124         // we have to create a new tag 
    125         array_push( 
    126           $tag_ids,  
    127           tag_id_from_tag_name($raw_tag) 
    128           ); 
    129       } 
    130     } 
    131   } 
    132    
    133   set_tags( 
    134     $tag_ids, 
    135     $_GET['image_id'] 
    136     ); 
     113    $tag_ids = get_fckb_tag_ids($_POST['tags']); 
     114  } 
     115  set_tags($tag_ids, $_GET['image_id']); 
    137116 
    138117  array_push($page['infos'], l10n('Picture informations updated')); 
     
    195174 
    196175// tags 
    197 $tags = array(); 
    198  
    199176$query = ' 
    200177SELECT 
    201178    tag_id, 
    202     name 
     179    name AS tag_name 
    203180  FROM '.IMAGE_TAG_TABLE.' AS it 
    204181    JOIN '.TAGS_TABLE.' AS t ON t.id = it.tag_id 
    205182  WHERE image_id = '.$_GET['image_id'].' 
    206183;'; 
    207 $result = pwg_query($query); 
    208 while ($row = pwg_db_fetch_assoc($result)) 
    209 { 
    210   array_push( 
    211     $tags, 
    212     array( 
    213       'value' => '~~'.$row['tag_id'].'~~', 
    214       'caption' => $row['name'], 
    215       ) 
    216     ); 
    217 } 
     184$tags = get_fckb_taglist($query); 
    218185 
    219186// retrieving direct information about picture 
  • trunk/admin/themes/default/template/element_set_global.tpl

    r5123 r5188  
    55<script type="text/javascript"> 
    66  pwg_initialization_datepicker("#date_creation_day", "#date_creation_month", "#date_creation_year", "#date_creation_linked_date", "#date_creation_action_set"); 
     7</script> 
     8{/literal} 
     9 
     10{known_script id="jquery.fcbkcomplete" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.fcbkcomplete.js"} 
     11{literal} 
     12<script type="text/javascript"> 
     13  $(document).ready(function() { 
     14    $("#tags").fcbkcomplete({ 
     15      json_url: "admin.php?fckb_tags=1", 
     16      cache: false, 
     17      filter_case: true, 
     18      filter_hide: true, 
     19      firstselected: true, 
     20      filter_selected: true, 
     21      maxitems: 10, 
     22      newel: true 
     23    }); 
     24  }); 
    725</script> 
    826{/literal} 
     
    109127      <tr> 
    110128        <td>{'add tags'|@translate}</td> 
    111         <td>{if !empty($ADD_TAG_SELECTION)}{$ADD_TAG_SELECTION}{else}<p>{'No tag defined. Use Administration>Pictures>Tags'|@translate}</p>{/if}</td> 
     129        <td> 
     130<select id="tags" name="add_tags"> 
     131{foreach from=$tags item=tag} 
     132  <option value="{$tag.value}" class="selected">{$tag.caption}</option> 
     133{/foreach} 
     134</select> 
     135        </td> 
    112136      </tr> 
    113137 
  • trunk/admin/themes/default/template/element_set_unit.tpl

    r5123 r5188  
    22{include file='include/autosize.inc.tpl'} 
    33{include file='include/datepicker.inc.tpl'} 
     4 
     5{known_script id="jquery.fcbkcomplete" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.fcbkcomplete.js"} 
     6{literal} 
     7<script type="text/javascript"> 
     8  $(document).ready(function() { 
     9    $(".tags").fcbkcomplete({ 
     10      json_url: "admin.php?fckb_tags=1", 
     11      cache: false, 
     12      filter_case: true, 
     13      filter_hide: true, 
     14      firstselected: true, 
     15      filter_selected: true, 
     16      maxitems: 10, 
     17      newel: true 
     18    }); 
     19  }); 
     20</script> 
     21{/literal} 
     22 
    423 
    524<h2>{'Batch management'|@translate}</h2> 
     
    7695    <tr> 
    7796      <td><strong>{'Tags'|@translate}</strong></td> 
    78       <td>{$element.TAG_SELECTION}</td> 
     97      <td> 
     98 
     99<select class="tags" name="tags-{$element.ID}"> 
     100{foreach from=$element.TAGS item=tag} 
     101  <option value="{$tag.value}" class="selected">{$tag.caption}</option> 
     102{/foreach} 
     103</select> 
     104 
     105      </td> 
    79106    </tr> 
    80107 
Note: See TracChangeset for help on using the changeset viewer.