当我练习《drupal实战》到第4章 制作主题 4.3.5 嵌入动态的PHP变量时,发现如图4-37通过PHP代码输出封面图片时,原来print render($content);输出的内容中封面图片不见了,觉得奇怪,原以为render($content);出来的内容不变的,请教葛大师解释解释,被茅塞住挺难受的,谢谢! 论坛: 有问必答Drupal版本: drupal7 print print render($content);,你可能在别的什么地方配置了,不显示图片了。 除了默认的使用print render($content);,以外, 实际上模板覆写时,我们都是这样写的: print render($content['field_your_field_nme']);, 没有在别的地方配置了不显示图片,确定!还望分析解决!!! 这个问题是偶然被注意到的,反复思考检查,不得其解,我觉得问题牵涉较深,所以还请老葛分析解决为好。 在一步一步完善node--book.tpl.php模板文件过程中,我是很仔细照着书上练习的,最后才删除node.tpl.php原来自带的代码片段(其中就有print render($content);这一句的)。 详情请见《Drupal实战》P127,就是在print render($content);之前加入了<?php print render($content['uc_product_image']); ?>后,在<?php print render($content['uc_product_image']); ?>对应的位置显示了封面图片,而在print render($content);对应位置原本有显示封面图片的,却不显示了。如果注释掉前面的print render($content['uc_product_image']);它就会重新显示出来。这也说明不是在别的什么地方配置了不显示图片的问题了。 另外,我看到老葛书中模板覆写时有的地方用print render($content['field_your_field_name']);,如在node--book.tpl.php文件中,有的地方用print $fields['field_your_field_name'] -> content;,如在views-view-fields--books.tpl.php文件中。 就是在print 就是在print render($content);之前加入了<?php print render($content['uc_product_image']); ?>后,在<?php print render($content['uc_product_image']); ?>对应的位置显示了封面图片,而在print render($content);对应位置原本有显示封面图片的,却不显示了。如果注释掉前面的print render($content['uc_product_image']);它就会重新显示出来。 Drupal 就是这样工作,因为你在前面已经输出了图片字段,所在再print render($content);时,这个图片已经显示过了,就不会再重复显示了。 Drupal的内容呈现是通过Render array完成的,每一段内容可以看成一个元素,每个元素都有一个printed属性,在一个页面请求过程中,如果一个元素的printed被标记为了TURE,那么它就不会再次输出。 原来如此,能理解了,谢谢!赞一下老葛的专业精神,敬佩!!! 原来print render($content);与print render($content['fieldname']);还有不一样的工作流程。后者不管是在前或后都会输出相应的内容,而前者不然。 老葛,您写的书很专业,富有项目开发经验,把处理问题的细节也叙述了,我很喜欢。drupal是灵活强大,但是在国内用它开发电子商务网站的还不多吧,看看uc_alipay的安装量才几个,现在的问题是如何推广drupal,老葛在这方面做出了很多贡献,希望有更多您这样的专业人士帮助我这样的drupal业余爱好者。再一次谢谢!!!
print print render($content);,你可能在别的什么地方配置了,不显示图片了。 除了默认的使用print render($content);,以外, 实际上模板覆写时,我们都是这样写的: print render($content['field_your_field_nme']);,
没有在别的地方配置了不显示图片,确定!还望分析解决!!! 这个问题是偶然被注意到的,反复思考检查,不得其解,我觉得问题牵涉较深,所以还请老葛分析解决为好。 在一步一步完善node--book.tpl.php模板文件过程中,我是很仔细照着书上练习的,最后才删除node.tpl.php原来自带的代码片段(其中就有print render($content);这一句的)。 详情请见《Drupal实战》P127,就是在print render($content);之前加入了<?php print render($content['uc_product_image']); ?>后,在<?php print render($content['uc_product_image']); ?>对应的位置显示了封面图片,而在print render($content);对应位置原本有显示封面图片的,却不显示了。如果注释掉前面的print render($content['uc_product_image']);它就会重新显示出来。这也说明不是在别的什么地方配置了不显示图片的问题了。 另外,我看到老葛书中模板覆写时有的地方用print render($content['field_your_field_name']);,如在node--book.tpl.php文件中,有的地方用print $fields['field_your_field_name'] -> content;,如在views-view-fields--books.tpl.php文件中。
就是在print 就是在print render($content);之前加入了<?php print render($content['uc_product_image']); ?>后,在<?php print render($content['uc_product_image']); ?>对应的位置显示了封面图片,而在print render($content);对应位置原本有显示封面图片的,却不显示了。如果注释掉前面的print render($content['uc_product_image']);它就会重新显示出来。 Drupal 就是这样工作,因为你在前面已经输出了图片字段,所在再print render($content);时,这个图片已经显示过了,就不会再重复显示了。 Drupal的内容呈现是通过Render array完成的,每一段内容可以看成一个元素,每个元素都有一个printed属性,在一个页面请求过程中,如果一个元素的printed被标记为了TURE,那么它就不会再次输出。
原来如此,能理解了,谢谢!赞一下老葛的专业精神,敬佩!!! 原来print render($content);与print render($content['fieldname']);还有不一样的工作流程。后者不管是在前或后都会输出相应的内容,而前者不然。 老葛,您写的书很专业,富有项目开发经验,把处理问题的细节也叙述了,我很喜欢。drupal是灵活强大,但是在国内用它开发电子商务网站的还不多吧,看看uc_alipay的安装量才几个,现在的问题是如何推广drupal,老葛在这方面做出了很多贡献,希望有更多您这样的专业人士帮助我这样的drupal业余爱好者。再一次谢谢!!!
print
print render($content);,你可能在别的什么地方配置了,不显示图片了。
除了默认的使用print render($content);,以外,
实际上模板覆写时,我们都是这样写的:
print render($content['field_your_field_nme']);,
没有在别的地方配置了不显示图片,确定!还望分析解决!!!
这个问题是偶然被注意到的,反复思考检查,不得其解,我觉得问题牵涉较深,所以还请老葛分析解决为好。
在一步一步完善node--book.tpl.php模板文件过程中,我是很仔细照着书上练习的,最后才删除node.tpl.php原来自带的代码片段(其中就有print render($content);这一句的)。
详情请见《Drupal实战》P127,就是在print render($content);之前加入了<?php print render($content['uc_product_image']); ?>后,在<?php print render($content['uc_product_image']); ?>对应的位置显示了封面图片,而在print render($content);对应位置原本有显示封面图片的,却不显示了。如果注释掉前面的print render($content['uc_product_image']);它就会重新显示出来。这也说明不是在别的什么地方配置了不显示图片的问题了。
另外,我看到老葛书中模板覆写时有的地方用print render($content['field_your_field_name']);,如在node--book.tpl.php文件中,有的地方用print $fields['field_your_field_name'] -> content;,如在views-view-fields--books.tpl.php文件中。
就是在print
就是在print render($content);之前加入了<?php print render($content['uc_product_image']); ?>后,在<?php print render($content['uc_product_image']); ?>对应的位置显示了封面图片,而在print render($content);对应位置原本有显示封面图片的,却不显示了。如果注释掉前面的print render($content['uc_product_image']);它就会重新显示出来。
Drupal 就是这样工作,因为你在前面已经输出了图片字段,所在再print render($content);时,这个图片已经显示过了,就不会再重复显示了。
Drupal的内容呈现是通过Render array完成的,每一段内容可以看成一个元素,每个元素都有一个printed属性,在一个页面请求过程中,如果一个元素的printed被标记为了TURE,那么它就不会再次输出。
原来如此,能理解了,谢谢!赞一下老葛的专业精神,敬佩!!!
原来print render($content);与print render($content['fieldname']);还有不一样的工作流程。后者不管是在前或后都会输出相应的内容,而前者不然。
老葛,您写的书很专业,富有项目开发经验,把处理问题的细节也叙述了,我很喜欢。drupal是灵活强大,但是在国内用它开发电子商务网站的还不多吧,看看uc_alipay的安装量才几个,现在的问题是如何推广drupal,老葛在这方面做出了很多贡献,希望有更多您这样的专业人士帮助我这样的drupal业余爱好者。再一次谢谢!!!