Exponential 6.0.13 Exponential Enterprise Open Source CMS - PHP Class Reference

ezxmloutputhandler.php
Go to the documentation of this file.
1 <?php
18 // if ( !class_exists( 'eZXMLSchema' ) )
19 class eZXMLOutputHandler
20 {
21 public $TemplateUri;
29 public function __construct( $xmlData, $aliasedType, $contentObjectAttribute = null )
30 {
31 $this->XMLData = $xmlData;
32 $this->AliasedHandler = null;
33 $this->AliasedType = $aliasedType;
34
35 if ( is_object( $contentObjectAttribute ) )
36 {
37 $this->ContentObjectAttribute = $contentObjectAttribute;
38 $this->ObjectAttributeID = $contentObjectAttribute->attribute( 'id' );
39 }
40
41 $ini = eZINI::instance( 'ezxml.ini' );
42 if ( $ini->hasVariable( 'InputSettings', 'AllowMultipleSpaces' ) )
43 {
44 $allowMultipleSpaces = $ini->variable( 'InputSettings', 'AllowMultipleSpaces' );
45 $this->AllowMultipleSpaces = $allowMultipleSpaces == 'true' ? true : false;
46 }
47 if ( $ini->hasVariable( 'InputSettings', 'AllowNumericEntities' ) )
48 {
49 $allowNumericEntities = $ini->variable( 'InputSettings', 'AllowNumericEntities' );
50 $this->AllowNumericEntities = $allowNumericEntities == 'true' ? true : false;
51 }
52 }
53
57 function attributes()
58 {
59 return array( 'output_text',
60 'aliased_type',
61 'aliased_handler',
62 'view_template_name' );
63 }
64
68 function hasAttribute( $name )
69 {
70 return in_array( $name, $this->attributes() );
71 }
72
76 function attribute( $name )
77 {
78 switch ( $name )
79 {
80 case 'output_text':
81 {
82 return $this->outputText();
83 } break;
84 case 'aliased_type':
85 {
86 return $this->AliasedType;
87 } break;
88 case 'view_template_name':
89 {
90 return $this->viewTemplateName();
91 } break;
92 case 'aliased_handler':
93 {
94 if ( $this->AliasedHandler === null )
95 {
96 $this->AliasedHandler = eZXMLText::inputHandler( $this->XMLData,
97 $this->AliasedType,
98 false,
99 $this->ContentObjectAttribute );
100 }
101 return $this->AliasedHandler;
102 } break;
103 default:
104 {
105 eZDebug::writeError( "Attribute '$name' does not exist", __METHOD__ );
106 return null;
107 } break;
108 }
109 }
110
114 function &viewTemplateName()
115 {
116 $name = 'ezxmltext';
117 $contentobjectAttribute = false;
118 $suffix = $this->viewTemplateSuffix( $contentobjectAttribute );
119 if ( $suffix !== false )
120 {
121 $name .= '_' . $suffix;
122 }
123 return $name;
124 }
125
131 function isValid()
132 {
133 return true;
134 }
135
140 function viewTemplateSuffix( &$contentobjectAttribute )
141 {
142 $suffix = false;
143 return $suffix;
144 }
145
149 function xmlData()
150 {
151 return $this->XMLData;
152 }
153
158 function &outputText()
159 {
160 if ( !$this->XMLData )
161 {
162 $output = '';
163 return $output;
164 }
165
166 $this->Tpl = eZTemplate::factory();
167 $this->Res = eZTemplateDesignResource::instance();
168 if ( $this->ContentObjectAttribute )
169 {
170 $this->Res->setKeys( array( array( 'attribute_identifier', $this->ContentObjectAttribute->attribute( 'contentclass_attribute_identifier' ) ) ) );
171 }
172
173 $this->Document = new DOMDocument( '1.0', 'utf-8' );
174 $success = $this->Document->loadXML( $this->XMLData );
175
176 if ( !$success )
177 {
178 $this->Output = '';
179 return $this->Output;
180 }
181
182 $this->prefetch();
183
184 $this->XMLSchema = eZXMLSchema::instance();
185
186 // Add missing elements to the OutputTags array
187 foreach( $this->XMLSchema->availableElements() as $element )
188 {
189 if ( !isset( $this->OutputTags[$element] ) )
190 {
191 $this->OutputTags[$element] = array();
192 }
193 }
194
195 $this->NestingLevel = 0;
196 $params = array();
197
198 $output = $this->outputTag( $this->Document->documentElement, $params );
199 $this->Output = $output[1];
200
201 unset( $this->Document );
202
203 $this->Res->removeKey( 'attribute_identifier' );
204 return $this->Output;
205 }
206
207 // Prefetch objects, nodes and urls for further rendering
208 function prefetch()
209 {
210 $relatedObjectIDArray = array();
211 $nodeIDArray = array();
212
213 // Fetch all links and cache urls
214 $linkIDArray = $this->getAttributeValueArray( 'link', 'url_id' );
215 if ( count( $linkIDArray ) > 0 )
216 {
217 $inIDSQL = implode( ', ', $linkIDArray );
218
219 $db = eZDB::instance();
220 $linkArray = $db->arrayQuery( "SELECT * FROM ezurl WHERE id IN ( $inIDSQL ) " );
221
222 foreach ( $linkArray as $linkRow )
223 {
224 $url = str_replace( '&', '&amp;', $linkRow['url'] );
225 $this->LinkArray[$linkRow['id']] = $url;
226 }
227 }
228
229 $linkRelatedObjectIDArray = $this->getAttributeValueArray( 'link', 'object_id' );
230 $linkNodeIDArray = $this->getAttributeValueArray( 'link', 'node_id' );
231
232 // Fetch all embeded objects and cache by ID
233 $objectRelatedObjectIDArray = $this->getAttributeValueArray( 'object', 'id' );
234
235 $embedRelatedObjectIDArray = $this->getAttributeValueArray( 'embed', 'object_id' );
236 $embedInlineRelatedObjectIDArray = $this->getAttributeValueArray( 'embed-inline', 'object_id' );
237
238 $embedNodeIDArray = $this->getAttributeValueArray( 'embed', 'node_id' );
239 $embedInlineNodeIDArray = $this->getAttributeValueArray( 'embed-inline', 'node_id' );
240
241 $relatedObjectIDArray = array_merge(
242 $linkRelatedObjectIDArray,
243 $objectRelatedObjectIDArray,
244 $embedRelatedObjectIDArray,
245 $embedInlineRelatedObjectIDArray );
246 $relatedObjectIDArray = array_unique( $relatedObjectIDArray );
247
248 if ( count( $relatedObjectIDArray ) > 0 )
249 {
250 if ( $this->ContentObjectAttribute instanceof eZContentObjectAttribute )
251 {
252 $this->ObjectArray = eZContentObject::fetchIDArray(
253 $relatedObjectIDArray, true,
254 $this->ContentObjectAttribute->attribute( 'language_code' )
255 );
256 }
257 else
258 {
259 $this->ObjectArray = eZContentObject::fetchIDArray( $relatedObjectIDArray );
260 }
261 }
262
263 $nodeIDArray = array_merge(
264 $linkNodeIDArray,
265 $embedNodeIDArray,
266 $embedInlineNodeIDArray
267 );
268 $nodeIDArray = array_unique( $nodeIDArray );
269
270 if ( count( $nodeIDArray ) > 0 )
271 {
272 $nodes = eZContentObjectTreeNode::fetch( $nodeIDArray );
273
274 if ( is_array( $nodes ) )
275 {
276 foreach( $nodes as $node )
277 {
278 $nodeID = $node->attribute( 'node_id' );
279 $this->NodeArray[$nodeID] = $node;
280 }
281 }
282 elseif ( $nodes )
283 {
284 $node = $nodes;
285 $nodeID = $node->attribute( 'node_id' );
286 $this->NodeArray[$nodeID] = $node;
287 }
288 }
289 }
290
291 function getAttributeValueArray( $tagName, $attributeName )
292 {
293 $attributeValueArray = array();
294 $elements = $this->Document->getElementsByTagName( $tagName );
295 foreach ( $elements as $element )
296 {
297 $attributeValue = $element->getAttribute( $attributeName );
298 if ( $attributeValue )
299 {
300 $attributeValueArray[] = $attributeValue;
301 }
302 }
303 return $attributeValueArray;
304 }
305
306 // Main recursive functions for rendering tags
307 // $element - current element
308 // $siblingParams - array of parameters that are passed by reference to all the children of the
309 // current tag to provide a way to "communicate" between their handlers.
310 // This array is empty for the first child.
311 // $parentParams - parameter passed to this tag handler by the parent tag's handler.
312 // This array is passed with no reference. Can by modified in tag's handler
313 // for subordinate tags.
314
315 function outputTag( $element, &$siblingParams, $parentParams = array() )
316 {
317 $tagName = $element->localName;
318 if ( isset( $this->OutputTags[$tagName] ) )
319 {
320 $currentTag = $this->OutputTags[$tagName];
321 }
322 else
323 {
324 $currentTag = null;
325 }
326
327 // Prepare attributes array
328 $attributes = array();
329 if ( $element->hasAttributes() )
330 {
331 $attributeNodes = $element->attributes;
332
333 foreach ( $attributeNodes as $attrNode )
334 {
335 if ( $attrNode->prefix && $attrNode->prefix != 'custom' )
336 {
337 $attrName = $attrNode->prefix . ':' . $attrNode->localName;
338 }
339 else
340 {
341 $attrName = $attrNode->nodeName;
342 }
343
344 // classes check
345 if ( $attrName == 'class' )
346 {
347 $classesList = $this->XMLSchema->getClassesList( $tagName );
348 if ( !in_array( $attrNode->value, $classesList ) )
349 {
350 eZDebug::writeWarning( "Using tag '$tagName' with class '$attrNode->value' is not allowed.", 'XML output handler' );
351 return array( true, '' );
352 }
353 }
354
355 $attributes[$attrName] = $attrNode->value;
356 }
357 }
358
359 // Set default attribute values if not present in the input
360 $attrDefaults = $this->XMLSchema->attrDefaultValues( $tagName );
361 foreach ( $attrDefaults as $name=>$value )
362 {
363 if ( !isset( $attributes[$name] ) )
364 {
365 $attributes[$name] = $value;
366 }
367 }
368
369 // Init handler returns an array that may contain the following items:
370 //
371 // 'no_render' (boolean) :
372 // If false tag will not be rendered, only it's children (if any).
373 // 'design_keys' array( 'design_key_name_1' => 'value_1', 'design_key_name_2'=>'value_2', ... ) :
374 // An array of additional design keys.
375 // 'tpl_vars' array( 'var_name_1' => 'value_1', 'var_name_2' => 'value_2', ... ) :
376 // An array of additional template variables.
377 // 'template_name' (string) :
378 // Overrides tag template name.
379
380 $result = $this->callTagInitHandler( 'initHandler', $element, $attributes, $siblingParams, $parentParams );
381
382 // Process children
383 $childrenOutput = array();
384 if ( $element->hasChildNodes() )
385 {
386 // Initialize sibiling parameters array for the next level children
387 // Parent parameters for the children may be modified in the current tag handler.
388 $nextSibilingParams = array();
389
390 $this->NestingLevel++;
391 foreach( $element->childNodes as $child )
392 {
393 $childOutput = $this->outputTag( $child, $nextSibilingParams, $parentParams );
394
395 if ( is_array( $childOutput[0] ) )
396 {
397 $childrenOutput = array_merge( $childrenOutput, $childOutput );
398 }
399 else
400 {
401 $childrenOutput[] = $childOutput;
402 }
403 }
404 $this->NestingLevel--;
405 }
406 else
407 {
408 $childrenOutput = array( array( true, '' ) );
409 }
410
411 if ( isset( $result['no_render'] ) && $result['no_render'] )
412 {
413 return $childrenOutput;
414 }
415
416 // Set tpl variables by attributes and rename rules
417 $vars = array();
418
419 if ( !isset( $currentTag['quickRender'] ) && isset( $currentTag['attrNamesTemplate'] ) )
420 {
421 $attrRenameRules = $currentTag['attrNamesTemplate'];
422 }
423 elseif ( isset( $currentTag['quickRender'] ) && isset( $currentTag['attrNamesQuick'] ) )
424 {
425 $attrRenameRules = $currentTag['attrNamesQuick'];
426 }
427 else
428 {
429 $attrRenameRules = array();
430 }
431
432 foreach( $attributes as $name=>$value )
433 {
434 if ( isset( $attrRenameRules[$name] ) )
435 {
436 $vars[$attrRenameRules[$name]] = $value;
437 continue;
438 }
439
440 if ( strpos( $name, 'custom:' ) === 0 )
441 {
442 $name = substr( $name, 7 );
443 }
444
445 $vars[$name] = $value;
446 }
447
448 // set missing variables that have rename rules defined
449 // but were not present in the element
450 foreach( $attrRenameRules as $attrName=>$varName )
451 {
452 if ( !isset( $attributes[$attrName] ) )
453 {
454 $vars[$varName] = '';
455 }
456 }
457
458 $this->TemplateUri = '';
459
460 // In quick render mode we does not use templates and
461 // render template variables as tag attributes
462 if ( !isset( $currentTag['quickRender'] ) )
463 {
464 // Set additional variables passed by tag handler
465 if ( isset( $result['tpl_vars'] ) )
466 {
467 $vars = array_merge( $vars, $result['tpl_vars'] );
468 }
469
470 foreach( $vars as $name=>$value )
471 {
472 $this->Tpl->setVariable( $name, $value, 'xmltagns' );
473 }
474
475 // Create design keys array (including the ones with no value so they still overwrite values of parent tag)
476 $designKeys = array();
477 if ( isset( $currentTag['attrDesignKeys'] ) )
478 {
479 foreach( $currentTag['attrDesignKeys'] as $attrName=>$keyName )
480 {
481 if ( isset( $attributes[$attrName] ) )
482 {
483 $designKeys[$keyName] = $attributes[$attrName];
484 }
485 }
486 }
487 // Set additional design keys passed by tag handler
488 if ( isset( $result['design_keys'] ) )
489 {
490 $designKeys = array_merge( $designKeys, $result['design_keys'] );
491 }
492
493 $existingKeys = $this->Res->keys();
494 $savedKeys = array();
495
496 // Save old keys values and set new design keys
497 foreach( $designKeys as $key=>$value )
498 {
499 if ( isset( $existingKeys[$key] ) )
500 {
501 $savedKeys[$key] = $existingKeys[$key];
502 }
503 $this->Res->setKeys( array( array( $key, $value ) ) );
504 }
505
506 // Template name
507 if ( isset( $result['template_name'] ) )
508 {
509 $templateName = $result['template_name'];
510 }
511 else
512 {
513 $templateName = $element->nodeName;
514 }
515 $this->TemplateUri = $this->TemplatesPath . $templateName . '.tpl';
516 }
517
518 $output = $this->callTagRenderHandler( 'renderHandler', $element, $childrenOutput, $vars );
519
520 if ( !isset( $currentTag['quickRender'] ) )
521 {
522 // Restore saved template override keys and remove others
523 foreach( $designKeys as $key => $value )
524 {
525 if ( isset( $savedKeys[$key] ) )
526 {
527 $this->Res->setKeys( array( array( $key, $savedKeys[$key] ) ) );
528 }
529 else
530 {
531 $this->Res->removeKey( $key );
532 }
533 }
534
535 // Unset variables
536 foreach ( $vars as $name=>$value )
537 {
538 if ( $this->Tpl->hasVariable( $name, 'xmltagns' ) )
539 {
540 $this->Tpl->unsetVariable( $name, 'xmltagns' );
541 }
542 }
543 }
544
545 $this->callTagInitHandler( 'leavingHandler', $element, $attributes, $siblingParams, $parentParams );
546
547 return $output;
548 }
549
550 function renderTag( $element, $content, $vars )
551 {
552 $currentTag = $this->OutputTags[$element->nodeName];
553 if ( $currentTag && isset( $currentTag['quickRender'] ) )
554 {
555 $renderedTag = '';
556 $attrString = '';
557 foreach( $vars as $name => $value )
558 {
559 if ( $value != '' )
560 {
561 $attrString .= " $name=\"$value\"";
562 }
563 }
564
565 if ( isset( $currentTag['quickRender'][0] ) && $currentTag['quickRender'][0] )
566 {
567 $renderedTag = '<' . $currentTag['quickRender'][0] . "$attrString>" . $content . '</' . $currentTag['quickRender'][0] . '>';
568 }
569 else
570 {
571 $renderedTag = $content;
572 }
573
574 if ( isset( $currentTag['quickRender'][1] ) && $currentTag['quickRender'][1] )
575 {
576 $renderedTag .= $currentTag['quickRender'][1];
577 }
578 }
579 else
580 {
581 if ( isset( $currentTag['contentVarName'] ) )
582 {
583 $contentVarName = $currentTag['contentVarName'];
584 }
585 else
586 {
587 $contentVarName = 'content';
588 }
589
590 $this->Tpl->setVariable( $contentVarName, $content, 'xmltagns' );
591 eZTemplateIncludeFunction::handleInclude( $textElements, $this->TemplateUri, $this->Tpl, 'foo', 'xmltagns' );
592 $renderedTag = is_array( $textElements ) ? implode( '', $textElements ) : '';
593 }
594 return $renderedTag;
595 }
596
597 // Default render handler
598 // Renders all the content of children tags inside the current tag
599 function renderAll( $element, $childrenOutput, $vars )
600 {
601 $tagText = '';
602 foreach( $childrenOutput as $childOutput )
603 {
604 $tagText .= $childOutput[1];
605 }
606 $tagText = $this->renderTag( $element, $tagText, $vars );
607 return array( false, $tagText );
608 }
609
610 function callTagInitHandler( $handlerName, $element, &$attributes, &$siblingParams, &$parentParams )
611 {
612 $result = array();
613 $thisOutputTag = $this->OutputTags[$element->nodeName];
614 if ( isset( $thisOutputTag[$handlerName] ) )
615 {
616 if ( is_callable( array( $this, $thisOutputTag[$handlerName] ) ) )
617 {
618 $result = call_user_func_array( array( $this, $thisOutputTag[$handlerName] ),
619 array( $element, &$attributes, &$siblingParams, &$parentParams ) );
620 }
621 }
622 return $result;
623 }
624
625 function callTagRenderHandler( $handlerName, $element, $childrenOutput, $vars )
626 {
627 $result = array();
628 $thisOutputTag = $this->OutputTags[$element->nodeName];
629 if ( isset( $thisOutputTag[$handlerName] ) )
630 {
631 $handlerFunction = $thisOutputTag[$handlerName];
632 }
633 else
634 {
635 $handlerFunction = 'renderAll';
636 }
637
638 if ( is_callable( array( $this, $handlerFunction ) ) )
639 {
640 $result = call_user_func_array( array( $this, $handlerFunction ),
641 array( $element, $childrenOutput, $vars ) );
642 }
643 else
644 {
645 eZDebug::writeWarning( "'$handlerName' render handler for tag <$element->nodeName> doesn't exist: '" . $thisOutputTag[$handlerName] . "'.", 'eZXML converter' );
646 }
647 return $result;
648 }
649
650 // This array should be overriden in derived class with the set of rules
651 // for outputting tags.
652 public $OutputTags = array();
653
654 // Path to tags' templates
655 public $TemplatesPath = 'design:content/datatype/view/ezxmltags/';
656
658 public $XMLData;
659 public $Document;
660
661 public $XMLSchema;
662
663 public $AliasedType;
664 public $AliasedHandler;
665
666 public $Output = '';
667 public $Tpl;
668 public $TemplateURI = '';
669 public $Res;
670
671 public $AllowMultipleSpaces = false;
672 public $AllowNumericEntities = false;
673
674 public $ContentObjectAttribute;
675 public $ObjectAttributeID;
676
678 public $LinkArray = array();
680 public $ObjectArray = array();
682 public $NodeArray = array();
683
684 public $NestingLevel = 0;
685 }
686
687 ?>
eZContentObjectAttribute
Encapsulates the data for an object attribute.
Definition: ezcontentobjectattribute.php:20
eZContentObjectTreeNode\fetch
static fetch( $nodeID=false, $lang=false, $asObject=true, $conditions=false)
Definition: ezcontentobjecttreenode.php:3058
eZContentObject\fetchIDArray
static fetchIDArray( $idArray, $asObject=true, $lang=false)
Definition: ezcontentobject.php:1132
eZDB\instance
static instance( $databaseImplementation=false, $databaseParameters=false, $forceNewInstance=false)
Definition: ezdb.php:117
eZDebug\writeError
static writeError( $string, $label="", $backgroundClass="")
Definition: ezdebug.php:545
eZDebug\writeWarning
static writeWarning( $string, $label="", $backgroundClass="")
Definition: ezdebug.php:502
eZTemplateDesignResource\instance
static instance()
Definition: eztemplatedesignresource.php:1026
eZTemplateIncludeFunction\handleInclude
static handleInclude(&$textElements, &$uri, $tpl, $rootNamespace, $name)
Definition: eztemplateincludefunction.php:203
eZTemplate\factory
static factory()
Definition: eztemplate.php:2380
eZXMLOutputHandler
The class eZXMLOutputHandler does.
Definition: ezxmloutputhandler.php:20
eZXMLOutputHandler\outputTag
outputTag( $element, &$siblingParams, $parentParams=array())
Definition: ezxmloutputhandler.php:315
eZXMLOutputHandler\hasAttribute
hasAttribute( $name)
Definition: ezxmloutputhandler.php:68
eZXMLOutputHandler\$Res
$Res
Definition: ezxmloutputhandler.php:669
eZXMLOutputHandler\renderTag
renderTag( $element, $content, $vars)
Definition: ezxmloutputhandler.php:550
eZXMLOutputHandler\$ContentObjectAttribute
$ContentObjectAttribute
Definition: ezxmloutputhandler.php:674
eZXMLOutputHandler\$Output
$Output
Definition: ezxmloutputhandler.php:666
eZXMLOutputHandler\$NodeArray
$NodeArray
Contains the Nodes hashed by ID.
Definition: ezxmloutputhandler.php:682
eZXMLOutputHandler\$TemplateUri
$TemplateUri
Definition: ezxmloutputhandler.php:21
eZXMLOutputHandler\prefetch
prefetch()
Definition: ezxmloutputhandler.php:208
eZXMLOutputHandler\$LinkArray
$LinkArray
Contains the URL's for <link> tags hashed by ID.
Definition: ezxmloutputhandler.php:678
eZXMLOutputHandler\$Document
$Document
Definition: ezxmloutputhandler.php:659
eZXMLOutputHandler\$ObjectArray
$ObjectArray
Contains the Objects hashed by ID.
Definition: ezxmloutputhandler.php:680
eZXMLOutputHandler\$OutputTags
$OutputTags
Definition: ezxmloutputhandler.php:652
eZXMLOutputHandler\isValid
isValid()
Definition: ezxmloutputhandler.php:131
eZXMLOutputHandler\$TemplateURI
$TemplateURI
Definition: ezxmloutputhandler.php:668
eZXMLOutputHandler\$XMLData
$XMLData
Contains the XML data as text.
Definition: ezxmloutputhandler.php:658
eZXMLOutputHandler\$Tpl
$Tpl
Definition: ezxmloutputhandler.php:667
eZXMLOutputHandler\getAttributeValueArray
getAttributeValueArray( $tagName, $attributeName)
Definition: ezxmloutputhandler.php:291
eZXMLOutputHandler\$TemplatesPath
$TemplatesPath
Definition: ezxmloutputhandler.php:655
eZXMLOutputHandler\$ObjectAttributeID
$ObjectAttributeID
Definition: ezxmloutputhandler.php:675
eZXMLOutputHandler\outputText
& outputText()
Definition: ezxmloutputhandler.php:158
eZXMLOutputHandler\xmlData
xmlData()
Definition: ezxmloutputhandler.php:149
eZXMLOutputHandler\callTagInitHandler
callTagInitHandler( $handlerName, $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxmloutputhandler.php:610
eZXMLOutputHandler\attributes
attributes()
Definition: ezxmloutputhandler.php:57
eZXMLOutputHandler\callTagRenderHandler
callTagRenderHandler( $handlerName, $element, $childrenOutput, $vars)
Definition: ezxmloutputhandler.php:625
eZXMLOutputHandler\$XMLSchema
$XMLSchema
Definition: ezxmloutputhandler.php:661
eZXMLOutputHandler\viewTemplateName
& viewTemplateName()
Definition: ezxmloutputhandler.php:114
eZXMLOutputHandler\$AliasedHandler
$AliasedHandler
Definition: ezxmloutputhandler.php:664
eZXMLOutputHandler\__construct
__construct( $xmlData, $aliasedType, $contentObjectAttribute=null)
Definition: ezxmloutputhandler.php:29
eZXMLOutputHandler\$AllowMultipleSpaces
$AllowMultipleSpaces
Definition: ezxmloutputhandler.php:671
eZXMLOutputHandler\renderAll
renderAll( $element, $childrenOutput, $vars)
Definition: ezxmloutputhandler.php:599
eZXMLOutputHandler\viewTemplateSuffix
viewTemplateSuffix(&$contentobjectAttribute)
Definition: ezxmloutputhandler.php:140
eZXMLOutputHandler\$AliasedType
$AliasedType
Definition: ezxmloutputhandler.php:663
eZXMLOutputHandler\$NestingLevel
$NestingLevel
Definition: ezxmloutputhandler.php:684
eZXMLOutputHandler\attribute
attribute( $name)
Definition: ezxmloutputhandler.php:76
eZXMLOutputHandler\$AllowNumericEntities
$AllowNumericEntities
Definition: ezxmloutputhandler.php:672
eZXMLSchema\instance
static instance()
Definition: ezxmlschema.php:223
eZXMLText\inputHandler
static inputHandler(&$xmlData, $type=false, $useAlias=true, $contentObjectAttribute=false)
Definition: ezxmltext.php:116
Copyright © 1998 – 2026 7x. All rights reserved. Licensed under the GNU GPLv2+.