1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

Drupal的tags

本帖由 自由的风2007-11-28 发布。版面名称:源码讨论

  1. 自由的风

    自由的风 New Member

    注册:
    2007-11-05
    帖子:
    28
    赞:
    0
    请问怎么给Drupal的节点中加入tag?
    就像通常的blog那样
    那个awtags似乎没有针对5.3的版本了?
    知道的请回个话,非常感谢!
     
  2. laogui

    laogui Administrator
    管理成员

    注册:
    2005-08-30
    帖子:
    15,216
    赞:
    35
    drupal的分类就是tag,你如果选了“自由标签”就是tag功能了,
    你可以建两个词汇表,一个做主分类,一个做tag
     
  3. 自由的风

    自由的风 New Member

    注册:
    2007-11-05
    帖子:
    28
    赞:
    0
    谢谢老鬼!非常感谢!现在搞定了
    但是又遇到了几个问题:
    1.你提供的那个文章分类显示的代码,需要做一些修改,不然连tags也给显示出来了
    这个我用一个比较笨的办法实现了,就是指定一下vid
    2.那个文章的上一页下一页显示出现了问题,只要 添加了 tag,就不能正确显示
    ps:你的极客集 可以显示上下页的 文章标题,这个是怎么解决的?可否告知?
    3.通过theme区别显示一般分类与freetag标签:http://www.verydummy.com/blog/node/103
    这个已经搞定
     
  4. laogui

    laogui Administrator
    管理成员

    注册:
    2005-08-30
    帖子:
    15,216
    赞:
    35
    我的上一篇下一篇忘了参考哪篇文章了,下面是我的代码

    template.php

    PHP:
        function previous_node($node$previous_node_text=NULL$prepend_text=NULL$append_text=NULL)
        {  

            
    $query db_rewrite_sql("SELECT nid, title FROM {node} WHERE created < '%s' AND status=1 and promote=1 AND type='%s' ORDER BY created DESC LIMIT 1""node""nid");
           
            
    $result db_query($query$node->created$node->type);

           
    $previous_node db_fetch_object($result);

            if(!
    $previous_node_text// If previous_node_text is not specified then use the previous node's title as the text for the link.
            
    {
                
    $previous_node_text $previous_node->title;      
            }
          
            if(
    $previous_node->nid!=NULL)
            {
                return 
    $prepend_text.l($previous_node_text'node/'.$previous_node->nid, array('title'=>'上一篇 "'.$previous_node_text.'"''class'=>'goto-previous-node')).$append_text;
            }
            else 
    // This node does not have a previous node...
            
    {
                return 
    NULL;
            }
        }
    node.tpl.php

    PHP:
    <?php
            
    if($page!=0)
            {
                
    $previous_node_link previous_node($nodeNULL'&lt;&lt; 'NULL);
                
    $next_node_link next_node($nodeNULLNULL' &gt;&gt;');   
               
                print 
    '<div class="previous-next-links">';
                if(
    $previous_node_link && $next_node_link)
                {
                    print 
    $previous_node_link.' | '.$next_node_link;
                }
                else if(
    $previous_node_link)
                {
                    print 
    $previous_node_link;
                }
                else if(
    $next_node_link)
                {
                    print 
    $next_node_link;
                }
                print 
    '</div>';
            }
            
    ?>
     
  5. 自由的风

    自由的风 New Member

    注册:
    2007-11-05
    帖子:
    28
    赞:
    0
    改动了一下,可以不必写两个函数了,呵呵
    $previous_node_link = previous_node($node, NULL,'prev', '&lt;&lt; ', NULL);
    $next_node_link = previous_node($node, NULL,'next', NULL,'&gt;&gt; ');
     
  6. 自由的风

    自由的风 New Member

    注册:
    2007-11-05
    帖子:
    28
    赞:
    0
    这个代码顺便把第二个问题
    给解决了
    只是不能分类显示上下页
     
  7. 自由的风

    自由的风 New Member

    注册:
    2007-11-05
    帖子:
    28
    赞:
    0
  8. geniusy

    geniusy New Member

    注册:
    2007-11-21
    帖子:
    322
    赞:
    1
    其实文章分类显示可以用View,里面可以指定要显示的分类
     
  9. 自由的风

    自由的风 New Member

    注册:
    2007-11-05
    帖子:
    28
    赞:
    0
    能用最简单的方法实现就不要装模块,怕偶的破站跑不起啊~
     
  10. geniusy

    geniusy New Member

    注册:
    2007-11-21
    帖子:
    322
    赞:
    1
    还有一种方法,是通过taxonomy_get_tree函数实现的。与直接操作数据库有一个好处就是这种方法和view那种的数据都是经过缓存的,可以缓解数据库的压力。