/** * Montar botão de formulário * * @param string|null $tipo Tipo do botão a ser criado * @param string $texto Texto a ser exibido no botão * @param array $ou Outras configurações do botão * * @return int */ public function botao($tipo = null, $texto = 'Botão', array $ou = []) { $atributos_vetor = isset($tipo) && array_key_exists($tipo, $this->conf_botoes) ? array_merge($this->conf_botoes[$tipo], $ou) : $ou; $atributos_string = !empty($atributos_vetor) ? ' ' . \Funcoes::arraySerialize($atributos_vetor, ' ', '"') : ''; return sprintf(static::BOTAO, $atributos_string, $texto); }
/** * Misturar elementos de um vetor com outro vetor * Obs: Criado e utilizado para auxiliar os Apoios * * @param array $atrib1 Vetor principal * @param array $atrib2 Vetor secundário * * @return string */ public static function arraySerializeApoios($atrib1, $atrib2) { return \Funcoes::arraySerialize(\Funcoes::arrayMergeRecursiveFunc((array) $atrib1, (array) $atrib2, function ($v) { return trim(is_array($v) ? implode(' ', $v) : $v); }), ' ', '"'); }
/** * Criar dinamicamente o comando SQL UPDATE * * @param array $ci Vetor com os nomes dos campos a serem considerados para a geração da consulta * @param array $ce Vetor com os nomes dos campos a serem DESconsiderados para a geração da consulta * * @return string * @throws \DL3Exception */ public function criarUpdate(array $ci = null, array $ce = null) { # Informações dos campos $cpos = \DL3::$conex->infoCampos($this->bd_tabela); $alterar = []; $where = []; $params = []; foreach ($cpos as $c) { # Nome da propriedade $p = preg_replace("~^{$this->bd_prefixo}~", '', $c['Field']); if ($this->ignorarCampo($c['Field'], $p, $ci, $ce, $alterar)) { continue; } // Fim if # Obter as informações do campos $pk = $c['Key'] === 'PRI'; $obr = $c['Null'] === 'NO'; if (!isset($this->{$p}) && $obr && !$pk) { throw new \DL3Exception(sprintf(ERRO_MODELOPRINCIPAL_CRIARUPDATE_CAMPO_OBRIGATORIO_NULO, $c['Field']), 1500); } // Fim if $param_nome = ":{$c['Field']}"; $params[$param_nome] = $this->{$p}; if ($pk) { $where[$c['Field']] = $param_nome; } else { $alterar[$c['Field']] = $param_nome; } // Fim if ... else } // Fim foreach // return "UPDATE {$this->bd_tabela} SET " . \Funcoes::arraySerialize($alterar) . " WHERE " . \Funcoes::arraySerialize($where, ' AND '); return ['query' => "UPDATE {$this->bd_tabela} SET " . \Funcoes::arraySerialize($alterar) . " WHERE " . \Funcoes::arraySerialize($where, ' AND '), 'params' => $params]; }