国外设计欣赏网站 - DOOOOR.com

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

[Drupal教程] drupal覆写node中的submitted方法

[复制链接]
发表于 10-13-2011 02:43 | 显示全部楼层 |阅读模式
弄过drupal的,对blog中的submitted都不会太陌生吧,Submitted by admin on Tue, 04/12/2011 – 11:54这是其默认的一种风格,今天我们只要来看如何在drupal7中改写这种风格。* n% L7 H! t. @7 f6 e# E7 S
        首先我们来看看在drupal6中的实现方法:
+ @7 u1 J' {6 Q. _
. Y$ f4 R5 B+ a9 U  x0 F( Z1、在相应的主题下,加上下面的代码$ v8 ]/ Y5 u1 Q  m( Z: m: d  |
function yourthemename_node_submitted($node) {return t('Posted by !username on @datetime', array('!username' => theme('username', $node),'@datetime' => format_date($node->created, 'custom', 'd M Y')));}  Y# P8 K: Y/ Y- b& ^
3 S1 s, ^$ @( D1 l# o4 J
2、然后在node.tpl.php文件中加入" W" v( E, m, J7 l& X) W
<?php if ($display_submitted): ?>   <?php print $submitted ?><?php endif; ?>0 ^& n  X4 O- L( K9 z9 |
        清除缓存就能看到改过后的效果了。
- p0 i9 ^$ q' W" M$ E7 B        上面是在drupal6下的修改方法,而我们今天的主题是如何在drupal7下改写。有人会说,就按上面那种方法不行吧,在我试过之后,是没有任何效果的,后来经查询才得知,在drupal7下好像是不存在这个么下theme_node_submitted()函数。如此下来我们为了要得到效果就需要通过其他的方法。现在我总罗列几种修改的方法
' L, P9 T+ k# f3 \" f6 V7 I4 A+ O2 S; H7 }$ Y
第一种方法:7 G( W$ U5 Y; G3 ^$ f! G/ J
       我们在相应主题下的template.php下加入下面的代码% w: g7 ]# V; m1 t1 U
function html5_preprocess_node(&$variables) {   $variables['submitted'] = t('By !username on !datetime', array('!username' => $variables['name'], '!datetime' => $variables['date']));}
+ A; X% z1 ^- K1 D      加完之后同样需要在node.tpl.php下加入8 L/ `) |$ Z/ {2 r7 a
<?php if ($display_submitted): ?>   <?php print $submitted ?><?php endif; ?>
$ T" x; K+ ~" \$ }      这样才能显示出来的。
( x8 D% `4 l! R) p: ?* v
( a7 k# q- L0 s' X6 x1 X5 X& V第二种方法:, w% u/ u- ^2 w6 Z- j; {" F
       直接在node.tpl.php下修改。也就是在node.tpl.php文件中加入* U7 M* L; i# q0 E& n, e
<?php if ($display_submitted): ?>    <footer class="author">       <?php            print t('By !username on !datetime',              array('!username' => $name, '!datetime' => format_date($node->created)));        ?>   </footer><?php endif; ?>
3 A/ B: J2 }) n  P" H        如果还想修改日期格式,我们可以把代码换成% W4 u9 K8 I% k9 w  T: R' ?
<?php  print t('By !username on !datetime',   array('!username' => $name, '!datetime' => format_date($node->created, 'custom', 'd M Y')));?># V; D# i: A7 o8 _6 D' V% A, J
" X3 P' |- [) H) O4 Q$ [2 _
第三种方法:& U0 }$ G9 |9 i
        这种方法和第二种是一样的,只是我们把上面的分成了两部分,有时为了更好的布局,所以我现在拆开来放
* q' B! Q9 I: t8 a3 [  y<?php if ($display_submitted): ?>  <footer class="author">    <div class="username">      <?php  print t('By !username',array('!username'=> $name)); ?>    </div>    <div class="date">                 <?php print t('on !datetime',array('!datetime'=>format_date($node->created, 'custom', 'Md, Y')));  ?>    </div>  </footer><?php endif; ?>% d* y: l( {0 p3 y

: x" \+ m' n1 k* C$ Y& I9 C- \) f* J. q  g4 \7 E! G
       如需转载请注明出处:W3CPLUS
/ F# c6 Y6 E: S7 [* Y; {& P3 a- F
/ D, e6 T5 @6 }2 `8 V$ r2 F

|2011-2026-版权声明|平台(网站)公约|手机版|手机版|DOOOOR 设计网 ( 吉ICP备2022003869号 )

GMT+8, 11-11-2025 23:11 , Processed in 0.298696 second(s), 74 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表