eZPublish用php获取内容

时间:2015-01-26 16:30:40

标签: php fetch ezpublish

我正在尝试使用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'] );

2 个答案:

答案 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变为AttributeFilterclass_filter_type变为ClassFilterArray等等。请记住,eZ Publish会处理可见性和角色权限,即使您使用的是PHP API。如果您想忽略这一点,请在参数数组中使用'IgnoreVisibility' => true

此外,我不确定您要做什么,但您不需要使用&

通过引用调用此方法