You are here

本周六答疑继续解答了CCK图片字段多图片的显示问题

g089h515r806 的头像
Submitted by g089h515r806 on 星期六, 2010-02-06 15:14

问题:

野放客() 21:03:53
cck 创建的images字段 里有很多张图片在 node-project.tpl.php 怎么输出

解答:

葛红儒(55381091) 21:05:43
可以写一个循环
葛红儒(55381091) 21:05:52
也可以使用gallery模块
葛红儒(55381091) 21:06:06
galleria?

野放客() 21:06:06
是一张图片一个节点吗
葛红儒(55381091) 21:06:18
一章图片一个字段
野放客() 21:07:08
 
葛红儒(55381091) 21:07:18
一张图片一个字段是目前最主流的方式
葛红儒(55381091) 21:07:47
一张图片一个节点,也是一种常用的方式
野放客() 21:08:10
最是上次跟你说的,我的一个设计方案里需要好多张片的展示
葛红儒(55381091) 21:08:48
可以处理成为节点引用的形式,
葛红儒(55381091) 21:09:21
不过节点引用,现在本身也是一个字段了
葛红儒(55381091) 21:09:35
所以说,这两种方式没有本质区别
野放客() 21:10:24
http://www.thomaspucher.com/cms/index.php?idcat=43 还是个例子,我按你说的用imagefield 实现在这个效果
野放客() 21:11:34
但我需要重新输出时,不知道怎么输出在node-project.tpl.php
野放客() 21:13:47
 [field_images] => Array
        (
            [0] => Array
                (
                    [fid] => 97
                    [list] => 1
                    [data] => Array
                        (
                            [alt] => 01
                            [title] => 01
                        )

                    [uid] => 1
                    [filename] => 01.jpg
                    [filepath] => sites/default/files/images/project/9/01.jpg
                    [filemime] => image/jpeg
                    [filesize] => 53394
                    [status] => 1
                    [timestamp] => 1265445524
                    [origname] => 01.jpg
                    [nid] => 9
野放客() 21:14:12
有你说的<pre><?php print_r($node); ?></pre> 输出的看不太明白
葛红儒(55381091) 21:15:01

你对这个循环一次就可以了,
葛红儒(55381091) 21:15:06

写一个循环函数
葛红儒(55381091) 21:15:30
输出数组field_images下面的元素
葛红儒(55381091) 21:15:58
[filepath] => sites/default/files/images/project/9/01.jpg,只要提取到了这个
野放客() 21:16:10
哦,可帮我举个例子吗
葛红儒(55381091) 21:16:11

你就可以把它拼凑成img的形式
葛红儒(55381091) 21:16:21
我找一个啊
野放客(17643751) 21:16:29
好,谢谢
葛红儒(55381091) 21:17:07
默认没有把field_images这个字段输出么?
野放客() 21:18:21
我用默认模板显示是正常,就是你看到 的参照网站左边的图片效果
野放客() 21:18:35
原图列表行式
野放客() 21:19:15
一张接一张显示出来,但怎么查看他的模板里是怎么输出这样效果的
葛红儒(55381091) 21:24:28
我记得默认就是一张一张的从上向下排的
葛红儒(55381091) 21:24:57

只有需要特别的效果的时候,而默认的不是想要的,才自己负责输出
野放客() 21:25:10
对,但重写一个节点显示的话怎么象它一样输出
葛红儒(55381091) 21:25:27
你直接输出,这个字段
葛红儒(55381091) 21:26:13
我好长时间没有接触过这个问题了
野放客() 21:26:59
<?php print  $field_images [0][value] ?> 这样什么也出不来
葛红儒(55381091) 21:27:09
 
葛红儒(55381091) 21:27:33

在这里,选中exclude
葛红儒(55381091) 21:27:44
两个都选中
野放客() 21:28:03
这是什么地址的设置

。。。。

葛红儒(55381091) 21:28:32
我这是一个例子,我本地的
葛红儒(55381091) 21:28:52
然后直接输出<?php print  $field_images ?> ,可能就可以了

。。。。

葛红儒(55381091) 21:33:17
我记得是Display field里面配置一下就好了,
野放客() 21:33:35
我在看看
野放客() 21:35:33
exclude  为什么叫排除呢
葛红儒(55381091) 21:36:18
exclude 表示,它不显示在content里面

葛红儒(55381091) 21:38:12

把它独立为一个独立的字段,然后直接在模板中直接输出这个字段就可以了
葛红儒(55381091) 21:38:29
我印象中就是这样的

。。。

葛红儒(55381091) 21:48:06
 <?php if ($field_images[0]['view'] > '' ) : ?>
            <?php foreach($field_images as $item) { ?>
            <div class="company-logos">
            <?php print $item['view']; ?>
            </div>
            <?php } ?>
            <?php endif; ?>

葛红儒(55381091) 21:48:13

这样就可以了
野放客(17643751) 21:48:15
这个view 输出的吗+
葛红儒(55381091) 21:48:32

你使用我上面的代码就可以了
葛红儒(55381091) 21:49:04
 
葛红儒(55381091) 21:49:12

这段代码就可已搞定你的问题了
野放客() 21:49:20
好了,
野放客() 21:49:24
谢谢

野放客() 21:50:32
['view'] 这个就是显示的意思吗
野放客() 21:51:11
<?php foreach($field_images as $item) { ?>这个怎么理解

野放客() 21:52:34
field_images 里 的每个项目的意思吗
葛红儒(55381091) 21:55:05
['view'] 指的是数组中的一个键
葛红儒(55381091) 21:55:25
它指的是单个图片的输出文本
葛红儒(55381091) 21:55:44
野放客() 21:52:34
field_images 里 的每个项目的意思吗,
对,就是这个意思

正确答案就是上面给出的代码:这里重复一下:

 <?php if ($field_images[0]['view'] > '' ) : ?>
            <?php foreach($field_images as $item) { ?>
            <div class="company-logos">
            <?php print $item['view']; ?>
            </div>
            <?php } ?>
            <?php endif; ?>

 

Drupal版本: