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:  * Provides basic functionality for both managing and displaying blocks.
  4:  *
  5:  * Copyright 2003-2012 Horde LLC (http://www.horde.org/)
  6:  *
  7:  * See the enclosed file COPYING for license information (LGPL). If you
  8:  * did not receive this file, see http://www.horde.org/licenses/lgpl21.
  9:  *
 10:  * @author   Mike Cochrane <mike@graftonhall.co.nz>
 11:  * @author   Jan Schneider <jan@horde.org>
 12:  * @author   Michael Slusarz <slusarz@horde.org>
 13:  * @category Horde
 14:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
 15:  * @package  Core
 16:  */
 17: class Horde_Core_Block_Layout
 18: {
 19:     /**
 20:      * Edit URL.
 21:      *
 22:      * @var string
 23:      */
 24:     protected $_editUrl;
 25: 
 26:     /**
 27:      * View URL.
 28:      *
 29:      * @var string
 30:      */
 31:     protected $_viewUrl;
 32: 
 33:     /**
 34:      * Returns whether the specified block may be removed.
 35:      *
 36:      * @param integer $row  A layout row.
 37:      * @param integer $col  A layout column.
 38:      *
 39:      * @return boolean  True if this block may be removed.
 40:      */
 41:     public function isRemovable($row, $col)
 42:     {
 43:         global $conf;
 44: 
 45:         $app = $this->_layout[$row][$col]['app'];
 46:         $type = $this->_layout[$row][$col]['params']['type2'];
 47:         $block = $app . ':' . $type;
 48: 
 49:         /* Check if the block is a fixed block. */
 50:         if (!in_array($block, $conf['portal']['fixed_blocks'])) {
 51:             return true;
 52:         }
 53: 
 54:         /* Check if we have still another block of the same type. */
 55:         $found = false;
 56:         foreach ($this->_layout as $cur_row) {
 57:             foreach ($cur_row as $cur_col) {
 58:                 if (isset($cur_col['app']) &&
 59:                     $cur_col['app'] == $app &&
 60:                     $cur_col['params']['type2'] == $type) {
 61:                     if ($found) {
 62:                         return true;
 63:                     }
 64:                     $found = true;
 65:                 }
 66:             }
 67:         }
 68: 
 69:         return false;
 70:     }
 71: 
 72:     /**
 73:      * Returns an URL triggering an action to a block.
 74:      *
 75:      * @param string $action  An action to trigger.
 76:      * @param integer $row    A layout row.
 77:      * @param integer $col    A layout column.
 78:      *
 79:      * @return Horde_Url  An URL with all necessary parameters.
 80:      */
 81:     public function getActionUrl($action, $row, $col)
 82:     {
 83:         return Horde::url($this->_editUrl)->unique()->setAnchor('block')->add(array(
 84:             'col' => $col,
 85:             'row' => $row,
 86:             'action' => $action,
 87:             'url' => $this->_viewUrl
 88:         ));
 89:     }
 90: 
 91:     /**
 92:      * Returns the actions for the block header.
 93:      *
 94:      * @param integer $row   A layout row.
 95:      * @param integer $col   A layout column.
 96:      * @param boolean $edit  Whether to include the edit icon.
 97:      * @param $url TODO
 98:      *
 99:      * @return string  HTML code for the block action icons.
100:      */
101:     public function getHeaderIcons($row, $col, $edit, $url = null)
102:     {
103:         $icons = '';
104: 
105:         if ($edit) {
106:             $icons .= Horde::link($this->getActionUrl('edit', $row, $col),
107:                                   Horde_Core_Translation::t("Edit"))
108:                 . Horde::img('edit.png', Horde_Core_Translation::t("Edit"))
109:                 . '</a>';
110:         }
111: 
112:         if ($this->isRemovable($row, $col)) {
113:             $icons .= Horde::link(
114:                 $this->getActionUrl('removeBlock', $row, $col), Horde_Core_Translation::t("Remove"),
115:                 '', '',
116:                 'return window.confirm(\''
117:                 . addslashes(Horde_Core_Translation::t("Really delete this block?")) . '\')')
118:                 . Horde::img('delete.png', Horde_Core_Translation::t("Remove"))
119:                 . '</a>';
120:         }
121: 
122:         return $icons;
123:     }
124: 
125: }
126: 
API documentation generated by ApiGen