public function personalizeTable($tableName) { try { $formElements = array(); $formElements[] = array(HtmlHelper::createFormParameters('personalize', '?action=generate', 'post')); $formElements[] = array(HtmlHelper::createInput('text', 'name', 'name', $tableName)); $columns = $this->getColumnsFromTable($tableName); foreach ($columns as $column) { $inputId = 'ppk-'; $inputLabel = 'ppk-label-'; $field = null; switch (\core\Config::DATABASE_TYPE) { case 0: if ($column->Key == 'PRI') $inputId .= 'id-'; else $inputId .= 'column-'; $inputId .= $column->Field; $inputLabel .= $column->Field; $field = $column->Field; break; case 1: if ($column->pk == 1) $inputId .= 'id-'; else $inputId .= 'column-'; $inputId .= $column->name; $inputLabel .= $column->name; $field = $column->name; break; } $formElements[] = array( HtmlHelper::createInput('text', $inputId, $inputId, $field), HtmlHelper::createInput('text', $inputLabel, $inputLabel, $field) ); } $formElements[] = array(HtmlHelper::createInput('hidden', 'tableName', 'tableName', $tableName)); $formElements[] = array(HtmlHelper::createInput('submit', 'submit', 'submit', 'Generate')); return $formElements; } catch (\Exception $e) { throw $e; } }
/** * Generate HTML form * @param $className * @param $formAnnotations * @param $operationName * @param $formAction * @param $disabled * @param $submitCallback */ protected function generateHtmlForm($className, $formAnnotations, $operationName, $formAction, $disabled = false, $submitCallback = null, $isJson = false) { $htmlForm = array(); $className = strtolower($className); // FORM_ELEMENTS if ($formAnnotations) { $formElements = array(); foreach ($formAnnotations as $formAnnotation) { $inputId = $className.'-'.$formAnnotation[Annotation::O_REFERS_TO]; $label = ''; $input = ''; if ($formAnnotation[Annotation::VALUES][Annotation::O_TYPE] == HtmlHelper::SELECT) { $fetchList = explode('.', $formAnnotation[Annotation::VALUES][Annotation::O_FETCH_LIST]); $list = ReflectionHelper::getMethodResultFromName($fetchList[0], $fetchList[1]); $optionList = array(); if (count($list) > 1) { $optionList = array(0=>'Selecione'); } foreach ($list as $item) { $key = ReflectionHelper::getMethodResultFromInstance($item, 'get'.ucfirst($formAnnotation[Annotation::VALUES][Annotation::O_ID])); $value = ReflectionHelper::getMethodResultFromInstance($item, 'get'.ucfirst($formAnnotation[Annotation::VALUES][Annotation::O_VALUE])); $optionList[$key] = $value; } if (!$disabled) { $input = HtmlHelper::createSelect($inputId, $inputId, $optionList, $formAnnotation[Annotation::O_VALUE]); } else { $input = HtmlHelper::createSelectDisabled($inputId, $inputId, $optionList, $formAnnotation[Annotation::O_VALUE]); } } else if ($formAnnotation[Annotation::VALUES][Annotation::O_TYPE] == HtmlHelper::RADIO) { $fetchList = explode('.', $formAnnotation[Annotation::VALUES][Annotation::O_FETCH_LIST]); $list = ReflectionHelper::getMethodResultFromName($fetchList[0], $fetchList[1]); $optionList = array(); foreach ($list as $item) { $key = ReflectionHelper::getMethodResultFromInstance($item, 'get'.ucfirst($formAnnotation[Annotation::VALUES][Annotation::O_ID])); $value = ReflectionHelper::getMethodResultFromInstance($item, 'get'.ucfirst($formAnnotation[Annotation::VALUES][Annotation::O_VALUE])); $optionList[$key] = $value; } if (!$disabled) { $input = HtmlHelper::createRadioList($inputId, $inputId, $optionList, $formAnnotation[Annotation::O_VALUE]); } else { p($optionList); } } else if ($formAnnotation[Annotation::VALUES][Annotation::O_TYPE] == HtmlHelper::TEXTAREA) { $value = $formAnnotation[Annotation::O_VALUE]; $input = HtmlHelper::createTextArea( $inputId, $inputId, $formAnnotation[Annotation::VALUES][Annotation::O_COLS], $formAnnotation[Annotation::VALUES][Annotation::O_ROWS], $value ); } else { $value = $formAnnotation[Annotation::O_VALUE]; $style = ''; if (isset($formAnnotation[Annotation::T_FORMAT]) && isset($formAnnotation[Annotation::T_FORMAT][Annotation::O_TYPE])) { if ($formAnnotation[Annotation::T_FORMAT][Annotation::O_TYPE] == HtmlHelper::INPUT_FORMAT_DATE) { $style = 'formDate'; $pattern = ''; if (isset($formAnnotation[Annotation::T_FORMAT][Annotation::O_PATTERN_JS])) { $pattern = $formAnnotation[Annotation::T_FORMAT][Annotation::O_PATTERN_JS]; } if (isset($formAnnotation[Annotation::T_FORMAT][Annotation::O_PATTERN_PHP]) && \helper\StringHelper::isNotNull($value)) { $value = DateHelper::getAsString($value, $formAnnotation[Annotation::T_FORMAT][Annotation::O_PATTERN_PHP]); } JavascriptManager::getInstance()->putCommand(JavascriptHelper::createDatePicker($inputId, $pattern)); } else if ($formAnnotation[Annotation::T_FORMAT][Annotation::O_TYPE] == HtmlHelper::INPUT_FORMAT_NUMBER) { $style = 'formNumber'; } if (isset($formAnnotation[Annotation::T_FORMAT][Annotation::O_MASK])) { if ($formAnnotation[Annotation::T_FORMAT][Annotation::O_TYPE] == HtmlHelper::INPUT_FORMAT_DECIMAL) { $style = 'formDecimal'; $mask = strrev($formAnnotation[Annotation::T_FORMAT][Annotation::O_MASK]); $mask = preg_replace('/[.]/', ',', $mask, 1); JavascriptManager::getInstance()->putCommand(JavascriptHelper::createMask($inputId, $mask, true)); } else { JavascriptManager::getInstance()->putCommand(JavascriptHelper::createMask($inputId, $formAnnotation[Annotation::T_FORMAT][Annotation::O_MASK])); } } } if (!$disabled) { $input = HtmlHelper::createInput( $formAnnotation[Annotation::VALUES][Annotation::O_TYPE], $inputId, $inputId, $value, isset($formAnnotation[Annotation::VALUES][Annotation::O_MAX_LENGTH]) ? $formAnnotation[Annotation::VALUES][Annotation::O_MAX_LENGTH] : null, null, $style ); } else { $input = HtmlHelper::createInputDisabled( $formAnnotation[Annotation::VALUES][Annotation::O_TYPE], $value ); } } if ($formAnnotation[Annotation::T_LABEL]) { $label = HtmlHelper::createLabel( $formAnnotation[Annotation::T_LABEL], $inputId ); } if ($formAnnotation[Annotation::VALUES][Annotation::O_TYPE] == HtmlHelper::INPUT_TYPE_CHECKBOX) { $formElements[$inputId] = array(self::FORM_INPUT => $label, self::FORM_LABEL => $input); } else { $formElements[$inputId] = array(self::FORM_INPUT => $input, self::FORM_LABEL => $label); } } $htmlForm[self::FORM_ELEMENTS] = $formElements; } // FORM_PARAMS $formId = 'form-'.$className.'-'.strtolower($operationName); $htmlForm[self::FORM_PARAMS] = HtmlHelper::createFormParameters($formId, $formAction, 'POST', $submitCallback); // FORM SUBMIT $submitId = $formId.'-'.HtmlHelper::INPUT_TYPE_SUBMIT; if (!$isJson) { $htmlForm[self::FORM_SUBMIT] = HtmlHelper::createInput(HtmlHelper::INPUT_TYPE_SUBMIT, $submitId, $submitId, ucfirst($operationName)); } else { $htmlForm[self::FORM_SUBMIT] = HtmlHelper::createInput(HtmlHelper::INPUT_TYPE_BUTTON, $submitId, $submitId, ucfirst($operationName)); JavascriptManager::getInstance()->putCommand(JavascriptHelper::bindAjaxPostInClick($submitId, $formId)); } // FORM CANCEL $cancelOperation = 'cancelar'; $cancelId = $formId.'-'.$cancelOperation; $cancelCallback = JavascriptHelper::createLocationHrefChange(\App::getInstance()->getURIPrevious()); $htmlForm[self::FORM_CANCEL] = HtmlHelper::createInput(HtmlHelper::INPUT_TYPE_BUTTON, $cancelId, $cancelId, ucfirst($cancelOperation), null, $cancelCallback); return $htmlForm; }