Beispiel #1
0
 public function fetch_objecttags($args)
 {
     $id_list = '';
     if (isset($args['tag_id'])) {
         $id_list = implode(',', $args['tag_id']);
     }
     if (empty($id_list)) {
         return;
     }
     $blog_filter = $this->include_exclude_blogs($args);
     if ($blog_filter != '') {
         $blog_filter = 'and objecttag_blog_id' . $blog_filter;
     }
     $extras = array();
     if (isset($args['datasource']) && strtolower($args['datasource']) == 'asset') {
         $datasource = $args['datasource'];
         $extras['join'] = array('mt_asset' => array('condition' => 'asset_id = objecttag_object_id'));
     } else {
         $datasource = 'entry';
         $extras['join'] = array('mt_entry' => array('condition' => 'entry_id = objecttag_object_id'));
         $object_filter = 'and entry_status = 2';
     }
     require_once 'class.mt_objecttag.php';
     $otag = new ObjectTag();
     $where = "objecttag_object_datasource ='{$datasource}'\n                and objecttag_tag_id in ({$id_list})\n                {$blog_filter}\n                {$object_filter}";
     return $otag->Find($where, false, false, $extras);
 }
Beispiel #2
0
 public function addTagByTriple($namespace, $predicate, $value, $visible = true)
 {
     $object = $this->getInvoker();
     //check for existing Tag
     $tag = LsQuery::getByModelAndFieldsQuery('Tag', array('triple_namespace' => $namespace, 'triple_predicate' => $predicate, 'triple_value' => $value))->fetchOne();
     $db = Doctrine_Manager::connection();
     try {
         $db->beginTransaction();
         if ($tag) {
             if ($this->hasObjectTag($tag)) {
                 return false;
             }
         } else {
             $tag = new Tag();
             $tag->triple_namespace = $namespace;
             $tag->triple_predicate = $predicate;
             $tag->triple_value = $value;
             $tag->is_visible = $visible;
             $tag->save();
         }
         //link object to Tag
         $objectTag = new ObjectTag();
         $objectTag->object_model = get_class($object);
         $objectTag->object_id = $object->id;
         $objectTag->Tag = $tag;
         $objectTag->save();
         $db->commit();
     } catch (Exception $e) {
         $db->rollback();
         throw $e;
     }
     return $objectTag;
 }