Página 1 de 2

[VQMOD] Tags: Alt (Imagens) & Title (Links Menu e Rodapé)

Enviado: 27 Set 2012, 21:16
por witalovs
E aí pessoal blz?

Estou procurando uma forma de habilitar as tags: "Alt" para as imagens e "Title" para os links do menu, do rodapé, das categorias e das subcategorias (nas páginas internas) por causa da questão do posicionamento do google e dos demais buscadores. Afinal quem trabalha com comércio eletrônico depende muito disso para que os clientes acessem e conheçam os nossos produtos.

- Achei esse link gringo e subi esse xml (abaixo) dentro do vQmod mas não vi acontecer nada:

http://forum.opencart.com/viewtopic.php?f=24&t=68937

- Arquivo XML:

<modification>
<file name="catalog/controller/product/product.php">
<operation>
<search position="replace"><![CDATA[$this->data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');]]></search>
<add><![CDATA[$this->data['description'] = str_replace('alt=" " ', 'alt= " ' . $product_info['meta_description'] . ' " title= " ' . $product_info['name'] . ' " ', html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8'));]]></add>
</operation>
</file>
</modification>

- Achei esses outros links, mas acho que não se trata da mesma questão:

http://forum.opencart.com/viewtopic.php?f=21&t=80442

http://www.exit44.com/2012/05/custom-ti ... -opencart/

Desde já, muito obrigado à todos que puderem ajudar!

Re: [VQMOD] - Tags: Alt (Imagens) & Title (Links Menu e Roda

Enviado: 28 Set 2012, 12:47
por unknown1140
Cara, isso é bem simples na verdade... Vc pode fazer algumas pequenas alterações no seu template para fazer isto funcionar.
Para os menus procure o seguinte código no header.tpl do seu template:
Código: Selecionar todos
<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
					  <?php if ($category['children']) { ?>
					  <!--<div>
						<?php for ($i = 0; $i < count($category['children']);) { ?>
						<ul>
						  <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
						  <?php for (; $i < $j; $i++) { ?>
						  <?php if (isset($category['children'][$i])) { ?>
						  <li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
						  <?php } ?>
						  <?php } ?>
						</ul>
						<?php } ?>
					  </div>-->
					  <?php } ?>
					</li>
Se vc prestar atenção ele simplesmente "imprime" o nome da categoria com a variável <?php echo $category['name']; ?> para criar o menu. Vc pode adicionar dentro da tag âncora do menu <a> o seguinte:
Código: Selecionar todos
title="<?php echo $category['name']; ?>"
Faça o mesmo para as subcategorias e pronto.

Para as imagens é basicamente a mesma coisa, só q vc vai procurar a variável q "imprime" o título do artigo e vai adicionar alt="<?php echo $COLOQUE AQUI O NOME DA VARIÁVEL; ?>" e pronto.
Vai dar um pouco de trabalho, mas não é nada difícil.

Espero q ajude :D

Re: [VQMOD] - Tags: Alt (Imagens) & Title (Links Menu e Roda

Enviado: 28 Set 2012, 14:38
por witalovs
Valeu @unknown1140

Ajudará sim cara, com certeza!

Só uma dúvida: O alt não é para as imagens e o title para as categorias e subcategorias não? (é pq vc colocou ao contrário no post e eu fiquei em dúvida)

Abraço cara!!!

Re: [VQMOD] - Tags: Alt (Imagens) & Title (Links Menu e Roda

Enviado: 28 Set 2012, 18:36
por unknown1140
Opa, escrevi na pressa e ainda sempre acabo confundo os dois mesmo :D
Vc está certo ;D

Re: [VQMOD] - Tags: Alt (Imagens) & Title (Links Menu e Roda

Enviado: 29 Set 2012, 01:54
por witalovs
E aí Unknown?

Cara fiz como vc falou e deu certo, mas deixa eu te perturbar só mais um pouco pra gente tentar melhorar isso aqui!?

Dessa forma como a gente tá fazendo, nós não conseguimos personalizar a tag "title" pois ela apenas copia o nome que a gente colocou nas categorias, nos produtos e nas páginas de informações! Eu tava pensando na possibilidade da gente criar um campo dentro da administração (nas categorias, nos produtos e nas páginas de informações) para que a gente possa personalizar as tags, ajudando com que o nosso posicionamento diante dos motores de busca melhore!

Aí eu me lembrei que um módulo do vQmod que já tenho instalado que é o "Custom Page Titles" que cria um campo dentro da administração para as categorias, para os produtos e para as páginas de informações (segue o link abaixo do módulo mencionado):

http://www.opencart.com/index.php?route ... e%20titles

Baixei o módulo e abri o arquivo "install-db.sql" que fica dentro da pasta "database" e alterei os "cptitle" para "cttitle" nas linhas de comando:

DE:
Código: Selecionar todos
ALTER TABLE category_description ADD column cptitle VARCHAR(255) NOT NULL;
ALTER TABLE information_description ADD column cptitle VARCHAR(255) NOT NULL;
ALTER TABLE product_description ADD column cptitle VARCHAR(255) NOT NULL;
PARA:
Código: Selecionar todos
ALTER TABLE category_description ADD column cttitle VARCHAR(255) NOT NULL;
ALTER TABLE information_description ADD column cttitle VARCHAR(255) NOT NULL;
ALTER TABLE product_description ADD column cttitle VARCHAR(255) NOT NULL;
E depois eu renomeie o arquivo "custom-page-titles.xml" para "custom-page-titles.xml" e alterei:

- Onde tinha "cptitle" renomeie para "cttitle";

- Onde tinha "entry_cptitle" renomeie para "entry_cttitle";

- Onde tinha "'Custom Page Title:" renomeie para "'Custom Tag Title:";

Mas fiquei com uma dúvida porque como eu não entendo de programação eu não sei o que faz o 'name', ele existe 14 vezes dentro do arquivo XML, e não sei se eu posso renomeá-lo (se eu puder alterar posso fazê-lo nas 14 vezes que ele aparece, lembrando que algumas vezes ele aparece assim ['name'] dentro de um chave) para por exemplo 'tag_title'. Tô cabreiro de fazer e acontecer tipo um conflito (me desculpe a leiguice) pois como eu tinha falado antes já tenho instalado o módulo "Custom Page Titles" que é praticamente idêntico à gambiara que eu fiz (pois é uma simples cópia)!

E como vou utilizar o que vc me ensinou (title="<?php echo $category['name']; ?>") para puxar a "tag title" criada através dos novos campos (palavras personalizadas conforme nosso interesse) para ser exibida nas categorias, nos produtos e nas páginas de informações.

A pergunta é:

Posso alterar o 'name' (para 'tag_title') de dentro do arquivo xml e depois posso alterar o 'name' (para 'tag_title') do title="<?php echo $category['name'] (que vc explicou no post anterior). O 'name' de um e o outro representa a mesma coisa ou não tem nada a vê??? Fico pensando se deixarmos o 'name' nos dois módulos como a expressão (title="<?php echo $category['name']) irá entender qual deles eu quero puxar??? Minha cabeça tá um rolo doido com isso!

Valeu mais uma vez pela ajuda, @unknown1140!!!

Re: [VQMOD] - Tags: Alt (Imagens) & Title (Links Menu e Roda

Enviado: 30 Set 2012, 01:38
por witalovs
Eu tô tentando fazer diferente, unir no mesmo xml o "cttitle" (tag title) e o "cptitle" (título personalizado da página):

Como faço para unir os dois?

ARQUIVO ATUAL ESTÁ ASSIM:
Código: Selecionar todos
<operation>
		<search position="replace">
		<![CDATA[
				$this->document->setTitle($product_info['name']);]]></search>
			<add>
		<![CDATA[
			if
				(!empty($product_info['cttitle']))
				{$this->document->setTitle($product_info['cttitle']);}
			else
				{$this->document->setTitle($product_info['name']);}
		]]>
			</add>
	</operation>
POSSO FAZER ASSIM?
Código: Selecionar todos
<operation>
		<search position="replace">
		<![CDATA[
				$this->document->setTitle($product_info['name']);]]></search>
			<add>
		<![CDATA[
			if
				(!empty($product_info['cptitle']))
				{$this->document->setTitle($product_info['cptitle']);};
         if
				(!empty($product_info['cttitle']))
				{$this->document->setTitle($product_info['cttitle']);}
			else
				{$this->document->setTitle($product_info['name']);}
		]]>
			</add>
	</operation>
Obrigado aos que puderem ajudar!!!

Re: [VQMOD] - Tags: Alt (Imagens) & Title (Links Menu e Roda

Enviado: 30 Set 2012, 08:48
por unknown1140
Cara, não entendo muito de programação, estou até desconfiando que vc está melhor que eu nessa área :D
Além disso, sei que parece uma absurdo, mas não sei praticamente nada de vQmod... Como estou fazendo os meus próprios templates, já faço tudo que preciso desde o começo do template...
POSSO FAZER ASSIM?
Eu to achando que isto não vai dar certo, pois vc está colocando um if dentro de outro if. Acho q vd teria q criar duas condições diferentes, ou pensar em outra condição. Mas não posso ter certeza, não é a minha praia :/

Espero q ajude em algo :D

Re: [VQMOD] - Tags: Alt (Imagens) & Title (Links Menu e Roda

Enviado: 30 Set 2012, 14:00
por witalovs
rsrsrs ... ei @unknown1140 essa eu ri viu macho! Sabendo mais que vc é osso nê? A verdade é que infelizmente eu sou bastante ansioso e acabo meu tornando um buliçoso quando não consigo achar a solução!!! Macho eu não entendo nada de programação, mas fico tentar achar a lógica nesses xmls e vou abrir os outros xml e vendo-os como exemplo para tentar adaptá-los à minha necessidade!!!
.
Ei cara valeu pela dica! Mudei um pouco, será que agora dá certo assim!
.
AGORA DEIXEI ASSIM: (troquei o segundo "if" por "elseif")
Código: Selecionar todos
<operation>
		<search position="replace">
		<![CDATA[
				$this->document->setTitle($product_info['name']);]]></search>
			<add>
		<![CDATA[
			if
				(!empty($product_info['cptitle']))
				{$this->document->setTitle($product_info['cptitle']);}
			elseif
				(!empty($product_info['cttitle']))
				{$this->document->setTitle($product_info['cttitle']);}	
			else
				{$this->document->setTitle($product_info['name']);}
		]]>
			</add>
	</operation>
Abraço!!!

Re: [VQMOD] - Tags: Alt (Imagens) & Title (Links Menu e Roda

Enviado: 30 Set 2012, 20:40
por witalovs
Sei de uma coisa, não posso duplicar tudo nesse módulo XML pois pelo menos uma das suas operações coloca o que foi digitado no campo para o topo da página como titulo!!! Agora como eu vou descobrir qual deles eu não posso duplicar já que não entendo de programação???

Pessoal antes de tudo eu gostaria de pedir desculpas pela extensão do post, mas é porque eu preciso entender o que cada uma dessas operações do vQmod fazem nesse xml (http://www.opencart.com/index.php?route ... ge%20title) para que eu possa adaptá-lo e duplicar apenas o que for interessante para criar as Tag Title nos links das categorias, dos produtos e das páginas de informações!!!

O que faz essa 1ª operação (admin/model/catalog/product.php):
Código: Selecionar todos
<operation>
		<search position="replace">
		<![CDATA[$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "'");]]></search>
			<add>
		<![CDATA[$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', cptitle = '" . $this->db->escape($value['cptitle']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "'");]]></add>
	</operation>
O que faz essa 2ª operação (admin/model/catalog/product.php):
Código: Selecionar todos
<operation>
		<search position="after">
		<![CDATA['name' => $result['name'],]]></search>
			<add>
		<![CDATA['cptitle' => $result['cptitle'],]]>
		    </add>
        </operation>
O que faz essa 3ª operação (admin/controller/catalog/product.php):
Código: Selecionar todos
<operation>
		<search position="after">
		<![CDATA[$this->data['entry_name'] = $this->language->get('entry_name');]]></search>
			<add>
		<![CDATA[$this->data['entry_cptitle'] = $this->language->get('entry_cptitle');]]>
		    </add>
	</operation>
O que faz essa 4ª operação (admin/language/english/catalog/product.php):
Código: Selecionar todos
<operation>
		<search position="after">
		<![CDATA[$_['entry_name'] = 'Product Name:';]]></search>
			<add>
		<![CDATA[$_['entry_cptitle'] = 'Custom Page Title:';]]>
		    </add>
	</operation>
O que faz essa 5ª operação (admin/view/template/catalog/product_form.tpl):
Código: Selecionar todos
<operation>
		<search position="before" offset="1">
		<![CDATA[
				<td><?php echo $entry_meta_description; ?></td>]]></search>
			<add>
		<![CDATA[
			<tr>
                <td><?php echo $entry_cptitle; ?></td>
                <td><input type="text" name="product_description[<?php echo $language['language_id']; ?>][cptitle]" size="100" value="<?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['cptitle'] : ''; ?>" /></td>
			</tr>	]]></add>
	</operation>
O que faz essa 6ª operação (catalog/controller/product/product.php):
Código: Selecionar todos
<operation>
		<search position="replace">
		<![CDATA[
				$this->document->setTitle($product_info['name']);]]></search>
			<add>
		<![CDATA[
			if
				(!empty($product_info['cptitle']))
				{$this->document->setTitle($product_info['cptitle']);}
			else
				{$this->document->setTitle($product_info['name']);}]]>
			</add>
	</operation>
O que faz essa 7ª operação (catalog/model/catalog/product.php):
Código: Selecionar todos
<operation>
		<search position="after">
		<![CDATA['name' => $query->row['name'],]]></search>
			<add>
		<![CDATA['cptitle' => $query->row['cptitle'],]]></add>
	</operation>
Ah pessoal uma dúvida! Como faço para anexar arquivos aqui, para que possam ser analisadas as alterações que fiz no arquivo?

Obrigado a todos...

Re: [VQMOD] Tags: Alt (Imagens) & Title (Links Menu e Rodapé

Enviado: 02 Out 2012, 09:50
por witalovs
Quero agradecer a ajuda que o @vipersbr deu-me pelo msn!

Esse passo de compreender o que cada uma das operações (operation) fazem, está praticamente resolvido!

Agora resta-nos saber como fazer para "habilitar" a 'cptitle' como está habilitado 'name', pois é a única que dá certo! Já foi criado o campo na admistração do Opencart para preenher a 'cptitle' que também já foi criada no banco de dados!

Conforme a dica do @unknown1140, colocamos a expressão (<?php echo $category['name']; ?>) dentro no <a> na linha (<li><a href="<?php echo $category['href']; ?>><?php echo $category['name']; ?></a>) do header.tpl que fica no public_html\catalog\view\theme\default\template\common\. Porém quando juntamos tudo e alteramos o 'name' para 'cttitle', ele mostra o erro à seguir: <b>Notice</b>: Undefined index: cttitle in <b>/home/metaospano/public_html/catalog/view/theme/default/template/common/header.tpl</b> on line <b>76</b>

Quem puder ajudar, agradecemos desde já!