Página 1 de 1

Aumentar o limite de caracteres do "MODELO" do produto

Enviado: 13 Abr 2011, 10:49
por virtuopolis
Hoje na área administrativa do opencart (1.4.7), há uma restrição de caracteres para o "MODELO" do produto (24 caracteres) e necessito de apenas 1 caracter a mais, para poder inserir um código especial que o meu cliente quer deixar padrão.

Aguem sabe como alterar esse limíte?

Grato

Re: Aumentar o limite de caracteres do "MODELO" do produto

Enviado: 19 Abr 2011, 14:01
por juliocesar757
virtuopolis, mude o arquivo admin/controller/catalog/product.php na linha (dentro da função validateForm):
Código: Selecionar todos
if ((strlen(utf8_decode($this->request->post['model'])) < 3) || (strlen(utf8_decode($this->request->post['model'])) > 24)) {
para
Código: Selecionar todos
if ((strlen(utf8_decode($this->request->post['model'])) < 3) || (strlen(utf8_decode($this->request->post['model'])) > 64)) {
No banco de dados já dá suporte a 64 caracteres.

Até mais.

Re: Aumentar o limite de caracteres do "MODELO" do produto

Enviado: 19 Abr 2011, 17:08
por virtuopolis
Poxa, Julio Cesar!!! MAGNÍFICO...... Funcionou perfeitamente!!!!

Imagine um cliente chato! É o cara que me pediu essa alteração!!!

Agora ele achou mais uma alteração para que eu "rebusque" o código.... na administração o campo de busca (filtro) difere maiuscula e minuscula (case sensitive) e não apresenta resultados para pesquisa de um produto em minuscula, caso for cadastrado em maiuscula e vice-versa!

Se o produto que cadastrei for: Máquinas

Eu digitar no campo de filtro: máquinas, MÁQUINAS, mÁQUINAS

Não me apresenta resultados e o cara quer que apresente....

Será que conseguiria me indicar onde altero?

Grato,

Re: Aumentar o limite de caracteres do "MODELO" do produto

Enviado: 20 Abr 2011, 08:48
por juliocesar757
virtuopolis, eu testei na versão do OpenCart 1.4.7 que tenho aqui e ele busca normalmente, ou seja, tanto faz digitar maiúscula quando minúscula.

Mas em todo caso, no arquivo admin/model/catalog/product.php procure a função getProducts (por volta da linha 270) e dentro se o código que busca pelo nome e modelo do produto está dessa forma:
Código: Selecionar todos
			if (isset($data['filter_name']) && !is_null($data['filter_name'])) {
				$sql .= " AND LCASE(pd.name) LIKE '%" . $this->db->escape(strtolower($data['filter_name'])) . "%'";
			}

			if (isset($data['filter_model']) && !is_null($data['filter_model'])) {
				$sql .= " AND LCASE(p.model) LIKE '%" . $this->db->escape(strtolower($data['filter_model'])) . "%'";
			}
Mas creio que o problema reside no acento de 'máquinas'. Quanto você converte para minúscula ou maiúscula como acima:

strtolower($data['filter_model'])

e

strtolower($data['filter_name'])

o acento de 'máquina' é perdido. Então no caso você está procurando na realidade algo como 'mquina' ou 'MQUINA' que nunca vai ser encontrado.

Pode-se usar a função mb_strtolower ao invés da strtolower acima, mas não são todos os servidores que dão suporte a esta função.

até mais.

Re: Aumentar o limite de caracteres do "MODELO" do produto

Enviado: 20 Abr 2011, 09:22
por virtuopolis
Amigo queira perdoar! Meu cliente me informou errado por email o "local" que isso ocorre.

Na verdade isso ocorre com a lista de usuários (clientes da loja) e não nos produtos.

lá está com o Case Sensitive.

Re: Aumentar o limite de caracteres do "MODELO" [RESOLVIDO]

Enviado: 30 Mai 2011, 09:31
por virtuopolis
Queria agradecer o pessoal pela boa dica!!!! Assunto Resolvido!