XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
formelementtray.php
1<?php
13
14if (!defined('XOOPS_ROOT_PATH')) {
15 exit();
16}
17
18class XoopsFormElementTray extends XoopsFormElement
19{
20
26 public $_elements = [];
27
32 public $_required = [];
33
39 public $_delimeter;
40
48 public function __construct($caption, $delimeter= '&nbsp;', $name= '')
49 {
50 $this->setName($name);
51 $this->setCaption($caption);
52 $this->_delimeter = $delimeter;
53 }
54 public function XoopsFormElementTray($caption, $delimeter= '&nbsp;', $name= '')
55 {
56 return $this->__construct($caption, $delimeter, $name);
57 }
58
64 public function isContainer()
65 {
66 return true;
67 }
68
75 public function addElement(&$formElement, $required=false)
76 {
77 $this->_elements[] =& $formElement;
78 if ($required) {
79 if (!$formElement->isContainer()) {
80 $this->_required[] =& $formElement;
81 } else {
82 $required_elements =& $formElement->getElements(true);
83 foreach ($required_elements as $i => $iValue) {
84 $this->_required[] =& $required_elements[$i];
85 }
86 }
87 }
88 }
89
95 public function &getRequired()
96 {
97 return $this->_required;
98 }
99
106 public function &getElements($recurse = false)
107 {
108 if (!$recurse) {
109 return $this->_elements;
110 }
111
112 $ret = [];
113 foreach ($this->_elements as $i => $iValue) {
114 if (!$iValue->isContainer()) {
115 $ret[] =& $this->_elements[$i];
116 } else {
117 $elements =& $iValue->getElements(true);
118 foreach ($elements as $j => $jValue) {
119 $ret[] =& $elements[$j];
120 }
121 unset($elements);
122 }
123 }
124 return $ret;
125 }
126
132 public function getDelimeter()
133 {
134 return $this->_delimeter;
135 }
136
142 public function render()
143 {
144 $root =& XCube_Root::getSingleton();
145 $renderSystem =& $root->getRenderSystem(XOOPSFORM_DEPENDENCE_RENDER_SYSTEM);
146
147 $renderTarget =& $renderSystem->createRenderTarget('main');
148
149 $renderTarget->setAttribute('legacy_module', 'legacy');
150 $renderTarget->setTemplateName('legacy_xoopsform_elementtray.html');
151 $renderTarget->setAttribute('tray', $this);
152
153 $renderSystem->render($renderTarget);
154
155 return $renderTarget->getResult();
156 }
157}
setCaption($caption)
& getElements($recurse=false)
__construct($caption, $delimeter='&nbsp;', $name='')
addElement(&$formElement, $required=false)