Overview

Packages

  • Jonah
  • None

Classes

  • Jonah
  • Jonah_Api
  • Jonah_Block_Latest
  • Jonah_Driver
  • Jonah_Driver_Sql
  • Jonah_Exception
  • Jonah_Factory_Driver
  • Jonah_Form_Feed
  • Jonah_Form_Story
  • Jonah_Test
  • Jonah_View_ChannelDelete
  • Jonah_View_ChannelEdit
  • Jonah_View_ChannelList
  • Jonah_View_StoryDelete
  • Jonah_View_StoryEdit
  • Jonah_View_StoryList
  • Jonah_View_StoryPdf
  • Jonah_View_StoryView
  • Jonah_View_TagSearchList
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * View for displaying Jonah channels.
 4:  *
 5:  * Copyright 2010-2012 Horde LLC (http://www.horde.org/)
 6:  *
 7:  * See the enclosed file LICENSE for license information (BSD). If you
 8:  * did not receive this file, see http://cvs.horde.org/co.php/jonah/LICENSE
 9:  *
10:  * @author Chuck Hagenbuch <chuck@horde.org>
11:  * @author Marko Djukic <marko@oblo.com>
12:  * @author Michael J. Rubinsky <mrubinsk@horde.org>
13:  * @package Jonah
14:  */
15: class Jonah_View_ChannelList extends Jonah_View_Base
16: {
17:     /**
18:      *
19:      */
20:     public function run()
21:     {
22:         extract($this->_params, EXTR_REFS);
23:         try {
24:             $channels = $GLOBALS['injector']->getInstance('Jonah_Driver')->getChannels();
25:         } catch (Exception $e) {
26:             $notification->push(sprintf(_("An error occurred fetching channels: %s"), $e->getMessage()), 'horde.error');
27:             $channels = false;
28:         }
29:         if ($channels) {
30:             $channels = Jonah::checkPermissions('channels', Horde_Perms::SHOW, $channels);
31:             /* Build channel specific fields. */
32:             foreach ($channels as $key => $channel) {
33:                 /* Edit channel link. */
34:                 $url = Horde::url('channels/edit.php')->add('channel_id', $channel['channel_id']);
35:                 $channels[$key]['edit_link'] = $url->link(array('title' => _("Edit channel"))) . Horde::img('edit.png') . '</a>';
36: 
37:                 /* Delete channel link. */
38:                 $url = Horde::url('channels/delete.php')->add('channel_id', $channel['channel_id']);
39:                 $channels[$key]['delete_link'] = $url->link(array('title' => _("Delete channel"))) . Horde::img('delete.png') . '</a>';
40: 
41:                 /* View stories link. */
42:                 $channels[$key]['stories_url'] = Horde::url('stories/index.php')->add('channel_id', $channel['channel_id']);
43: 
44:                 /* Channel type specific links. */
45:                 $channels[$key]['addstory_link'] = '';
46:                 $channels[$key]['refresh_link'] = '';
47: 
48:                 switch ($channel['channel_type']) {
49:                 case Jonah::INTERNAL_CHANNEL:
50:                     /* Add story link. */
51:                     $url = Horde::url('stories/edit.php')->add('channel_id', $channel['channel_id']);
52:                     $channels[$key]['addstory_link'] = $url->link(array('title' => _("Add story"))) . Horde::img('new.png') . '</a>';
53:                     break;
54:                 }
55:                 $channels[$key]['channel_type'] = Jonah::getChannelTypeLabel($channel['channel_type']);
56:                 $channels[$key]['channel_updated'] = ($channel['channel_updated'] ? strftime($prefs->getValue('date_format'), (int)$channel['channel_updated']) : '-');
57:             }
58:         }
59: 
60:         $view = new Horde_View(array('templatePath' => JONAH_TEMPLATES . '/view'));
61:         $view->addHelper('Tag');
62:         $view->channels = $channels;
63:         $view->search_img = Horde::img('search.png');
64:         $title = _("Feeds");
65:         Horde::addScriptFile('tables.js', 'horde', true);
66:         Horde::addScriptFile('quickfinder.js', 'horde', true);
67:         require $registry->get('templates', 'horde') . '/common-header.inc';
68:         require JONAH_TEMPLATES . '/menu.inc';
69:         echo $view->render('channellist');
70:         require $registry->get('templates', 'horde') . '/common-footer.inc';
71:     }
72: 
73: }
API documentation generated by ApiGen