示例#1
0
 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;
 }
示例#2
0
 /**
  * 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;
 }
示例#3
0
 /**
  * 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;
 }
示例#4
0
文件: tags.php 项目: q0821/esportshop
 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;
 }
示例#5
0
 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;
 }
示例#6
0
 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;
 }
示例#9
0
 /**
  * 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);
 }
示例#10
0
文件: helper.php 项目: esorone/efcpw
 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;
 }
示例#11
0
文件: content.php 项目: JozefAB/qk
 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;
 }