12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- diff --git a/flag_lists.module b/flag_lists.module
- index d829113..b3c04f0 100644
- --- a/flag_lists.module
- +++ b/flag_lists.module
- @@ -1587,6 +1587,32 @@ function flag_lists_fix_link(&$link, $action) {
- return $fcid;
- }
-
- +
- + /**
- + * Remove all entries of entity_id and type
- + *
- + * @param $entity_id
- + * Entity id which has been flagged.
- + * @param $type
- + * The entity type.
- + */
- + function _flag_lists_remove_entity($entity_id, $type) {
- + $query = db_select('flag_lists_content')
- + ->condition('entity_id', $entity_id)
- + ->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')
- + ->condition('fcid', $value->fcid)
- + ->execute();
- + watchdog('flag_lists', t('Deleted entry @fcid from flat_lists_content', array('@fcid' => $value->fcid)));
- + }
- + }
- + }
- +
- /**
- * Updates the flag count for this content
- */
- @@ -1766,3 +1792,17 @@ function flag_lists_views_form_substitutions() {
- $select_all_placeholder => drupal_render($select_all),
- );
- }
- +
- +
- +/**
- + * Implements hook_entity_delete
- + */
- +function flag_lists_entity_delete($entity, $type) {
- + foreach (flag_get_flags($type) as $flag) {
- + if (isset($entity->vid)) {
- + $items = _flag_lists_remove_entity($entity->vid, $type);
- + }
- + }
- +}
- +
- +
|