From 9ad0aa199f54750d777f5b21e4bf845e6470ef04 Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Fri, 1 Jun 2018 16:05:23 +0200 Subject: [PATCH] fix bug : deleted entities crash site when in usser flag_lists 2 --- .../gui/materiobasemod/materio_admin.module | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/sites/all/modules/gui/materiobasemod/materio_admin.module b/sites/all/modules/gui/materiobasemod/materio_admin.module index a7781824..0853af78 100644 --- a/sites/all/modules/gui/materiobasemod/materio_admin.module +++ b/sites/all/modules/gui/materiobasemod/materio_admin.module @@ -130,7 +130,8 @@ function materio_duplicatemails(){ function materio_missingflags(){ $flags = db_query('SELECT fcid,fid,entity_type,entity_id,uid FROM {flag_lists_content}'); - + + $missingentities = 0; foreach ($flags as $key => $value) { // $entity = entity_load($value->entity_type, array($value->entity_id)); $query = new EntityFieldQuery(); @@ -139,25 +140,28 @@ function materio_missingflags(){ ->propertyCondition('nid', $value->entity_id); $entity = $query->execute(); - if(!isset($entity['node'])){ - $missingentities[$value->fid] = $value; + if(!isset($entity[$value->entity_type])){ + // $missingentities[$value->fid] = $value; + $missingentities++; + 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))); } } // Bail out early if there are no duplicates. if (!$missingentities) { return t('No missing entities in flags.'); - }else{ - dsm($missingentities); } + // else{ + // dsm($missingentities); + // } // delete flags with missing entities - foreach ($missingentities as $fid => $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))); - } + // foreach ($missingentities as $fid => $value) { + // + // } // Turn the data we've got into markup. $output = t('@count missing entities in flag lists have been cleaned', array('@count'=> count($missingentities)));