You are here

function fontyourface_delete_unused_tags in @font-your-face 7.2

Same name and namespace in other branches
  1. 6.2 fontyourface.module \fontyourface_delete_unused_tags()
  2. 7 fontyourface.module \fontyourface_delete_unused_tags()

Deletes all unused tags.

3 calls to fontyourface_delete_unused_tags()
fontyourface_provider_disable in ./fontyourface.module
Removes all fonts and related tags from given provider.
fontyourface_ui_admin_edit_form_submit in modules/fontyourface_ui/fontyourface_ui.module
Edit form submit handler.
local_fonts_delete_font in modules/local_fonts/local_fonts.module
Deletes given font.

File

./fontyourface.module, line 630

Code

function fontyourface_delete_unused_tags() {

  // Delete all unused font-tag relationships.
  $missing_font_query = db_select('fontyourface_tag_font', 'tf');
  $font_alias = $missing_font_query
    ->leftJoin('fontyourface_font', 'f', 'tf.fid = f.fid');
  $missing_fonts = $missing_font_query
    ->isNull($font_alias . '.fid')
    ->fields('tf', array(
    'fid',
  ))
    ->execute();
  $missing_fids = array();
  foreach ($missing_fonts as $missing_font) {
    $missing_fids[] = $missing_font->fid;
  }

  // foreach
  if (count($missing_fids) > 0) {
    db_delete('fontyourface_tag_font')
      ->condition('fid', $missing_fids, 'IN')
      ->execute();
  }

  // if
  // Delete all unused tags.
  $missing_tag_font_query = db_select('fontyourface_tag', 't');
  $tag_font_alias = $missing_tag_font_query
    ->leftJoin('fontyourface_tag_font', 'tf', 'tf.tid = t.tid');
  $missing_tags = $missing_tag_font_query
    ->isNull($tag_font_alias . '.fid')
    ->fields('t', array(
    'tid',
  ))
    ->execute();
  $missing_tids = array();
  foreach ($missing_tags as $missing_tag) {
    $missing_tids[] = $missing_tag->tid;
  }

  // foreach
  if (count($missing_tids) > 0) {
    db_delete('fontyourface_tag')
      ->condition('tid', $missing_tids, 'IN')
      ->execute();
  }

  // if
}