public function onCCK_FieldPrepareContent(&$field, $value = '', &$config = array()) { if (self::$type != $field->type) { return; } parent::g_onCCK_FieldPrepareContent($field, $config); $html = ''; if ($value || ($config['client'] == 'list' || $config['client'] == 'item')) { $location = isset($config['location']) && $config['location'] ? $config['location'] : 'joomla_article'; $properties = array('context'); $properties = JCck::callFunc('plgCCK_Storage_Location' . $location, 'getStaticProperties', $properties); /* temporary fix for content categories */ if ($properties['context'] == 'com_categories.category') { $properties['context'] = 'com_content.category'; // todo: dynamic context per extension (#__categories) } /* temporary fix for content categories */ if (is_object($value) && isset($value->tags)) { $value = $value->tags; } $tags = new JHelperTags(); $tags->getItemTags($properties['context'], $config['pk']); $tagLayout = new JLayoutFile('joomla.content.tags'); $html = $tagLayout->render($tags->itemTags); } // Set $field->value = $value; $field->html = $html; }
/** * This method returns category description. * * <code> * $categoryId = 1; * * $category = new Userideas\Category\Category(\JFactory::getDbo()); * $category->load($categoryId); * * $category->setTagsHelper(new \JHelperTags); * </code> * * @param bool $getTagData If true, data from the tags table will be included, defaults to true. * * @return null|array */ public function getTags($getTagData = true) { if ($this->tags === null and $this->tagsHelper instanceof \JHelperTags) { $this->tags = $this->tagsHelper->getItemTags($this->contentAlias, $this->id, $getTagData); } return $this->tags; }
/** * Method to get an object. * * @param integer $id The id of the object to get. * * @return mixed Object on success, false on failure. */ public function getItem($id = null) { if (!$id) { $id = $this->getState($this->getName() . '.id'); } $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('a.id, a.title, a.description, a.votes, a.record_date, a.catid, a.user_id, a.status_id, a.hits, a.params, ' . $query->concatenate(array('a.id', 'a.alias'), '-') . ' AS slug, ' . 'b.name, b.username, ' . 'c.title AS category, ' . $query->concatenate(array('c.id', 'c.alias'), '-') . ' AS catslug, ' . 'd.name AS status_name, d.params AS status_params, d.default AS status_default'); $query->from($db->quoteName('#__uideas_items', 'a')); $query->leftJoin($db->quoteName('#__users', 'b') . ' ON a.user_id = b.id'); $query->leftJoin($db->quoteName('#__categories', 'c') . ' ON a.catid = c.id'); $query->leftJoin($db->quoteName('#__uideas_statuses', 'd') . ' ON a.status_id = d.id'); $query->where('a.id = ' . (int) $id); $db->setQuery($query); $this->item = $db->loadObject(); // Prepare status object if ($this->item !== null and (int) $this->item->id > 0) { $this->prepareStatus($this->item); $tags = new JHelperTags(); $this->item->tags = $tags->getItemTags('com_userideas.item', $this->item->id); $registry = new Joomla\Registry\Registry(); $registry->loadString($this->item->params); $this->item->params = $registry; } return $this->item; }
function loadTags($type, $element) { if (!isset($this->structure[$type]) || !$this->_isCompatible) { return false; } $structure = $this->structure[$type]; $component = 'hikashop'; if (!empty($structure['component'])) { $component = $structure['component']; } $alias = 'com_' . $component . '.' . $structure['table']; $id = $structure['id']; $ret = false; if (!empty($element->{$id})) { $tagsHelper = new JHelperTags(); $ret = $tagsHelper->getItemTags($alias, $element->{$id}, false); } return $ret; }
public static function getList(&$params) { $list = array(); $show_tag = $params->get('item_tags_display', 0); $show_description = $params->get('item_desc_display', 1); $maxlength_desc = $params->get('item_desc_maxlength', 200); $show_title = $params->get('title_display'); $maxlength_title = $params->get('item_title_maxlength', 25); $articles = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true)); $db = JFactory::getDbo(); $app = JFactory::getApplication(); $appParams = $app->getParams(); $articles->setState('params', $appParams); $articles->setState('list.start', 0); $articles->setState('list.limit', (int) $params->get('count', 0)); $articles->setState('filter.published', 1); $access = !JComponentHelper::getParams('com_content')->get('show_noauth'); $authorised = JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id')); $articles->setState('filter.access', $access); $catids = $params->get('catid'); if ($catids) { if ($params->get('show_child_category_articles', 0) && (int) $params->get('levels', 0) > 0) { $categories = JModelLegacy::getInstance('Categories', 'ContentModel', array('ignore_request' => true)); $categories->setState('params', $appParams); $levels = $params->get('levels', 1) ? $params->get('levels', 1) : 9999; $categories->setState('filter.get_children', $levels); $categories->setState('filter.published', 1); $categories->setState('filter.access', $access); $additional_catids = array(); foreach ($catids as $catid) { $categories->setState('filter.parentId', $catid); $recursive = true; $items = $categories->getItems($recursive); if ($items) { foreach ($items as $category) { $condition = $category->level - $categories->getParent()->level <= $levels; if ($condition) { $additional_catids[] = $category->id; } } } } $catids = array_unique(array_merge($catids, $additional_catids)); } $articles->setState('filter.category_id', $catids); } $articles->setState('list.ordering', $params->get('article_ordering', 'a.ordering')); $articles->setState('list.direction', $params->get('article_ordering_direction', 'ASC')); $articles->setState('filter.featured', $params->get('show_front', 'show')); $articles->setState('filter.language', $app->getLanguageFilter()); $items = $articles->getItems(); if (!empty($items)) { foreach ($items as &$item) { $item->slug = $item->id . ':' . $item->alias; $item->catslug = $item->catid ? $item->catid . ':' . $item->category_alias : $item->catid; if ($access || in_array($item->access, $authorised)) { $item->link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug)); } else { $app = JFactory::getApplication(); $menu = $app->getMenu(); $menuitems = $menu->getItems('link', 'index.php?option=com_users&view=login'); if (isset($menuitems[0])) { $Itemid = $menuitems[0]->id; } elseif ($app->input->getInt('Itemid') > 0) { $Itemid = $app->input->getInt('Itemid'); } $item->link = JRoute::_('index.php?option=com_users&view=login&Itemid=' . $Itemid); } $item->_introtext = self::_cleanText($item->introtext); $item->_description = self::_trimEncode($item->_introtext) != '' && $show_description ? self::truncate($item->_introtext, $maxlength_desc) : ''; $item->tags = ''; if ($show_tag && class_exists('JHelperTags')) { $tagLayout = new JLayoutFile('joomla.content.tags'); $tags = new JHelperTags(); $tags->getItemTags('com_content.article', $item->id); $item->tags = $tagLayout->render($tags->itemTags); } $item->sub_title = $show_title ? self::truncate($item->title, $maxlength_title) : ''; $image = self::createThumbs($item, $params, 'imgf'); $attr = ' '; $attr .= isset($image['title']) ? ' title = "' . $image['title'] . '"' : ''; $attr .= isset($image['alt']) ? ' alt = "' . $image['alt'] . '"' : ''; $attr .= isset($image['class']) ? ' class = "' . $image['class'] . '"' : ''; $item->image_src = isset($image['src']) ? $image['src'] : ''; $item->image_attr = $attr; $item->link_target = self::linkTarget($params->get('link_target')); $list[] = $item; } } return $list; }
private function _contact($id, &$xml, $options) { JLog::add(new JLogEntry(__METHOD__, JLOG::DEBUG, 'lib_j2xml')); JLog::add(new JLogEntry('id: ' . $id, JLOG::DEBUG, 'lib_j2xml')); JLog::add(new JLogEntry('options: ' . print_r($options, true), JLOG::DEBUG, 'lib_j2xml')); jimport('eshiol.j2xml.table.contact'); $item = JTable::getInstance('contact', 'eshTable'); if (!$item->load($id)) { return; } if ($xml->xpath("//j2xml/contact/id[text() = '" . $item->id . "']")) { return; } $doc = dom_import_simplexml($xml)->ownerDocument; $fragment = $doc->createDocumentFragment(); $fragment->appendXML($item->toXML()); $doc->documentElement->appendChild($fragment); if ($options['users']) { if ($item->created_by) { self::_user($item->created_by, $xml, $options); } if ($item->modified_by) { self::_user($item->modified_by, $xml, $options); } } if ($options['images']) { if (isset($item->image)) { self::_image($item->image, $xml, $options); } } if ($options['categories'] && $item->catid > 0) { self::_category($item->catid, $xml, $options); } if (class_exists('JHelperTags')) { $htags = new JHelperTags(); $itemtags = $htags->getItemTags('com_contact.contact', $id); foreach ($itemtags as $itemtag) { self::_tag($itemtag->tag_id, $xml, $options); } } }
/** * Extracts the keywords or tags from the articles. The tags are used if the parameter "tags" is entered in the syntax call. * * @param array $articles - Array of possible articles * * @return array $keyword_list - List of allowed keywords */ private function keywordsData($articles) { $keywords_list = array(); foreach ($articles as $article) { if (empty($this->eks_parameters['tags'])) { if (!empty($article->metakey)) { $metakey_array = array_map('trim', explode(',', $article->metakey)); foreach ($metakey_array as $metakey) { $keywords_list[String::ucfirst($metakey)][] = $article; } } } else { $tags_helper = new JHelperTags(); $tags = $tags_helper->getItemTags('com_content.article', $article->id); if (!empty($tags)) { foreach ($tags as $tag) { $keywords_list[String::ucfirst($tag->title)][] = $article; } } } } ksort($keywords_list); if (!empty($this->eks_parameters['keyword'])) { foreach ($keywords_list as $key => $value) { if (is_array($this->eks_parameters['keyword'])) { if (!in_array(String::strtolower($key), $this->eks_parameters['keyword'])) { unset($keywords_list[$key]); continue; } } else { if (String::strtolower($key) != String::strtolower($this->eks_parameters['keyword'])) { unset($keywords_list[$key]); continue; } } } } elseif (!empty($this->eks_parameters['nokeyword'])) { foreach ($keywords_list as $key => $value) { if (is_array($this->eks_parameters['nokeyword'])) { if (in_array(String::strtolower($key), $this->eks_parameters['nokeyword'])) { unset($keywords_list[$key]); continue; } } else { if (String::strtolower($key) == String::strtolower($this->eks_parameters['nokeyword'])) { unset($keywords_list[$key]); continue; } } } } return $keywords_list; }
/** * getHashtagsFromTags * * @param int $id Param. * * @return string */ protected function getHashtagsFromTags($id) { if (EXTLY_J25) { return null; } jimport('cms.helper.tags'); $jtags = new JHelperTags(); $tags = $jtags->getItemTags('com_content.article', $id); if (count($tags) > 0) { $titles = array_map(function ($v) { return $v->title; }, $tags); $c = count($titles); $tags = implode(',', $titles); return $this->getHashtags($tags, $c); } return null; }
/** * Loads article information for the category (and sub-categories) * that the user selected in the slider and returns that to the calling * AJAX function. */ public static function updateSliderAjax() { $input = JFactory::getApplication()->input; $categoryId = $input->get('data'); // Prepare answer array. $result = array(); $result['url'] = JURI::root(); // -1 represents all categories - fetch all articles in that case. if ($categoryId == -1) { // Get article info from database. $categoryData = modNavSliderHelper::queryDatabase('#__content', 'title, images, alias, publish_up, id, introtext', 'state = 1', 0, 'publish_up DESC'); // Also parse the images String. for ($j = 0; $j < count($categoryData); $j++) { $categoryData[$j] += array('image_fulltext' => modNavSliderHelper::parseImageString('image_fulltext', $categoryData[$j]['images'])); $categoryData[$j] += array('image_intro' => modNavSliderHelper::parseImageString('image_intro', $categoryData[$j]['images'])); } // Otherwise we have a category id. } else { // Get children categories. $ids = array(); $ids[0] = $categoryId; $ids = modNavSliderHelper::getChildrenCategoryIds($ids[0], $ids); // Go through all IDs. // Concatenate IDs into select string. $select_ids = "catid = " . $ids[0]; for ($i = 1; $i < count($ids); $i++) { $select_ids .= " OR catid = " . $ids[$i]; } // Get article info from database. $categoryData = modNavSliderHelper::queryDatabase('#__content', 'title, images, alias, publish_up, id, introtext', 'state = 1 AND ' . $select_ids, 0, 'publish_up DESC'); // Also parse the images String. for ($j = 0; $j < count($categoryData); $j++) { $categoryData[$j] += array('image_fulltext' => modNavSliderHelper::parseImageString('image_fulltext', $categoryData[$j]['images'])); $categoryData[$j] += array('image_intro' => modNavSliderHelper::parseImageString('image_intro', $categoryData[$j]['images'])); } } // Retrieve tags for articles. for ($i = 0; $i < count($categoryData); $i++) { $tags = new JHelperTags(); $tags->getItemTags('com_content.article', $categoryData[$i]['id']); $itemTags = $tags->itemTags; // itemTags contains all info on the tags - filter out what we need. $strippedTags = array(); for ($j = 0; $j < count($itemTags); $j++) { $strippedTags[] = array('title' => $itemTags[$j]->title, 'id' => $itemTags[$j]->id); } $categoryData[$i] += array('tags' => $strippedTags); } $result['articles'] = $categoryData; return json_encode($result); }
function tags_out($row) { $tags_out = ""; if ($this->params->get('show_tags') and version_compare($this->getShortVersion(), '3.2.0', '>=')) { $tags = new JHelperTags(); $itemTags = $tags->getItemTags('com_content.article', $row->id); $onlyTags = array(); if ($this->params->get('display_tags_type') == 1 and $this->params->get('set_tags')) { foreach ($itemTags as $tag) { if (in_array($tag->id, $this->params->get('set_tags'))) { $onlyTags[] = $tag; } } } elseif ($this->params->get('display_tags_type') == 2 and $this->params->get('display_tags')) { foreach ($itemTags as $tag) { if (in_array($tag->id, $this->params->get('display_tags'))) { $onlyTags[] = $tag; } } } elseif ($this->params->get('display_tags_type') == 3 and $this->params->get('display_tags')) { foreach ($itemTags as $tag) { if (!in_array($tag->id, $this->params->get('display_tags'))) { $onlyTags[] = $tag; } } } else { $onlyTags = $itemTags; } if ($this->params->get('show_tags') && !empty($onlyTags)) { $tagLayout = new JLayoutFile('joomla.content.tags'); $tags_out = $tagLayout->render($onlyTags); } } return $tags_out; }
function tagsForType($type, $id) { if (!$id) { return array(); } $tags = new JHelperTags(); $alltags = $tags->getItemTags($type, $id); $names = array(); foreach ($alltags as $tag) { $names[] = $tag->title; } return $names; }