function display($tpl = null) { $mainframe = &JFactory::getApplication(); $params = &JComponentHelper::getParams('com_k2'); $document = &JFactory::getDocument(); $model = &$this->getModel('itemlist'); $limitstart = JRequest::getInt('limitstart'); $moduleID = JRequest::getInt('moduleID'); if ($moduleID) { $result = $model->getModuleItems($moduleID); $items = $result->items; $title = $result->title; } else { //Get data depending on task $task = JRequest::getCmd('task'); switch ($task) { case 'category': //Get category $id = JRequest::getInt('id'); JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables'); $category = &JTable::getInstance('K2Category', 'Table'); $category->load($id); //Access check $user = &JFactory::getUser(); if ($category->access > $user->get('aid', 0)) { JError::raiseError(403, JText::_("ALERTNOTAUTH")); } if (!$category->published || $category->trash) { JError::raiseError(404, JText::_("Category not found")); } //Merge params $cparams = new JParameter($category->params); if ($cparams->get('inheritFrom')) { $masterCategory = &JTable::getInstance('K2Category', 'Table'); $masterCategory->load($cparams->get('inheritFrom')); $cparams = new JParameter($masterCategory->params); } $params->merge($cparams); //Category link $category->link = urldecode(JRoute::_(K2HelperRoute::getCategoryRoute($category->id.':'.urlencode($category->alias)))); //Set featured flag JRequest::setVar('featured', $params->get('catFeaturedItems')); //Set title $title = $category->name; break; case 'user': //Get user $id = JRequest::getInt('id'); $user = &JFactory::getUser($id); //Check user status if ($user->block) { JError::raiseError(404, JText::_('User not found')); } //Set title $title = $user->name; break; case 'tag': //set title $title = JText::_('Displaying items by tag:').' '.JRequest::getVar('tag'); if(JRequest::getCmd('type')!='atom'){ $title = JFilterOutput::ampReplace($title); } break; case 'search': //Set title $title = JText::_('Search results for:').' '.JRequest::getVar('searchword'); break; case 'date': //Set title if (JRequest::getInt('day')) { $date = strtotime(JRequest::getInt('year').'-'.JRequest::getInt('month').'-'.JRequest::getInt('day')); $title = JText::_('Items filtered by date:').' '.JHTML::_('date', $date, '%A, %d %B %Y'); } else { $date = strtotime(JRequest::getInt('year').'-'.JRequest::getInt('month')); $title = JText::_('Items filtered by date:').' '.JHTML::_('date', $date, '%B %Y'); } break; default: //Set featured flag JRequest::setVar('featured', $params->get('catFeaturedItems')); //Set title $title = $params->get('page_title'); break; } //Get ordering if($task=='tag') $ordering = $params->get('tagOrdering'); else $ordering = $params->get('catOrdering'); //Get items $items = $model->getData($ordering); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // OSE Added - OSE and Open Source Excellence is the registered trade mark of the Open Source Excellence PTE LTD. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// require_once(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'init.php'); $content_ids = oseRegistry::call('content')->getRestrictedContent('k2','article'); //Prepare feed items $model = &$this->getModel('item'); foreach ($items as $item) { $item = $model->prepareFeedItem($item); $item->title = $this->escape($item->title); $item->title = html_entity_decode($item->title); $feedItem = new JFeedItem(); $feedItem->title = $item->title; $feedItem->link = $item->link; $feedItem->description = $item->description; $feedItem->date = $item->created; $feedItem->category = $item->category->name; $feedItem->author = $item->author->name; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // OSE Added - OSE and Open Source Excellence is the registered trade mark of the Open Source Excellence PTE LTD. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $plugin= & JPluginHelper :: getPlugin('content', 'osecontent'); $pluginParams= new JParameter($plugin->params); $controlMethod= $pluginParams->def('controlMethod', 'replace'); $allow_uncat= $pluginParams->def('allow_uncat', 0); $allow_intro= $pluginParams->def('allow_intro', 0); $runPlugin= array(); $runPlugin['frontpage']= $pluginParams->def('run_frontpage', 0); $runPlugin['catlayout']= $pluginParams->def('run_catlayout', 0); $runPlugin['seclayout']= $pluginParams->def('run_seclayout', 0); // Redirection; $redmenuid= $pluginParams->def('redmenuid', "1"); $redmessage= $pluginParams->def('redmessage', ""); // Timing control; $timingcontrol= $pluginParams->def('timingcontrol', 0); $time_rest= $pluginParams->def('time_rest', 0); $time_rest_fixed= $pluginParams->def('time_rest_fixed', 0); JPluginHelper::importPlugin('content','osecontent'); $item = plgContentOsecontent::checkK2($item,$controlMethod,$allow_intro,$redmenuid,$redmessage); if(in_array($item->id,$content_ids)) { $feedItem->description = $item->text;//$item->introtext.'<br /> This content is members only, please <a href="'.JROUTE::_('index.php?option=com_osemsc&view=register').'">subscribe a membership plan first</a>'; $feedItem->fulltext = ''; $feedItem->mscControlled = true; $feedItem->mscControlClass = 'osemsc-control'; $feedItem->title = $item->title; } else { $feedItem->mscControlClass = 'osemsc-free'; $feedItem->mscControlled = false; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // OSE Added - OSE and Open Source Excellence is the registered trade mark of the Open Source Excellence PTE LTD. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Add item $document->addItem($feedItem); } //Set title $document = &JFactory::getDocument(); $menus = &JSite::getMenu(); $menu = $menus->getActive(); if (is_object($menu)) { $menu_params = new JParameter($menu->params); if (!$menu_params->get('page_title')) $params->set('page_title', $title); } else { $params->set('page_title', $title); } $document->setTitle($params->get('page_title')); }
public function feed() { // get request vars $category_id = (int) $this->app->request->getInt('category_id', $this->params->get('category')); // get params $all_categories = $this->application->getCategoryTree(true); // raise warning when category can not be accessed if (!isset($all_categories[$category_id])) { $this->app->error->raiseWarning(500, JText::_('Unable to access category')); return; } $category = $all_categories[$category_id]; $params = $category_id ? $category->getParams('site') : $this->application->getParams('frontpage'); $show_feed_link = $params->get('config.show_feed_link', 0); $feed_title = $params->get('config.feed_title', ''); // raise error when feed is link is disabled if (empty($show_feed_link)) { $this->app->error->raiseError(500, JText::_('Unable to access feed')); return; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // OSE Added - OSE and Open Source Excellence is the registered trade mark of the Open Source Excellence PTE LTD. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// JPluginHelper::importPlugin('content','osecontent'); if(class_exists('plgContentOsecontent')) { $category = plgContentOsecontent::checkZooCat($category); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // OSE Added - OSE and Open Source Excellence is the registered trade mark of the Open Source Excellence PTE LTD. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // get feed items from category $categories = $category->getChildren(true); $categories[$category->id] = $category; $feed_limit = $this->joomla->getCfg('feed_limit'); $feed_items = $this->app->table->item->getByCategory($this->application->id, array_keys($categories), true, null, 'created DESC', 0, $feed_limit); // set title if ($feed_title) { $this->app->document->setTitle($this->_buildPageTitle(html_entity_decode($this->getView()->escape($feed_title)))); } // set feed link $this->app->document->link = $this->app->link(array('task' => 'category')); // set renderer $renderer = $this->app->renderer->create('item')->addPath(array($this->app->path->path('component.site:'), $this->application->getTemplate()->getPath())); foreach ($feed_items as $feed_item) { // create feed item $item = new JFeedItem(); $item->title = html_entity_decode($this->getView()->escape($feed_item->name)); $item->link = $this->app->route->item($feed_item); $item->date = $feed_item->created; $item->author = $feed_item->getAuthor(); $item->description = $this->_relToAbs($renderer->render('item.feed', array('item' => $feed_item))); // add to feed document $this->app->document->addItem($item); } }