Overview

Packages

  • application
    • commands
    • components
      • actions
      • filters
      • leftWidget
      • permissions
      • sortableWidget
      • util
      • webupdater
      • x2flow
        • actions
        • triggers
      • X2GridView
      • X2Settings
    • controllers
    • models
      • embedded
    • modules
      • accounts
        • controllers
        • models
      • actions
        • controllers
        • models
      • calendar
        • controllers
        • models
      • charts
        • models
      • contacts
        • controllers
        • models
      • docs
        • components
        • controllers
        • models
      • groups
        • controllers
        • models
      • marketing
        • components
        • controllers
        • models
      • media
        • controllers
        • models
      • mobile
        • components
      • opportunities
        • controllers
        • models
      • products
        • controllers
        • models
      • quotes
        • controllers
        • models
      • services
        • controllers
        • models
      • template
        • models
      • users
        • controllers
        • models
      • workflow
        • controllers
        • models
      • x2Leads
        • controllers
        • models
  • Net
  • None
  • PHP
  • system
    • base
    • caching
      • dependencies
    • collections
    • console
    • db
      • ar
      • schema
        • cubrid
        • mssql
        • mysql
        • oci
        • pgsql
        • sqlite
    • i18n
      • gettext
    • logging
    • test
    • utils
    • validators
    • web
      • actions
      • auth
      • filters
      • form
      • helpers
      • renderers
      • services
      • widgets
        • captcha
        • pagers
  • Text
    • Highlighter
  • zii
    • behaviors
    • widgets
      • grid
      • jui

Classes

  • ActionFormModel
  • ArrayUtil
  • ArrayValidator
  • AssociatedMediaBehavior
  • AuxLib
  • Changelog
  • DetailView
  • EncryptUtilTmp
  • EventsWidgetFieldFormatter
  • FailedLogins
  • FieldFormatter
  • FieldFormatterBase
  • FieldInputRenderer
  • FileFieldBehavior
  • FiltersForm
  • FilterUtil
  • FineDiff
  • FineDiffCopyOp
  • FineDiffDeleteOp
  • FineDiffInsertOp
  • FineDiffOp
  • FineDiffOps
  • FineDiffReplaceOp
  • GlobalCSSFormModel
  • GlobalImportFormModel
  • GoogleAuthenticator
  • HTML5
  • HTML5TreeConstructer
  • HTMLPurifier
  • HTMLPurifier_Arborize
  • HTMLPurifier_AttrCollections
  • HTMLPurifier_AttrDef
  • HTMLPurifier_AttrDef_Clone
  • HTMLPurifier_AttrDef_CSS
  • HTMLPurifier_AttrDef_CSS_AlphaValue
  • HTMLPurifier_AttrDef_CSS_Background
  • HTMLPurifier_AttrDef_CSS_BackgroundPosition
  • HTMLPurifier_AttrDef_CSS_Border
  • HTMLPurifier_AttrDef_CSS_Color
  • HTMLPurifier_AttrDef_CSS_Composite
  • HTMLPurifier_AttrDef_CSS_DenyElementDecorator
  • HTMLPurifier_AttrDef_CSS_Filter
  • HTMLPurifier_AttrDef_CSS_Font
  • HTMLPurifier_AttrDef_CSS_FontFamily
  • HTMLPurifier_AttrDef_CSS_Ident
  • HTMLPurifier_AttrDef_CSS_ImportantDecorator
  • HTMLPurifier_AttrDef_CSS_Length
  • HTMLPurifier_AttrDef_CSS_ListStyle
  • HTMLPurifier_AttrDef_CSS_Multiple
  • HTMLPurifier_AttrDef_CSS_Number
  • HTMLPurifier_AttrDef_CSS_Percentage
  • HTMLPurifier_AttrDef_CSS_TextDecoration
  • HTMLPurifier_AttrDef_CSS_URI
  • HTMLPurifier_AttrDef_Enum
  • HTMLPurifier_AttrDef_HTML_Bool
  • HTMLPurifier_AttrDef_HTML_Class
  • HTMLPurifier_AttrDef_HTML_Color
  • HTMLPurifier_AttrDef_HTML_FrameTarget
  • HTMLPurifier_AttrDef_HTML_ID
  • HTMLPurifier_AttrDef_HTML_Length
  • HTMLPurifier_AttrDef_HTML_LinkTypes
  • HTMLPurifier_AttrDef_HTML_MultiLength
  • HTMLPurifier_AttrDef_HTML_Nmtokens
  • HTMLPurifier_AttrDef_HTML_Pixels
  • HTMLPurifier_AttrDef_Integer
  • HTMLPurifier_AttrDef_Lang
  • HTMLPurifier_AttrDef_Switch
  • HTMLPurifier_AttrDef_Text
  • HTMLPurifier_AttrDef_URI
  • HTMLPurifier_AttrDef_URI_Email
  • HTMLPurifier_AttrDef_URI_Email_SimpleCheck
  • HTMLPurifier_AttrDef_URI_Host
  • HTMLPurifier_AttrDef_URI_IPv4
  • HTMLPurifier_AttrDef_URI_IPv6
  • HTMLPurifier_AttrTransform
  • HTMLPurifier_AttrTransform_Background
  • HTMLPurifier_AttrTransform_BdoDir
  • HTMLPurifier_AttrTransform_BgColor
  • HTMLPurifier_AttrTransform_BoolToCSS
  • HTMLPurifier_AttrTransform_Border
  • HTMLPurifier_AttrTransform_EnumToCSS
  • HTMLPurifier_AttrTransform_ImgRequired
  • HTMLPurifier_AttrTransform_ImgSpace
  • HTMLPurifier_AttrTransform_Input
  • HTMLPurifier_AttrTransform_Lang
  • HTMLPurifier_AttrTransform_Length
  • HTMLPurifier_AttrTransform_Name
  • HTMLPurifier_AttrTransform_NameSync
  • HTMLPurifier_AttrTransform_Nofollow
  • HTMLPurifier_AttrTransform_SafeEmbed
  • HTMLPurifier_AttrTransform_SafeObject
  • HTMLPurifier_AttrTransform_SafeParam
  • HTMLPurifier_AttrTransform_ScriptRequired
  • HTMLPurifier_AttrTransform_TargetBlank
  • HTMLPurifier_AttrTransform_Textarea
  • HTMLPurifier_AttrTypes
  • HTMLPurifier_AttrValidator
  • HTMLPurifier_Bootstrap
  • HTMLPurifier_ChildDef
  • HTMLPurifier_ChildDef_Chameleon
  • HTMLPurifier_ChildDef_Custom
  • HTMLPurifier_ChildDef_Empty
  • HTMLPurifier_ChildDef_List
  • HTMLPurifier_ChildDef_Optional
  • HTMLPurifier_ChildDef_Required
  • HTMLPurifier_ChildDef_StrictBlockquote
  • HTMLPurifier_ChildDef_Table
  • HTMLPurifier_Config
  • HTMLPurifier_ConfigSchema
  • HTMLPurifier_ConfigSchema_Builder_ConfigSchema
  • HTMLPurifier_ConfigSchema_Builder_Xml
  • HTMLPurifier_ConfigSchema_Interchange
  • HTMLPurifier_ConfigSchema_Interchange_Directive
  • HTMLPurifier_ConfigSchema_Interchange_Id
  • HTMLPurifier_ConfigSchema_InterchangeBuilder
  • HTMLPurifier_ConfigSchema_Validator
  • HTMLPurifier_ConfigSchema_ValidatorAtom
  • HTMLPurifier_ContentSets
  • HTMLPurifier_Context
  • HTMLPurifier_CSSDefinition
  • HTMLPurifier_Definition
  • HTMLPurifier_DefinitionCache
  • HTMLPurifier_DefinitionCache_Decorator
  • HTMLPurifier_DefinitionCache_Decorator_Cleanup
  • HTMLPurifier_DefinitionCache_Decorator_Memory
  • HTMLPurifier_DefinitionCache_Null
  • HTMLPurifier_DefinitionCache_Serializer
  • HTMLPurifier_DefinitionCacheFactory
  • HTMLPurifier_Doctype
  • HTMLPurifier_DoctypeRegistry
  • HTMLPurifier_ElementDef
  • HTMLPurifier_Encoder
  • HTMLPurifier_EntityLookup
  • HTMLPurifier_EntityParser
  • HTMLPurifier_ErrorCollector
  • HTMLPurifier_ErrorStruct
  • HTMLPurifier_Filter
  • HTMLPurifier_Filter_ExtractStyleBlocks
  • HTMLPurifier_Filter_YouTube
  • HTMLPurifier_Generator
  • HTMLPurifier_HTMLDefinition
  • HTMLPurifier_HTMLModule
  • HTMLPurifier_HTMLModule_Bdo
  • HTMLPurifier_HTMLModule_CommonAttributes
  • HTMLPurifier_HTMLModule_Edit
  • HTMLPurifier_HTMLModule_Forms
  • HTMLPurifier_HTMLModule_Hypertext
  • HTMLPurifier_HTMLModule_Iframe
  • HTMLPurifier_HTMLModule_Image
  • HTMLPurifier_HTMLModule_Legacy
  • HTMLPurifier_HTMLModule_List
  • HTMLPurifier_HTMLModule_Name
  • HTMLPurifier_HTMLModule_Nofollow
  • HTMLPurifier_HTMLModule_NonXMLCommonAttributes
  • HTMLPurifier_HTMLModule_Object
  • HTMLPurifier_HTMLModule_Presentation
  • HTMLPurifier_HTMLModule_Proprietary
  • HTMLPurifier_HTMLModule_Ruby
  • HTMLPurifier_HTMLModule_SafeEmbed
  • HTMLPurifier_HTMLModule_SafeObject
  • HTMLPurifier_HTMLModule_SafeScripting
  • HTMLPurifier_HTMLModule_Scripting
  • HTMLPurifier_HTMLModule_StyleAttribute
  • HTMLPurifier_HTMLModule_Tables
  • HTMLPurifier_HTMLModule_Target
  • HTMLPurifier_HTMLModule_TargetBlank
  • HTMLPurifier_HTMLModule_Text
  • HTMLPurifier_HTMLModule_Tidy
  • HTMLPurifier_HTMLModule_Tidy_Name
  • HTMLPurifier_HTMLModule_Tidy_Proprietary
  • HTMLPurifier_HTMLModule_Tidy_Strict
  • HTMLPurifier_HTMLModule_Tidy_Transitional
  • HTMLPurifier_HTMLModule_Tidy_XHTML
  • HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4
  • HTMLPurifier_HTMLModule_XMLCommonAttributes
  • HTMLPurifier_HTMLModuleManager
  • HTMLPurifier_IDAccumulator
  • HTMLPurifier_Injector
  • HTMLPurifier_Injector_AutoParagraph
  • HTMLPurifier_Injector_DisplayLinkURI
  • HTMLPurifier_Injector_Linkify
  • HTMLPurifier_Injector_PurifierLinkify
  • HTMLPurifier_Injector_RemoveEmpty
  • HTMLPurifier_Injector_RemoveSpansWithoutAttributes
  • HTMLPurifier_Injector_SafeObject
  • HTMLPurifier_Language
  • HTMLPurifier_Language_en_x_test
  • HTMLPurifier_LanguageFactory
  • HTMLPurifier_Length
  • HTMLPurifier_Lexer
  • HTMLPurifier_Lexer_DirectLex
  • HTMLPurifier_Lexer_DOMLex
  • HTMLPurifier_Lexer_PH5P
  • HTMLPurifier_Node
  • HTMLPurifier_Node_Comment
  • HTMLPurifier_Node_Element
  • HTMLPurifier_Node_Text
  • HTMLPurifier_PercentEncoder
  • HTMLPurifier_Printer
  • HTMLPurifier_Printer_ConfigForm
  • HTMLPurifier_Printer_ConfigForm_bool
  • HTMLPurifier_Printer_ConfigForm_default
  • HTMLPurifier_Printer_ConfigForm_NullDecorator
  • HTMLPurifier_Printer_CSSDefinition
  • HTMLPurifier_Printer_HTMLDefinition
  • HTMLPurifier_PropertyList
  • HTMLPurifier_PropertyListIterator
  • HTMLPurifier_Queue
  • HTMLPurifier_Strategy
  • HTMLPurifier_Strategy_Composite
  • HTMLPurifier_Strategy_Core
  • HTMLPurifier_Strategy_FixNesting
  • HTMLPurifier_Strategy_MakeWellFormed
  • HTMLPurifier_Strategy_RemoveForeignElements
  • HTMLPurifier_Strategy_ValidateAttributes
  • HTMLPurifier_StringHash
  • HTMLPurifier_StringHashParser
  • HTMLPurifier_TagTransform
  • HTMLPurifier_TagTransform_Font
  • HTMLPurifier_TagTransform_Simple
  • HTMLPurifier_Token
  • HTMLPurifier_Token_Comment
  • HTMLPurifier_Token_Empty
  • HTMLPurifier_Token_End
  • HTMLPurifier_Token_Start
  • HTMLPurifier_Token_Tag
  • HTMLPurifier_Token_Text
  • HTMLPurifier_TokenFactory
  • HTMLPurifier_UnitConverter
  • HTMLPurifier_URI
  • HTMLPurifier_URIDefinition
  • HTMLPurifier_URIFilter
  • HTMLPurifier_URIFilter_DisableExternal
  • HTMLPurifier_URIFilter_DisableExternalResources
  • HTMLPurifier_URIFilter_DisableResources
  • HTMLPurifier_URIFilter_HostBlacklist
  • HTMLPurifier_URIFilter_MakeAbsolute
  • HTMLPurifier_URIFilter_Munge
  • HTMLPurifier_URIFilter_SafeIframe
  • HTMLPurifier_URIParser
  • HTMLPurifier_URIScheme
  • HTMLPurifier_URIScheme_data
  • HTMLPurifier_URIScheme_file
  • HTMLPurifier_URIScheme_ftp
  • HTMLPurifier_URIScheme_http
  • HTMLPurifier_URIScheme_https
  • HTMLPurifier_URIScheme_mailto
  • HTMLPurifier_URIScheme_news
  • HTMLPurifier_URIScheme_nntp
  • HTMLPurifier_URISchemeRegistry
  • HTMLPurifier_VarParser
  • HTMLPurifier_VarParser_Flexible
  • HTMLPurifier_VarParser_Native
  • HTMLPurifier_Zipper
  • JSONFieldsBehavior
  • JSONResponse
  • Markdown_Parser
  • MarkdownExtra_Parser
  • MediaFieldFormatter
  • MediaSelector
  • MobileActiveRecordFieldFormatter
  • MobileActivityFeed
  • MobileChartDashboard
  • MobileFieldFormatter
  • MobileFieldInputRenderer
  • ModuleModelNameValidator
  • MultiChildNode
  • MultiTypeAutocomplete
  • PasswordUtil
  • ProductFeature
  • ProfileWidgetLayout
  • QueryParamGenerator
  • RecordLimitBehavior
  • RecordView
  • RecordViewWidgetLayout
  • RelationshipsGridModel
  • RelationshipsJoin
  • RepairUserDataCommand
  • RequestUtil
  • RequiredIfNotSetValidator
  • ResponseUtil
  • RunMigrationScriptCommand
  • ServiceWebFormDesigner
  • Settings
  • StringUtil
  • TestEmailAction
  • TestEmailActionForm
  • ThemeGenerator
  • TimerUtil
  • TopicsFieldFormatter
  • TopicsWidgetLayout
  • TransactionalViewFieldFormatter
  • UrlUtil
  • ValidLinkValidator
  • WebFormDesigner
  • WebLeadFormDesigner
  • X2ActiveRecordBehavior
  • X2ActiveRecordFieldFormatter
  • X2ButtonColumn
  • X2ConditionList
  • X2ConsoleCommand
  • X2ControllerBehavior
  • X2DataColumn
  • X2DuplicateBehavior
  • X2Flashes
  • X2GridViewFieldFormatter
  • X2IPAddress
  • X2LeadsDataColumn
  • X2MergeableBehavior
  • X2MessageSource
  • X2MobileControllerBehavior
  • X2MobileProfileControllerBehavior
  • X2MobileQuotesControllerBehavior
  • X2MobileSiteControllerBehavior
  • X2MobileTopicsControllerBehavior
  • X2ModelConversionBehavior
  • X2ModelConversionWidget
  • X2ModelForeignKeyValidator
  • X2ModelUniqueIndexValidator
  • X2NonWebUser
  • X2StaticDropdown
  • X2StaticField
  • X2StaticFieldsBehavior
  • X2UrlManager
  • X2Validator
  • X2WidgetBehavior

Interfaces

  • AdminOwnedCredentials

Exceptions

  • CampaignMailingException
  • CodeExchangeException
  • GetCredentialsException
  • HTMLPurifier_ConfigSchema_Exception
  • HTMLPurifier_Exception
  • HTMLPurifier_VarParserException
  • Net_IDNA2_Exception
  • Net_IDNA2_Exception_Nameprep
  • NoRefreshTokenException
  • NoUserIdException
  • StringUtilException

Functions

  • checkCurrency
  • checkDNS
  • checkServerVar
  • checkTimezone
  • decodeQuotes
  • echoIcons
  • encodeQuotes
  • exceptionForError
  • getField
  • getLanguageName
  • getModuleTitle
  • handleReqError
  • handleReqException
  • htmlpurifier_filter_extractstyleblocks_muteerrorhandler
  • installer_t
  • installer_tr
  • isAllowedDir
  • mediaMigrationRrmdir
  • migrateMediaDir
  • printGraph
  • printR
  • renderFields
  • reqShutdown
  • RIP
  • translateOptions
  • tryGetRemote
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: 
  3: class HTMLPurifier_Printer_HTMLDefinition extends HTMLPurifier_Printer
  4: {
  5: 
  6:     /**
  7:      * @type HTMLPurifier_HTMLDefinition, for easy access
  8:      */
  9:     protected $def;
 10: 
 11:     /**
 12:      * @param HTMLPurifier_Config $config
 13:      * @return string
 14:      */
 15:     public function render($config)
 16:     {
 17:         $ret = '';
 18:         $this->config =& $config;
 19: 
 20:         $this->def = $config->getHTMLDefinition();
 21: 
 22:         $ret .= $this->start('div', array('class' => 'HTMLPurifier_Printer'));
 23: 
 24:         $ret .= $this->renderDoctype();
 25:         $ret .= $this->renderEnvironment();
 26:         $ret .= $this->renderContentSets();
 27:         $ret .= $this->renderInfo();
 28: 
 29:         $ret .= $this->end('div');
 30: 
 31:         return $ret;
 32:     }
 33: 
 34:     /**
 35:      * Renders the Doctype table
 36:      * @return string
 37:      */
 38:     protected function renderDoctype()
 39:     {
 40:         $doctype = $this->def->doctype;
 41:         $ret = '';
 42:         $ret .= $this->start('table');
 43:         $ret .= $this->element('caption', 'Doctype');
 44:         $ret .= $this->row('Name', $doctype->name);
 45:         $ret .= $this->row('XML', $doctype->xml ? 'Yes' : 'No');
 46:         $ret .= $this->row('Default Modules', implode($doctype->modules, ', '));
 47:         $ret .= $this->row('Default Tidy Modules', implode($doctype->tidyModules, ', '));
 48:         $ret .= $this->end('table');
 49:         return $ret;
 50:     }
 51: 
 52: 
 53:     /**
 54:      * Renders environment table, which is miscellaneous info
 55:      * @return string
 56:      */
 57:     protected function renderEnvironment()
 58:     {
 59:         $def = $this->def;
 60: 
 61:         $ret = '';
 62: 
 63:         $ret .= $this->start('table');
 64:         $ret .= $this->element('caption', 'Environment');
 65: 
 66:         $ret .= $this->row('Parent of fragment', $def->info_parent);
 67:         $ret .= $this->renderChildren($def->info_parent_def->child);
 68:         $ret .= $this->row('Block wrap name', $def->info_block_wrapper);
 69: 
 70:         $ret .= $this->start('tr');
 71:         $ret .= $this->element('th', 'Global attributes');
 72:         $ret .= $this->element('td', $this->listifyAttr($def->info_global_attr), null, 0);
 73:         $ret .= $this->end('tr');
 74: 
 75:         $ret .= $this->start('tr');
 76:         $ret .= $this->element('th', 'Tag transforms');
 77:         $list = array();
 78:         foreach ($def->info_tag_transform as $old => $new) {
 79:             $new = $this->getClass($new, 'TagTransform_');
 80:             $list[] = "<$old> with $new";
 81:         }
 82:         $ret .= $this->element('td', $this->listify($list));
 83:         $ret .= $this->end('tr');
 84: 
 85:         $ret .= $this->start('tr');
 86:         $ret .= $this->element('th', 'Pre-AttrTransform');
 87:         $ret .= $this->element('td', $this->listifyObjectList($def->info_attr_transform_pre));
 88:         $ret .= $this->end('tr');
 89: 
 90:         $ret .= $this->start('tr');
 91:         $ret .= $this->element('th', 'Post-AttrTransform');
 92:         $ret .= $this->element('td', $this->listifyObjectList($def->info_attr_transform_post));
 93:         $ret .= $this->end('tr');
 94: 
 95:         $ret .= $this->end('table');
 96:         return $ret;
 97:     }
 98: 
 99:     /**
100:      * Renders the Content Sets table
101:      * @return string
102:      */
103:     protected function renderContentSets()
104:     {
105:         $ret = '';
106:         $ret .= $this->start('table');
107:         $ret .= $this->element('caption', 'Content Sets');
108:         foreach ($this->def->info_content_sets as $name => $lookup) {
109:             $ret .= $this->heavyHeader($name);
110:             $ret .= $this->start('tr');
111:             $ret .= $this->element('td', $this->listifyTagLookup($lookup));
112:             $ret .= $this->end('tr');
113:         }
114:         $ret .= $this->end('table');
115:         return $ret;
116:     }
117: 
118:     /**
119:      * Renders the Elements ($info) table
120:      * @return string
121:      */
122:     protected function renderInfo()
123:     {
124:         $ret = '';
125:         $ret .= $this->start('table');
126:         $ret .= $this->element('caption', 'Elements ($info)');
127:         ksort($this->def->info);
128:         $ret .= $this->heavyHeader('Allowed tags', 2);
129:         $ret .= $this->start('tr');
130:         $ret .= $this->element('td', $this->listifyTagLookup($this->def->info), array('colspan' => 2));
131:         $ret .= $this->end('tr');
132:         foreach ($this->def->info as $name => $def) {
133:             $ret .= $this->start('tr');
134:             $ret .= $this->element('th', "<$name>", array('class' => 'heavy', 'colspan' => 2));
135:             $ret .= $this->end('tr');
136:             $ret .= $this->start('tr');
137:             $ret .= $this->element('th', 'Inline content');
138:             $ret .= $this->element('td', $def->descendants_are_inline ? 'Yes' : 'No');
139:             $ret .= $this->end('tr');
140:             if (!empty($def->excludes)) {
141:                 $ret .= $this->start('tr');
142:                 $ret .= $this->element('th', 'Excludes');
143:                 $ret .= $this->element('td', $this->listifyTagLookup($def->excludes));
144:                 $ret .= $this->end('tr');
145:             }
146:             if (!empty($def->attr_transform_pre)) {
147:                 $ret .= $this->start('tr');
148:                 $ret .= $this->element('th', 'Pre-AttrTransform');
149:                 $ret .= $this->element('td', $this->listifyObjectList($def->attr_transform_pre));
150:                 $ret .= $this->end('tr');
151:             }
152:             if (!empty($def->attr_transform_post)) {
153:                 $ret .= $this->start('tr');
154:                 $ret .= $this->element('th', 'Post-AttrTransform');
155:                 $ret .= $this->element('td', $this->listifyObjectList($def->attr_transform_post));
156:                 $ret .= $this->end('tr');
157:             }
158:             if (!empty($def->auto_close)) {
159:                 $ret .= $this->start('tr');
160:                 $ret .= $this->element('th', 'Auto closed by');
161:                 $ret .= $this->element('td', $this->listifyTagLookup($def->auto_close));
162:                 $ret .= $this->end('tr');
163:             }
164:             $ret .= $this->start('tr');
165:             $ret .= $this->element('th', 'Allowed attributes');
166:             $ret .= $this->element('td', $this->listifyAttr($def->attr), array(), 0);
167:             $ret .= $this->end('tr');
168: 
169:             if (!empty($def->required_attr)) {
170:                 $ret .= $this->row('Required attributes', $this->listify($def->required_attr));
171:             }
172: 
173:             $ret .= $this->renderChildren($def->child);
174:         }
175:         $ret .= $this->end('table');
176:         return $ret;
177:     }
178: 
179:     /**
180:      * Renders a row describing the allowed children of an element
181:      * @param HTMLPurifier_ChildDef $def HTMLPurifier_ChildDef of pertinent element
182:      * @return string
183:      */
184:     protected function renderChildren($def)
185:     {
186:         $context = new HTMLPurifier_Context();
187:         $ret = '';
188:         $ret .= $this->start('tr');
189:         $elements = array();
190:         $attr = array();
191:         if (isset($def->elements)) {
192:             if ($def->type == 'strictblockquote') {
193:                 $def->validateChildren(array(), $this->config, $context);
194:             }
195:             $elements = $def->elements;
196:         }
197:         if ($def->type == 'chameleon') {
198:             $attr['rowspan'] = 2;
199:         } elseif ($def->type == 'empty') {
200:             $elements = array();
201:         } elseif ($def->type == 'table') {
202:             $elements = array_flip(
203:                 array(
204:                     'col',
205:                     'caption',
206:                     'colgroup',
207:                     'thead',
208:                     'tfoot',
209:                     'tbody',
210:                     'tr'
211:                 )
212:             );
213:         }
214:         $ret .= $this->element('th', 'Allowed children', $attr);
215: 
216:         if ($def->type == 'chameleon') {
217: 
218:             $ret .= $this->element(
219:                 'td',
220:                 '<em>Block</em>: ' .
221:                 $this->escape($this->listifyTagLookup($def->block->elements)),
222:                 null,
223:                 0
224:             );
225:             $ret .= $this->end('tr');
226:             $ret .= $this->start('tr');
227:             $ret .= $this->element(
228:                 'td',
229:                 '<em>Inline</em>: ' .
230:                 $this->escape($this->listifyTagLookup($def->inline->elements)),
231:                 null,
232:                 0
233:             );
234: 
235:         } elseif ($def->type == 'custom') {
236: 
237:             $ret .= $this->element(
238:                 'td',
239:                 '<em>' . ucfirst($def->type) . '</em>: ' .
240:                 $def->dtd_regex
241:             );
242: 
243:         } else {
244:             $ret .= $this->element(
245:                 'td',
246:                 '<em>' . ucfirst($def->type) . '</em>: ' .
247:                 $this->escape($this->listifyTagLookup($elements)),
248:                 null,
249:                 0
250:             );
251:         }
252:         $ret .= $this->end('tr');
253:         return $ret;
254:     }
255: 
256:     /**
257:      * Listifies a tag lookup table.
258:      * @param array $array Tag lookup array in form of array('tagname' => true)
259:      * @return string
260:      */
261:     protected function listifyTagLookup($array)
262:     {
263:         ksort($array);
264:         $list = array();
265:         foreach ($array as $name => $discard) {
266:             if ($name !== '#PCDATA' && !isset($this->def->info[$name])) {
267:                 continue;
268:             }
269:             $list[] = $name;
270:         }
271:         return $this->listify($list);
272:     }
273: 
274:     /**
275:      * Listifies a list of objects by retrieving class names and internal state
276:      * @param array $array List of objects
277:      * @return string
278:      * @todo Also add information about internal state
279:      */
280:     protected function listifyObjectList($array)
281:     {
282:         ksort($array);
283:         $list = array();
284:         foreach ($array as $obj) {
285:             $list[] = $this->getClass($obj, 'AttrTransform_');
286:         }
287:         return $this->listify($list);
288:     }
289: 
290:     /**
291:      * Listifies a hash of attributes to AttrDef classes
292:      * @param array $array Array hash in form of array('attrname' => HTMLPurifier_AttrDef)
293:      * @return string
294:      */
295:     protected function listifyAttr($array)
296:     {
297:         ksort($array);
298:         $list = array();
299:         foreach ($array as $name => $obj) {
300:             if ($obj === false) {
301:                 continue;
302:             }
303:             $list[] = "$name&nbsp;=&nbsp;<i>" . $this->getClass($obj, 'AttrDef_') . '</i>';
304:         }
305:         return $this->listify($list);
306:     }
307: 
308:     /**
309:      * Creates a heavy header row
310:      * @param string $text
311:      * @param int $num
312:      * @return string
313:      */
314:     protected function heavyHeader($text, $num = 1)
315:     {
316:         $ret = '';
317:         $ret .= $this->start('tr');
318:         $ret .= $this->element('th', $text, array('colspan' => $num, 'class' => 'heavy'));
319:         $ret .= $this->end('tr');
320:         return $ret;
321:     }
322: }
323: 
324: // vim: et sw=4 sts=4
325: 
API documentation generated by ApiGen 2.8.0