Overview

Packages

  • Auth
  • Core
  • Horde
    • Imsp
  • None
  • Notification

Classes

  • Horde
  • Horde_Config
  • Horde_Config_Form
  • Horde_Core_ActiveSync_Connector
  • Horde_Core_ActiveSync_Driver
  • Horde_Core_Ajax_Application
  • Horde_Core_Ajax_Imple
  • Horde_Core_Ajax_Imple_AutoCompleter
  • Horde_Core_Ajax_Imple_Geocoder_Geonames
  • Horde_Core_Ajax_Imple_SpellChecker
  • Horde_Core_Alarm_Handler_Notify
  • Horde_Core_Auth_Application
  • Horde_Core_Auth_Composite
  • Horde_Core_Auth_Ldap
  • Horde_Core_Auth_Msad
  • Horde_Core_Auth_Shibboleth
  • Horde_Core_Auth_Signup_Base
  • Horde_Core_Auth_Signup_Form
  • Horde_Core_Auth_Signup_Null
  • Horde_Core_Auth_Signup_Sql
  • Horde_Core_Auth_Signup_SqlObject
  • Horde_Core_Autoloader_Callback_Mime
  • Horde_Core_Autoloader_Callback_Nls
  • Horde_Core_Block
  • Horde_Core_Block_Collection
  • Horde_Core_Block_Layout
  • Horde_Core_Block_Layout_Manager
  • Horde_Core_Block_Layout_View
  • Horde_Core_Block_Upgrade
  • Horde_Core_Browser
  • Horde_Core_Bundle
  • Horde_Core_Cli
  • Horde_Core_Controller_NotFound
  • Horde_Core_Controller_RequestConfiguration
  • Horde_Core_Controller_RequestMapper
  • Horde_Core_Controller_SettingsFinder
  • Horde_Core_Db_Migration
  • Horde_Core_Factory_ActiveSyncBackend
  • Horde_Core_Factory_ActiveSyncServer
  • Horde_Core_Factory_ActiveSyncState
  • Horde_Core_Factory_Ajax
  • Horde_Core_Factory_Alarm
  • Horde_Core_Factory_Auth
  • Horde_Core_Factory_AuthSignup
  • Horde_Core_Factory_Base
  • Horde_Core_Factory_BlockCollection
  • Horde_Core_Factory_Browser
  • Horde_Core_Factory_Cache
  • Horde_Core_Factory_Crypt
  • Horde_Core_Factory_Data
  • Horde_Core_Factory_Db
  • Horde_Core_Factory_DbBase
  • Horde_Core_Factory_DbPear
  • Horde_Core_Factory_Dns
  • Horde_Core_Factory_Editor
  • Horde_Core_Factory_Facebook
  • Horde_Core_Factory_Group
  • Horde_Core_Factory_History
  • Horde_Core_Factory_HttpClient
  • Horde_Core_Factory_Identity
  • Horde_Core_Factory_Image
  • Horde_Core_Factory_Imple
  • Horde_Core_Factory_Imsp
  • Horde_Core_Factory_ImspAuth
  • Horde_Core_Factory_Injector
  • Horde_Core_Factory_KolabServer
  • Horde_Core_Factory_KolabSession
  • Horde_Core_Factory_KolabStorage
  • Horde_Core_Factory_Ldap
  • Horde_Core_Factory_Lock
  • Horde_Core_Factory_Logger
  • Horde_Core_Factory_LoginTasks
  • Horde_Core_Factory_Mail
  • Horde_Core_Factory_Mapper
  • Horde_Core_Factory_Matcher
  • Horde_Core_Factory_Memcache
  • Horde_Core_Factory_MimeViewer
  • Horde_Core_Factory_Notification
  • Horde_Core_Factory_Perms
  • Horde_Core_Factory_PermsCore
  • Horde_Core_Factory_Prefs
  • Horde_Core_Factory_Request
  • Horde_Core_Factory_Secret
  • Horde_Core_Factory_SessionHandler
  • Horde_Core_Factory_Share
  • Horde_Core_Factory_ShareBase
  • Horde_Core_Factory_Template
  • Horde_Core_Factory_TextFilter
  • Horde_Core_Factory_ThemesCache
  • Horde_Core_Factory_Token
  • Horde_Core_Factory_Tree
  • Horde_Core_Factory_Twitter
  • Horde_Core_Factory_UrlShortener
  • Horde_Core_Factory_Vfs
  • Horde_Core_Factory_View
  • Horde_Core_Factory_Weather
  • Horde_Core_Group_Ldap
  • Horde_Core_Log_Logger
  • Horde_Core_LoginTasks
  • Horde_Core_LoginTasks_Backend_Horde
  • Horde_Core_LoginTasks_SystemTask_Upgrade
  • Horde_Core_Mime_Viewer_Syntaxhighlighter
  • Horde_Core_Mime_Viewer_Vcard
  • Horde_Core_Notification_Event_Status
  • Horde_Core_Notification_Handler_Decorator_Hordelog
  • Horde_Core_Notification_Storage_Session
  • Horde_Core_Perms
  • Horde_Core_Perms_Ui
  • Horde_Core_Prefs_Cache_Session
  • Horde_Core_Prefs_Identity
  • Horde_Core_Prefs_Storage_Configuration
  • Horde_Core_Prefs_Storage_Hooks
  • Horde_Core_Prefs_Storage_Upgrade
  • Horde_Core_Prefs_Ui
  • Horde_Core_Prefs_Ui_Widgets
  • Horde_Core_Share_Driver
  • Horde_Core_Share_FactoryCallback
  • Horde_Core_Sidebar
  • Horde_Core_Text_Filter_Bbcode
  • Horde_Core_Text_Filter_Emails
  • Horde_Core_Text_Filter_Emoticons
  • Horde_Core_Text_Filter_Highlightquotes
  • Horde_Core_Translation
  • Horde_Core_Tree_Html
  • Horde_Core_Tree_Javascript
  • Horde_Core_Tree_Simplehtml
  • Horde_Core_Ui_FlagImage
  • Horde_Core_Ui_JsCalendar
  • Horde_Core_Ui_Language
  • Horde_Core_Ui_Layout
  • Horde_Core_Ui_ModalFormRenderer
  • Horde_Core_Ui_Pager
  • Horde_Core_Ui_Tabs
  • Horde_Core_Ui_TagCloud
  • Horde_Core_Ui_VarRenderer
  • Horde_Core_Ui_VarRenderer_Html
  • Horde_Core_Ui_VarRenderer_TablesetHtml
  • Horde_Core_Ui_Widget
  • Horde_ErrorHandler
  • Horde_Help
  • Horde_Menu
  • Horde_Registry
  • Horde_Registry_Api
  • Horde_Registry_Application
  • Horde_Registry_Caller
  • Horde_Registry_Nlsconfig
  • Horde_Script_Files
  • Horde_Session
  • Horde_Session_Null
  • Horde_Themes
  • Horde_Themes_Cache
  • Horde_Themes_Css
  • Horde_Themes_Element
  • Horde_Themes_Image
  • Horde_Themes_Sound

Exceptions

  • Horde_Exception_HookNotSet
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * The Horde_Core_Ui_Tabs:: class manages and renders a tab-like interface.
  4:  *
  5:  * Copyright 2001-2003 Robert E. Coyle <robertecoyle@hotmail.com>
  6:  * Copyright 2003-2012 Horde LLC (http://www.horde.org/)
  7:  *
  8:  * See the enclosed file COPYING for license information (LGPL). If you
  9:  * did not receive this file, see http://www.horde.org/licenses/lgpl21.
 10:  *
 11:  * @author   Jason M. Felice <jason.m.felice@gmail.com>
 12:  * @category Horde
 13:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
 14:  * @package  Core
 15:  */
 16: class Horde_Core_Ui_Tabs extends Horde_Core_Ui_Widget
 17: {
 18:     /**
 19:      * The array of tabs.
 20:      *
 21:      * @var array
 22:      */
 23:     protected $_tabs = array();
 24: 
 25:     /**
 26:      * Adds a tab to the interface.
 27:      *
 28:      * @param string $title    The text which appears on the tab.
 29:      * @param Horde_Url $link  The target page.
 30:      * @param mixed $params    Either a string value to set the tab variable to,
 31:      *                         or a hash of parameters. If an array, the tab
 32:      *                         variable can be set by the 'tabname' key.
 33:      */
 34:     public function addTab($title, $link, $params = array())
 35:     {
 36:         if (!is_array($params)) {
 37:             $params = array('tabname' => $params);
 38:         }
 39: 
 40:         $this->_tabs[] = array_merge(array('title' => $title,
 41:                                            'link' => $link->copy(),
 42:                                            'tabname' => null),
 43:                                      $params);
 44:     }
 45: 
 46:     /**
 47:      * Returns the title of the tab with the specified name.
 48:      *
 49:      * @param string $tabname  The name of the tab.
 50:      *
 51:      * @return string  The tab's title.
 52:      */
 53:     public function getTitleFromAction($tabname)
 54:     {
 55:         foreach ($this->_tabs as $tab) {
 56:             if ($tab['tabname'] == $tabname) {
 57:                 return $tab['title'];
 58:             }
 59:         }
 60: 
 61:         return null;
 62:     }
 63: 
 64:     /**
 65:      * Renders the tabs.
 66:      *
 67:      * @param string $active_tab  If specified, the name of the active tab. If
 68:      *                            not, the active tab is determined
 69:      *                            automatically.
 70:      */
 71:     public function render($active_tab = null)
 72:     {
 73:         $html = "<div class=\"tabset\"><ul>\n";
 74: 
 75:         $first = true;
 76:         $active = $_SERVER['PHP_SELF'] . $this->_vars->get($this->_name);
 77: 
 78:         foreach ($this->_tabs as $tab) {
 79:             $link = $this->_addPreserved($tab['link']);
 80:             if (!is_null($this->_name) && !is_null($tab['tabname'])) {
 81:                 $link->add($this->_name, $tab['tabname']);
 82:             }
 83: 
 84:             $class = '';
 85:             if ((!is_null($active_tab) && $active_tab == $tab['tabname']) ||
 86:                 ($active == $tab['link'] . $tab['tabname'])) {
 87:                 $class = ' class="activeTab"';
 88:             }
 89: 
 90:             $id = '';
 91:             if (!empty($tab['id'])) {
 92:                 $id = ' id="' . htmlspecialchars($tab['id']) . '"';
 93:             }
 94: 
 95:             if (!isset($tab['target'])) {
 96:                 $tab['target'] = '';
 97:             }
 98: 
 99:             if (!isset($tab['onclick'])) {
100:                 $tab['onclick'] = '';
101:             }
102: 
103:             $accesskey = Horde::getAccessKey($tab['title']);
104: 
105:             $html .= '<li' . $class . $id . '>'
106:                 . $link->link(array('target' => $tab['target'], 'onclick' => $tab['onclick'], 'accesskey' => $accesskey))
107:                 . Horde::highlightAccessKey(str_replace(' ', '&nbsp;', $tab['title']), $accesskey)
108:                 . "</a> </li>\n";
109:         }
110: 
111:         return $html . "</ul></div><br class=\"clear\" />\n";
112:     }
113: 
114: }
115: 
API documentation generated by ApiGen