宅事

记录闲时弄的小东西

网上找了下,真没见到过讲pligg模板结构的中文文章,所以翻译了篇,原文链接在这儿.

这儿以Pligg CMS 1.03为例,原作者以Pligg Beta 9为例,但都大同小异.

模板文件都以文件夹的形式放在./templates中,如果要使用某模板,只要登录pligg后台在模板选项中输入此模板的文件夹名即可.

 

模板结构

Pligg是用php写的程序,你可以在index.php中的最后一行找到:

 $main_smarty->display($the_template . '/pligg.tpl');

这句话调用了模板的主文件Pligg.tpl,此文件会调用其他的模板文件(都是.tpl文件).

 模板文件大多有注释,注意观察,都是<!--内容-->的形式,注释中一般有各部分的起始位置,比如<!-- START CONTENT -->,<!-- START LEFT COLUMN -->,分别代表接下来是主体和左边栏的代码, 这儿以blustandard这个模板为例:

  • 第152行调用头部 {include file=$tpl_header.".tpl"}
  • 第210行调用右边栏  {include file=$tpl_right_sidebar.".tpl"}
  • 第215行调用中栏 {include file=$tpl_second_sidebar.".tpl"}
  • 第225行调用尾部 {include file=$tpl_footer.".tpl"}

这儿要注意,$tpl_right_sidebar是一个变量,你可以在./libs/smartyvariables.php中找到这些变量的值,对应真正的文件名,例如第74行:

$main_smarty->assign('tpl_right_sidebar', $the_template . '/sidebar');

个别变量在index.php中,比如$tpl_center对应index_center.

上面的代码指出pligg.tpl中调用的$tpl_right_sidebar.."tpl"(php语言用.来连接字符串),实际为引入文件sidebar.tpl

sidebar.tpl中又调用了其他的tpl,再配合css文件,就这么一个个小部分组成了整个页面.

 

语言类型

当你打开一个.tpl (用文本编辑器打开) 文件,可以看到很多中语言混杂在一起.

  • HTML: <div><a href>等等的标记,容易认出.
  • Script: 比如  <script type=”text/javascript”> 开头的内容为javascript语言.
  • Code: Pligg有自己的语言,都在大括号中,比如{checkActionsTpl location="tpl_pligg_footer_start"}
  • 变量: 在pligg中,有一些特殊的变量,都是这种形式#变量名#,这些变量的值关系到你页面上的显示,你可以登录到管理员后台后在lauguage中修改.

 

 

前面一篇讲了利用插件来调用Gravatar头像,但有时我们同一个网站需要不同大小的Gravatar头像,或是自定义Gravatar的默认头像,插件可能没这么多功能,所以我们来看看Gravatar网站提供的方法,可以实现全部功能.

html中只要插入  <img alt="Gravatars Icon" src = "Gravatar图像地址"> 就能实验调用,Gravatar图像地址可以带参数来实现不同功能.

举例说明图像地址,最简单的形式是:

http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802

其中后面的一串数字是Email地址的MD5码,MD5码的转换各平台不同,一般为md5(Email地址).

参数共3个,图像大小,默认图像和图像分级.举例:

http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?d=identicon&s=80&r=g

可以看到参数都加在?号后,之间用&连接.

1) d代表默认头像(给那些没设置Gravatar的用),Gravatar网站提供了 "identicon" "monsterid" and "wavatar" 这三种,也可以输入自定义的图像地址.

2) s代表图像大小,后面=80就是长宽都是80px.

3)r是分级,后面的值共有g, pg, r, x这4种,越往后限制级越高(暴力,情色图片),默认是g.

这句是我Habari中的调用语句,可以作为参考:

 <img alt="Gravatars Icon"

 src = "<?php echo "http://www.gravatar.com/avatar/".md5( $comment->email )."?s=25" ?>">

更详细的内容请看官方网站.