Павел Романов

Павел Романов

Был в сети 30 июля 2026, 15:23
Заказы принимаю
Так в логе же:

[2016-06-15 19:03:26] (ERROR @ /home/s5689/www/core/components/formit/model/formit/fihooks.class.php : 552) [FormIt] Произошла ошибка при попытке отправить почту. Невозможно запустить функцию mail.

И у многих хостеров на тестовый период mail() отключена (TimeWeb, например).
Последний вызов пытается вывести записи блога, дочерние по отношению к тому ресурсу, который открыт.
Если открыта статья, то, естественно, он ничего не выводит, поскольку у нее нет «дочек».

Если Вам нужно выводить последние шесть записей на странице статьи, то задайте родителя в качестве &parents (естественно, если все статьи в одном контейнере):
[[pdoResources?
    &parents=`[[*parent]]`	
    &resources=`-[[*id]]`
    &tpl=`BlogLastItems`
    &depth=`0`
    &limit=`6`
]]
В первом случае Вы просто указываете конкретную TV-шку, которую брать в качестве основы для вывода (привязывать к шаблонам ее не обязательно). Удобно, если используется отдельный источник файлов.
Во втором случае вы указываете только тип TV, который использовать. В данном случае источник файлов будет умолчальным.

Но, чтобы не ошибиться можно делать нужный вывод не кодом, а через конфигурации. Оно на первый взгляд кажется сложнее, но зато надежно )).

Идете в MIGX и создаете новую конфигурацию:



Указываете название:



Добавляете форму:



и поле нужного типа:



Можете указать свой источник файлов:



Сохраняете форму и добавляете нужные колонки и настройки:



Рендер для поля:



Если нужно, редактор:


Сохраняете все.

Ну а в TV просто прописываете имя конфигурации:



Для копирования конфигураций можно использовать импорт/экспорт:


Тогда Вам нужно сперва определиться, что именно хочется ))

Если Вы хотите, чтобы у категорий работ были собственные страницы, то сделайте их и используйте метод, который я описал выше.

Если достаточно GET-параметра в URL, то можно сделать просто на тегах с помощью, к примеру,
tagLister или просто TV типа «Авто метка» и выборки в pdoResources:
&tvFilters=`category==%[[!#GET.tag]]%`

Если нужно вообще все на одной странице, то можете воспользоваться чем-нибудь типа этого
Ну или mSearch2 поставьте и сделайте фильтрацию посредством mFilter2.
Попробуйте тогда так:

<?php
$list = $modx->runSnippet('pdoResources', array(
'parents'=>4,
'includeTVs'=>'yearProgect',
'limit'=>0,
'depth'=>1,
'tpl'=>'@INLINE [[+tv.yearProgect]]',
'outputSeparator'=>'|',
'sortby'=>'{"yearProgect":"ASC"}'
));
$arr = explode('|', $list);
$uarr = array_unique($arr);

foreach($uarr as $val){
    $string .= '
    <ul>
        <li><a href="#">'.$val.'</a><li>
    </ul>
    ';
}
return $string;
Делаете у работ TV «categories» типа «Множественный выбор» или «Чекбокс».
В возможных значениях прописываете:

Категория1==#ID_категории_1#||
Категория2==#ID_категории_2#||
Категория3==#ID_категории_3#||
Категория4==#ID_категории_4#||
Категория5==#ID_категории_5#

Или (если набор категорий на сайте часто меняется и хочется автоматизации) то так:
@EVAL return $modx->runSnippet('pdoResources',array('parents'=>ID_родителя_категорий,'limit'=>0,'tpl'=>'@INLINE [[+pagetitle]]==#[[+id]]#','outputSeparator'=>'||'));

Выборку работ в самой категории делаете с помощью tvFilters:
[[pdoResources?
&tvFilters=`categories==%#[[*id]]#%`
....
]]