PHPCMS2008模板教程—官方默认模板完全解读及制作思路

图片:

PHPCMS2008模板教程—官方默认模板完全解读及制作思路 - bobowell - 
我的快乐生活! '700')this.width='700';if(this.height>'700')this.height='700';" border=0>

大家好!我是酷扑工作室的beyond0624,首先祝贺一下beta2的发布!昨天下午云飞版主让我研究一下phpcms2008,然后写个模板制作教 程给大家!昨晚匆忙安装测试了一下,发现phpcms2008还有很多bug需要修正完善!但是这并不影响我们模板的制作!从今天开始,我就和大家一起交 流一下phpcms2008模板制作的相关问题。

    很显然,2008版官方精简了模板的设计代码,可谓完全的DIV+CSS,到底08版的默认模板是什么样子?代码又有什么变化?今天,我们来一起看看 吧!!如果你能看完看懂这篇冗长的文章,相信你对phpcms2008的模板也就不再陌生!可以说,很快你就可以自己做模板了!!

     好了,闲话少说,我们开始吧!今天是第一讲!

                     第一讲:PHPCMS2008官方默认模板完全解读及模板制作思路——PHPCMS支持团队【酷扑工作室】

   首先大家打开后台,看一下官方默认模板的存放位置,其实都是存放在 ./templates/default/phpcms/ 目录里,这下我们清楚了,如图附件截图:

    第一反应,看看header.html、index.html、footer.html 三个模板文件。这可是模板的灵魂啊!完整页面模板就是header+index+footer了,大家都知道的!!

   代码分别如下:header.html部分:

Copy code

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />

<title>{$head[title]}</title>

<meta content="{$head[keywords]}" name="keywords" />

<meta content="{$head[description]}" name="description" />

<base href="{SITE_URL}" />

<link href="favicon.ico" rel="shortcut icon" />

<link href="{SKIN_PATH}{$mod}.css" rel="stylesheet" type="text/css" />

<script language="JavaScript" src="data/config.js"></script>

<script language="JavaScript" src="images/js/jquery.min.js"></script>

<script language="JavaScript" src="images/js/css.js"></script>

<script language="JavaScript" src="images/js/common.js"></script>

<script language="JavaScript" src="images/js/login.js"></script>

<script language="JavaScript" src="images/js/validator.js"></script>

</head>

<body οnlοad="menu_selected('{php echo $catid ? $catid : $mod;}')">

<div id="top">

{if isset($MODULE['search'])}

{php $types = include PHPCMS_ROOT.$MODULE['search']['path'].'include/type.inc.php';}

  <div class="f_r">

     <form name="site_search" action="{$MODULE[search][url]}" target="_blank">

   <input type="hidden" name="type" value="all"/>

      <input type="text" name="q" size="20"/>

      <select>

        <option value="all">全部</option>

  {loop $types $k $name}

        <option value="{$k}">{$name}</option>

  {/loop}

      </select>

      <input type="submit" name="s" id="button" value="搜索" />

  </form>

  </div>

{/if}

  <div class="f_l">

    <div id="div_login" style="display:block">

  <form action="{$MODULE[member][url]}login.php" method="post" name="login" οnsubmit="return loginSubmit(this, {$PHPCMS[uc]});">

  用户名:<input type="text" name="username" size="12"/>

  密码:<input type="password" name="password" size="12"/>

     <input type="submit" name="dosubmit" value="登录" />

     <input type="button" name="register" value="注册" οnclick="redirect('{$MODULE[member][url]}register.php')"/>

     <input type="hidden" name="cookietime" value="0"/>

  </form>

</div>

    <div id="div_logined" style="display:none">

  <span id="logined_username" class="b"></span>,<a href="{$MODULE[member][url]}">会员中心</a> |

        <a href="{if $PHPCMS['uc']}{$MODULE[member] [url]}logout.php{else}javascript:logout('{$MODULE[member] [url]}logout.php?action=ajax');{/if}">退出登录</a>

</div>

  </div>

</div>

<div id="head">

  <div id="logo">

    <a href="{SITE_URL}"><img src="images/logo.gif" alt="{$PHPCMS[sitename]}" /></a>

    <a href="{SITE_URL}rss.php" target="_blank"><img src="images/rss.jpg" alt="rss信息聚合" /></a></div>

  <div class="ad" id="topbanner"><script language="javascript" src="data/js.php?id=1"></script></div>

</div>

<div id="menu">

<ul>

   <li><a href="" id="menu_phpcms"><span>首页</span></a></li>

   {tag_一级栏目}

   <li><a href="{$MODULE[special][url]}" id="menu_special"><span>专题</span></a></li>

   <li><a href="{$MODULE[ask][url]}" id="menu_ask"><span>问吧</span></a></li>

   <li><a href="{$MODULE[search][url]}" id="menu_search"><span>搜索</span></a></li>

</ul>

</div>

 

默认Index.html部分模板代码如下:

Copy code

 

<!--begin main-->

 

<div id="main">

  <!--begin left-->

  <div id="main_l">

    <!--begin 焦点图片,新闻-->

   ******************************中间部分代码太长 此处省略处理******************************

    <!--begin 全站搜索-->

<!--{if isset($MODULE['search'])}-->

<script type="text/javascript">

function set_type(type)

{

$('#type').val(type);

$('#search_tag>span').removeClass('selected');

$('#type_'+type).addClass('selected');

}

</script>

    <form name="search" action="{$MODULE[search][url]}" target="_blank">

      <div class="search_tag_top mar_10">

        <p id="search_tag"> <span id="type_all" class="selected" οnclick="set_type('all')">全部</span> {php $types = include PHPCMS_ROOT.$MODULE['search']['path'].'include/type.inc.php';}

          {loop $types $type $name} <span id="type_{$type}" οnclick="set_type('{$type}')">{$name}</span> {/loop} </p>

      </div>

      <div class="cribox_bdr_1">

        <input type="hidden" name="type" value="all" id="type"/>

        <input type="text" name="q" size="50"/>

        <input type="submit" name="s" id="button" value="搜索" />

      </div>

    </form>

    <div class="cribox_btm"></div>

<!--{/if}-->

******************************中间部分代码太长 此处省略处理******************************

<!--{if isset($MODULE['link'])}-->

    <h4><a href="{$MODULE[link][url]}"><img src="images/more.gif" alt="更多" /></a>友情链接</h4>

    <div class="pic_txt_list_1"> {tag_logo链接} </div>

    <div class="pic_txt_list_1"> {tag_文字链接} </div>

<!--{/if}-->

  </div>

  <!--end right-->

</div>

<!--end main-->

 

页脚footer.html代码较少,如下:

Copy code

 

<div id="foot">

 

    <a href="">网站首页</a>{tag_关于我们}<br />

<strong>{$PHPCMS['copyright']}</strong><br />

<a href="http://www.miibeian.gov.cn/" target="_blank">{$PHPCMS[icpno]}</a>

<a href="http://www.phpcms.cn/" class="copyright" target="_blank">Powered by Phpcms 2008</a>

</div>

</body>

</html>

 

把三个部分代码放在一张页面里,就是一个完整页面模板了,说做就做吧,我把它放到单独的一个页面,方便讲解!从代码中可以看出,phpcms2008的模 板设计基本上是完全的DIV+CSS了,当然还引入jquery框架,广泛应用AJAX无刷新技术等等技术,撇开它们不说!!

上面我们把首页的header、index、footer放到一起,成为完整的首页模板了!但是显示双击显示的是乱七八糟的东西,还有乱码!别急,其实我 们看看上面的代码就知道原因了,

   1、编码不对,当然显示乱码;

   2、无法调用css文件和风格图片,当然乱七八糟;

   3,重要的JS调用文件没有,无法显示相关效果;

   4、网页很多php语言代码,特别是导航部分,没有运行环境,效果就不会有了;

          。。。。。。

     好了,针对以上问题,为了把后台首页模板还原成前台访问的样式效果,我们动手注意解决吧(所有代码请对照一楼)

   一、官方模板中的网页编码定义如下:

Copy code

 

<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />

 

{CHARSET}是只有phpcms才会识别的变量标签,我们把它改成“GBK”,这样就解决乱码问题了,完整代码如下:

Copy code

 

<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

 

二、为了看效果,我们把下面的代码

Copy code

 

<meta content="{$head[keywords]}" name="keywords" />

 

<meta content="{$head[description]}" name="description" />

 

改为:

Copy code

 

<meta content="酷扑工作室——PHPCMS支持团队" name="keywords" />

 

<meta content="酷扑工作室——PHPCMS支持团队" name="description" />

 

当然,不该也行,只是为了看效果,这都无所谓。。

   三、因为我们调用的css样式和风格样式图片都是相对于本文件夹的相对地址,所以去掉header.html代码里一行代码,图片才能正常显示,不然则会 显示乱码的,####这点很重要!####,

所以把<base href="{SITE_URL}" />去掉或者改为<!--<base href="{SITE_URL}" />-->,代码就失效了!!

反过来,大家在制作模板的时候,这个代码不能丢了哦,一定要加上。

四、为了还原默认模板样式,解剖2008版的官方默认模板,我把代码

Copy code

 

<link href="{SKIN_PATH}{$mod}.css" rel="stylesheet" type="text/css" />

 

改为下面的样式,

Copy code

 

<link href="templates/default/skins/default/phpcms.css" rel="stylesheet" type="text/css" />

 

无非就是直接调用本文件的相对地址css样式文件,这样css才会起作用!

五、下面几个JS文件关系到一些重要调用,所以要从程序文件夹中复制过来!!放到相应文件夹中,

<script language="JavaScript" src="data/config.js"></script>

<script language="JavaScript" src="images/js/jquery.min.js"></script>

<script language="JavaScript" src="images/js/css.js"></script>

<script language="JavaScript" src="images/js/common.js"></script>

<script language="JavaScript" src="images/js/login.js"></script>

<script language="JavaScript" src="images/js/validator.js"></script>

差点忘记了,上面的所有代码涉及的的css文件,风格图片,请先分别复制到相应文件夹。否则,调用代码没意义啦!

至此,头部文件修改完毕!!!!

 

图片:

PHPCMS2008模板教程—官方默认模板完全解读及制作思路 - bobowell - 
我的快乐生活! '700')this.width='700';if(this.height>'700')this.height='700';" border=0>

看看Index.html部分代码有这么一段,好像是php语言的if条件语句,我也不太懂,只有放在php环境中,才可以执行语句!:

Copy code

 

{if isset($MODULE['search'])}

 

{php $types = include PHPCMS_ROOT.$MODULE['search']['path'].'include/type.inc.php';}

  <div class="f_r">

     <form name="site_search" action="{$MODULE[search][url]}" target="_blank">

   <input type="hidden" name="type" value="all"/>

      <input type="text" name="q" size="20"/>

      <select>

        <option value="all">全部</option>

  {loop $types $k $name}

        <option value="{$k}">{$name}</option>

  {/loop}

      </select>

      <input type="submit" name="s" id="button" value="搜索" />

  </form>

  </div>

{/if}

 

我们把它改成前台显示的具体代码,如下:

Copy code

 

<div class="f_r">

 

     <form name="site_search" action="search/" target="_blank">

  <input type="hidden" name="type" value="all"/>

      <input type="text" name="q" size="20"/>

      <select>

        <option value="all">全部</option>

        <option value="news">资讯</option>

        <option value="picture">图片</option>

        <option value="down">下载</option>

        <option value="info">信息</option>

        <option value="ask">问吧</option>

      </select>

      <input type="submit" name="s" id="button" value="搜索" />

</form>

  </div>

 

这样,通过调用类“f_r”,就能显示搜索框了。呵呵

说明一下:这种从官方模板到普通模板的解读过程其实就是我们制作模板的逆向过程!所以,我可以很自信的对大家说,读懂了我这篇文章,你就可以随心所欲的制 作你想要的任何风格模板了!完全的DIV+CSS设计,给我们制作模板带来了很多方便,2007版的模板还是有tb嵌套的,很不好,2008版要更人性化 的多!!是吧 ^_^  

下面的这一部分仍然是默认首页模板的后台代码:

Copy code

 

<div class="f_l">

 

    <div id="div_login" style="display:block">

  <form action="{$MODULE[member][url]}login.php" method="post" name="login" οnsubmit="return loginSubmit(this, {$PHPCMS[uc]});">

  用户名:<input type="text" name="username" size="12"/>

  密码:<input type="password" name="password" size="12"/>

     <input type="submit" name="dosubmit" value="登录" />

     <input type="button" name="register" value="注册" οnclick="redirect('{$MODULE[member][url]}register.php')"/>

     <input type="hidden" name="cookietime" value="0"/>

  </form>

</div>

    <div id="div_logined" style="display:none">

  <span id="logined_username" class="b"></span>,<a href="{$MODULE[member][url]}">会员中心</a> |

        <a href="{if $PHPCMS['uc']}{$MODULE[member] [url]}logout.php{else}javascript:logout('{$MODULE[member] [url]}logout.php?action=ajax');{/if}">退出登录</a>

</div>

  </div>

</div>

 

升级内容: 1、修正了编辑文章上传图片重复生成图片文件的问题 2、修正了同一IP24小时允许的最大上传附件数,超过时,上传图片直接返回错误的路径,uploadfile/ 3、修正了include/global.func.phpthumb函数问题 4、修正了整合后,utf8登陆乱码问题 5、修正了内容页面分页第一页为空问题 6、修正了专题多页分页时,导致500错误 7、修正了在没有开启php缓存时,问吧首页无法缓存问题 8、'FCKLang未定义'错误的解决办法问题:属编码问题,在本机使用记事本打开fckeditor\editor\lang\zh-cn.js,不用修改任何内容,重新保存后上传服务器覆盖原文件即可解决。 9、修正了栏目设置中在是否添加水印设置无效 10、修正了上传设置图片选项卡设置图片宽度无效问题 11、修正了自定义表单中上传条设置了后缀后,前台显示的还是所有的后缀都是可以的,实际上只有后台设置的后缀是可以上传的。 12、修正了表单向导SQL报错问题Parseerror:syntaxerror,unexpected';' 修改了模板文件/formguide/header.html{php$types=cache_read('search_type.php');} 13、修正了表单向导在系统没有安装到根目录下时,前台上传文件打开地址路径错误 14、修正了表单向导前台上传没有格式化上传大小字节数 15、修正了后台界面框架调用问题 16、修正了手动更新模板缓存后,等待页面操作成功后自动跳转返回的页面重复,显得很粗糙 17、修正了自动提取关键词关闭后没有用,照样自动提取问题 18、修正了表单向导,前台展示链接问题 19、修正了表单向导,信息无法删除问题 20、修正了专题暂停无效问题 21、分类TYPE无法再不同模型下添加相同分类名称 22、修正了黄页管理公司的问题只显示前20个公司 23、当关闭广告模块中的统计广告点击次数功能后,链接地址不正确: 24、升级后凡是缩略图为连接的,相关地方就会出现Warning:getimagesize 25、JS跨站调用后,内容显示链接怎么不对 26、评论页表情符号和换行问题 27、碎片bug权限等问题 28、修正了008sp1整合UC注册不能送积分 29、修正了总编没有选择来源的权限 30、修正了总编没有管理文章评论的权限 31、修正了专题的动态设置无效的问题 32、特定环境下验证码不出来问题 33、广告模块添加flash广告后,修改是没有取值 34、修正了修改产品信息的时候,同时更新产品的更新时间 35、修正了分页子标题也解析关联链接 36、修正了MySQLQuery:INSERTINTO`phpcms_keyword`(`tag`,`usetimes`,`lastusetime`)VALUES('启示','1','1243414371') MySQLError:Duplicateentry''forkey2 37、修正了IE8下面兼容问题 38、php最新版本下出现的问题程序乱码显示 39、修正了模块下面的header.tpl.php头部文件标准需要统一 40、修正了升级后,修改内容后,原升级地址被修改 41、直接访问header.tpl.php暴漏网站安装地址问题 42、邮件发送在不同环境下,发送失败问题、 43、修正了水印问题 44、修正了广告被屏蔽把ads里面的clickads.php点击里面带有ads的问题 45、修正了文章发表成功后,再修改文章将其选择为待审。提示操作成功。但未成功的问题 46、修正了member_cache表和member数据条数不一致的时候,导致全站白屏问题 47、修正了专题的动态设置无效设置生成静态为“否”多时候网站不能以动态模式浏览 48、修正了专题分类和专题在重新设置模块的“是否生成html”后,需要手动的一个个修改专题,和分类才可以修复链接地址 49、MySQLQuery:UPDATE`phpcms2008_category`SET`pitems`=`pitems`+1WHERE`catid`IN() MySQLError:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear')'atline1 MySQLErrno:1064 Message:MySQLQueryError 在未修复栏目前,添加信息出错的问题。--已解决 50、修正了specail标签中未增加调用,disabled=0 51、删除文件:admin/mymap.inc.php 52、修正了管理组帐号被禁用后,仍然可以访
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值