/** * Generate module contents * * @return void */ public function run() { require_once Component::path('com_tags') . DS . 'models' . DS . 'cloud.php'; require_once Component::path('com_resources') . DS . 'tables' . DS . 'type.php'; $database = \App::get('db'); $this->tags = Tag::all()->whereEquals('admin', 0)->limit((int) $this->params->get('limit', 25))->order('objects', 'desc')->rows(); // Get major types $t = new \Components\Resources\Tables\Type($database); $this->categories = $t->getMajorTypes(); require $this->getLayoutPath(); }
/** * List all tags * * @return void */ public function displayTask() { // Incoming $filters = array('search' => urldecode(Request::getState($this->_option . '.' . $this->_controller . '.search', 'search', '')), 'by' => strtolower(Request::getState($this->_option . '.' . $this->_controller . '.by', 'filterby', 'all')), 'sort' => Request::getState($this->_option . '.' . $this->_controller . '.sort', 'filter_order', 'raw_tag'), 'sort_Dir' => Request::getState($this->_option . '.' . $this->_controller . '.sortdir', 'filter_order_Dir', 'ASC')); $model = Tag::all(); $t = $model->getTableName(); $s = Substitute::blank()->getTableName(); $model->select('DISTINCT ' . $t . '.*')->join($s, $s . '.tag_id', $t . '.id', 'left'); if ($filters['search']) { $filters['search'] = strtolower((string) $filters['search']); $model->whereLike($t . '.raw_tag', $filters['search'], 1)->orWhereLike($t . '.tag', $filters['search'], 1)->orWhereLike($s . '.raw_tag', $filters['search'], 1)->orWhereLike($s . '.tag', $filters['search'], 1)->resetDepth(); } if ($filters['by'] == 'admin') { $model->whereEquals($t . '.admin', 1); } else { if ($filters['by'] == 'user') { $model->whereEquals($t . '.admin', 0); } } // Get records $rows = $model->order($t . '.' . $filters['sort'], $filters['sort_Dir'])->paginated('limitstart', 'limit')->rows(); // Output the HTML $this->view->set('filters', $filters)->set('rows', $rows)->display(); }
/** * Get a count of tags * * @param integer $admin Show admin tags? * @return integer */ public function count_tags($admin = 0) { $t = \Components\Tags\Models\Tag::all(); if (!$admin) { $t->whereEquals('admin', 0); } return $t->total(); }
/** * Get module contents * * @return void */ public function run() { require_once \Component::path('com_tags') . DS . 'models' . DS . 'cloud.php'; $this->tags = Tag::all()->whereEquals('admin', 0)->limit((int) $this->params->get('numtags', 25))->order('objects', 'desc')->rows(); require $this->getLayoutPath(); }
/** * Get a list of tags * * @param string $rtrn Format of data to return * @param array $filters Filters to apply * @param boolean $clear Clear cached data? * @return mixed */ public function tags($rtrn = '', $filters = array(), $clear = false) { if (!isset($filters['scope']) && $this->get('scope') != 'site') { $filters['scope'] = (string) $this->get('scope'); } if (!isset($filters['scope_id']) && $this->get('scope_id') != 0) { $filters['scope_id'] = (int) $this->get('scope_id'); } $tbl = Object::blank()->getTableName(); $results = Tag::all(); if (isset($filters['sort']) && $filters['sort'] == 'taggedon') { $results->select($tbl . '.taggedon')->join($tbl, $tbl . '.tagid', $results->getTableName() . '.id'); } if (isset($filters['tagger_id']) || isset($filters['scope']) || isset($filters['scope_id']) || isset($filters['label'])) { $results->join($tbl, $tbl . '.tagid', $results->getTableName() . '.id'); if (isset($filters['tagger_id']) && $filters['tagger_id']) { $results->whereEquals($tbl . '.taggerid', (int) $filters['tagger_id']); } if (isset($filters['scope']) && $filters['scope']) { $results->whereEquals($tbl . '.tbl', (string) $filters['scope']); } if (isset($filters['scope_id']) && $filters['scope_id']) { $results->whereEquals($tbl . '.objectid', (int) $filters['scope_id']); } if (isset($filters['label']) && $filters['label']) { $results->whereEquals($tbl . '.label', (string) $filters['label']); // find labeled tags } } if (isset($filters['admin']) && $filters['admin'] !== null) { $results->whereEquals('admin', (int) $filters['admin']); } if (isset($filters['created_by']) && $filters['created_by'] > 0) { $results->whereEquals('created_by', (int) $filters['created_by']); } if (isset($filters['modified_by']) && $filters['modified_by'] > 0) { $results->whereEquals('modified_by', $filters['modified_by']); } if (isset($filters['search']) && $filters['search']) { $filters['search'] = strtolower((string) $filters['search']); $tbl = Substitute::blank()->getTableName(); $results->select($results->getTableName() . '.*')->join($tbl, $tbl . '.tag_id', $results->getTableName() . '.id', 'left'); $results->whereLike($results->getTableName() . '.raw_tag', $filters['search'], 1)->orWhereLike($results->getTableName() . '.tag', $filters['search'], 1)->orWhereLike($tbl . '.raw_tag', $filters['search'], 1)->resetDepth(); } switch (strtolower($rtrn)) { case 'count': if (!isset($this->_cache['tags.count']) || $clear) { $results->select($results->getTableName() . '.id', null, true); $this->_cache['tags.count'] = (int) $results->total(); } return $this->_cache['tags.count']; break; case 'top': break; case 'list': case 'results': default: $results->select($results->getTableName() . '.*')->group($results->getTableName() . '.id'); if (!$this->_cache['tags.list'] || $clear) { if (isset($filters['limit']) && $filters['limit'] != 0 && $filters['limit'] != 'all') { if (!isset($filters['start'])) { $filters['start'] = 0; } $results->limit($filters['limit']); $results->start($filters['start']); } if (isset($filters['sort']) && $filters['sort'] != '') { if ($filters['sort'] == 'total') { $filters['sort'] = 'objects'; } $filters['sort_Dir'] = isset($filters['sort_Dir']) && $filters['sort_Dir'] ? $filters['sort_Dir'] : "ASC"; $results->order($filters['sort'], $filters['sort_Dir']); } $this->_cache['tags.list'] = $results->rows(); } return $this->_cache['tags.list']; break; } }