首页 arrow 文章新闻 arrow Joomla教程 arrow 三板斧让Joomla!支持flash格式的banner
Narrow screen resolution Wide screen resolution default color green color orange color

Translate this site

         

文章分类阅读

即将发布

RSS 供稿

三板斧让Joomla!支持flash格式的banner

(0 次投票)
2006-12-05
 

作者: 白建鹏,

查看 : 4477    

已被收藏 : 36

Published in : 文章, Joomla教程

标签 : flash, banner, 旗帜广告, Joomla!,


在Joomla的自带组件中有一个com_banner,可以在网页顶部显示banner,也就是我们说的“旗帜广告”。当然,这个位置你可以通过修改模板移动到其他位置,也可以显示公司的标语或者宣传画,但是有一样很遗憾:默认的com_banner不支持flash格式(.swf)的banner!

这岂不是很痛苦!现在不用flash格式的banner几乎就等于说“我不懂网页设计”!尽管在Joomla的扩展库中可以发现有人开发了一些模块来使得在banner位置显示flash格式的动画,但是这种方法未免大材小用了一些。实际上通过对Joomla核心文件的三处修改,就能立即实现在banner上显示flash文件。

方法如下:

1、打开 <joomla>/administrator/components/com_banners/admin.banners.html.php 文件。

大约在275行左右,找到如下代码:

原始代码
  1. if (eregi("swf", $_row->imageurl)) { ?> <img name="imagelib" src="images/blank.png" alt="" /> 修改为:
  2. <p>{geshibot lang="php" head="修改后代码"} if (eregi("swf", $_row->imageurl)) { $imageurl = "../images/banners/".$_row->imageurl; $getflashinfo = @getimagesize( $imageurl ); echo '
  3. <script src="http://www.joomlagate.com/mambots/content/plugin_jw_allvideos/gz_eolas_fix.js" type="text/javascript"></script>
  4. <script language="JavaScript">
  5. <!--
  6. var jsval = '<object width=\"\'.$getflashinfo[0].\'\" height=\"\'.$getflashinfo[1].\'\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\"><param name=\"movie\" value=\"\'.$imageurl.\'\" /><param name=\"quality\" value=\"high\" /><param name=\"wmode\" value=\"transparent\" /><param name=\"\\\" value=\"\\\" /><param name=\"movie\" value=\"\'.$imageurl.\'\" /><param name=\"quality\" value=\"high\" /><param name=\"wmode\" value=\"transparent\" /><param name=\"movie\" value=\"\'.$imageurl.\'\" /><param name=\"quality\" value=\"high\" /><param name=\"wmode\" value=\"transparent\" /><embed width=\"\'.$getflashinfo[0].\'\" height=\"\'.$getflashinfo[1].\'\" wmode=\"transparent\" quality=\"high\" type=\"application/x-shockwave-flash\" src=\"%27.$imageurl.%27\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"></embed></object>';
  7. writethis(jsval);//-->
  8. </script>
  9. <noscript><object width="'.$getflashinfo[0].'" height="'.$getflashinfo[1].'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0">
  10. <param name="movie" value="'.$imageurl.'" />
  11. <param name="quality" value="high" />
  12. <param name="wmode" value="transparent" />
  13. <param name="\" value="\" />
  14. <param name="movie" value="'.$imageurl.'" />
  15. <param name="quality" value="high" />
  16. <param name="wmode" value="transparent" />
  17. <param name="movie" value="'.$imageurl.'" />
  18. <param name="quality" value="high" />
  19. <param name="wmode" value="transparent" />
  20. <embed width="'.$getflashinfo[0].'" height="'.$getflashinfo[1].'" wmode="transparent" quality="high" type="application/x-shockwave-flash" src="%27.$imageurl.%27" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object></noscript>';
 

 

2、打开 <joomla>/modules/mod_banners.php 文件。

在85行左右,找到如下代码:

原始代码
  1. } else if (eregi("\.swf$", $banner->imageurl)) { $imageurl = "$mosConfig_live_site/images/banners/".$banner->imageurl; echo "
  2. <script src="http://www.joomlagate.com/mambots/content/plugin_jw_allvideos/gz_eolas_fix.js" type="text/javascript"></script>
  3. <script language="JavaScript">
  4. <!--
  5. var jsval = '<object border=\"5\" swflash.cab#version=\"6,0,0,0\\\" classid=\"\\\" codebase=\"\\\"><embed loop=\"\\\" type=\"\\\" src=\"%5C%22$imageurl%5C%22\" pluginspage=\"\\\"></embed></object>';
  6. writethis(jsval);//-->
  7. </script>
  8. <noscript><object border="5" swflash.cab#version="6,0,0,0\" classid="\" codebase="\">
  9. <embed loop="\" type="\" src="%5C%22$imageurl%5C%22" pluginspage="\"></embed></object></noscript>"; }
 

对这段代码的修改有两种方法。由于在后台的“广告”组件设置中,针对每一个广告发布时都要求填写一个点击后指向的URL,因此,如果你希望点击flash动画后打开后台指定的那个URL,就把上述代码修改为:

修改后代码
  1. } else if (eregi("\.swf$", $banner->imageurl)) { $imageurl = "$mosConfig_live_site/images/banners/".$banner->imageurl; $link = sefRelToAbs( 'index.php?option=com_banners&amp;task=click&amp;bid='. $banner->bid ); $getflashinfo = @getimagesize( $imageurl ); echo '
  2. <script src="http://www.joomlagate.com/mambots/content/plugin_jw_allvideos/gz_eolas_fix.js" type="text/javascript"></script>
  3. <script language="JavaScript">
  4. <!--
  5. var jsval = '<object style=\"position: relative;\" width=\"\'.$getflashinfo[0].\'\" height=\"\'.$getflashinfo[1].\'\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\"><embed style=\"z-index: 1; position: relative;\" width=\"\'.$getflashinfo[0].\'\" height=\"\'.$getflashinfo[1].\'\" wmode=\"transparent\" quality=\"high\" type=\"application/x-shockwave-flash\" src=\"%27.$imageurl.%27\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"></embed></object>';
  6. writethis(jsval);//-->
  7. </script>
  8. <noscript><object style="position: relative;" width="'.$getflashinfo[0].'" height="'.$getflashinfo[1].'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0">
  9. <embed style="z-index: 1; position: relative;" width="'.$getflashinfo[0].'" height="'.$getflashinfo[1].'" wmode="transparent" quality="high" type="application/x-shockwave-flash" src="%27.$imageurl.%27" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object></noscript>'; }
 

当然了,一般来说,很多flash在制作时本身已经内嵌了点击后要打开的URL,因此如果使用上述代码就会使内嵌的URL失效,那么可以修改为下面的代码来忽略后台指定的URL:

修改后代码
  1. } else if (eregi("\.swf$", $banner->imageurl)) { $imageurl = "$mosConfig_live_site/images/banners/".$banner->imageurl; $getflashinfo = @getimagesize( $imageurl ); echo '
  2. <script src="http://www.joomlagate.com/mambots/content/plugin_jw_allvideos/gz_eolas_fix.js" type="text/javascript"></script>
  3. <script language="JavaScript">
  4. <!--
  5. var jsval = '<object style=\"position: relative;\" width=\"\'.$getflashinfo[0].\'\" height=\"\'.$getflashinfo[1].\'\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\"><embed width=\"\'.$getflashinfo[0].\'\" height=\"\'.$getflashinfo[1].\'\" wmode=\"transparent\" quality=\"high\" type=\"application/x-shockwave-flash\" src=\"%27.$imageurl.%27\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"></embed></object>';
  6. writethis(jsval);//-->
  7. </script>
  8. <noscript><object style="position: relative;" width="'.$getflashinfo[0].'" height="'.$getflashinfo[1].'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0">
  9. <embed width="'.$getflashinfo[0].'" height="'.$getflashinfo[1].'" wmode="transparent" quality="high" type="application/x-shockwave-flash" src="%27.$imageurl.%27" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object></noscript>'; }
 

3、打开 <joomla>/includes/joomla.php 文件。

在大约 4799 行可以看到下面一段注释以及后面紧跟的 images 函数:

原始代码
  1. /** * build the select list to choose an image */ function Images
 

在其下方,找到下面的代码:

原始代码
  1. if ( eregi( "bmp|gif|jpg|png", $file ) ) {
 

将其修改为:

修改后代码
  1. if ( eregi( "bmp|gif|jpg|png|swf", $file ) ) {
 

OK,现在搞定了。你可以进入网站后台,看看在“广告”组件(英文版就是 Banners)里面添加新广告时,是不是已经出现了对flash文件的支持?

注意:添加广告之前,别忘记把你要添加的 .swf 文件事先复制到 <joomla>/images/banners 文件夹里面去。

向朋友推荐




喜欢这篇文章?那就收藏它!
Digg!Reddit!Del.icio.us!Facebook!Slashdot!Technorati!Spurl!Simpy!Blinklist!Furl!Fark!Blogmarks!Yahoo!Smarking!Netvouz!Shadows!RawSugar!Ma.gnolia!PlugIM!Squidoo!BlogMemes!FeedMeLinks!BlinkBits!Tailrank!linkaGoGo!

转载本文 加为收藏 推荐给朋友 相关文章 收藏到 del.icio.us

会员评论  评论的 RSS
 

会员平均评分

 

尚无评论发表

发表评论



mXcomment 1.0.8 © 2007-2008 - visualclinic.fr
License Creative Commons - Some rights reserved
< 上一篇   下一篇 >

Donation below, thanks ! 请资助我们做的更好,谢谢!

Chinese translations for Joomla! CMS Core and extensions (components, modules, plugins, as well as free Joomla! templates)

I want to donate:
$

用支付宝向本站捐款

Donate to joomlagate.com to translate more Joomla! extensions and free Joomla! templates

会员登录

欢迎 访客.




忘记密码
没有账户? 马上注册
您的IP: 38.103.63.59

在线会员

现在有 37 位访客 和 8 位会员在线