public function loadConfiguration() { $obj = new Configuration(); $config = $obj->loadCampoConfiguration($this->getForm()->getAttrib('name'), $this->getName()); if (null === $config) { return $this; } if ($config->isEmpty()) { return $this; } $required = 's' === $config->getNotnull(); $label = array(); if ($required) { if (array_key_exists('class', $label)) { $class = $label['class'] . ' required'; $label['class'] = $class; } } $this->setRequired($required); $this->setAttrib('maxlength', $config->getMaxlength()); if ($config->getLabel()) { $label['label'] = $config->getLabel(); } if (method_exists($config, 'getLabelClass')) { if ($config->getLabelclass()) { if (array_key_exists('class', $label)) { $class = $label['class'] . ' ' . $config->getLabelclass(); $label['class'] = $class; } else { $label['class'] = $config->getLabelclass(); } } } //$this->_label = new \Life\Form\Element\Label('label'); //$this->_label->setAttribs($label); $this->setLabel($label); if ($config->getPlaceholder()) { $this->setAttrib('placeholder', $config->getPlaceholder()); } if ($config->getExternalHTML()) { $this->setExternalHTML($config->getExternalHTML()); } if ($config->getContent()) { $this->setContent($config->getContent()); } if ($config->getSeparador()) { $this->setSeparator($config->getSeparador()); } if ($config->getErrorHTML()) { $this->setErrorHTML($config->getErrorHTML()); } return $this; }
public function execute() { $stmt = $this->conn->prepare($this->sql); try { if ($stmt->execute()) { if (is_null($this->keyValues)) { $this->keyValues = $this->conn->lastInsertId(); if (isset($this->_camposComplementares)) { foreach ($this->_camposComplementares as &$cc) { $cc['codregistro'] = $this->keyValues; } } } $config = Registry::get('config'); $configurable = false; if (array_key_exists('general.dynamicForms', $config)) { $configurable = (bool) $config['general.dynamicForms']; } if ($configurable) { $configuration = new FormConfiguration(); if (in_array($this->type, array('insert', 'update'))) { if (isset($this->_camposComplementares)) { $repo = $configuration->getRepoCampoFormularioValor(); $repo->salvarValores($this->_camposComplementares); } } elseif ($this->type === 'delete') { if (isset($this->_codigosExcluir)) { $configuration = new FormConfiguration(); $configuration->delete($this->table, $this->_codigosExcluir); } } } return $this->setCached(false)->getReference($this->keyValues); } else { return false; } } catch (\PDOException $e) { throw new Exception($e->getMessage()); } }
public function carregarCamposComplementares($config, $entityCampoFormularioValor) { if (!$this->camposComplementaresCarregados) { $this->camposComplementaresCarregados = true; $configuration = new Configuration(); $campos = $configuration->findCamposComplementares($config->getNomeformulario()); if (count($campos) > 0) { foreach ($campos as $campo) { $element = $this->createElement($campo->getTipocampo(), $campo->getNomecampo())->setRequired($campo->getNotnull() === 's')->setValue($campo->getValorpadrao())->setAttribs(array('class' => $campo->getClass(), 'maxlength' => $campo->getMaxlength())); $repository = ServiceLocator::getInstance()->getRepository('Entity\\' . ucwords($campo->getFormulario()->getNometabela())); $pk = $repository->getPrimaryKey(); // Verifica se o formulário tem primary key para buscar o valor do campo complementar na tabela campoformulariovalor if (!is_null($pk)) { // Captura o elemento dentro do formulário para depois saber o valor para buscar na entidade de configuração $elementPk = $this->getElement($pk); // Verifica se o elemento informado como primary key existe realmente no formulário if (!is_null($elementPk)) { // Busca o valor da campo com o nome da primary key dentro do formulário $valuePk = $elementPk->getValue(); // Preenche o elemento com o valor salvo em formulariovalor $repoConfFormValor = ServiceLocator::getInstance()->getRepository($entityCampoFormularioValor); $conf = $repoConfFormValor->getValue($campo->getCodcampo(), $valuePk); if (!$conf->isEmpty()) { $element->setValue($conf->getValor()); } } } if ($campo->getLabel()) { //$element->setLabel(array('label' => $campo->getLabel(), 'class' => $campo->getLabelclass())); $element->setLabel(array('label' => $campo->getLabel())); } if ($campo->getPlaceholder()) { $element->setAttrib('placeholder', $campo->getPlaceholder()); } if ($campo->getExternalHTML()) { $element->setExternalHTML($campo->getExternalHTML()); } if ($campo->getMultiExternalHTML()) { $element->setMultiExternalHTML($campo->getMultiExternalHTML()); } if ($campo->getContent()) { $element->setContent($campo->getContent()); } if ($campo->getSeparador()) { $element->setSeparator($campo->getSeparador()); } if ((int) $campo->getCodvariavel() !== 0 && method_exists($element, 'setMultiOptions')) { $configVariavelValor = ConfigVariavel::getInstance(); $entityVariavelValor = $configVariavelValor->getEntityVariavelValor(); if ($entityVariavelValor) { $repoVariavel = ServiceLocator::getInstance()->getRepository($entityVariavelValor); $valores = $repoVariavel->fetchPairs($campo->getCodvariavel()); $element->setMultiOptions($valores); } } $campoPosterior = $campo->getCampoposterior(); if (null == $campoPosterior) { // Adiciona ao final do formulário $this->addElement($element); } else { // Posiciona o elemento no local definido no campo campoanterior $elements = $this->elements; $this->elements = array(); foreach ($elements as $item) { if ($item->getName() === $campoPosterior) { $this->addElement($element); } $this->addElement($item); } } } } } return $this; }
public function loadConfiguration() { parent::loadConfiguration(); $obj = new Configuration(); $config = $obj->loadCampoConfiguration($this->form->getAttrib('name'), $this->getName()); if (null === $config) { return $this; } if ($config->isEmpty()) { return $this; } if ($config->getMultiExternalHTML()) { $this->setMultiExternalHTML($config->getMultiExternalHTML()); } if ($config->getSeparador()) { $this->setSeparator($config->getSeparador()); } return $this; }