使用CCK在Drupal 6中的模板中添加链接字段

时间:2011-06-06 04:15:54

标签: drupal drupal-6 themes cck drupal-themes

晚安,

我正在使用Drupal 6,CCK模块和链接字段类型。所有都已安装并激活。

我创建了一个名为Slider的自定义内容类型。用户可以上传图像,标题和预告片。我为该滑块内容类型创建了一个自定义字段,并为字段名称创建了一个名为Link的字段:“field_link_test”。

我创建了一个条目,填入了所有数据,包括该链接字段类型的URL,然后单击“保存”。在views-view-table - slider.tpl.php中,我添加了:

 <a href="<?php print $node->field_link_test[0]['url'] ?>">Learn More</a>

但在前端,除了该链接外,一切都显示出来。我也尝试清空Drupal缓存。

有什么想法吗?

更新下面的模板代码,一切正常,但新链接值不输出任何内容。

<div id="slider">
<div class="slider-holder">
    <?php foreach($rows as $row): ?>
    <div class="slide">
        <?php print $row['field_image_fid'] ?>
        <div class="info-slide">
            <h2><?php print $row['title'] ?></h2> 
            <p><?php print strip_tags($row['teaser']) ?></p>
            <a href="<?php print $node->field_link_test[0]['url'] ?>">Learn More</a>
        </div><!--INFO-SLIDE-->
    </div><!--SLIDE--> 
    <?php endforeach ?>
</div><!--SLIDER-HOLDER-->
<div id="control">

</div>
</div><!--SLIDER-->

3 个答案:

答案 0 :(得分:1)

简单的可能性(您可能已经检查过,但只是为了让它们不受影响):

  • 您需要允许匿名/经过身份验证的用户在“用户管理 - 权限”中查看该字段

否则,如果没有一些代码进行分析,很难说清楚。你可以发布你的整个views-view-table - slide.tpl.php,如果可能的话,你的导出视图或导出视图的链接?

修改

既然我有机会看到你的观点,我做了一些应该有所帮助的改变。

您的链接网址未显示的原因是您在视图中包含“节点:链接”字段,而不是“内容:链接(field_link_test)”字段。第一个将只链接回原始节点而不是您的自定义链接。另外,我认为你不能从views-view-table调用$node变量(至少,我打印时没有得到任何东西。相反,你可以使用$row变量。

我的模板版本会在“link_test”字段中打印出标有“了解更多”标签的网址。我在“视图”中放置了“了解更多”文本,因为使用“链接CCK”类型(默认情况下,您希望添加在节点编辑屏幕中添加的标题)更容易编辑和更好地工作。

视图导出位于:http://pastebin.me/0ed2942f6953cb00cab1bd5386058a13。您可以将其重新导入您的站点,但您可能希望首先克隆原始View以进行备份,这样如果这不是您想要的,您可以使用旧版本。

更新的tpl是:

<div id="slider">
<div class="slider-holder">
    <?php foreach($rows as $row): ?>
    <div class="slide">
        <?php print $row['field_image_fid'] ?>
        <div class="info-slide">
            <h2><?php print $row['title'] ?></h2> 
            <p><?php print strip_tags($row['teaser']) ?></p>
            <?php print $row['field_link_test_url'] ?>
            <?php //print_r($row); ?>

        </div><!--INFO-SLIDE-->
    </div><!--SLIDE--> 
    <?php endforeach ?>
</div><!--SLIDER-HOLDER-->
<div id="control">

</div>
</div><!--SLIDER-->

如果您有任何问题/问题,请告诉我。

答案 1 :(得分:0)

你确定模板被拾取了吗(在href上面添加<p>heavymark</p> ...它会显示吗?)?

如果出现上述情况,请在锚标记上方添加一个var_dump($ node)并发布输出,以便我们更好地了解其中的内容(您可能希望启用XDebug,以便获得更好的格式化输出,如果它还没有开。)

答案 2 :(得分:0)

确保将链接字段添加到字段部分中的视图中。这应该允许它在模板文件中可以设置为主题。如果您还没有看到它,请尝试使用

的print_r($行,1);

或print_r的某个变量,以查看可用于主题的所有行。