function tag($tag_id = false, $tag_names = false) { if ($tag_names) { require_once 'AMP/Content/Tag/Tag.php'; $new_tag_set = AMP_Content_Tag::create_many($tag_names); $new_tag_results = true; foreach ($new_tag_set as $new_tag_id) { $new_tag_results = $new_tag_results && $this->tag($new_tag_id); } if (!$tag_id) { return $new_tag_results; } } if (!$tag_id) { return false; } $related_tags = AMPSystem_Lookup::instance('tagsByArticle', $this->id); if (isset($related_tags[$tag_id])) { return false; } require_once 'AMP/Content/Tag/Item/Item.php'; $action_item = new AMP_Content_Tag_Item(AMP_Registry::getDbcon()); $create_values = array('item_type' => 'article', 'item_id' => $this->id, 'user_id' => AMP_SYSTEM_USER_ID, 'tag_id' => $tag_id); $action_item->setData($create_values); return $action_item->save(); }
function AMP_add_tags($tag_ids = false, $tag_names = false, $item_id, $item_type) { if ($tag_names) { require_once 'AMP/Content/Tag/Tag.php'; $new_tag_set = AMP_Content_Tag::create_many($tag_names); $new_tag_results = AMP_add_tags($new_tag_set, false, $item_id, $item_type); if (!$tag_ids) { return $new_tag_results; } } if (!$tag_ids) { return false; } if (!is_array($tag_ids)) { $tag_id_set = array($tag_ids); } else { $tag_id_set = $tag_ids; } $related_tags = AMPSystem_Lookup::instance('tagsBy' . ucfirst($item_type), $item_id); if ($related_tags) { $new_tags = array_diff($tag_id_set, array_keys($related_tags)); } else { $new_tags = $tag_id_set; } if (!$new_tags || empty($new_tags)) { return false; } require_once 'AMP/Content/Tag/Item/Item.php'; $action_item = new AMP_Content_Tag_Item(AMP_Registry::getDbcon()); $create_values = array('item_type' => $item_type, 'item_id' => $item_id, 'user_id' => AMP_SYSTEM_USER_ID); $results = 0; foreach ($new_tags as $new_tag_id) { $create_values['tag_id'] = $new_tag_id; $action_item->dropID(); $action_item->setData($create_values); $results += $action_item->save(); } return $results; }