示例#1
0
 /**
  * Adds tag list to entity item.
  * 
  * @param integer $entityId
  * @param string $entityType
  * @param array $tags
  */
 public function updateEntityTags($entityId, $entityType, array $tags)
 {
     $tags = array_map('htmlspecialchars', $tags);
     $tags = array_map('mb_strtolower', $tags);
     $tags = $this->updateTagList($tags);
     $entityTags = $this->findEntityTags($entityId, $entityType);
     $tagsToAdd = array_udiff($tags, $entityTags, array($this, 'tagDiff'));
     /* @var $tag BOL_Tag */
     foreach ($tagsToAdd as $tag) {
         $entityTagItem = new BOL_EntityTag();
         $entityTagItem->setEntityId($entityId)->setEntityType($entityType)->setTagId($tag->getId());
         $this->entityTagDao->save($entityTagItem);
     }
     $tagsToDelete = array_udiff($entityTags, $tags, array($this, 'tagDiff'));
     foreach ($tagsToDelete as $tag) {
         $this->entityTagDao->deleteEntityTagItem($entityId, $entityType, $tag->getId());
     }
 }