Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TiagoMaker

Alternando entre jpg e swf

Recommended Posts

Dae galera, estou fazendo um sistema de banners baseado no jquery cycle, a parte de busca dos banners já está ok, o problema é que só consigo buscar imagens, como faria para a cada loop do while ele detectar se é flash ou imagem visto que as tags para exibição de ambos são diferentes. Segue o código de exibição só de imagens:

 

<html>
<head>
<title>banners</title>
<link rel="stylesheet" type="text/css" media="screen" href="jq.css" />
<link rel="stylesheet" type="text/css" media="screen" href="cycle.css" />
<style type="text/css">
#slideshow { margin: 30px auto; width: 572px; height: 232px; }
#nav { z-index: 50; position: absolute; bottom: 10px; left: 400px }
#nav a { margin: 0 5px; padding: 3px 5px; border: 1px solid #ccc; background: #cff; text-decoration: none }
#nav a.activeSlide { background: #aaf }
#nav a:focus { outline: none; }
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jcycle.js"></script>
<script type="text/javascript">
$(function() {
   $('#slideshow').cycle({
       fx:     'fade',
       pager:  '#nav',
	slideExpr: 'img'
   });
});
</script>
</head>
<body>

<div id="main">
       <div id="slideshow" class="pics">
		<div id="nav"></div>
<?php 
require_once("includes/conexao.php");
$sql = "SELECT * FROM banners WHERE tipo='GRANDE' ORDER BY rand() LIMIT 5";
$query = mysql_query($sql);
while ($dados = mysql_fetch_array($query)){
?>
           <img src="<?php echo $dados[url]; ?>" width="540" height="200" />
       <?php } ?>
       </div>
</div>
</body>
</html>

 

Tabelas bd

id_banner nome url tipo destino

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exato amigo, por isso estou pedindo ajuda, já que preciso colocar um if que veja a diferença entre os formatos, alternando para outra tag

 

Algo assim(não funcionou):

 

         	    $tamanho = strlen($dados[url])-4;	 
			$arquivo =  strtoupper(substr($dados[url],$tamanho,4))
			?>

            <?php if ($arquivo=='.SWF'){?>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=6,0,29,0" width="125" height="100">
<param name="movie" value="admin/imagens/<?=$dados[url]?>" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="admin/imagens/<?=$dados[url]?>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="125" height="100"></embed>
</object>
 <?php  } 
   else{
   ?>
      <a href="<?=$dados[destino]?>" target="_blank"><img border="no" src="admin/imagens/<?=$dados[url]?>" width="125" height="100" /></a>
     <?php } ?>
     <?php }?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta utilizando pathinfo(). Algo assim:

 

<?php 
$infoArquivo = pathinfo($dados['url']);
if ($infoArquivo['extension'] == 'swf'){ ?>            
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=6,0,29,0" width="125" height="100">
<param name="movie" value="admin/imagens/<?php echo $dados['url']?>" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="admin/imagens/<?php echo $dados['url']?>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="125" height="100"></embed>
</object>
<?php } else { ?>
<a href="<?php echo $dados['destino']?>" target="_blank"><img border="no" src="admin/imagens/<?php echo $dados['url']?>" width="125" height="100" /></a>
<?php } ?>

 

Caso não funcione, mostre o que aconteceu, se apareceu alguma mensagem de erro, se imprimiu sempre a imagem, se imprimiu sempre o object.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim até funciona, mas acho que esse script não é feito pra rodar flash mesmo, pois ele já começa exibindo ele por baixo das outras imagens, quando chega vez dele de aparecer, já está no final da animação. E tambem sobrepõe o estilo de fundo mesmo mudando pra wmode transparent

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("diretorio", nome", "175", "25", "9");
so.addParam("wmode", "transparent");
so.addParam("menu", "false");
so.write("flash_promocao");
// ]]>
</script>

 

tenta esse ai, aqui no trabalho funciona, nao sei se precisa de alguma coisa a mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então o problema não é mais no PHP, e sim na forma de montar o HTML para mostrar o SWF, motivo pelo qual moverei o tópico para o fórum de Webstandards.

 

Enquanto isto, poste o HTML gerado após a execução deste código, quando for um SWF.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei da forma abaixo, mas nem traz o flash, acho que não deve ser erro só de HTML.

 

<html>
<head>
<title>JQuery Cycle Plugin - Pager Over Slideshow Demo</title>
<link rel="stylesheet" type="text/css" media="screen" href="jq.css" />
<link rel="stylesheet" type="text/css" media="screen" href="cycle.css" />
<style type="text/css">
#slideshow { margin: 30px auto; width: 572px; height: 232px; }
#nav { z-index: 50; position: absolute; bottom: 10px; left: 400px }
#nav a { margin: 0 5px; padding: 3px 5px; border: 1px solid #ccc; background: #cff; text-decoration: none }
#nav a.activeSlide { background: #aaf }
#nav a:focus { outline: none; }
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jcycle.js"></script>
<script src="includes/swfobject.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
   $('#slideshow').cycle({
       fx:     'fade',
       pager:  '#nav',
	slideExpr: 'img'
   });
});
</script>
</head>
<body>

<div id="main">
       <div id="slideshow" class="pics">
		<div id="nav"></div>
<?php 
require_once("includes/conexao.php");
$sql = "SELECT * FROM banners WHERE tipo='GRANDE' ORDER BY rand() LIMIT 5";
$query = mysql_query($sql);
while ($dados = mysql_fetch_array($query)){
?>
         <?php 
$infoArquivo = pathinfo($dados['url']);
if ($infoArquivo['extension'] == 'swf'){ ?>            
<script type="text/javascript">
       // <![CDATA[
       var so = new SWFObject("<?php echo $dados['url']?>", "nome", "540", "200", "9");
       so.addParam("wmode", "transparent");
       so.addParam("menu", "false");
       so.write("flash_promocao");

</script>
<?php } else { ?>
       <a href="<?php echo $dados['destino']?>" target="_blank"><img border="no" src="<?php echo $dados['url']?>" width="540" height="200" /></a>
<?php } ?>
<?php } ?>
       </div>
</div>
<script type="text/javascript">
<!--
swfobject.registerObject("nome");
//-->
</script>
</body>
</html>

 

esse é o html, da pra ver que realmente aparece os swf, mas não exibe... aparece o navegador apenas do 1 ao 3, que seriam as 3 imagens

 

<html>
<head>
<title>JQuery Cycle Plugin - Pager Over Slideshow Demo</title>
<link rel="stylesheet" type="text/css" media="screen" href="jq.css" />
<link rel="stylesheet" type="text/css" media="screen" href="cycle.css" />
<style type="text/css">
#slideshow { margin: 30px auto; width: 572px; height: 232px; }
#nav { z-index: 50; position: absolute; bottom: 10px; left: 400px }
#nav a { margin: 0 5px; padding: 3px 5px; border: 1px solid #ccc; background: #cff; text-decoration: none }
#nav a.activeSlide { background: #aaf }
#nav a:focus { outline: none; }
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jcycle.js"></script>
<script src="includes/swfobject.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
   $('#slideshow').cycle({
       fx:     'fade',
       pager:  '#nav',
	slideExpr: 'img'
   });
});
</script>
</head>

<body>

<div id="main">
       <div id="slideshow" class="pics">
		<div id="nav"></div>
                  <a href="" target="_blank"><img border="no" src="http://www.scalapropaganda.com.br/admin/imagens/publicidade.gif" width="540" height="200" /></a>

<script type="text/javascript">

       var so = new SWFObject("http://www.scalapropaganda.com.br/admin/imagens/particular.swf", "nome", "540", "200", "9");
       so.addParam("wmode", "transparent");
       so.addParam("menu", "false");
       so.write("nome");

</script>
                 <a href="" target="_blank"><img border="no" src="http://www.scalapropaganda.com.br/admin/imagens/publicidade.gif" width="540" height="200" /></a>

<script type="text/javascript">

       var so = new SWFObject("http://www.scalapropaganda.com.br/admin/imagens/particular.swf", "nome", "540", "200", "9");
       so.addParam("wmode", "transparent");
       so.addParam("menu", "false");
       so.write("nome");

</script>

                 <a href="" target="_blank"><img border="no" src="http://www.scalapropaganda.com.br/admin/imagens/publicidade.gif" width="540" height="200" /></a>
       </div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.