我正在尝试使用php获取内容。但我的代码似乎不起作用。我正在使用ezcontentobjecttreenode::subtree
函数,但它显示以下错误:
Using $this when not in object context in /home/quejadore/site/kernel/classes/ezcontentobjecttreenode.php on line 2032
这是我的代码。
$params = $nodes =& eZContentObjectTreeNode::subTree( array(
'Depth' => 3,
'SortBy' => array( 'published', false),
'Limit' => 3,
'ClassFilterType' => 'include',
'ClassFilterArray' => array('article_v3'),
'Attribute_filter' => array(array('article_v3/on_newsletter', '=',true))));
$nodes =& eZContentObjectTreeNode::subTree( $params, 21312);
有人可以帮忙吗? Thanx提前
我现在已经编辑了我的代码(即使它还没有工作)。这就是我现在所拥有的:
$params = array('Depth' => 3,
'Limit' =>1,
'IgnoreVisibility' => true,
'Limitation' => array(),
'ClassFilterType' => 'include',
'ClassFilterArray' => array('article_v3'),
'AttributeFilter' => array(array('article_v3/on_newsletter','=',true)));
$obj = new eZContentObjectTreeNode;
$nodes = $obj->subTree($params, 21312);
$dataMap =$nodes->attribute( 'data_map' );
$image =& $dataMap['image']->content();
$list =& $image->aliasList();
var_dump( $list['original']['url'] );
答案 0 :(得分:1)
所以我找到了解决方案。这是我的代码:
$params = array(
'Depth' => 3,
'AsObject' => true,
'Limit' =>3,
'SortBy' => array( 'published', false),
'IgnoreVisibility' => true,
'Limitation' => array(),
'ClassFilterType' => 'include',
'ClassFilterArray' => array('article_v3'),
'AttributeFilter' => array(array('article_v3/on_newsletter', '=', true)));
$nodes = eZContentObjectTreeNode::subTreeByNodeID($params, 21312);
Thanx to all
答案 1 :(得分:0)
如果您需要知道如何在PHP中使用获取函数,请查看模板获取函数参考,在您的情况下:https://doc.ez.no/eZ-Publish/Technical-manual/4.x/Reference/Modules/content/Fetch-functions/tree
将参数替换为“已分类”版本:attribute_filter
变为AttributeFilter
,class_filter_type
变为ClassFilterArray
等等。请记住,eZ Publish会处理可见性和角色权限,即使您使用的是PHP API。如果您想忽略这一点,请在参数数组中使用'IgnoreVisibility' => true
。
此外,我不确定您要做什么,但您不需要使用&