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_Widget:: class provides base functionality for other
  4:  * Horde UI elements.
  5:  *
  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: abstract class Horde_Core_Ui_Widget
 17: {
 18:     /**
 19:      * Any variables that should be preserved in all of the widget's
 20:      * links.
 21:      *
 22:      * @var array
 23:      */
 24:     protected $_preserve = array();
 25: 
 26:     /**
 27:      * The name of this widget.  This is used as the basename for variables
 28:      * we access and manipulate.
 29:      *
 30:      * @var string
 31:      */
 32:     protected $_name;
 33: 
 34:     /**
 35:      * A reference to a Horde_Variables:: object this widget will use and
 36:      * manipulate.
 37:      *
 38:      * @var Horde_Variables
 39:      */
 40:     protected $_vars;
 41: 
 42:     /**
 43:      * An array of name => value pairs which configure how this widget
 44:      * behaves.
 45:      *
 46:      * @var array
 47:      */
 48:     protected $_config;
 49: 
 50:     /**
 51:      * Holds the name of a callback function to call on any URLS before they
 52:      * are used/returned. If an array, it is taken as an object/method name, if
 53:      * a string, it is taken as a php function.
 54:      *
 55:      * @var callable
 56:      */
 57:     protected $_url_callback = array('Horde', 'applicationUrl');
 58: 
 59:     /**
 60:      * Construct a new UI Widget interface.
 61:      *
 62:      * @param string $name            The name of the variable which will
 63:      *                                track this UI widget's state.
 64:      * @param Horde_Variables &$vars  A Horde_Variables:: object.
 65:      * @param array $config           The widget's configuration.
 66:      */
 67:     public function __construct($name, &$vars, $config = array())
 68:     {
 69:         $this->_name = $name;
 70:         $this->_vars = &$vars;
 71: 
 72:         if (array_key_exists('url_callback', $config)) {
 73:             $this->_url_callback = $config['url_callback'];
 74:             unset($config['url_callback']);
 75:         }
 76:         $this->_config = $config;
 77:     }
 78: 
 79:     /**
 80:      * Instructs widget to preserve a variable or a set of variables.
 81:      *
 82:      * @param string|array $var  The name of the variable to preserve, or
 83:      *                           an array of variables to preserve.
 84:      * @param mixed $value       If preserving a single key, the value of the
 85:      *                           variable to preserve.
 86:      */
 87:     public function preserve($var, $value = null)
 88:     {
 89:         if (!is_array($var)) {
 90:             $var = array($var => $value);
 91:         }
 92: 
 93:         foreach ($var as $key => $value) {
 94:             $this->_preserve[$key] = $value;
 95:         }
 96:     }
 97: 
 98:     /**
 99:      * TODO
100:      */
101:     protected function _addPreserved($link)
102:     {
103:         foreach ($this->_preserve as $varName => $varValue) {
104:             $link->add($varName, $varValue);
105:         }
106: 
107:         return $link;
108:     }
109: 
110:     /**
111:      * Render the widget.
112:      *
113:      * @param mixed $data  The widget's state data.
114:      */
115:     abstract public function render($data = null);
116: 
117:     /**
118:      * TODO
119:      */
120:     protected function _link($link)
121:     {
122:         if (is_callable($this->_url_callback)) {
123:             return call_user_func($this->_url_callback, $link);
124:         }
125: 
126:         return $link;
127:     }
128: 
129: }
130: 
API documentation generated by ApiGen