protected function loadData() { if ($tags = $this->getParam('tags')) { if (!($tagFilter = TagManager::getFilter(TagManager::getID($tags), $this->getTableName()))) { return false; } $this->addFilterCondition([$this->getTableName() . '.' . $this->getPK() => $tagFilter]); } $result = parent::loadData(); return $result; }
/** * Get tag IDs. */ protected function getTagIds() { $builder = new JSONCustomBuilder(); $this->setBuilder($builder); $tags = !empty($_REQUEST['tags']) ? $_REQUEST['tags'] : ''; $tags = array_filter(array_map(create_function('$tag', 'return mb_convert_case(trim($tag), MB_CASE_LOWER, "UTF-8");'), explode(TagManager::TAG_SEPARATOR, $tags))); $response = array(); foreach ($tags as $tag) { $tag_item = TagManager::getID($tag); if (!$tag_item) { $tag_id = TagManager::insert($tag); } else { $tag_id = array_keys($tag_item)[0]; } if ($tag_id) { $response[] = $tag_id; } } $builder->setProperties(array('data' => $response)); }