Вывести статьи автора на странице автора

Вывод в шаблоне:
[[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]]'));
Работает, но выводит не только статьи автора страницы, но и статьи других авторов.
Готов заплатить за помощь.
Виноградов Тимур
10 февраля 2021, 16:46
modx.pro
686
0

Комментарии: 20

Артур Шевченко
10 февраля 2021, 20:25
0
В возможных параметрах у вас заголовок и id страницы статьи? 'parents'=>89 — это что? список статей? список авторов? И вообще почему LIKE? Вам же нужно точное совпадение, должно быть =
    Виноградов Тимур
    11 февраля 2021, 13:41
    0
    &parents=`4,89`
    4 — это родитель ресурсов автора — страницы автора
    89 — это родитель(ресурс блог) — страницы блога, т.е. да, список статей
      Александр Мельник
      11 февраля 2021, 13:53
      0
      Тогда у вас неверно заполняются значения ТВ поля.
      Если вы говорите что 89 это родитель статей, то почему вы его используете в EVAL привязке?
      У вас вместо имен авторов, в ТВ поле значит попадают имена статей. (если быть совсем корректным то идентификаторы. )
        Виноградов Тимур
        11 февраля 2021, 13:57
        0
        Может быть будет проще если отправлю скрины в мессенджере?
        Там на самом деле чехарда есть с выводом этих авторов, не знаю что именно показывать лучше.
    Александр Мельник
    10 февраля 2021, 21:34
    0
    Что-то такое странное у вас написано, хаос какой-то.
    Если вы четко распишите как у вас все организовано и что хотите добиться, вероятность что вам помогут сильно увеличится.

    Вы говорите -имя автора, но судя по этому
    @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.
      Виноградов Тимур
      11 февраля 2021, 13:42
      0
      Да, дело в том что автор как отдельное TV-поле используется, не как родная сущность users
      Александр Мельник
      10 февраля 2021, 21:43
      0
      У вас видимо есть страница автора
      и вы хотите чтобы перейдя на нее, были видны и 6 новостей, написанных этим автором.
      Но совершенно не ясно, что в вашей логике — имя автора?
      Плюс Вы же понимаете, что у вас [[*autor-res]] — это число? Это идентификатор.
      Поэтому выборка LIKE применительно к числу, будет давать непредсказуемые результаты.
        Виноградов Тимур
        11 февраля 2021, 13:43
        0
        Пробовал ставить "=" по документации с where, не работает
          Александр Мельник
          11 февраля 2021, 13:49
          0
          дело не только в равно.
          во первых символ равно не нужно ставить, условие в json формате будет такое {«text»:«hello»}
          Но у вас и без "=" мешанина в коде жуткая.
          У вас 89 это родитель ресурсов, в которых хранятся имена авторов.
          Но этот же родитель 89 у вас участвует в выборке, которая должна выводить новости.
          Что-то странное у вас твориться и я по прежнему считаю, что пока вы детально со скринами не расскажите, что вы там напридумывали, никто вам не сможет помочь.
        Nik
        Nik
        11 февраля 2021, 10:54
        0
        «Вывести статьи автора на странице автора» может быть так:
        [[!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]]}`                  
        ]]
        Выводит список статей автора Сергей Н. на его странице, только значения свои подставьте. Или что-то другое имелось ввиду?
          Виноградов Тимур
          11 февраля 2021, 13:44
          0
          В шаблоне статьи автор выводится вот так:
          <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>
            Виноградов Тимур
            11 февраля 2021, 13:47
            0
            Моя почта:
            mechmedia@yandex.ru
            Телеграм:
            @Timurkin

            Если кто-то готов помочь за вознаграждение.
              Alexey
              11 февраля 2021, 13:49
              0
              Прямо глаз режет тире в названии tv-поля. Могу ошибаться, но где-то видел пост, как раз связанный с такого плана именованием и проблемой в выполнении запроса.

              Не зря же тире не входит в список разрешенных символов для именования переменных в php. Попробуйте сменить тире на нижнее подчеркивание.

              И, да — LIKE в данном случае неуместен, полностью согласен с Артуром и Александром.
                Nik
                Nik
                11 февраля 2021, 15:05
                0
                Тоже показалось что когда-то я уже видел это
                  Виноградов Тимур
                  11 февраля 2021, 15:24
                  0
                  Да, мне тогда помог форумчанин, а сейчас надо доработать немного.
                Евгений
                12 февраля 2021, 08:07
                0
                Решили вопрос?
                  Виноградов Тимур
                  16 февраля 2021, 09:56
                  0
                  Пока нет.
                    Евгений
                    16 февраля 2021, 11:46
                    0
                    Напишите мне на info@new-content.ru
                      Виноградов Тимур
                      17 февраля 2021, 12:47
                      0
                      Евгений, спасибо за помощь в решении задачи.

                      Остальным спасибо за подсказки и участие.
                      С кодом все в порядке, проблема была банальна, надо было использовать в where другое tv-поле автора(не было связи с нужным tv-полем).
                        Евгений
                        17 февраля 2021, 12:49
                        0
                        Спасибо за отзыв!
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  20