Página 1 de 2

Acentos no Windows 7 Opencart 1.4.9.3 [Resolvido]

Enviado: 13 Jan 2011, 19:28
por lehnhart
Olá pessoal,

Vou relatar uma dificuldade que estou encontrando no OpenCart Versão 1.4.9.3 no Windows 7.

Após instalar a versão 1.4.9.3 tento fazer o cadastro de clientes, mas toda a palavra que digito que contenha algum tipo de acento ou cedilha, não está sendo gravada corretamente no banco de dados.
Exemplo:
Nome: João
Endereço: Palhoça

O que fica gravado é:
Nome: Jo
Endereço: Palho

Mais informações:
A instalação é feita a partir do OpenCart 1.4.9.3 original sem modificações.
No linux não ocorre este erro.
Já utilizei Wamp, Xampp, EasyPHP e agora por último fiz a instalação do Apache, PHP, MySQL separadamente.
Na versão 1.4.9.1 do opencart não ocorre este erro.

Se alguém tiver alguma dica, eu fico agradecido!!

Abraço!

Re: Acentos no Windows 7 Opencart 1.4.9.3

Enviado: 14 Jan 2011, 06:25
por Manoel Vidal
Olá lehnhart.

Você está tendo este problema só com a gravação ? Na exibição dos dados com acento na loja está tudo ok ?

Acredito que o problema não está no OpenCart, tive um problema parecido mas em outra aplicação criada por mim, e neste caso a bronca estava com a configuração do PHP, em outro caso era com a codificação do Mysql para criação das tabelas e do banco de dados.

Aguardo retorno.

Re: Acentos no Windows 7 Opencart 1.4.9.3

Enviado: 14 Jan 2011, 10:02
por lehnhart
Olá Manoel,

Obrigado pela ajuda!

Na exibição também ocorre o erro.

Lá no banco de dados fica gravado sem o acento mesmo (mas o banco aceita acentos quando gravo diretamente nele).

Também acho que o problema não é no OpenCart.

Após fuçar muito aqui e pesquisar em vários fóruns, estou chegando a conclusão de que é alguma coisa relativa ao WampServer que instalei primeiramente acabou dando pau!
Já removi ele como falei no primeiro tópico, mas por algum motivo acabou interferindo nos outros programas de servidor (Xampp, EasyPHP, etc...)

Após fazer muitos procedimentos de instalação de servidores Web estão ocorrendo outros erros bizarros agora!

Vou formatar o PC e refazer tudo. Assim que terminar posto aqui se deu certo ou não.

Abraço!

Re: Acentos no Windows 7 Opencart 1.4.9.3

Enviado: 14 Jan 2011, 10:49
por Manoel Vidal
Faz um teste antes de formatar (se você ainda não formatou).

Pelo que você me informou provalmente o problema esta no PHP, faça o seguinte:
Procure pelo arquivo php.ini (como você instalou várias versões utilize o pesquisar do windows) e edite este arquivo procurando pela seguinte linha:
;default_charset = "iso-8859-1"
Retire o ponto e vírgula da frente dela e salve o arquivo, reinicie o servidor e teste a loja.
Se não der certo troque o iso-8859-1 por UTF-8 e repita o procedimento anterior.
Provalmente isso resolverá o problema.

Espero ter ajudado e aguardo seu retorno.

Re: Acentos no Windows 7 Opencart 1.4.9.3

Enviado: 14 Jan 2011, 15:18
por lehnhart
Olá Manoel,

Fiz isto que você falou, mas o problema continua.


Que bruxaria!

Após formatar o PC, instalei Apache 2.2.17, PHP 5.3.5, MySQL 5.5.8

Aparentemente tudo funciona nomalmente, mas o cadastro continua não aceitando acentos.

Após realizar o cadastro, e os nomes saírem cortados (Ex: "Taíse", fica somente "Ta" / "Antônio" fica "Ant")
fui até a página onde o cliente pode editar seu cadastro.

Quando edito as Informações da conta (Nome, sobrenome, e-mail, fax), após salvar, o erro continua.

Quando edito a parte referente aos endereços do cliente (Endereço 1, Endereço 2, CEP, etc.), ele está gravando normalmente os dados, com acento e tudo.

Portanto no banco de dados a tabela "address" fica com as informações com seus devidos acentos (após a edição por parte do cliente) equanto que a tabela "customer" não aceita os acentos.

Mais um detalhe curioso. Quando coloco um nome onde a primeira letra tem acento, ele grava no banco corretamente (Ex: ônibus)

Alguma idéia? To ficando maluco com isso.

Poderia ser uma incopatibilidade do OpenCart com o PHP 5.3.5 que estou usando?

Re: Acentos no Windows 7 Opencart 1.4.9.3

Enviado: 14 Jan 2011, 15:40
por juliocesar757
Na versão 1.4.9.3 o pessoal adicionou a função ucwords() e strtolower() em cada string antes de gravar no banco de dados. O que faz é converter todos os caracteres pra minúsculo e logo em seguida converte cada primeira letra em maiúscula.

Aqui ele gravando o primeiro nome:
$data['firstname'] = ucwords(strtolower(trim($data['firstname'])));

ucwords() e strtolower() pode eliminar letras com acentos.

Se souber programação pode remover esse recurso adicionado no 1.4.9.3

Re: Acentos no Windows 7 Opencart 1.4.9.3

Enviado: 14 Jan 2011, 17:34
por lehnhart
BINGO!!!!

Problema Resolvido!

Valeu Julio e Manoel !!!

Comentei as linhas referentes a esta codificação no arquivo: \catalog\model\account\customer.php

Ficando assim:

Logo no início (em torno da linha 4):
Código: Selecionar todos
     /*
		$data['firstname'] = ucwords(strtolower(trim($data['firstname'])));
		$data['lastname'] = ucwords(strtolower(trim($data['lastname'])));
		$data['company'] = ucwords(strtolower(trim($data['company'])));
		$data['address_1'] = ucwords(strtolower(trim($data['address_1'])));
		$data['address_2'] = ucwords(strtolower(trim($data['address_2'])));
		$data['city'] = ucwords(strtolower(trim($data['city'])));
		$data['postcode'] = strtoupper(trim($data['postcode']));
     */

Um pouco mais abaixo (em torno da linha 29):
Código: Selecionar todos
     /*
		$data['firstname'] = ucwords(strtolower(trim($data['firstname'])));
		$data['lastname'] = ucwords(strtolower(trim($data['lastname'])));
     */

Abraço!
:D

Re: Acentos no Windows 7 Opencart 1.4.9.3 [Resolvido]

Enviado: 14 Jan 2011, 22:55
por Manoel Vidal
Que bom que resolveu lehnhart, e valeu pela contribuição julio :D

Re: Acentos no Windows 7 Opencart 1.4.9.3 [Resolvido]

Enviado: 23 Jan 2011, 22:25
por prchakal
Não precisa fazer isso, basta fazer o seguinte:

Em "addCustomer":

$data['firstname'] = mb_convert_case(trim($data['firstname']), MB_CASE_TITLE, "UTF-8");
$data['lastname'] = mb_convert_case(trim($data['lastname']), MB_CASE_TITLE, "UTF-8");
$data['company'] = mb_convert_case(trim($data['company']), MB_CASE_TITLE, "UTF-8");
$data['address_1'] = mb_convert_case(trim($data['address_1']), MB_CASE_TITLE, "UTF-8");
$data['address_2'] = mb_convert_case(trim($data['address_2']), MB_CASE_TITLE, "UTF-8");
$data['city'] = mb_convert_case(trim($data['city']), MB_CASE_TITLE, "UTF-8");
$data['postcode'] = mb_convert_case(trim($data['postcode']), MB_CASE_TITLE, "UTF-8");

Em "editCustomer":
$data['firstname'] = mb_convert_case(trim($data['firstname']), MB_CASE_TITLE, "UTF-8");
$data['lastname'] = mb_convert_case(trim($data['lastname']), MB_CASE_TITLE, "UTF-8");

Re: Acentos no Windows 7 Opencart 1.4.9.3 [Resolvido]

Enviado: 02 Mai 2011, 19:36
por cobello
Manoel e a todos bom dia.

Estou com a loja de um cliente com um problema similar mais em outro ponto (versão 1.4.9.3). Utilizei todo o material do grupo no que se diz desde a loja em si como os pacotes de tradução, mas quando vou fechar o pedido "index.php?route=checkout/shipping" , toda a página fica com sua acentuação comprometida já revi a tradução e os blocos da página mais sem qualquer tipo de sucesso.
Pode me auxiliar em alguma dica.

Desde já agradeço a atenção de todos.