Exponential 6.0.13 Exponential Enterprise Open Source CMS - PHP Class Reference

ezxhtmlxmloutput.php
Go to the documentation of this file.
1 <?php
11 class eZXHTMLXMLOutput extends eZXMLOutputHandler
12 {
13
14 public $OutputTags = array(
15
16 'section' => array( 'quickRender' => true,
17 'initHandler' => 'initHandlerSection',
18 'renderHandler' => 'renderChildrenOnly' ),
19
20 'embed' => array( 'initHandler' => 'initHandlerEmbed',
21 'renderHandler' => 'renderAll',
22 'attrNamesTemplate' => array( 'class' => 'classification',
23 'xhtml:id' => 'id',
24 'object_id' => false,
25 'node_id' => false,
26 'show_path' => false ),
27 'attrDesignKeys' => array( 'class' => 'classification' ) ),
28
29 'embed-inline' => array( 'initHandler' => 'initHandlerEmbed',
30 'renderHandler' => 'renderInline',
31 'attrNamesTemplate' => array( 'class' => 'classification',
32 'xhtml:id' => 'id',
33 'object_id' => false,
34 'node_id' => false,
35 'show_path' => false ),
36 'attrDesignKeys' => array( 'class' => 'classification' ) ),
37
38 'table' => array( 'initHandler' => 'initHandlerTable',
39 'leavingHandler' => 'leavingHandlerTable',
40 'renderHandler' => 'renderAll',
41 'contentVarName' => 'rows',
42 'attrNamesTemplate' => array( 'class' => 'classification',
43 'width' => 'width' ),
44 'attrDesignKeys' => array( 'class' => 'classification' ) ),
45
46 'tr' => array( //'quickRender' => array( 'tr', "\n" ),
47 'initHandler' => 'initHandlerTr',
48 'renderHandler' => 'renderAll',
49 'attrNamesTemplate' => array( 'class' => 'classification' ),
50 'attrDesignKeys' => array( 'class' => 'classification' ) ),
51
52 'td' => array( 'initHandler' => 'initHandlerTd',
53 'renderHandler' => 'renderAll',
54 'attrNamesTemplate' => array( 'xhtml:width' => 'width',
55 'xhtml:colspan' => 'colspan',
56 'xhtml:rowspan' => 'rowspan',
57 'class' => 'classification' ),
58 'attrDesignKeys' => array( 'class' => 'classification' ) ),
59
60 'th' => array( 'initHandler' => 'initHandlerTd',
61 'renderHandler' => 'renderAll',
62 'attrNamesTemplate' => array( 'xhtml:width' => 'width',
63 'xhtml:colspan' => 'colspan',
64 'xhtml:rowspan' => 'rowspan',
65 'class' => 'classification' ),
66 'attrDesignKeys' => array( 'class' => 'classification' ) ),
67
68 'ol' => array( 'renderHandler' => 'renderAll',
69 'attrNamesTemplate' => array( 'class' => 'classification' ),
70 'attrDesignKeys' => array( 'class' => 'classification' ) ),
71
72 'ul' => array( 'renderHandler' => 'renderAll',
73 'attrNamesTemplate' => array( 'class' => 'classification' ),
74 'attrDesignKeys' => array( 'class' => 'classification' ) ),
75
76 'li' => array( 'renderHandler' => 'renderAll',
77 'attrNamesTemplate' => array( 'class' => 'classification' ),
78 'attrDesignKeys' => array( 'class' => 'classification' ) ),
79
80 'header' => array( 'initHandler' => 'initHandlerHeader',
81 'renderHandler' => 'renderAll',
82 'attrNamesTemplate' => array( 'class' => 'classification' ),
83 'attrDesignKeys' => array( 'class' => 'classification' ) ),
84
85 'paragraph' => array( //'quickRender' => array( 'p', "\n" ),
86 'renderHandler' => 'renderParagraph',
87 'attrNamesTemplate' => array( 'class' => 'classification' ),
88 'attrDesignKeys' => array( 'class' => 'classification' ) ),
89
90 'line' => array( //'quickRender' => array( '', "<br/>" ),
91 'renderHandler' => 'renderLine' ),
92
93 'literal' => array( 'renderHandler' => 'renderAll',
94 'attrNamesTemplate' => array( 'class' => 'classification' ),
95 'attrDesignKeys' => array( 'class' => 'classification' ) ),
96
97 'strong' => array( 'renderHandler' => 'renderInline',
98 'attrNamesTemplate' => array( 'class' => 'classification' ),
99 'attrDesignKeys' => array( 'class' => 'classification' ) ),
100
101 'emphasize' => array( 'renderHandler' => 'renderInline',
102 'attrNamesTemplate' => array( 'class' => 'classification' ),
103 'attrDesignKeys' => array( 'class' => 'classification' ) ),
104
105 'link' => array( 'initHandler' => 'initHandlerLink',
106 'renderHandler' => 'renderInline',
107 'attrNamesTemplate' => array( 'xhtml:id' => 'id',
108 'xhtml:title' => 'title',
109 'url_id' => false,
110 'object_id' => false,
111 'node_id' => false,
112 'show_path' => false,
113 'ezurl_id' => false,
114 'anchor_name' => false,
115 'class' => 'classification' ),
116 'attrDesignKeys' => array( 'class' => 'classification' ) ),
117
118 'anchor' => array( 'renderHandler' => 'renderInline' ),
119
120 'custom' => array( 'initHandler' => 'initHandlerCustom',
121 'renderHandler' => 'renderCustom',
122 'attrNamesTemplate' => array( 'name' => false ) ),
123
124 '#text' => array( 'quickRender' => true,
125 'renderHandler' => 'renderText' )
126 );
127
128 public function __construct( $xmlData, $aliasedType, $contentObjectAttribute = null )
129 {
130 parent::__construct( $xmlData, $aliasedType, $contentObjectAttribute );
131
132 $ini = eZINI::instance('ezxml.ini');
133 if ( $ini->variable( 'ezxhtml', 'RenderParagraphInTableCells' ) == 'disabled' )
134 $this->RenderParagraphInTableCells = false;
135 }
136
137 function initHandlerSection( $element, &$attributes, &$siblingParams, &$parentParams )
138 {
139 $ret = array();
140 if( !isset( $parentParams['section_level'] ) )
141 $parentParams['section_level'] = 0;
142 else
143 $parentParams['section_level']++;
144
145 // init header counter for current level and for the next level if needed
146 $level = $parentParams['section_level'];
147 if ( $level != 0 )
148 {
149 if ( !isset( $this->HeaderCount[$level] ) )
150 $this->HeaderCount[$level] = 0;
151
152 if ( !isset( $this->HeaderCount[$level + 1] ) )
153 $this->HeaderCount[$level + 1] = 0;
154 }
155
156 return $ret;
157 }
158
159 function initHandlerHeader( $element, &$attributes, &$siblingParams, &$parentParams )
160 {
161 $level = $parentParams['section_level'];
162 $this->HeaderCount[$level]++;
163
164 // headers auto-numbering
165 $i = 1;
166 $headerAutoName = '';
167 while ( $i <= $level )
168 {
169 if ( $i > 1 )
170 $headerAutoName .= "_";
171
172 $headerAutoName .= $this->HeaderCount[$i];
173 $i++;
174 }
175 $levelNumber = str_replace( "_", ".", $headerAutoName );
176
177 if ( $this->ObjectAttributeID )
178 $headerAutoName = $this->ObjectAttributeID . '_' . $headerAutoName;
179
180 $ret = array( 'tpl_vars' => array( 'level' => $level,
181 'header_number' => $levelNumber,
182 'toc_anchor_name' => $headerAutoName ) );
183
184 return $ret;
185 }
186
187 function initHandlerLink( $element, &$attributes, &$siblingParams, &$parentParams )
188 {
189 $ret = array();
190 $ezxmlIni = eZINI::instance('ezxml.ini');
191
192 // Set link parameters for rendering children of link tag
193 $href='';
194 if ( $element->getAttribute( 'url_id' ) != null )
195 {
196 $linkID = $element->getAttribute( 'url_id' );
197 if ( isset( $this->LinkArray[$linkID] ) )
198 $href = $this->LinkArray[$linkID];
199 }
200 elseif ( $element->getAttribute( 'node_id' ) != null )
201 {
202 $nodeID = (int) $element->getAttribute( 'node_id' );
203 $node = isset( $this->NodeArray[$nodeID] ) ? $this->NodeArray[$nodeID] : null;
204
205 if ( $node != null )
206 {
207 $view = $element->getAttribute( 'view' );
208 if ( $view )
209 $href = 'content/view/' . $view . '/' . $nodeID;
210 else if ( !$node->object()->canRead() &&
211 $ezxmlIni->variable( 'ezxhtml', 'ShowURLAliasForProtectedLinks' ) !== 'enabled' )
212 {
213 eZDebug::writeWarning( "Current user does not have read access to the object of node #$nodeID",
214 'XML output handler: link' );
215 $href = 'content/view/full/' . $nodeID;
216 }
217 else
218 $href = $node->attribute( 'url_alias' );
219 }
220 else
221 {
222 eZDebug::writeWarning( "Node #$nodeID doesn't exist", "XML output handler: link" );
223 }
224 }
225 elseif ( $element->getAttribute( 'object_id' ) != null )
226 {
227 $objectID = $element->getAttribute( 'object_id' );
228 if ( isset( $this->ObjectArray["$objectID"] ) )
229 {
230 $object = $this->ObjectArray["$objectID"];
231 $node = $object->attribute( 'main_node' );
232 if ( $node )
233 {
234 $nodeID = $node->attribute( 'node_id' );
235
236 $view = $element->getAttribute( 'view' );
237 if ( $view )
238 $href = 'content/view/' . $view . '/' . $nodeID;
239 else if ( !$object->canRead() &&
240 $ezxmlIni->variable( 'ezxhtml', 'ShowURLAliasForProtectedLinks' ) !== 'enabled' )
241 {
242 eZDebug::writeWarning( "Current user does not have read access to the object #$objectID",
243 'XML output handler: link' );
244 $href = 'content/view/full/' . $nodeID;
245 }
246 else
247 $href = $node->attribute( 'url_alias' );
248 }
249 else
250 {
251 eZDebug::writeWarning( "Object #$objectID doesn't have assigned nodes", "XML output handler: link" );
252 }
253 }
254 else
255 {
256 eZDebug::writeWarning( "Object #$objectID doesn't exist", "XML output handler: link" );
257 }
258 }
259 elseif ( $element->getAttribute( 'href' ) != null )
260 {
261 $href = $element->getAttribute( 'href' );
262 }
263
264 if ( $element->getAttribute( 'anchor_name' ) != null )
265 {
266 $href .= '#' . $element->getAttribute( 'anchor_name' );
267 }
268
269 if ( $href !== false )
270 {
271 $attributes['href'] = $href;
272 $parentParams['link_parameters'] = $attributes;
273 }
274
275 return $ret;
276 }
277
278 function initHandlerEmbed( $element, &$attributes, &$siblingParams, &$parentParams )
279 {
280 // default return value in case of errors
281 $ret = array( 'no_render' => true );
282
283 $tplSuffix = '';
284 $objectID = $element->getAttribute( 'object_id' );
285 if ( $objectID &&
286 !empty( $this->ObjectArray["$objectID"] ) )
287 {
288 $object = $this->ObjectArray["$objectID"];
289 }
290 else
291 {
292 $nodeID = (int) $element->getAttribute( 'node_id' );
293 if ( $nodeID )
294 {
295 if ( isset( $this->NodeArray[$nodeID] ) )
296 {
297 $node = $this->NodeArray[$nodeID];
298 $objectID = $node->attribute( 'contentobject_id' );
299 $object = $node->object();
300 $tplSuffix = '_node';
301 }
302 else
303 {
304 eZDebug::writeWarning( "Node #$nodeID doesn't exist", "XML output handler: embed" );
305 return $ret;
306 }
307 }
308 }
309
310 if ( !isset( $object ) || !$object || !( $object instanceof eZContentObject ) )
311 {
312 eZDebug::writeWarning( "Can't fetch object #$objectID", "XML output handler: embed" );
313 return $ret;
314 }
315 if ( $object->attribute( 'status' ) != eZContentObject::STATUS_PUBLISHED )
316 {
317 eZDebug::writeWarning( "Object #$objectID is not published", "XML output handler: embed" );
318 return $ret;
319 }
320
321 if ( eZINI::instance()->variable( 'SiteAccessSettings', 'ShowHiddenNodes' ) !== 'true' )
322 {
323 if ( isset( $node ) )
324 {
325 // embed with a node ID
326 if ( $node->attribute( 'is_invisible' ) )
327 {
328 eZDebug::writeNotice( "Node #{$nodeID} is invisible", "XML output handler: embed" );
329 return $ret;
330 }
331 }
332 else
333 {
334 // embed with an object id
335 // checking if at least a location is visible
336 $oneVisible = false;
337 foreach( $object->attribute( 'assigned_nodes' ) as $assignedNode )
338 {
339 if ( !$assignedNode->attribute( 'is_invisible' ) )
340 {
341 $oneVisible = true;
342 break;
343 }
344 }
345 if ( !$oneVisible )
346 {
347 eZDebug::writeNotice( "None of the object #{$objectID}'s location(s) is visible", "XML output handler: embed" );
348 return $ret;
349 }
350 }
351 }
352
353 if ( $object->attribute( 'can_read' ) ||
354 $object->attribute( 'can_view_embed' ) )
355 {
356 $templateName = $element->nodeName . $tplSuffix;
357 }
358 else
359 {
360 $templateName = $element->nodeName . '_denied';
361 }
362
363 $objectParameters = array();
364 $excludeAttrs = array( 'view', 'class', 'node_id', 'object_id' );
365
366 foreach ( $attributes as $attrName => $value )
367 {
368 if ( !in_array( $attrName, $excludeAttrs ) )
369 {
370 if ( strpos( $attrName, ':' ) !== false )
371 $attrName = substr( $attrName, strpos( $attrName, ':' ) + 1 );
372
373 $objectParameters[$attrName] = $value;
374 unset( $attributes[$attrName] );
375 }
376 }
377
378 if ( isset( $parentParams['link_parameters'] ) )
379 $linkParameters = $parentParams['link_parameters'];
380 else
381 $linkParameters = array();
382
383 $ret = array( 'template_name' => $templateName,
384 'tpl_vars' => array( 'object' => $object,
385 'link_parameters' => $linkParameters,
386 'object_parameters' => $objectParameters ),
387 'design_keys' => array( 'class_identifier' => $object->attribute( 'class_identifier' ) ) );
388
389 if ( $tplSuffix == '_node')
390 $ret['tpl_vars']['node'] = $node;
391
392 return $ret;
393 }
394
395 function initHandlerTable( $element, &$attributes, &$siblingParams, &$parentParams )
396 {
397 // Backing up the section_level, headings' level should be restarted inside tables.
398 // @see http://issues.ez.no/11536
399 $this->SectionLevelStack[] = $parentParams['section_level'];
400 $parentParams['section_level'] = 0;
401
402 // Numbers of rows and cols are lower by 1 for back-compatibility.
403 $rowCount = self::childTagCount( $element ) -1;
404 $lastRow = $element->lastChild;
405
406 while ( $lastRow && !( $lastRow instanceof DOMElement && $lastRow->nodeName == 'tr' ) )
407 {
408 $lastRow = $lastRow->previousSibling;
409 }
410
411 $colCount = self::childTagCount( $lastRow );
412
413 if ( $colCount )
414 $colCount--;
415
416 $ret = array( 'tpl_vars' => array( 'col_count' => $colCount,
417 'row_count' => $rowCount ) );
418 return $ret;
419 }
420
421 function leavingHandlerTable( $element, &$attributes, &$siblingParams, &$parentParams )
422 {
423 // Restoring the section_level as it was before entering the table.
424 // @see http://issues.ez.no/11536
425 $parentParams['section_level'] = array_pop($this->SectionLevelStack);
426 }
427
428 function initHandlerTr( $element, &$attributes, &$siblingParams, &$parentParams )
429 {
430 $ret = array();
431 if( !isset( $siblingParams['table_row_count'] ) )
432 $siblingParams['table_row_count'] = 0;
433 else
434 $siblingParams['table_row_count']++;
435
436 $parentParams['table_row_count'] = $siblingParams['table_row_count'];
437
438 // Number of cols is lower by 1 for back-compatibility.
439 $colCount = self::childTagCount( $element );
440 if ( $colCount )
441 $colCount--;
442
443 $ret = array( 'tpl_vars' => array( 'row_count' => $parentParams['table_row_count'],
444 'col_count' => $colCount ) );
445
446 // Allow overrides based on table class
447 $parent = $element->parentNode;
448 if ( $parent instanceof DOMElement && $parent->hasAttribute('class') )
449 $ret['design_keys'] = array( 'table_classification' => $parent->getAttribute('class') );
450
451 return $ret;
452 }
453
454 function initHandlerTd( $element, &$attributes, &$siblingParams, &$parentParams )
455 {
456 if( !isset( $siblingParams['table_col_count'] ) )
457 $siblingParams['table_col_count'] = 0;
458 else
459 $siblingParams['table_col_count']++;
460
461 $ret = array( 'tpl_vars' => array( 'col_count' => &$siblingParams['table_col_count'],
462 'row_count' => &$parentParams['table_row_count'] ) );
463
464 // Allow overrides based on table class
465 $parent = $element->parentNode->parentNode;
466 if ( $parent instanceof DOMElement && $parent->hasAttribute('class') )
467 $ret['design_keys'] = array( 'table_classification' => $parent->getAttribute('class') );
468
469 if ( !$this->RenderParagraphInTableCells
470 && self::childTagCount( $element ) == 1 )
471 {
472 // paragraph will not be rendered so its align attribute needs to
473 // be taken into account at the td/th level
474 // Looking for the paragraph with align attribute
475 foreach( $element->childNodes as $c )
476 {
477 if ( $c instanceof DOMElement )
478 {
479 if ( $c->hasAttribute( 'align' ) )
480 {
481 $attributes['align'] = $c->getAttribute( 'align' );
482 }
483 break ;
484 }
485 }
486 }
487 return $ret;
488 }
489
490 function initHandlerCustom( $element, &$attributes, &$siblingParams, &$parentParams )
491 {
492 $ret = array( 'template_name' => $attributes['name'] );
493 return $ret;
494 }
495
496 // Render handlers
497
498 function renderParagraph( $element, $childrenOutput, $vars )
499 {
500 // don't render if inside 'li' or inside 'td'/'th' (by option)
501 $parent = $element->parentNode;
502
503
504 if ( ( $parent->nodeName == 'li' && self::childTagCount( $parent ) == 1 ) ||
505 ( in_array( $parent->nodeName, array( 'td', 'th' ) ) && !$this->RenderParagraphInTableCells && self::childTagCount( $parent ) == 1 ) )
506
507 {
508 return $childrenOutput;
509 }
510
511 // Break paragraph by block tags (like table, ol, ul, header and paragraphs)
512 $tagText = '';
513 $lastTagInline = null;
514 $inlineContent = '';
515 foreach( $childrenOutput as $key => $childOutput )
516 {
517 if ( $childOutput[0] === true )// is inline
518 {
519 if( $childOutput[1] === ' ' )
520 {
521 if ( isset( $childrenOutput[$key+1] ) && $childrenOutput[$key+1][0] === false )
522 continue;
523 else if ( isset( $childrenOutput[ $key - 1 ] ) && $childrenOutput[ $key - 1 ][0] === false )
524 continue;
525 }
526
527 $inlineContent .= $childOutput[1];
528 }
529
530 // Only render paragraph if current tag is block and previous was an inline tag
531 // OR if current one is inline and it's the last item in the child list
532 if ( ( $childOutput[0] === false && $lastTagInline === true ) ||
533 ( $childOutput[0] === true && !isset( $childrenOutput[ $key + 1 ] ) ) )
534 {
535 $tagText .= $this->renderTag( $element, $inlineContent, $vars );
536 $inlineContent = '';
537 }
538
539 if ( $childOutput[0] === false )// is block
540 $tagText .= $childOutput[1];
541
542 $lastTagInline = $childOutput[0];
543 }
544 return array( false, $tagText );
545 }
546
547 /* Count child elemnts, ignoring whitespace and text
548 *
549 * @param DOMElement $parent
550 * @return int
551 */
552 protected static function childTagCount( DOMElement $parent )
553 {
554 $count = 0;
555 foreach( $parent->childNodes as $child )
556 {
557 if ( $child instanceof DOMElement ) $count++;
558 }
559 return $count;
560 }
561
562 function renderInline( $element, $childrenOutput, $vars )
563 {
564 $renderedArray = array();
565 $lastTagInline = null;
566 $inlineContent = '';
567
568 foreach( $childrenOutput as $key=>$childOutput )
569 {
570 if ( $childOutput[0] === true )// is inline
571 $inlineContent .= $childOutput[1];
572
573 // Only render tag if current tag is block and previous was an inline tag
574 // OR if current one is inline and it's the last item in the child list
575 if ( ( $childOutput[0] === false && $lastTagInline === true ) ||
576 ( $childOutput[0] === true && !isset( $childrenOutput[ $key + 1 ] ) ) )
577 {
578 $tagText = $this->renderTag( $element, $inlineContent, $vars );
579 $renderedArray[] = array( true, $tagText );
580 $inlineContent = '';
581 }
582
583 if ( $childOutput[0] === false )// is block
584 $renderedArray[] = array( false, $childOutput[1] );
585
586 $lastTagInline = $childOutput[0];
587
588 }
589 return $renderedArray;
590 }
591
592 function renderLine( $element, $childrenOutput, $vars )
593 {
594 $renderedArray = array();
595 $lastTagInline = null;
596 $inlineContent = '';
597
598 foreach( $childrenOutput as $key=>$childOutput )
599 {
600 if ( $childOutput[0] === true )// is inline
601 $inlineContent .= $childOutput[1];
602
603 // Render line tag only if the last part of childrenOutput is inline and the next tag
604 // within the same paragraph is 'line' too.
605
606 if ( $childOutput[0] === false && $lastTagInline === true )
607 {
608 $renderedArray[] = array( true, $inlineContent );
609 $inlineContent = '';
610 }
611 elseif ( $childOutput[0] === true && !isset( $childrenOutput[ $key + 1 ] ) )
612 {
613 $next = $element->nextSibling;
614 // Make sure we get next element that is an element (ignoring whitespace)
615 while ( $next && !$next instanceof DOMElement )
616 {
617 $next = $next->nextSibling;
618 }
619
620 if ( $next && $next->nodeName == 'line' )
621 {
622 $tagText = $this->renderTag( $element, $inlineContent, $vars );
623 $renderedArray[] = array( true, $tagText );
624 }
625 else
626 $renderedArray[] = array( true, $inlineContent );
627 }
628
629 if ( $childOutput[0] === false )// is block
630 $renderedArray[] = array( false, $childOutput[1] );
631
632 $lastTagInline = $childOutput[0];
633 }
634 return $renderedArray;
635 }
636
637 function renderCustom( $element, $childrenOutput, $vars )
638 {
639 if ( $this->XMLSchema->isInline( $element ) )
640 {
641 $ret = $this->renderInline( $element, $childrenOutput, $vars );
642 }
643 else
644 {
645 $ret = $this->renderAll( $element, $childrenOutput, $vars );
646 }
647 return $ret;
648 }
649
650 function renderChildrenOnly( $element, $childrenOutput, $vars )
651 {
652 $tagText = '';
653 foreach( $childrenOutput as $childOutput )
654 {
655 $tagText .= $childOutput[1];
656 }
657
658 return array( false, $tagText );
659 }
660
661 function renderText( $element, $childrenOutput, $vars )
662 {
663 if ( $element->parentNode->nodeName != 'literal' )
664 {
665 if ( trim( $element->textContent ) === ''
666 && ( ( $element->previousSibling && $element->previousSibling->nodeName === 'line' )
667 || ( $element->nextSibling && $element->nextSibling->nodeName === 'line' ) ) )
668 {
669 // spaces before or after a line element are irrelevant
670 return array( true, '' );
671 }
672 $text = htmlspecialchars( $element->textContent );
673 $text = str_replace( array( '&amp;nbsp;', "\xC2\xA0" ), '&nbsp;', $text);
674 // Get rid of linebreak and spaces stored in xml file
675 $text = str_replace( "\n", '', $text );
676
677 if ( $this->AllowMultipleSpaces )
678 $text = str_replace( ' ', ' &nbsp;', $text );
679 else
680 $text = preg_replace( "# +#", " ", $text );
681
682 if ( $this->AllowNumericEntities )
683 $text = preg_replace( '/&amp;#([0-9]+);/', '&#\1;', $text );
684 }
685 else
686 {
687 $text = $element->textContent;
688 }
689
690 return array( true, $text );
691 }
692
693
695 public $LinkParameters = array();
696
697 public $HeaderCount = array();
698
703 protected $SectionLevelStack = array();
704
705 public $RenderParagraphInTableCells = true;
706 }
707
708 ?>
eZContentObject
Definition: ezcontentobject.php:17
eZContentObject\STATUS_PUBLISHED
const STATUS_PUBLISHED
Definition: ezcontentobject.php:20
eZDebug\writeNotice
static writeNotice( $string, $label="", $backgroundClass="")
Definition: ezdebug.php:459
eZDebug\writeWarning
static writeWarning( $string, $label="", $backgroundClass="")
Definition: ezdebug.php:502
eZXHTMLXMLOutput
Definition: ezxhtmlxmloutput.php:12
eZXHTMLXMLOutput\$HeaderCount
$HeaderCount
Definition: ezxhtmlxmloutput.php:697
eZXHTMLXMLOutput\initHandlerSection
initHandlerSection( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:137
eZXHTMLXMLOutput\initHandlerTd
initHandlerTd( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:454
eZXHTMLXMLOutput\initHandlerHeader
initHandlerHeader( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:159
eZXHTMLXMLOutput\$SectionLevelStack
$SectionLevelStack
Definition: ezxhtmlxmloutput.php:703
eZXHTMLXMLOutput\$OutputTags
$OutputTags
Definition: ezxhtmlxmloutput.php:14
eZXHTMLXMLOutput\initHandlerTr
initHandlerTr( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:428
eZXHTMLXMLOutput\initHandlerCustom
initHandlerCustom( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:490
eZXHTMLXMLOutput\renderText
renderText( $element, $childrenOutput, $vars)
Definition: ezxhtmlxmloutput.php:661
eZXHTMLXMLOutput\initHandlerLink
initHandlerLink( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:187
eZXHTMLXMLOutput\initHandlerEmbed
initHandlerEmbed( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:278
eZXHTMLXMLOutput\$RenderParagraphInTableCells
$RenderParagraphInTableCells
Definition: ezxhtmlxmloutput.php:705
eZXHTMLXMLOutput\renderCustom
renderCustom( $element, $childrenOutput, $vars)
Definition: ezxhtmlxmloutput.php:637
eZXHTMLXMLOutput\renderChildrenOnly
renderChildrenOnly( $element, $childrenOutput, $vars)
Definition: ezxhtmlxmloutput.php:650
eZXHTMLXMLOutput\$LinkParameters
$LinkParameters
Array of parameters for rendering tags that are children of 'link' tag.
Definition: ezxhtmlxmloutput.php:695
eZXHTMLXMLOutput\childTagCount
static childTagCount(DOMElement $parent)
Definition: ezxhtmlxmloutput.php:552
eZXHTMLXMLOutput\leavingHandlerTable
leavingHandlerTable( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:421
eZXHTMLXMLOutput\initHandlerTable
initHandlerTable( $element, &$attributes, &$siblingParams, &$parentParams)
Definition: ezxhtmlxmloutput.php:395
eZXHTMLXMLOutput\renderInline
renderInline( $element, $childrenOutput, $vars)
Definition: ezxhtmlxmloutput.php:562
eZXHTMLXMLOutput\renderLine
renderLine( $element, $childrenOutput, $vars)
Definition: ezxhtmlxmloutput.php:592
eZXHTMLXMLOutput\renderParagraph
renderParagraph( $element, $childrenOutput, $vars)
Definition: ezxhtmlxmloutput.php:498
eZXHTMLXMLOutput\__construct
__construct( $xmlData, $aliasedType, $contentObjectAttribute=null)
Definition: ezxhtmlxmloutput.php:128
eZXMLOutputHandler
The class eZXMLOutputHandler does.
Definition: ezxmloutputhandler.php:20
eZXMLOutputHandler\renderTag
renderTag( $element, $content, $vars)
Definition: ezxmloutputhandler.php:550
eZXMLOutputHandler\renderAll
renderAll( $element, $childrenOutput, $vars)
Definition: ezxmloutputhandler.php:599
Copyright © 1998 – 2026 7x. All rights reserved. Licensed under the GNU GPLv2+.