57 public static function getFieldData($field, $value = null, $filter =
true)
60 $formField = explode(
'.', $field, 2);
63 if(isset($formField[1])) {
65 $id =
"{$formField[0]}_{$formField[1]}";
67 $name =
"{$formField[0]}[{$formField[1]}]";
70 if(isset($_POST[$formField[0]][$formField[1]])) {
71 $value = $_POST[$formField[0]][$formField[1]];
72 } elseif($value === null) {
75 if(is_array($form) && isset($form[$formField[1]])) {
76 $value = $form[$formField[1]];
77 } elseif(is_object($form) && isset($form->$formField[1])) {
78 $value = $form->{$formField[1]};
86 if(isset($_POST[$field])) {
87 $value = $_POST[$field];
88 } elseif($value === null) {
95 if ($value !== null && $filter) {
96 $value = htmlspecialchars($value, ENT_COMPAT, APP_CHARSET);
100 return array($id, $name, $value);
117 $formField = explode(
'.', $field, 2);
120 if(isset($formField[1])) {
122 $id =
"{$formField[0]}_{$formField[1]}";
124 $name =
"{$formField[0]}[{$formField[1]}]";
127 if(isset($_POST[$formField[0]][$formField[1]])) {
128 $checked = $_POST[$formField[0]][$formField[1]] == $checkValue;
129 } elseif($checked === null) {
132 if(is_array($form)) {
133 $checked = isset($form[$formField[1]]) && $form[$formField[1]] == $checkValue;
134 } elseif(is_object($form)) {
135 $checked = isset($form->$formField[1]) && $form->$formField[1] == $checkValue;
140 $id = $name = $field;
143 if(isset($_POST[$field])) {
144 $checked = $_POST[$field] == $checkValue;
145 } elseif($checked === null) {
152 return array($id, $name, $checked);
165 $formField = explode(
'.', $field, 2);
170 if(isset($formField[1])) {
172 if(isset($_POST[$formField[0]][$formField[1]])) {
173 $value = $_POST[$formField[0]][$formField[1]];
177 if(is_array($form) && isset($form[$formField[1]])) {
178 $value = $form[$formField[1]];
179 } elseif(is_object($form) && isset($form->$formField[1])) {
180 $value = $form->{$formField[1]};
185 if(isset($_POST[$field])) {
186 $value = $_POST[$field];
194 if ($value !== null && $filter) {
195 return htmlspecialchars($value, ENT_COMPAT, APP_CHARSET);
211 public static function input($type, $field,$attrs = NULL, $value=NULL)
214 if (is_array($attrs)) {
218 list($id, $name, $value) = self::getFieldData($field, $value);
219 return "<input id=\"$id\" name=\"$name\" type=\"$type\" value=\"$value\" $attrs/>";
230 public static function open($action = NULL, $method =
'post', $attrs = NULL)
232 if (is_array($attrs)) {
236 $action = PUBLIC_PATH . $action;
238 $action = PUBLIC_PATH . ltrim(
Router::get(
'route'),
'/');
240 return "<form action=\"$action\" method=\"$method\" $attrs>";
252 self::$_multipart = TRUE;
253 if (is_array($attrs)) {
257 $action = PUBLIC_PATH . $action;
259 $action = PUBLIC_PATH . ltrim(
Router::get(
'route'),
'/');
261 return "<form action=\"$action\" method=\"post\" enctype=\"multipart/form-data\" $attrs>";
271 self::$_multipart = FALSE;
282 public static function submit($text, $attrs = NULL)
284 if (is_array($attrs)) {
287 return "<input type=\"submit\" value=\"$text\" $attrs />";
297 public static function reset($text, $attrs = NULL)
299 if (is_array($attrs)) {
302 return "<input type=\"reset\" value=\"$text\" $attrs />";
312 public static function button($text, $attrs = NULL)
314 if (is_array($attrs)) {
317 return "<input type=\"button\" value=\"$text\" $attrs />";
328 public static function label($text, $field, $attrs = NULL)
330 if (is_array($attrs)) {
333 return "<label for=\"$field\" $attrs>$text</label>";
344 public static function text($field, $attrs = NULL, $value = NULL)
346 return self::input(
'text', $field, $attrs, $value);
358 public static function select($field, $data, $attrs = NULL, $value = NULL)
360 if (is_array($attrs)) {
365 list($id, $name, $value) = self::getFieldData($field, $value);
368 foreach ($data as $k => $v) {
369 $k = htmlspecialchars($k, ENT_COMPAT, APP_CHARSET);
370 $options .=
"<option value=\"$k\"";
372 if (is_array($value)) {
373 if (in_array($k, $value)) {
374 $options .=
' selected="selected"';
378 $options .=
' selected="selected"';
381 $options .=
'>' . htmlspecialchars($v, ENT_COMPAT, APP_CHARSET) .
'</option>';
384 return "<select id=\"$id\" name=\"$name\" $attrs>$options</select>";
396 public static function check($field, $checkValue, $attrs = NULL, $checked = NULL)
398 if (is_array($attrs)) {
403 list($id, $name, $checked) = self::getFieldDataCheck($field, $checkValue, $checked);
406 $checked =
'checked="checked"';
409 return "<input id=\"$id\" name=\"$name\" type=\"checkbox\" value=\"$checkValue\" $attrs $checked/>";
421 public static function radio($field, $radioValue, $attrs = NULL, $checked = NULL)
423 if (is_array($attrs)) {
428 list($id, $name, $checked) = self::getFieldDataCheck($field, $radioValue, $checked);
431 $checked =
'checked="checked"';
435 if (isset(self::$_radios[$field])) {
436 self::$_radios[$field]++;
438 self::$_radios[$field] = 0;
440 $id .= self::$_radios[$field];
442 return "<input id=\"$id\" name=\"$name\" type=\"radio\" value=\"$radioValue\" $attrs $checked/>";
454 if (is_array($attrs)) {
457 return "<input type=\"image\" src=\"" . PUBLIC_PATH .
"img/$img\" $attrs/>";
468 public static function hidden($field, $attrs = NULL, $value = NULL)
470 return self::input(
'hidden', $field, $attrs, $value);
480 public static function pass($field, $attrs = NULL, $value = NULL)
482 return self::input(
'password',$field, $attrs, $value);
496 public static function dbSelect($field, $show = NULL, $data = NULL, $blank =
'Seleccione', $attrs = NULL, $value = NULL)
498 if (is_array($attrs)) {
503 list($id, $name, $value) = self::getFieldData($field, $value);
506 if ($blank != NULL) {
507 $options =
'<option value="">' . htmlspecialchars($blank, ENT_COMPAT, APP_CHARSET) .
'</option>';
513 if ($data === NULL) {
514 $model_asoc = explode(
'.', $field, 2);
515 $model_asoc = substr(end($model_asoc), 0, -3);
517 $pk = $model_asoc->primary_key[0];
521 $show = $model_asoc->non_primary[0];
524 $data = $model_asoc->find(
"columns: $pk,$show",
"order: $show asc");
527 $pk = $model_asoc->primary_key[0];
530 if (isset($data[2])) {
531 $data = $model_asoc->$data[1]($data[2]);
533 $data = $model_asoc->$data[1]();
537 foreach ($data as $p) {
538 $options .=
"<option value=\"{$p->$pk}\"";
540 if (is_array($value)) {
541 if (in_array($p->$pk, $value)) {
542 $options .=
' selected="selected"';
545 if ($p->$pk == $value) {
546 $options .=
' selected="selected"';
549 $options .=
'>' . htmlspecialchars($p->$show, ENT_COMPAT, APP_CHARSET) .
'</option>';
552 return "<select id=\"$id\" name=\"$name\" $attrs>$options</select>" . PHP_EOL;
562 public static function file($field, $attrs = NULL)
565 if (!self::$_multipart) {
566 Flash::error(
'Para poder subir ficheros, debe abrir el form con Form::openMultipart()');
569 if (is_array($attrs)) {
574 list($id, $name, $value) = self::getFieldData($field, FALSE);
575 return "<input id=\"$id\" name=\"$name\" type=\"file\" $attrs/>";
586 public static function textarea($field, $attrs = NULL, $value = NULL)
588 if (is_array($attrs)) {
593 list($id, $name, $value) = self::getFieldData($field, $value);
595 return "<textarea id=\"$id\" name=\"$name\" $attrs>$value</textarea>";
606 public static function date($field, $attrs = NULL, $value = NULL)
608 return self::input(
'date',$field, $attrs, $value);
620 public static function datepicker($field, $class = NULL, $attrs = NULL, $value = NULL)
622 if (is_array($attrs)) {
627 list($id, $name, $value) = self::getFieldData($field, $value);
628 return "<input id=\"$id\" name=\"$name\" class=\"js-datepicker $class\" type=\"text\" value=\"$value\" $attrs/>";
640 public static function time($field, $attrs = NULL, $value = NULL)
642 return self::input(
'time',$field, $attrs, $value);
653 public static function datetime($field, $attrs = NULL, $value = NULL)
655 return self::input(
'datetime',$field, $attrs, $value);
666 public static function number($field, $attrs = NULL, $value = NULL)
668 return self::input(
'number',$field, $attrs, $value);
680 public static function url($field, $attrs = NULL, $value = NULL)
682 return self::input(
'url',$field, $attrs, $value);
693 public static function email($field, $attrs = NULL, $value = NULL)
695 return self::input(
'email',$field, $attrs, $value);