diff --git a/sites/all/modules/contrib/flag/flag_lists/flag_lists.admin.inc b/sites/all/modules/contrib/flag/flag_lists/flag_lists.admin.inc index 71d53220..c4ffc4fa 100644 --- a/sites/all/modules/contrib/flag/flag_lists/flag_lists.admin.inc +++ b/sites/all/modules/contrib/flag/flag_lists/flag_lists.admin.inc @@ -115,7 +115,7 @@ function flag_lists_add_js($type = NULL) { $query->fields('f') ->fields('fl') ->condition('fl.type', $type); - + $row = $query->execute() ->fetchObject(); @@ -176,7 +176,7 @@ function flag_lists_form($form, $form_state, $name = NULL, $type = NULL) { $title_string_name = variable_get('flag_lists_name', 'list'); $title_string = t('Edit your "@title" @name title', array('@title' => $flag->get_title(), '@name' => $title_string_name)); drupal_set_title(); - + $form['edit'] = array( '#type' => 'hidden', '#value' => TRUE, @@ -248,7 +248,7 @@ function flag_lists_form_submit($form, $form_state, $account = NULL) { $query->fields('f') ->fields('fl') ->condition('fl.type', $type); - + $row = $query->execute() ->fetchObject(); @@ -597,3 +597,44 @@ function flag_lists_generate_lists_form_submit($form, &$form_state) { } + +/** + * Clean lists from deleted enties + */ +function flag_list_clean_deleted(){ + + drupal_set_title(t('Flag lists Clean')); + $output = '
' . t('This page shows all the deleted entityties id from flag lists.') . '
'; + + $total = 0; + $list = "".$total ." entities have been deleted.
"; + $output .= $list; + return $output; +} diff --git a/sites/all/modules/contrib/flag/flag_lists/flag_lists.module b/sites/all/modules/contrib/flag/flag_lists/flag_lists.module index 9f9e0ad4..720be4d6 100644 --- a/sites/all/modules/contrib/flag/flag_lists/flag_lists.module +++ b/sites/all/modules/contrib/flag/flag_lists/flag_lists.module @@ -56,6 +56,16 @@ function flag_lists_menu() { 'type' => MENU_LOCAL_TASK, 'weight' => 3, ); + $items[FLAG_ADMIN_PATH . '/lists/clean'] = array( + 'title' => 'Clean lists from deleted entities', + 'page callback' => 'flag_list_clean_deleted', + 'access callback' => 'user_access', + 'access arguments' => array('administer flags'), + 'file' => 'flag_lists.admin.inc', + 'type' => MENU_LOCAL_TASK, + 'weight' => 4, + ); + if (module_exists('devel_generate')) { $items['admin/config/development/generate/flag-lists'] = array( 'title' => 'Generate lists', @@ -1278,7 +1288,7 @@ $flags['fl_template'] = array( ); return $flags; - + } /** @@ -1590,7 +1600,7 @@ function flag_lists_fix_link(&$link, $action) { ->condition('entity_type', $type); $query->fields('flag_lists_content', array('fcid', 'fid', 'uid', 'sid')); $items = $query->execute()->fetchAll(); - + if ($items) { foreach ($items as $key => $value) { db_delete('flag_lists_content') @@ -1773,5 +1783,3 @@ function flag_lists_entity_delete($entity, $type) { } } } - -