Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#15729
Não aconselho que você retire o campo Lastname, pois ele também armazena informações nas tabelas de endereço, formas de envio e formas de pagamento, use a função explode() no retorno do nome na consulta pelo CPF que você vai separar sem problemas o primeiro nome do sobrenome. :)
#15754
Então Manoel, assim o campo nome não é necessario se o cliente digitar o CPF. Sem o CPF é impossivel realizar o cadastro.
Na hora que vc digita o CPF, ele ja insere no banco de dados o nome e sobrenome. por isso que estava pensando em tirar da pagina de cadastro..

Mais ou menos assim!


Em relacção com jquery e o verificador de CPF eu opitei por aquela esta forma do sobrenome + final.
mas vou adicionar um novo campo nessa pesquisa

http://eutodalinda.com/sistema/cpf.php? ... XXXXXXXXXX
http://eutodalinda.com/catalog/view/javascript/cpf.js
Código: Selecionar todos
		var CPF = 	{
				'cpf'				: 'XX2861808X0',
				'completo'			: 'AAAAAAA XXXXXXX OOOOOO',
				'nome'				: 'AAAAAAA',
				'sobrenome'			: 'XXXXXXX OOOOOO',
				'resultado'			: '1'
				}
vou adicionar a base: *SegundoNome + UltimoNome


Depois da uma olhada, deixei da seguinte forma:
Código: Selecionar todos
		var CPF = 	{
				'cpf'				: 'XXXXXXXXXXXXX',
				'completo'			: 'GUSTAVO ALMEIDA DA SILVA JUNIOR',
				'nome'				: 'GUSTAVO ALMEIDA',
				'sobrenome'			: 'DA SILVA JUNIOR',
				'primeiro'			: 'GUSTAVO',
				'segundo'			: 'ALMEIDA',
				'ultimo'			: 'JUNIOR',
				'resultado'			: '1'
				}
#15755
Os gateways americanos só usam first/last em dois campos separados, por isso é assim no Open.

Eu não me incomodo em deixar assim, especialmente com uma função como a sua, que preenche automático!

Você pode manter em dois campos mas exibir os dois um na frente do outro, fica mais bonito esteticamente e continua compatível com todo o rol de mods que já existem.

Essa quebra em vários campos é desperdício de espaço no BD, no meu ponto de vista. Cada programador que for precisar do primeiro, do segundo, etc, concatena os campos e verifica se tem 2 ou mais nomes e usa conforme necessário (coisa rara, né?). Eu nunca vi aplicação que precise de tanta informação quebrada.

Numa loja pequena, tudo bem, mas já imaginou se o Submarino tivesse o BD assim? Na primeira auditoria de redundância de dados o administrador de BD era demitido. rsrs.
#15756
E se você pegasse a variável que retorna o nome completo e adaptasse o exemplo abaixo:
Código: Selecionar todos
<?php
$retorno  = "Fulano de Tal e Silva";
$nome = explode(" ", $retorno, 2);
echo $nome[0]; // Somente o 1º nome para o Firstname
echo $nome[1]; // O restante do nome para o Lastname
?>
Faça um teste e me diga o que acha. :)
#15757
Ainda nem começei a fazer o admin, mas se quiserem fazer o download: http://www.mediafire.com/?4qnroroy6w9rgza *BETA UAHSUAUHSA


Manoel eu to fazendo assim!
Código: Selecionar todos
$Nome =  "Fulano de Tal e Silva";
$Nomear = explode(" ",$Nome);

          var CPF =    {
                'cpf'            : '$CPF',
                'completo'         : '$Nome',
                'nome'            : '$Nomear[0] $Nomear[1]',
                'sobrenome'         : '$Nomear[2] $Nomear[3]',
                'primeiro'         : '$Nomear[0]',
                'segundo'         : '$Nomear[1]',
                'ultimo'         : '$Nomear[3]',
                'resultado'         : '1'
                }
#15760
Ué. Você presumiu 4 nomes.

Se o nome do cara for apenas "Roberto Marinho Ribeiro", o campo "ultimo" fica vazio.

E com o seu exemplo, 5 nomes, o campo "último" fica sendo o "e" antes de Silva.

Precisa implementar um count().
Código: Selecionar todos
$Nome =  "Fulano de Tal e Silva";
//explode em array
$Nomear = explode(" ",$Nome);
//conta pedaços
$Nomes = count($Nomear);
//salva o primeiro
$Primeiro = $Nomear[0];
//salva o segundo nome, só se houver
$Segundo = ($Nomes>2 ? $Nomear[1] : '');
//pega os pedaços, exceto o primeiro e salva o sobrenome
for ($i=1;$i<$Nomes;$i++) {
    $Sobrenome[] = $Nomear[$i];
}
// implode o sobrenome numa var seperando os pedaços com espaço
$Sobrenome = implode(" ",$Sobrenome);
//salva o ultimo nome
$Ultimo = $Nomear[$Nomes-1];
echo "<pre>"; var_dump($Nomear); echo "</pre><br />";
echo "Completo: $Nome<br />";
echo "Primeiro: $Primeiro<br />";
echo "Segundo: $Segundo<br />";
echo "Sobrenome: $Sobrenome<br />";
echo "Último: $Ultimo<br />";
#15766
Então Renato não fica vazio, eu fiz diferente , mais o seu fiko d'hora..

DOMINO HEIN!


Sou inciante de PHP, viajo no curl kkkkk

Olha o jeito que eu fiz.
Código: Selecionar todos
	$Nomear = explode(" ",$Nome[1]);

	
if($Nome[1]){
if(count($Nomear) == 2) { 
				$Primeiro = $Nomear[0];
				$Name = $Nomear[0];
				$Sobrenome = $Nomear[1];
				$Segundo = $Sobrenome;
				$Ultimo = $Sobrenome;
			}

if(count($Nomear) == 3) {
				
				$Name = $Nomear[0];
				$Sobrenome = $Nomear[1] . " " . $Nomear[2];
				$Primeiro = $Nomear[0];
				$Segundo = $Nomear[1];
				$Ultimo = $Nomear[2];
			}
if(count($Nomear) == 4) {
				
				$Name = $Nomear[0] . " " . $Nomear[1];
				$Sobrenome = $Nomear[2] . " " . $Nomear[3];
				$Primeiro = $Nomear[0];
				$Segundo = $Nomear[1];
				$Ultimo = $Nomear[3];
			}
if(count($Nomear) == 5) {
				$Name = $Nomear[0] . " " . $Nomear[1];
				$Sobrenome = $Nomear[2] . " " . $Nomear[3] . " " . $Nomear[4];
				$Primeiro = $Nomear[0];
				$Segundo = $Nomear[1];
				$Ultimo = $Nomear[4];
			}
if(count($Nomear) == 6) {
				$Name = $Nomear[0] . " " . $Nomear[1] . " " . $Nomear[2];
				$Sobrenome = $Nomear[3] . " " . $Nomear[4] . " " . $Nomear[5];
				$Primeiro = $Nomear[0];
				$Segundo = $Nomear[1];
				$Ultimo = $Nomear[5];
			}
if(count($Nomear) == 7) {
				$Name = $Nomear[0] . " " . $Nomear[1] . " " . $Nomear[2];
				$Sobrenome = $Nomear[3] . " " . $Nomear[4] . " " . $Nomear[5];
				$Primeiro = $Nomear[0];
				$Segundo = $Nomear[1];
				$Ultimo = $Nomear[6];
			}
if(count($Nomear) == 8) {
				$Name = $Nomear[0] . " " . $Nomear[1] . " " . $Nomear[2];
				$Sobrenome = $Nomear[3] . " " . $Nomear[4] . " " . $Nomear[5];
				$Primeiro = $Nomear[0];
				$Segundo = $Nomear[1];
				$Ultimo = $Nomear[7];
			}
#15773
Esse seu é gigante... o meu tá com um monte de comentários, sem eles fica bem curto, e dá o mesmo efeito. Além disso, apesar de usar poucas variáveis, você faz muitos checks com if, isso aumenta o consumo de processamento.

Poderia ser substituído com
Código: Selecionar todos
switch (count($variavel)) {
case 1:
     comandos...
     break;
case 2:
     comandos...
     break;
case 3:
     comandos...
}

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]