formatColumnHeaders() public method

Formats column headers have sort links and sort arrows.
public formatColumnHeaders ( array $columns, string $sort_by, string $sort_dir, string $view ) : array
$columns array The columns to format.
$sort_by string The current 'sort-by' column.
$sort_dir string The current sort direction.
$view string The view name, used to identify preference settings for sorting.
return array The formated column headers to be displayed.
コード例 #1
0
ファイル: Thread.php プロジェクト: raz0rsdge/horde
 /**
  */
 protected function _content()
 {
     /* Return empty if we don't have a thread set. */
     if (empty($this->_params['thread_id'])) {
         return '';
     }
     /* Set up the message object. */
     list($forum_id, $message_id) = explode('.', $this->_params['thread_id']);
     $messages = $GLOBALS['injector']->getInstance('Agora_Factory_Driver')->create('agora', $forum_id);
     /* Check if valid thread, otherwise show forum list. */
     if ($messages instanceof PEAR_Error || empty($messages)) {
         throw new Horde_Exception(_("Unable to fetch selected thread."));
     }
     /* Get the sorting. */
     $sort_by = Agora::getSortBy('threads');
     $sort_dir = Agora::getSortDir('threads');
     $view_bodies = $GLOBALS['prefs']->getValue('thread_view_bodies');
     /* Get the message array and the sorted thread list. */
     $threads_list = $messages->getThreads($messages->getThreadRoot($message_id), true, $sort_by, $sort_dir, $view_bodies, Horde::selfUrl());
     /* Set up the column headers. */
     $col_headers = array(array('message_thread' => _("Thread"), 'message_subject' => _("Subject")), 'message_author' => _("Posted by"), 'message_timestamp' => _("Date"));
     $col_headers = Agora::formatColumnHeaders($col_headers, $sort_by, $sort_dir, 'threads');
     /* Set up the template tags. */
     $view = new Agora_View();
     $view->col_headers = $col_headers;
     $view->threads_list = $threads_list;
     $view->threads_list_header = _("Thread List");
     $view->thread_view_bodies = $view_bodies;
     return $view->render('block/thread');
 }
コード例 #2
0
ファイル: Forums.php プロジェクト: jubinpatel/horde
 /**
  */
 protected function _content()
 {
     global $registry;
     /* Set up the forums object. */
     $forums = array($GLOBALS['injector']->getInstance('Agora_Factory_Driver')->create());
     if ($GLOBALS['registry']->isAdmin()) {
         foreach ($registry->listApps(array('hidden', 'notoolbar', 'active')) as $scope) {
             if ($registry->hasMethod('hasComments', $scope) && $registry->callByPackage($scope, 'hasComments') === true) {
                 $forums[] = $GLOBALS['injector']->getInstance('Agora_Factory_Driver')->create($scope);
             }
         }
     }
     /* Get the sorting. */
     $sort_by = Agora::getSortBy('forums');
     $sort_dir = Agora::getSortDir('forums');
     /* Get the list of forums. */
     $forums_list = array();
     foreach ($forums as $forum) {
         try {
             $scope_forums = $forum->getForums(0, true, $sort_by, $sort_dir, true);
             $forums_list = array_merge($forums_list, $scope_forums);
         } catch (Agora_Exception $e) {
             return $e->getMessage();
             /* Catch NotFound exception here so it won't break the cycle. */
         } catch (Horde_Exception_NotFound $e) {
         }
     }
     /* Show a message if no available forums. Don't raise an error
      * as it is not an error to have no forums. */
     if (empty($forums_list)) {
         return _("There are no forums.");
     }
     /* Display only the most recent threads if preference set. */
     if (!empty($this->_params['forum_display'])) {
         $forums_list = array_slice($forums_list, 0, $this->_params['forum_display']);
     }
     /* Set up the column headers. */
     $col_headers = array('forum_name' => _("Forum"), 'message_count' => _("Posts"), 'message_subject' => _("Last Post"), 'message_author' => _("Posted by"), 'message_timestamp' => _("Date"));
     $col_headers = Agora::formatColumnHeaders($col_headers, $sort_by, $sort_dir, 'forums');
     /* Set up the template tags. */
     $view = new Agora_View();
     $view->col_headers = $col_headers;
     $view->forums_list = $forums_list;
     return $view->render('block/forums');
 }
コード例 #3
0
ファイル: forums.php プロジェクト: raz0rsdge/horde
$sort_by = Agora::getSortBy('forums');
$sort_dir = Agora::getSortDir('forums');
/* Which forums page are we on?  Default to page 0. */
$forum_page = Horde_Util::getFormData('forum_page', 0);
$forums_per_page = $prefs->getValue('forums_per_page');
$forum_start = $forum_page * $forums_per_page;
/* Get the list of forums. */
try {
    $forums_list = $forums->getForums(0, true, $sort_by, $sort_dir, true, $forum_start, $forums_per_page);
    $forums_count = $forums->countForums();
} catch (Horde_Exception_NotFound $e) {
    $forums_count = 0;
}
/* Set up the column headers. */
$col_headers = array('forum_name' => _("Forum"), 'forum_description' => _("Description"), 'message_count' => _("Posts"), 'thread_count' => _("Threads"), 'message_timestamp' => _("Last Post"), 'message_author' => _("Posted by"), 'message_date' => _("Date"));
$col_headers = Agora::formatColumnHeaders($col_headers, $sort_by, $sort_dir, 'forums');
/* Set up the template tags. */
$view = new Agora_View();
$view->col_headers = $col_headers;
$view->forums_list = $forums_list;
Horde::startBuffer();
$notification->notify(array('listeners' => 'status'));
$view->notify = Horde::endBuffer();
$view->actions = empty($actions) ? null : $actions;
/* Set up pager. */
$vars = Horde_Variables::getDefaultVariables();
$pager_ob = new Horde_Core_Ui_Pager('forum_page', $vars, array('num' => $forums_count, 'url' => 'forums.php', 'perpage' => $forums_per_page));
$pager_ob->preserve('scope', $scope);
$view->pager_link = $pager_ob->render();
$page_output->addLinkTag(array('href' => Horde::url('rss/index.php', true, -1)->add('scope', $scope), 'title' => _("Forums")));
$page_output->header(array('title' => _("All Forums")));
コード例 #4
0
ファイル: Threads.php プロジェクト: jubinpatel/horde
 /**
  */
 protected function _content()
 {
     if (!isset($this->_params['forum_id'])) {
         throw new Horde_Exception(_("No forum selected"));
     }
     if (empty($this->_threads)) {
         $this->_threads = $GLOBALS['injector']->getInstance('Agora_Factory_Driver')->create('agora', $this->_params['forum_id']);
         if ($this->_threads instanceof PEAR_Error) {
             throw new Horde_Exception(_("Unable to fetch threads for selected forum."));
         }
     }
     /* Get the sorting. */
     $sort_by = Agora::getSortBy('threads');
     $sort_dir = Agora::getSortDir('threads');
     /* Get a list of threads and display only the most recent if
      * preference is set. */
     $threads_list = $this->_threads->getThreads(0, false, $sort_by, $sort_dir, false, Horde::selfUrl(), null, 0, !empty($this->_params['thread_display']) ? $this->_params['thread_display'] : null);
     /* Show a message if no available threads. Don't raise an error
      * as it is not an error to have no threads. */
     if (empty($threads_list)) {
         return _("No available threads.");
     }
     /* Set up the column headers. */
     $col_headers = array('message_subject' => _("Subject"), 'message_author' => _("Posted by"), 'message_timestamp' => _("Date"));
     $col_headers = Agora::formatColumnHeaders($col_headers, $sort_by, $sort_dir, 'threads');
     /* Set up the template tags. */
     $view = new Agora_View();
     $view->col_headers = $col_headers;
     $view->threads = $threads_list;
     return $view->render('block/threads');
 }
コード例 #5
0
ファイル: moderate.php プロジェクト: raz0rsdge/horde
}
/* Get a list of messages still to moderate. Error will occur if you don't have the right permissions */
$messages_list = $messages->getModerateList($sort_by, $sort_dir);
if ($messages_list instanceof PEAR_Error) {
    $notification->push($messages_list->getMessage(), 'horde.error');
    Horde::url('forums.php', true)->redirect();
} elseif (empty($messages_list)) {
    $messages_count = 0;
    $notification->push(_("No messages are waiting for moderation."), 'horde.message');
} else {
    $messages_count = count($messages_list);
    $messages_list = array_slice($messages_list, $messages_start, $messages_per_page);
}
/* Set up the column headers. */
$col_headers = array('forum_id' => _("Forum"), 'message_subject' => _("Subject"), 'message_author' => _("Posted by"), 'message_body' => _("Body"), 'message_timestamp' => _("Date"));
$col_headers = Agora::formatColumnHeaders($col_headers, $sort_by, $sort_dir, 'moderate');
/* Set up the template tags. */
$view = new Agora_View();
$view->col_headers = $col_headers;
$view->messages = $messages_list;
$view->buttons = array(_("Approve"), _("Delete"));
$view->session_tag = Horde_Util::formInput();
Horde::startBuffer();
$notification->notify(array('listeners' => 'status'));
$view->notify = Horde::endBuffer();
/* Set up pager. */
$vars = Horde_Variables::getDefaultVariables();
$pager_ob = new Horde_Core_Ui_Pager('moderate_page', $vars, array('num' => $messages_count, 'url' => Horde::selfUrl(true), 'perpage' => $messages_per_page));
$pager_ob->preserve('agora', Horde_Util::getFormData('agora'));
$view->pager = $pager_ob->render();
if (isset($api_call)) {
コード例 #6
0
ファイル: index.php プロジェクト: raz0rsdge/horde
/* Get the message array and the sorted thread list. */
$threads_list = $messages->getThreads($message['message_thread'], true, $sort_by, $sort_dir, $view_bodies ? 1 : 0, '', null, $thread_start, $thread_per_page);
if ($threads_list instanceof PEAR_Error) {
    $notification->push($threads_list->getMessage(), 'horde.error');
    Horde::url('forums.php', true)->redirect();
}
/* Set up pager. */
if ($thread_count > $thread_per_page && $view_bodies == 2) {
    $vars = new Horde_Variables(array('thread_page' => $thread_page));
    $pager_ob = new Horde_Core_Ui_Pager('thread_page', $vars, array('num' => $thread_count, 'url' => 'messages/index.php', 'perpage' => $thread_per_page));
    $pager_ob->preserve('agora', Horde_Util::getFormData('agora'));
    $view->pager_link = $pager_ob->render();
}
/* Set up the column headers. */
$col_headers = array(array('message_thread' => _("Thread"), 'message_subject' => _("Subject")), 'message_author' => _("Posted by"), 'message_timestamp' => _("Date"));
$col_headers = Agora::formatColumnHeaders($col_headers, $sort_by, $sort_dir, 'thread');
/* Actions. */
$url = Agora::setAgoraId($forum_id, $message_id, Horde::url('messages/index.php'));
/* Get the thread table. */
switch ($view_bodies) {
    case '2':
        $threads_template = 'messages/flat';
        if (!$prefs->isLocked('thread_view_bodies')) {
            $actions[] = Horde::link($url->add('bodies', 0), _("Hide bodies")) . _("Hide bodies") . '</a>';
            $actions[] = Horde::link($url->add('bodies', 1), _("Thread")) . _("Thread") . '</a>';
        }
        $threads = $messages->getThreadsUi($threads_list, $col_headers, $view_bodies, $threads_template);
        break;
    case '1':
        $threads_template = 'messages/flat_thread';
        if (!$prefs->isLocked('thread_view_bodies')) {