Jump to content

Recommended Posts

Boa noite,

 

Atualizei a versão do prestashop para a mais recente (1.6.1.0), e módulo de tags, desde então, não apareceu mais.

Já alterei as posições, transplantei para o hook displayFooter (que é onde vai aparecer), juntamente com outros módulos (que aparecem no footer e não tiveram problemas).

O que mais posso fazer para resolver a situação ?

Obrigado.

 

Link to comment
Share on other sites

O módulo block tags nao tem gancho para o footer. Vc. tentando enganchar lá deve estar recebendo uma mensagem de erro.

 

Se quiser que o módulo se enganche no displaFooter entao vai ther que alterar o ficheiro blocktags,php (/modules/blocktags/blcktags.php), adicionando o gancho. Tome como modêlo, os outrois ganchos lá no script, pois vai ter que adicionar algumas linhas (function hookDisplayFooter)

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Obrigado pela resposta.

 

Já tinha tentado fazer isso.

As alterações que fiz (blocktags.php) foram:

function install()
{
$success = (parent::install()
&& $this->registerHook('header')
&& $this->registerHook('leftColumn')
&& $this->registerHook('addproduct')
&& $this->registerHook('updateproduct')
&& $this->registerHook('deleteproduct')
&& $this->registerHook('footer') ## adicionei isto
&& Configuration::updateValue('BLOCKTAGS_NBR', 20)
&& Configuration::updateValue('BLOCKTAGS_MAX_LEVEL', 3)
&& Configuration::updateValue('BLOCKTAGS_RANDOMIZE', true)
);


$this->_clearCache('*');


return $success;
}

E, com base nas que já tinha, acrescentei esta função:
 
function hookDisplayFooter($params)
{
  $this->_clearCache('*');
}

Estou a fazer algo de errado ?
Edited by nuno.dinis (see edit history)
Link to comment
Share on other sites

&& $this->registerHook('footer')


Este hook nao existe ;)

 

Vc, quer adicionar ao displayFooter.

 

Além tdo mais as linhas se repetem algumas vezes. vc. vai ter que verificar de acordo com o modelo dos outros hooks. Este módulo possue um css. próprio, pelo que lembro, acho que vc. vai ter que extender também este css para ficar compatível com o footer e nao rasgar.

Link to comment
Share on other sites

Já o fiz, mas sem os resultados esperados.

O css eu formulo, caso necessário, depois de o módulo aparecer. A questão principal é que ele nem aparece. É o único módulo que não aparece desde que atualizei o Prestashop :/

Link to comment
Share on other sites

E, com base nas que já tinha, acrescentei esta função:
 
function hookDisplayFooter($params)
{
  $this->_clearCache('*');
}

 

 

Dei uma olhada no módulo. Vc. esqueceu  o public na frente da funcao....

 

 

deveria sair assim:

	function hookdispalyFooter($params)
	{
		$this->_clearCache('*');   

	}

E ainda falta mais abaixo:

	function hookdisplayFooter($params)
	{
		return $this->hookdisplayFooter($params);
	}
Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Mesmo dessa forma não consigo. Esse foi o tópico pelo qual me guiei na primeira tentativa.

Quando faço o que sugeriu no tópico acima retorna-me o seguinte erro:

PHP Fatal error:  Cannot redeclare BlockTags::hookdisplayFooter() in modules/blocktags/blocktags.php on line 181
Link to comment
Share on other sites

Deveria entao ficar assim:

 

ca. linha 55

&& $this->registerHook('footer')

e ca. linha 87

	public function hookFooter($params)
	{
		$this->_clearCache('*');
	}

e ca. linha 169

	function hookFooter($params)
	{
		return $this->hookLeftColumn($params);
	}

Nao altere aqui o LeftColumn, pois este está especificado mais acima o que deverá acontecer. Eu somente dupliquei a funcao.

 

 

Se vc. for colocar um css próprio entao deverá este bloco ser assim:

	function hookFooter($params)
	{
		$this->context->controller->addCSS(($this->_path).'oseu.css', 'all');
	}
Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Devido a ter duplicado a função ele queixa-se :)
Fatal error: Cannot redeclare BlockTags::hookFooter() in modules/blocktags/blocktags.php on line 177

 

Aqui:

function hookFooter($params)
{
return $this->hookLeftColumn($params);	
}
Link to comment
Share on other sites

Não pode duplicar a função.

 

O correto seria:

	public function hookDisplayFooter($params) // ou hookFooter
	{
	    $this->_clearCache('*'); //Você precisa limpar o cache toda vez que carregar o hook mesmo???
            return $this->hookLeftColumn($params);	
        }

Se vc. for colocar um css próprio, recomendo colocar no header, que é o gancho padrão para CSS/JS:

	function hookHeader($params)
	{
		$this->context->controller->addCSS(($this->_path).'oseu.css', 'all');
	}
Link to comment
Share on other sites

 

Não pode duplicar a função.

 

O correto seria:

	public function hookDisplayFooter($params) // ou hookFooter
	{
	    $this->_clearCache('*'); //Você precisa limpar o cache toda vez que carregar o hook mesmo???
            return $this->hookLeftColumn($params);	
        }

Pelo que tenho lido os hooks na página principal tem outro nome. displayFooter nao serve. Mas tente....

 

tutorial do vekia, mas já um tanto velho: https://mypresta.eu/en/art/developer/prestashop-hook-list.html

nao encontrei nada mais recente...

 

Sim limpar cache vc. terá que limpara toda vez....

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

 

tente em vez:

function hookFooter($params)
{
return $this->hookFooter($params);	
}

 

Ao colocar desta forma dá-me erro 500 na página.

Liguei o modo dev e continua a dar o erro 500, sem fazer output de erros. Inclusive verifiquei no error log e também não dá erro.

 

 

Link to comment
Share on other sites

Pelo que tenho lido os hooks na página principal tem outro nome. displayFooter nao serve. Mas tente....

 

tutorial do vekia, mas já um tanto velho: https://mypresta.eu/en/art/developer/prestashop-hook-list.html

nao encontrei nada mais recente...

 

Sim limpar cache vc. terá que limpara toda vez....

 

Nas posições o hook tem o nome de displayFooter

 

1.png

Link to comment
Share on other sites

Sim eu sei, mas também os outros hooks como left column nao chamam displayLeftColumn se vc. for verificar no tutorial e comparar com o código do módulo. Lá está:&& $this->registerHook('leftColumn') em vez de displayLeftColumn.

 

O problema é a transicao de um design para outro. Muitos módulo ainda possuem hooks antigos, outros já foram retrablahados com os hooks novos como displayFooter por ex. Aqui somente tentando mesmo até der certo....

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Entao, agora também eu estava adaptando um módulo e também sem solucao. Eu nao sei, mas acho que os hooks andam um pouco bugados. Nada que funcionava antes, agora faz efeito, nem mais variáveis de traducao que adiciono nao mais aparecem. Muito estranho é que existe um módulo novo que se engancha em gancho do gancho. Sinto mais ainda nao descobri a técnica por trás...

 

Também estou apanhando.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...