Ejemplo n.º 1
0
 function importTagsFromMetaKeys()
 {
     $dbo = JFactory::getDbo();
     $query = 'select id,metakey from #__content';
     $dbo->setQuery($query);
     $metaKeys = $dbo->loadObjectList();
     if (!empty($metaKeys)) {
         foreach ($metaKeys as $meta) {
             if (isset($meta->metakey) && empty($meta->metakey) == false) {
                 $cid = $meta->id;
                 if (!$this->isContentHasTags($cid)) {
                     $keys = explode(',', $meta->metakey);
                     $keysProcessed = array();
                     foreach ($keys as $key) {
                         $key = CedTagsHelper::preHandle($key);
                         if (empty($key) == false) {
                             if (!in_array($key, $keysProcessed)) {
                                 $keysProcessed[] = $key;
                             }
                         }
                     }
                     unset($keys);
                     $deleteTags = 'delete from #__cedtag_term_content where cid=' . $dbo->quote($cid);
                     $dbo->setQuery($deleteTags);
                     $dbo->query();
                     foreach ($keysProcessed as $key) {
                         $pass = $this->termCheck($key);
                         if ($pass) {
                             $tid = $this->storeTerm($key);
                             $this->insertContentterm($tid, $cid);
                         }
                     }
                 }
             }
         }
     }
     return true;
 }
Ejemplo n.º 2
0
 private function _buildQuery()
 {
     //Has to be a string
     $input = JFactory::getApplication()->input;
     $tag = $input->get('tag', null, 'string');
     //Tag is in front, this should remove ?start= or ?limitstart=
     $tags = explode('?', $tag);
     $tag = $tags[0];
     $tag = URLDecode($tag);
     //filter the tag
     $cedTagsHelper = new CedTagsHelper();
     $tag = $cedTagsHelper->unUrlTagname($tag);
     $tag = CedTagsHelper::preHandle($tag);
     JFactory::getApplication()->input->set('tag', $tag);
     $tag = trim($tag);
     $tagObj = null;
     $ids = $this->_ids;
     if (!isset($this->_tagDescription)) {
         $tagObj = $this->getTagByTagName($tag);
         if (isset($tagObj) && $tagObj->id) {
             $this->_termExist = true;
         } else {
             $this->_termExist = false;
             return '';
         }
         $this->_tagDescription = $tagObj->description;
         $this->incrementHitsForTagId($tagObj->id);
         $this->_total = $this->countNumberOfArticleForTagId($tagObj->id);
         $contentIds = $this->getArticlesCidForTag($tagObj->id);
         $ids = implode(',', $contentIds);
         $this->_ids = $ids;
     }
     $this->setTermArticles(!empty($ids));
     $dbo = JFactory::getDBO();
     $query = $dbo->getQuery(true);
     $query->select('a.id');
     $query->select('a.title');
     $query->select('a.created');
     $query->select('a.alias');
     $query->select('a.modified');
     $query->select('a.images');
     $query->select('a.created_by as contactid');
     $query->select('u.name as author');
     $query->select('a.created_by_alias as created_by_alias');
     $query->select('COUNT(a.id) as total');
     $query->select('a.introtext');
     $query->select('a.fulltext');
     $query->select('a.access');
     $query->select('a.state');
     $query->select('a.publish_up');
     $query->select('a.hits');
     $query->select('a.parentid as parent_id');
     $query->select('a.catid as catid');
     $query->select('cc.title as category_title');
     $query->select('cc.title as section');
     $query->select('cc.alias as parent_alias');
     $query->select('CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug');
     $query->select('CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug');
     $query->select('CHAR_LENGTH( a.`fulltext` ) AS readmore');
     $query->from('#__content AS a');
     $query->innerJoin('#__categories AS cc ON cc.id = a.catid');
     $query->innerJoin('#__users AS u ON u.id=a.created_by');
     $query->where('a.id in (' . $ids . ')');
     $query->where(sprintf('(%s)', implode(' AND ', $this->getAccessWhere(false))));
     $query->where('cc.published = ' . $dbo->quote(1));
     $query->group('(a.id)');
     $query->order($this->_buildOrderBy());
     // TODO
     //$this->setState('filter.language', $app->getLanguageFilter());
     CedTagLog::debug("tag.php::_buildQuery " . $query->dump());
     return $query;
 }
Ejemplo n.º 3
0
 public function isValidName($name)
 {
     $name = CedTagsHelper::preHandle($name);
     if (empty($name)) {
         return false;
     }
     $useStopWords = CedTagsHelper::param("useStopWords", '1');
     if ($useStopWords && in_array($name, CedTagsHelper::getExcludedWordList())) {
         return false;
     }
     return $name;
 }