Fórum OpenCart Brasil

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

Por erickguerreiro
#21315
Olá Denis,

O banner foi feito com 980x280. E está configurado para 980x280 também lá no extensions >> modules >> banners.

Coloquei um banner em 728 x 360 para testar e também ficou pequeno! Muito estranho...minha Open é a 1.5.3.1.

Obrigado pelo help!
Avatar do usuário
Por denisgomes
Mensagens
#21366
Ok, o problema é o seguinte. O código que chama o banner em flash está programado para fazer com que ele ocupe todo o tamanho do seu contêiner - neste caso, o <div id="banner0"...>. Em algum lugar (provavelmente no stylesheet.css) está sendo determinado que este elemento deve ter 153 pixels de altura. Sendo ele menor que o tamanho do arquivo Flash, o Flash redimensiona o conteúdo do banner proporcionalmente, e por isso ele aparece menor. Portanto você deve alterar o CSS para que esse elemento específico tenha 280 pixels de altura, ou então acrescentar o parâmetro HEIGHT a este elemento. Ou melhor ainda: refazer o banner com 980 x 153, porque com 280 de altura na minha opinião ficou grande demais. Você também pode abrir o arquivo original do banner e apenas esticar o fundo dele para além dos 980 de largura - ao fazer isso o seu banner será reduzido proporcionalmente (como aconteceu no seu site) mas você não terá o espaço em branco em volta dele - ou seja, você criará um banner meio que "auto ajustável" para qualquer espaço.

A propósito, fica o recado para os próximos leitores deste thread: o tamanho do contêiner (<div>) para os banners é definido pelo template que você usa, ou seja, nesse template (o padrão do OpenCart) o tamanho do contêiner é 980 x 153, mas em outros templates o tamanho pode ser diferente.
Por erickguerreiro
#21381
Perfeito.

Era exatamente isso. Mandou muito bem. Obrigado Denis. Resolveu. Ficou ótimo.

Optei por incluir o parâmetro height no container com 280px.

Então ocódigo ficou assim:

#container {
width: 980px;
height: 280px;
margin-left: auto;
margin-right: auto;
text-align: left;


Obrigado novamente, Denis. Um grande abraço a todos!
Avatar do usuário
Por andersonnarciso
Mensagens
#23925
denisgomes escreveu:Olá pessoal, segue mais uma contribuição. Não sabia se esse era o fórum correto, então fique à vontade para mudar se for o caso.

Essa modificação pequena serve para permitir a exibição de banners em flash, coisa que o OpenCart *incrivelmente* ainda não faz. Já está instalado em minha loja, caso alguém queira ver. O interessante nessa modificação é que ela não mexe em nenhum arquivo do core - ela é feita somente no arquivo do template do site, ou seja, os banners em flash continuarão funcionando mesmo que você atualize a versão do OpenCart.

Atenção: Não me responsabilizo por eventuais problemas. Faça sempre backup. Tentarei ajudar na medida do possível, mas não me venha com aquela história de "segui sua dica e minha loja saiu do ar!!! me ajuda urgente!!!"

Como instalar:
1. Abra o arquivo /catalog/view/theme/<seu tema>/template/module/banner.tpl
Se você não achar esse arquivo na pasta do seu tema, isso significa que o OpenCart usará o arquivo padrão. Ele está localizado na pasta /catalog/view/theme/default/template/module/

2. Substitua o primeiro bloco do arquivo (entre as tags < div > e < /div >) por isto:
Código: Selecionar todos
<div id="banner<?php echo $module; ?>" class="banner">
	<?php foreach ($banners as $banner) { ?>
		<?php if ($banner['link']) { ?>
			<?php $pos = strpos($banner['link'], '.swf'); ?>
			<?php if ($pos !== false) { ?>
				<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="100%" height="100%" id="<?php echo $banner['link']; ?>" align="" style="z-index:-1;">
					<param name=movie value="<?php echo $banner['link']; ?>">
					<param name=quality value=high>
					<param name=wmode value=opaque>
					<embed src="<?php echo $banner['link']; ?>" width=100% height=100% quality=high wmode=opaque name="<?php echo $banner['link']; ?>" align="" TYPE="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" style="z-index:-1;" />
				</object>
			<? } else { ?>
				<div><a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
			<? } ?>
		<?php } else { ?>
			<div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
		<?php } ?>
	<?php } ?>
</div>
3. Salve e pronto.

Como usar:

Você deve enviar seus banners em Flash para uma pasta no servidor usando um programa de FTP, ou o Notepad++ (que envia arquivos por FTP), ou o CPanel da sua hospedagem ou qualquer outro meio. O OpenCart não permite enviar arquivos com extensão SWF a menos que você modifique o componente do Editor de Imagens.

1. Acesse o painel da loja e clique em Sistema > Design (Aparência) > Banners.
2. Insira um novo banner.
3. Digite o nome do novo conjunto de banners, altere a situação para Habilitado e clique em Adicionar.
4. Preencha o Título do banner.
5. No campo Link preencha o endereço completo para o arquivo SWF que você salvou no servidor.

O campo Link é usado como o endereço de destino quando o cliente clica no banner. Nesta modificação ele será usado para indicar onde está o arquivo Flash.

Por exemplo, se você envou para a pasta /image/data/ (a pasta onde as fotos da loja ficam guardadas), digite /image/data/meubanner.swf. Não é necessário digitar o domínio da sua loja, mas é importante que a palavra .swf (em minúsculas) esteja no final para que o sistema veja que é um banner em Flash. Atenção: servidores em Linux diferenciam maiúsculas de minúsculas no nome dos arquivos.

Não é necessário selecionar uma imagem, mas você pode se quiser. A imagem não será exibida.

Para definir o link de um banner em Flash você deverá fazê-lo no aplicativo que criou o banner. Não é possível adicionar um link a um banner em Flash depois que ele foi criado, assim como é feito com as imagens.

6. Salve tudo e aproveite sua nova loja com banner em Flash ;)

Qualquer dúvida ou problema poste aqui.
Um adicional a sua contribução Denis.. Hoje não é muito correto utilizar <object> para inclusão de flash, além de ficar mais pesado pode nao rodar em alguns navegadores ou smartphones, então utiliza-se framework SWFObject para fazer a inserssão do flash.

Não testei, não sei se vai funcionar ai, mas segue abaixo
Código: Selecionar todos
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>

<div id="banner<?php echo $module; ?>" class="banner">
   <?php foreach ($banners as $banner) { ?>
      <?php if ($banner['link']) { ?>
         <?php $pos = strpos($banner['link'], '.swf'); ?>
         <?php if ($pos !== false) { ?>
            
            <script type="text/javascript">
			      var params = {};
			      var trans = "<?php echo $banner['link']; ?>"; 
			      params.quality="high";
			      var params = {wmode:"transparent"};
			      swfobject.embedSWF(trans, "flash", "100%", "100%", "9.0.0", trans, {}, params);               
            </script>
            
            <div id="flash"></div> //Div Local onde irá ser inserido o flash
            
         <? } else { ?>
            <div><a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
         <? } ?>
      <?php } else { ?>
         <div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
      <?php } ?>
   <?php } ?>
</div>
Os campos de tamanho 100% poderia ser trocars pela fução que adiciona o tamanho do banner pelo painel de controle, não tenho conhecimento sobre o code do opencart, mas deve ter alguma função que insere o tamanho no temaplate..
O link do swfobject pode ser que já venha junto no OpenCart, pelo fato de haver flash uploader, mas em todos os casos, ele está no começo da codificação..
Por esnsistemas
#25076
Denis, boa tarde!!

Também não consegui anexar o banner.swf em minha loja, segui todos os passos que você informou, porém não roda, poderia revisar o código e o link de sua loja.

Grato,

Ernani
Por p3bb4
#30371
Olá Dennis, fiz sua tutorial e me voltou o seguinte erro:

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\loja\catalog\view\theme\cleve\template\module\banner.tpl on line 30

Na linha 30 não tem nada.

Minha versão é 1.5.4.1 e o meu temple não é padrão.

Meu arquivo banner.tpl

<div id="banner<?php echo $module; ?>" class="banner">
<?php foreach ($banners as $banner) { ?>
<?php if ($banner['link']) { ?>
<div><a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
<?php } else { ?>
<div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
<?php } ?>
<?php } ?>
</div>
<script type="text/javascript"><!--
var banner = function() {
$('#banner<?php echo $module; ?>').cycle({
before: function(current, next) {
$(next).parent().height($(next).outerHeight());
}
});
}

setTimeout(banner, 2000);
//--></script>

Espero solucionar para usar o recurso. Obrigado.

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 […]