我已将我的问题编辑为对第一位评论者的回复。
我是PHP和Drupal模板的新手,也不是一位经验丰富的程序员。
我的组织全年都有活动。对于每个活动,我们都会为匿名用户或我们的会员(自定义角色)制作录音,扬声器幻灯片和其他材料。每个事件都有多个文件,以及它们是否可供匿名用户使用,或者我们的成员是逐个文件的。因此,某个事件可以为匿名用户提供某些文件,而其他文件仅供我们的成员使用。
我们正在使用ImageField扩展字段模块向文件上传添加字段,并有一个名为“Make Public”的复选框以及“Description”和“Sort Order”(我希望可以使用它来订购文件)在页面上显示......但这不是优先事项)。内容编辑器将选中该框以使匿名用户可以使用该文件,但默认情况仅适用于我们的成员。
第一位评论者表示,字段内容看起来像一个序列化数组:
a:3:{s:11:"description";s:50:"text text text text text";s:19:"fapi_sort_order_key";a:3:{s:4:"body";s:1:"1";s:6:"format";i:0;s:5:"style";s:9:"textfield";}s:29:"workflow_fapi_make_public_key";i:1;}
我想评估此字段以查看“workflow_fapi_make_public_key”部分是1还是0,并且node.tpl.php文件的显示方式会有所不同,具体取决于结果。
我从
开始<?php if ($node->field_eli_event_files_data[0]) : ?>
然后转到
<?php if (strpos($node->field_eli_event_files_data, '"workflow_fapi_make_public_key";i:0') !== FALSE) : ?>
<h1>Hi there!</h1>
<?php endif; ?>
。后一种说法总是错误的。
非常感谢任何关于如何最好地完成这项工作的建议。
感谢。
答案 0 :(得分:0)
您提交的字段的值是在数据库中找到的序列化表单,即用于在单个数据库文本字段中存储复杂变量值(本例中为数组)的字符串。您不会在节点对象中的任何位置找到此字符串。如果您需要更多相关信息,请参阅php.net网站上的serialize()和unserialize()函数文档。
如果您需要测试workflow_fapi_make_public_key
的值,您将在$node->field_IMAGEFIELD_NAME[0]['data']['workflow_fapi_make_public_key']
中找到它(您应该通过Devel模块或其他方式验证这一点以检查节点的内容)。