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);

Кто-нибудь может помочь, пожалуйста? Спасибо заранее

Я сейчас отредактировал свой код (даже если он все еще не работает). Вот что у меня сейчас:

$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

Решение

Если вам нужно знать, как использовать функции выборки в 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 в вашем массиве параметров.

Кроме того, я не уверен, что вы пытаетесь сделать, но вам не нужно вызывать этот метод по ссылке, используя &

0

Другие решения

Так что я нашел решение. Вот мой код:

$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);

Спасибо всем

0

По вопросам рекламы [email protected]