function showTab() { $tpl = DevblocksPlatform::getTemplateService(); $tpl_path = $this->_TPL_PATH; $tpl->assign('path', $tpl_path); $translate = DevblocksPlatform::getTranslationService(); if (null == ($view = C4_AbstractViewLoader::getView(self::VIEW_ACTIVITY_TASKS))) { $view = new C4_TaskView(); $view->id = self::VIEW_ACTIVITY_TASKS; $view->renderSortBy = SearchFields_Task::DUE_DATE; $view->renderSortAsc = 1; $view->name = $translate->_('activity.tab.tasks'); C4_AbstractViewLoader::setView($view->id, $view); } $tpl->assign('response_uri', 'activity/tasks'); $tpl->assign('view', $view); $tpl->assign('view_fields', C4_TaskView::getFields()); $tpl->assign('view_searchable_fields', C4_TaskView::getSearchFields()); $tpl->display($tpl_path . 'tasks/activity_tab/index.tpl'); }
function getFeedAsRss($feed) { $xmlstr = <<<XML \t\t<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'> \t\t</rss> XML; $xml = new SimpleXMLElement($xmlstr); $translate = DevblocksPlatform::getTranslationService(); $url = DevblocksPlatform::getUrlService(); // Channel $channel = $xml->addChild('channel'); $channel->addChild('title', $feed->title); $channel->addChild('link', $url->write('', true)); $channel->addChild('description', ''); // View $view = new C4_TaskView(); $view->name = $feed->title; $view->params = $feed->params['params']; $view->renderLimit = 100; $view->renderSortBy = $feed->params['sort_by']; $view->renderSortAsc = $feed->params['sort_asc']; // Results list($results, $count) = $view->getData(); $task_sources = DevblocksPlatform::getExtensions('cerberusweb.task.source', true); // [TODO] We should probably be building this feed with Zend Framework for compliance foreach ($results as $task) { $created = intval($task[SearchFields_Task::UPDATED_DATE]); if (empty($created)) { $created = time(); } $eItem = $channel->addChild('item'); $escapedSubject = htmlspecialchars($task[SearchFields_Task::TITLE], null, LANG_CHARSET_CODE); //filter out a couple non-UTF-8 characters (0xC and ESC) $escapedSubject = preg_replace("/[\f]/", '', $escapedSubject); $eTitle = $eItem->addChild('title', $escapedSubject); //$eDesc = $eItem->addChild('description', htmlspecialchars($task[SearchFields_Task::CONTENT],null,LANG_CHARSET_CODE)); $eDesc = $eItem->addChild('description', ''); if (isset($task_sources[$task[SearchFields_Task::SOURCE_EXTENSION]]) && isset($task[SearchFields_Task::SOURCE_ID])) { $source_ext =& $task_sources[$task[SearchFields_Task::SOURCE_EXTENSION]]; /* @var $source_ext Extension_TaskSource */ $source_ext_info = $source_ext->getSourceInfo($task[SearchFields_Task::SOURCE_ID]); $link = $source_ext_info['url']; $eLink = $eItem->addChild('link', $link); } else { $link = $url->write('c=activity&tab=tasks', true); $eLink = $eItem->addChild('link', $link); } $eDate = $eItem->addChild('pubDate', gmdate('D, d M Y H:i:s T', $created)); $eGuid = $eItem->addChild('guid', md5($escapedSubject . $link . $created)); $eGuid->addAttribute('isPermaLink', "false"); } return $xml->asXML(); }