135 if (is_string($formElement)) {
136 $this->_elements[] = $formElement;
137 } elseif ($formElement instanceof \xoopsformelement) {
138 $this->_elements[] =& $formElement;
140 if (!$formElement->isContainer()) {
141 $this->_required[] =& $formElement;
143 $required_elements =& $formElement->getRequired();
144 $count = count($required_elements);
145 for ($i = 0 ; $i < $count; $i++) {
146 $this->_required[] =& $required_elements[$i];
162 return $this->_elements;
165 $count = count($this->_elements);
166 for ($i = 0; $i < $count; $i++) {
167 if (!is_object($this->_elements[$i])) {
168 $ret[] = $this->_elements[$i];
170 if (!$this->_elements[$i]->isContainer()) {
171 $ret[] =& $this->_elements[$i];
173 $elements =& $this->_elements[$i]->getElements(
true);
174 $count2 = count($elements);
175 for ($j = 0; $j < $count2; $j++) {
176 $ret[] =& $elements[$j];
241 if (is_array($values) && !empty($values)) {
244 $count = count($elements);
245 for ($i = 0; $i < $count; $i++) {
246 $name = $elements[$i]->getName();
247 if ($name && isset($values[$name]) && method_exists($elements[$i],
'setValue')) {
248 $elements[$i]->setValue($values[$name]);
280 $count = count($elements);
282 for ($i = 0; $i < $count; $i++) {
283 $name = $elements[$i]->getName();
284 if ($name && method_exists($elements[$i],
'getValue')) {
285 $values[$name] =& $elements[$i]->getValue();
375 $root =& XCube_Root::getSingleton();
376 $renderSystem =& $root->getRenderSystem(XOOPSFORM_DEPENDENCE_RENDER_SYSTEM);
378 $renderTarget =& $renderSystem->createRenderTarget();
380 $renderTarget->setAttribute(
'legacy_module',
'legacy');
381 $renderTarget->setTemplateName(
'legacy_xoopsform_opt_validationjs.html');
382 $renderTarget->setAttribute(
'form', $this);
383 $renderTarget->setAttribute(
'withtags', $withtags);
386 $reqcount = count($required);
388 $renderTarget->setAttribute(
'required', $required);
389 $renderTarget->setAttribute(
'required_count', $reqcount);
391 $renderSystem->render($renderTarget);
393 return $renderTarget->getResult();
398 $js .=
"\n<!-- Start Form Validation JavaScript //-->\n<script type='text/javascript'>\n<!--//\n";
403 $reqcount = count($required);
404 $js .=
"function xoopsFormValidate_{$formname}() {
405 myform = window.document.$formname;\n";
406 for ($i = 0; $i < $reqcount; $i++) {
407 $eltname = $required[$i]->getName();
408 $eltcaption = trim($required[$i]->getCaption());
409 $eltmsg = empty($eltcaption) ? sprintf(_FORM_ENTER, $eltname) : sprintf(_FORM_ENTER, $eltcaption);
410 $eltmsg = str_replace(
'"',
'\"', stripslashes($eltmsg));
411 $js .=
"if ( myform.{$eltname}.value == \"\" ) "
412 .
"{ window.alert(\"{$eltmsg}\"); myform.{$eltname}.focus(); return false; }\n";
414 $js .=
"return true;\n}\n";
416 $js .=
"//--></script>\n<!-- End Form Validation JavaScript //-->\n";