Example #1
0
 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');
 }
Example #2
0
    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();
    }