Вывести статьи автора на странице автора
Вывод в шаблоне:
Готов заплатить за помощь.
[[pdoResources?
&parents=`4,89`
&depth=`10`
&limit=`6`
&tvPrefix=``
&includeTVs=`autor-res,image`
&tpl=`autor-articles`
&where={"autor-res:LIKE":"%[[*autor-res]]%"}
]]
TV-поле autor-res, возможные значения в параметрах ввода:@EVAL return $modx->runSnippet('pdoResources',array('parents'=>89,'depth'=>0,'limit'=>0,'sortby'=>'menuindex','sortdir'=>'ASC','tpl'=>'@INLINE [[+pagetitle]]==[[+id]]||','tplLast'=>'@INLINE [[+pagetitle]]==[[+id]]'));
Работает, но выводит не только статьи автора страницы, но и статьи других авторов.Готов заплатить за помощь.
Комментарии: 20
В возможных параметрах у вас заголовок и id страницы статьи? 'parents'=>89 — это что? список статей? список авторов? И вообще почему LIKE? Вам же нужно точное совпадение, должно быть =
&parents=`4,89`
4 — это родитель ресурсов автора — страницы автора
89 — это родитель(ресурс блог) — страницы блога, т.е. да, список статей
4 — это родитель ресурсов автора — страницы автора
89 — это родитель(ресурс блог) — страницы блога, т.е. да, список статей
Тогда у вас неверно заполняются значения ТВ поля.
Если вы говорите что 89 это родитель статей, то почему вы его используете в EVAL привязке?
У вас вместо имен авторов, в ТВ поле значит попадают имена статей. (если быть совсем корректным то идентификаторы. )
Если вы говорите что 89 это родитель статей, то почему вы его используете в EVAL привязке?
У вас вместо имен авторов, в ТВ поле значит попадают имена статей. (если быть совсем корректным то идентификаторы. )
Может быть будет проще если отправлю скрины в мессенджере?
Там на самом деле чехарда есть с выводом этих авторов, не знаю что именно показывать лучше.
Там на самом деле чехарда есть с выводом этих авторов, не знаю что именно показывать лучше.
Что-то такое странное у вас написано, хаос какой-то.
Если вы четко распишите как у вас все организовано и что хотите добиться, вероятность что вам помогут сильно увеличится.
Вы говорите -имя автора, но судя по этому
А для большинства людей, это имена пользователей (users). В modx есть сущность user и именно он подразумевается как автор.
Не понятно, как и написал Артур, зачем вы используете LIKE
Не понятно где именно вы вызываете сниппет pdoResources, а следовательно непонятно есть ли там ТВ [[*autor-res]] которое вы так лихо поместили в where.
Если вы четко распишите как у вас все организовано и что хотите добиться, вероятность что вам помогут сильно увеличится.
Вы говорите -имя автора, но судя по этому
@EVAL return $modx->runSnippet('pdoResources',array('parents'=>89,'depth'=>0,'limit'=>0,'sortby'=>'menuindex','sortdir'=>'ASC','tpl'=>'@INLINE [[+pagetitle]]==[[+id]]||','tplLast'=>'@INLINE [[+pagetitle]]==[[+id]]'));
у вас имя автора — это просто названия каких-то ресурсов. А для большинства людей, это имена пользователей (users). В modx есть сущность user и именно он подразумевается как автор.
Не понятно, как и написал Артур, зачем вы используете LIKE
Не понятно где именно вы вызываете сниппет pdoResources, а следовательно непонятно есть ли там ТВ [[*autor-res]] которое вы так лихо поместили в where.
Да, дело в том что автор как отдельное TV-поле используется, не как родная сущность users
У вас видимо есть страница автора
и вы хотите чтобы перейдя на нее, были видны и 6 новостей, написанных этим автором.
Но совершенно не ясно, что в вашей логике — имя автора?
Плюс Вы же понимаете, что у вас [[*autor-res]] — это число? Это идентификатор.
Поэтому выборка LIKE применительно к числу, будет давать непредсказуемые результаты.
и вы хотите чтобы перейдя на нее, были видны и 6 новостей, написанных этим автором.
Но совершенно не ясно, что в вашей логике — имя автора?
Плюс Вы же понимаете, что у вас [[*autor-res]] — это число? Это идентификатор.
Поэтому выборка LIKE применительно к числу, будет давать непредсказуемые результаты.
Пробовал ставить "=" по документации с where, не работает
дело не только в равно.
во первых символ равно не нужно ставить, условие в json формате будет такое {«text»:«hello»}
Но у вас и без "=" мешанина в коде жуткая.
У вас 89 это родитель ресурсов, в которых хранятся имена авторов.
Но этот же родитель 89 у вас участвует в выборке, которая должна выводить новости.
Что-то странное у вас твориться и я по прежнему считаю, что пока вы детально со скринами не расскажите, что вы там напридумывали, никто вам не сможет помочь.
во первых символ равно не нужно ставить, условие в json формате будет такое {«text»:«hello»}
Но у вас и без "=" мешанина в коде жуткая.
У вас 89 это родитель ресурсов, в которых хранятся имена авторов.
Но этот же родитель 89 у вас участвует в выборке, которая должна выводить новости.
Что-то странное у вас твориться и я по прежнему считаю, что пока вы детально со скринами не расскажите, что вы там напридумывали, никто вам не сможет помочь.
«Вывести статьи автора на странице автора» может быть так:
[[!pdoResources?
&parents=`8`
&depth=`10`
&limit=`6`
&includeTVs=`authors`
&tpl=`@INLINE
<h2><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h2>
<ul>
<li>Автор(ы): [[+tv.authors]]</li>
</ul>`
&where=`{"createdby":[[!+modx.user.id]]}`
]]
Выводит список статей автора Сергей Н. на его странице, только значения свои подставьте. Или что-то другое имелось ввиду?
В шаблоне статьи автор выводится вот так:
<div class="row">
[[#[[*autor-res]].autor-image:!empty=`
<div class="col-md-2 col-sm-2 col-xs-4">
<div class="autor-article">
<a href="[[~[[*autor-res]]]]"><img src="[[#[[*autor-res]].autor-image]]" class="img-circle"></a>
</div>
</div>
`]]
<div class="col-md-5 col-sm-5 col-xs-8">
<span itemprop="author" itemscope itemtype="http://schema.org/Person" class="author-title publishedby">
<a href="[[~[[*autor-res]]]]"><span itemprop="name">[[#[[*autor-res]].pagetitle]]</span></a>
</span>
[[#[[*autor-res]].autor-subject:!empty=`
<p>[[#[[*autor-res]].autor-subject]]</p>
`]]
</div>
<div class="col-md-5 col-sm-5 col-xs-12">
<div class="info-article">
<div class="category">
<span itemprop="datePublished" class="publishedon">[[*publishedon:strtotime:date=`%d-%m-%Y`]]</span>
[[getCategoryLink]]
</div>
</div>
</div>
</div>
Прямо глаз режет тире в названии tv-поля. Могу ошибаться, но где-то видел пост, как раз связанный с такого плана именованием и проблемой в выполнении запроса.
Не зря же тире не входит в список разрешенных символов для именования переменных в php. Попробуйте сменить тире на нижнее подчеркивание.
И, да — LIKE в данном случае неуместен, полностью согласен с Артуром и Александром.
Не зря же тире не входит в список разрешенных символов для именования переменных в php. Попробуйте сменить тире на нижнее подчеркивание.
И, да — LIKE в данном случае неуместен, полностью согласен с Артуром и Александром.
Тоже показалось что когда-то я уже видел это
Да, мне тогда помог форумчанин, а сейчас надо доработать немного.
Решили вопрос?
Пока нет.
Напишите мне на info@new-content.ru
Евгений, спасибо за помощь в решении задачи.
Остальным спасибо за подсказки и участие.
С кодом все в порядке, проблема была банальна, надо было использовать в where другое tv-поле автора(не было связи с нужным tv-полем).
Остальным спасибо за подсказки и участие.
С кодом все в порядке, проблема была банальна, надо было использовать в where другое tv-поле автора(не было связи с нужным tv-полем).
Спасибо за отзыв!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.