如何覆写node中的submitted

特别声明:小站对部分原创文章已开启付费阅读,并开通年费VIP通道,年费价格为 ¥365.00元。如果您喜欢小站的内容,可以点击开通会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!(^_^)

        弄过drupal的,对blog中的submitted都不会太陌生吧,Submitted by admin on Tue, 04/12/2011 – 11:54这是其默认的一种风格,今天我们只要来看如何在drupal7中改写这种风格。

        首先我们来看看在drupal6中的实现方法:

        1、在相应的主题下,加上下面的代码

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')
  ));
}

      

       2、然后在node.tpl.php文件中加入

<?php if ($display_submitted): ?>
   <?php print $submitted ?>
<?php endif; ?>

 

        清除缓存就能看到改过后的效果了。

        上面是在drupal6下的修改方法,而我们今天的主题是如何在drupal7下改写。有人会说,就按上面那种方法不行吧,在我试过之后,是没有任何效果的,后来经查询才得知,在drupal7下好像是不存在这个么下theme_node_submitted()函数。如此下来我们为了要得到效果就需要通过其他的方法。现在我总罗列几种修改的方法

       第一种方法:

       我们在相应主题下的template.php下加入下面的代码

	
function html5_preprocess_node(&$variables) {
   $variables['submitted'] = t('By !username on !datetime', array('!username' => $variables['name'], '!datetime' => $variables['date']));
}

 

      加完之后同样需要在node.tpl.php下加入

<?php if ($display_submitted): ?>
   <?php print $submitted ?>
<?php endif; ?>

 

      这样才能显示出来的。

       第二种方法:

       直接在node.tpl.php下修改。也就是在node.tpl.php文件中加入

<?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; ?>

 

        如果还想修改日期格式,我们可以把代码换成

<?php
  print t('By !username on !datetime',
    array('!username' => $name, '!datetime' => format_date($node->created, 'custom', 'd M 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; ?>

 

       大家可以去尝试一下,如果有更好的办法记得告诉我哟。

       如需转载请注明出处:W3CPLUS

Nike Huaraches Are Hyped

如需转载,烦请注明出处:https://www.w3cplus.com/blog/37.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部