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:  * A Horde_Injector:: based Horde_Text_Filter_Base:: factory.
  4:  *
  5:  * PHP version 5
  6:  *
  7:  * @category Horde
  8:  * @package  Core
  9:  * @author   Michael Slusarz <slusarz@horde.org>
 10:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
 11:  * @link     http://pear.horde.org/index.php?package=Core
 12:  */
 13: 
 14: /**
 15:  * A Horde_Injector:: based Horde_Text_Filter_Base:: factory.
 16:  *
 17:  * Copyright 2010-2012 Horde LLC (http://www.horde.org/)
 18:  *
 19:  * See the enclosed file COPYING for license information (LGPL). If you
 20:  * did not receive this file, see http://www.horde.org/licenses/lgpl21.
 21:  *
 22:  * @category Horde
 23:  * @package  Core
 24:  * @author   Michael Slusarz <slusarz@horde.org>
 25:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
 26:  * @link     http://pear.horde.org/index.php?package=Core
 27:  */
 28: class Horde_Core_Factory_TextFilter extends Horde_Core_Factory_Base
 29: {
 30:     /**
 31:      * Return the Horde_Text_Filter_Base:: instance.
 32:      *
 33:      * @param string $driver  Either a driver name, or the full class name to
 34:      *                        use.
 35:      * @param array $params   A hash containing any additional configuration
 36:      *                        parameters a subclass might need.
 37:      *
 38:      * @return Horde_Text_Filter_Base  The singleton instance.
 39:      * @throws Horde_Text_Filter_Exception
 40:      */
 41:     public function create($driver, array $params = array())
 42:     {
 43:         list($driver, $params) = $this->_getDriver($driver, $params);
 44:         return Horde_Text_Filter::factory($driver, $params);
 45:     }
 46: 
 47:     /**
 48:      * Applies a set of patterns to a block of text.
 49:      *
 50:      * @param string $text    The text to filter.
 51:      * @param mixed $filters  The list of filters (or a single filter).
 52:      * @param mixed $params   The list of params to use with each filter.
 53:      *
 54:      * @return string  The transformed text.
 55:      */
 56:     public function filter($text, $filters = array(), $params = array())
 57:     {
 58:         if (!is_array($filters)) {
 59:             $filters = array($filters);
 60:             $params = array($params);
 61:         }
 62: 
 63:         $filter_list = array();
 64:         $params = array_values($params);
 65: 
 66:         foreach (array_values($filters) as $num => $filter) {
 67:             list($driver, $driv_param) = $this->_getDriver($filter, isset($params[$num]) ? $params[$num] : array());
 68:             $filter_list[$driver] = $driv_param;
 69:         }
 70: 
 71:         return Horde_Text_Filter::filter($text, array_keys($filter_list), array_values($filter_list));
 72:     }
 73: 
 74:     /**
 75:      * Gets the driver/params for a given base Horde_Text_Filter driver.
 76:      *
 77:      * @param string $driver  Either a driver name, or the full class name to
 78:      *                        use.
 79:      * @param array $params   A hash containing any additional configuration
 80:      *                        parameters a subclass might need.
 81:      *
 82:      * @return array  Driver as the first value, params list as the second.
 83:      */
 84:     protected function _getDriver($driver, $params)
 85:     {
 86:         $lc_driver = Horde_String::lower($driver);
 87: 
 88:         switch ($lc_driver) {
 89:         case 'bbcode':
 90:             $driver = 'Horde_Core_Text_Filter_Bbcode';
 91:             break;
 92: 
 93:         case 'emails':
 94:             $driver = 'Horde_Core_Text_Filter_Emails';
 95:             break;
 96: 
 97:         case 'emoticons':
 98:             $driver = 'Horde_Core_Text_Filter_Emoticons';
 99:             break;
100: 
101:         case 'highlightquotes':
102:             $driver = 'Horde_Core_Text_Filter_Highlightquotes';
103:             break;
104: 
105:         case 'linkurls':
106:             if (!isset($params['callback'])) {
107:                 $params['callback'] = 'Horde::externalUrl';
108:             }
109:             break;
110: 
111:         case 'text2html':
112:             $param_copy = $params;
113:             foreach (array('emails', 'linkurls', 'space2html') as $val) {
114:                 if (!isset($params[$val])) {
115:                     $tmp = $this->_getDriver($val, $param_copy);
116:                     $params[$val] = array(
117:                         $tmp[0] => $tmp[1]
118:                     );
119:                 }
120:             }
121:             break;
122:         }
123: 
124:         return array($driver, $params);
125:     }
126: 
127: }
128: 
API documentation generated by ApiGen