Changeset 8762 for trunk/admin


Ignore:
Timestamp:
Jan 19, 2011, 2:19:16 PM (13 years ago)
Author:
plg
Message:

feature 1289 added: easy "delete orphan tags" function. On the "tags"
administration page, a warning message is displayed if you have at least
one orphan tag + direct action to delete them.

Location:
trunk/admin
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/include/functions.php

    r8734 r8762  
    362362
    363363  trigger_action('delete_user', $user_id);
     364}
     365
     366/**
     367 * Deletes all tags linked to no photo
     368 */
     369function delete_orphan_tags()
     370{
     371  $orphan_tags = get_orphan_tags();
     372 
     373  if (count($orphan_tags) > 0)
     374  {
     375    $orphan_tag_ids = array();
     376    foreach ($orphan_tags as $tag)
     377    {
     378      array_push($orphan_tag_ids, $tag['id']);
     379    }
     380
     381    $query = '
     382DELETE
     383  FROM '.TAGS_TABLE.'
     384  WHERE id IN ('.implode(',', $orphan_tag_ids).')
     385;';
     386    pwg_query($query);
     387  }
     388}
     389
     390/**
     391 * Get all tags (id + name) linked to no photo
     392 */
     393function get_orphan_tags()
     394{
     395  $orphan_tags = array();
     396 
     397  $query = '
     398SELECT
     399    id,
     400    name
     401  FROM '.TAGS_TABLE.'
     402    LEFT JOIN '.IMAGE_TAG_TABLE.' ON id = tag_id
     403  WHERE tag_id IS NULL
     404;';
     405  $result = pwg_query($query);
     406  while ($row = pwg_db_fetch_assoc($result))
     407  {
     408    array_push($orphan_tags, $row);
     409  }
     410
     411  return $orphan_tags;
    364412}
    365413
  • trunk/admin/maintenance.php

    r8728 r8762  
    5454    update_path();
    5555    update_average_rate();
     56    break;
     57  }
     58  case 'delete_orphan_tags' :
     59  {
     60    delete_orphan_tags();
    5661    break;
    5762  }
     
    134139    'U_MAINT_CATEGORIES' => $start_url.'categories',
    135140    'U_MAINT_IMAGES' => $start_url.'images',
     141    'U_MAINT_ORPHAN_TAGS' => $start_url.'delete_orphan_tags',
    136142    'U_MAINT_HISTORY_DETAIL' => $start_url.'history_detail',
    137143    'U_MAINT_HISTORY_SUMMARY' => $start_url.'history_summary',
     
    140146    'U_MAINT_DATABASE' => $start_url.'database',
    141147    'U_MAINT_C13Y' => $start_url.'c13y',
    142         'U_MAINT_SEARCH' => $start_url.'search',
     148    'U_MAINT_SEARCH' => $start_url.'search',
    143149    'U_MAINT_COMPILED_TEMPLATES' => $start_url.'compiled-templates',
    144150    'U_HELP' => get_root_url().'admin/popuphelp.php?page=maintenance',
  • trunk/admin/tags.php

    r8728 r8762  
    139139
    140140// +-----------------------------------------------------------------------+
     141// |                           delete orphan tags                          |
     142// +-----------------------------------------------------------------------+
     143
     144if (isset($_GET['action']) and 'delete_orphans' == $_GET['action'])
     145{
     146  check_pwg_token();
     147 
     148  delete_orphan_tags();
     149  $_SESSION['page_infos'] = array(l10n('Orphan tags deleted'));
     150  redirect(get_root_url().'admin.php?page=tags');
     151}
     152
     153// +-----------------------------------------------------------------------+
    141154// |                               add a tag                               |
    142155// +-----------------------------------------------------------------------+
     
    201214
    202215// +-----------------------------------------------------------------------+
     216// |                              orphan tags                              |
     217// +-----------------------------------------------------------------------+
     218
     219$orphan_tags = get_orphan_tags();
     220
     221$orphan_tag_names = array();
     222foreach ($orphan_tags as $tag)
     223{
     224  array_push($orphan_tag_names, $tag['name']);
     225}
     226
     227if (count($orphan_tag_names) > 0)
     228{
     229  array_push(
     230    $page['warnings'],
     231    sprintf(
     232      l10n('You have %d orphan tags: %s.').' <a href="%s">'.l10n('Delete orphan tags').'</a>',
     233      count($orphan_tag_names),
     234      implode(', ', $orphan_tag_names),
     235      get_root_url().'admin.php?page=tags&amp;action=delete_orphans&amp;pwg_token='.get_pwg_token()
     236      )
     237    );
     238}
     239
     240// +-----------------------------------------------------------------------+
    203241// |                             form creation                             |
    204242// +-----------------------------------------------------------------------+
  • trunk/admin/themes/default/template/admin.tpl

    r8665 r8762  
    127127  {/if}
    128128
     129  {if isset($warnings)}
     130  <div class="warnings">
     131    <ul>
     132      {foreach from=$warnings item=warning}
     133      <li>{$warning}</li>
     134      {/foreach}
     135    </ul>
     136  </div>
     137  {/if}
     138
    129139  {$ADMIN_CONTENT}
    130140</div>
  • trunk/admin/themes/default/template/maintenance.tpl

    r8723 r8762  
    1212  <li><a href="{$U_MAINT_CATEGORIES}">{'Update albums informations'|@translate}</a></li>
    1313  <li><a href="{$U_MAINT_IMAGES}">{'Update photos information'|@translate}</a></li>
     14  <li><a href="{$U_MAINT_ORPHAN_TAGS}">{'Delete orphan tags'|@translate}</a></li>
    1415  <li><a href="{$U_MAINT_DATABASE}">{'Repair and optimize database'|@translate}</a></li>
    15 </ul>
    16 
    17 <ul>
    1816  <li><a href="{$U_MAINT_HISTORY_DETAIL}" onclick="return confirm('{'Purge history detail'|@translate}');">{'Purge history detail'|@translate}</a></li>
    1917  <li><a href="{$U_MAINT_HISTORY_SUMMARY}" onclick="return confirm('{'Purge history summary'|@translate}');">{'Purge history summary'|@translate}</a></li>
     
    2220  <li><a href="{$U_MAINT_SEARCH}"onclick="return confirm('{'Purge search history'|@translate}');">{'Purge search history'|@translate}</a></li>
    2321  <li><a href="{$U_MAINT_COMPILED_TEMPLATES}">{'Purge compiled templates'|@translate}</a></li>
    24 </ul>
    25 
    26 <ul>
    2722  <li><a href="{$U_MAINT_C13Y}">{'Reinitialize check integrity'|@translate}</a></li>
    2823</ul>
Note: See TracChangeset for help on using the changeset viewer.