Думаю, проще написать свой usel вида:
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="comments" method="comment" />
<category depth="1000">{1}</category>
</target>
<limit page="0">{limit}</limit>
</selection>
Допустим, файл, описывающий usel, называется getComments.xsl, тогда его вызов будет таким: usel://getComments/[id раздела, комментарии которого показывать]/?limit=[количество комментариев, которые показывать]
попробуйте все же usel запрос работая через data doSelection() макрос (см. подробнее в документации (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/shablony_dannyh/data_doselection/))
а xml usel файла вам уже написали выше он вполне подойдет с небольшим изменением
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="comments" method="comment" />
<category depth="1000">{1}</category>
</target>
<limit page="{3}">{2}</limit>
</selection>
В итоге, если ваш xml файл называется comments_usel, а езд шаблон для обработки результатов comments_usel_tpl, то вызов макроса будет выглядеть так:
%data doSelection(comments_usel_tpl,comments_usel,[id_страницы__комментариями],[количество_комментариев_выводимых_на_странице],[номер_страницы_с_комментариями])%
Например, вывод комментариев со страницы с id = 99:
1. вывод первых 3 комментариев: %data doSelection(comments_usel_tpl,comments_usel,99,3)%
2. вывод следующих 3 комментариев (с 4 по 6): %data doSelection(comments_usel_tpl,comments_usel,99,3,1)%
3. вывод всех комментариев (схитрим подставив заранее большое число комментариев во второй параметр): %data doSelection(comments_usel_tpl,comments_usel,99,1000000)%
К сожалению не работает.
%data doSelection(comments,comments_usel,77,2)% это вызов
это usel
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="comments" method="comment" />
<category depth="1000">{1}</category>
</target>
<limit page="{2}">{1}</limit>
</selection>
а здесь обработчик который находится в tpls/data/usel
<?php
$FORMS = Array();
$FORMS['comments_block'] = <<<COMMENT_BLOCK
<div class="right_column">
%lines%
</div>
COMMENT_BLOCK;
$FORMS['comments_block_line'] = <<<COMMENT_LINE_USER
<div class="right_column">
<div class="image_title" ><img src="../../images/img/ava.png"/></div>
<div class="coment_text">
<div class="comment_text" umi:element-id="%id%" umi:field-name="message" umi:delete="delete">
%message%
</div>
</div>
<div class="name">%nickname%</div>
<div class="firma" umi:element-id="%id%" umi:field-name="firma" >%firma%</div>
</div>
COMMENT_LINE_USER;
?>
Вроде бы все правильно сделал, как Вы и говорили, только вот оно ничего не выводит, к сожалению. Можете подсказать, что я не так сделал? Буду очень и очень признателен. Заранее спасибо.
Спасибо за ответ. Да, я знаю, только теперь требуют выводить только 2 комментария. Проблема в другом, мне кажется, что шаблон ТПЛ (который отвечает за обработку данных) я неправильно оформил. Только мои попытки вставить, что-то другое, ничего хорошего не дают.
П.С. Я так думаю потому что макрос вывода срабатывает (не пишет, что не найден шаблон) но ничего не выводит, абсолютно.
Друзья, помогите пожалуйста, очень нужна помощь. Очень важный момент.
П.П.С. я уже пробовал в тпл файле менять названия блоков-обработчика, вот так:
<?php
$FORMS = Array();
$FORMS['elements_block'] = <<<END
<p>Elements list (%total%/%per_page%)</p>
<ul>
%items%
</ul>
END;
$FORMS['elements_block_line'] = <<<END
<div class="image_title" ><img src="../../images/img/ava.png"/></div>
<div class="coment_text">
<div class="comment_text" umi:element-id="%id%" umi:field-name="message" umi:delete="delete">
%message%
</div>
</div>
<div class="name">%nickname%</div>
<div class="firma" umi:element-id="%id%" umi:field-name="firma" >%firma%</div>
END;
?>
Показывает только: Element list (2\77) - т.е. что- то оно видит, но, полей коментов (имени, фирмы и т.д.) нет :(
Неужели нет идей? Ребята, помогите, пожалуйста. Пополню моб. на 200 руб (или больше, если захотите) за помощь. Просто позарез нужна помощь.
Спасибо за оперативные ответы. Предоставляю файлы:
1: %data doSelection(default,comments_usel,77,2)%
2: XML файл:
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="comments" method="comment" />
<category depth="1000">{1}</category>
</target>
<limit page="{2}">{1}</limit>
</selection>
3: TPL файл обработки запроса
<?php
$FORMS = Array();
$FORMS['elements_block'] = <<<END
<p>Elements list (%total%/%per_page%)</p>
<div class="right_column">
<div>%message%</div>
%items%
</div>
END;
$FORMS['elements_block_line'] = <<<END
<div class="image_title" ><img src="../../images/img/ava.png"/></div>
<div class="coment_text">
<div class="comment_text" umi:element-id="%id%" umi:field-name="message" umi:delete="delete">
%message%
</div>
</div>
<div class="name">%nickname%</div>
<div class="firma" umi:element-id="%id%" umi:field-name="firma" >%firma%</div>
%id%
END;
?>
4: <div class="message">
<div class="title_coment">Отзывы</div>
%data doSelection(default,comments_usel,77,2)%
</div>
П.С. Срабатывает только эта часть TPL файла: <p>Elements list (%total%/%per_page%)</p> (выводит: Elements list (2/77) ) значит, что оно нашло 2 элемента удовлетворяющих запрос. Но вот всё что находится в блоке, который формирует Items - игнорируется. Не могу понять в чём проблема.
Vladimir, спасибо за реакцию: Я уже пробовал, проблема в том, что вроде бы работает, но, наполовину. Не выводит поля страницы (текст, автор, фирма и т.д.).
Не так Вас понял вначале. Наверное должно быть так? (Это то, что получается в конце). Если, что -то нужно еще - говорите, предоставлю всё что потребуется, только бы решить проблему.
<div class="super_middle_wrapper">
<div id = "middle_wrapper">
<div class="mid_sub">
<div id="zamanuha_wrapper">
<div class="zagolov">Оборудование для кафе б/у</div>
</div>
<p>Elements list (2/77)</p>
<div class="right_column">
<div>%message%</div>
</div>
</div>
</div>
</div>
</div>
Спасибо за оперативные ответы. Предоставляю файлы:
1: %data doSelection(default,comments_usel,77,2)%
2: XML файл:
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="comments" method="comment" />
<category depth="1000">{1}</category>
</target>
<limit page="{2}">{1}</limit>
</selection>
при вызове %data doSelection(default,comments_usel,77,2)% у вас получитсья запрос вида
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="comments" method="comment" />
<category depth="1000">77</category>
</target>
<limit page="2">77</limit>
</selection>
то есть вы будете пытаться получить комментарии из раздела с id = 77 в количистве по 77 комментариев на страницу и хотите вывести 2 страницу результатов, врядли у вас в данном разделе есть 78 и более комментариев, поэтому система не выводит ни одного item используя шаблон в блоке $FORMS['elements_block_line'] = <<<END
так что исправьте ошибку в своем usel шаблоне, как вам уже указывали выше
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="comments" method="comment" />
<category depth="1000">{1}</category>
</target>
<limit page="{3}">{2}</limit>
</selection>
и вызов сделайте так %data doSelection(default,comments_usel,77,2)%, при отсутствующем 3м параметре (то есть номере страницы результатов) система примет его равным 1.
P.S. и для тестинга не забывайте проверять все по частям. Например, для того чтобы исключить возможность того, что ошибка в результатах выборки, сделайте вызов того же usel файла через адресную строку таким образом /usel/comments_usel/77/2 и вы получите туже выборку что и при вызове макроса %data doSelection(default,comments_usel,77,2)%, только в xml виде
P.P.S. У вас может не хватит прав на просмотр результатов выборке через http протокол, о том как это изменить можно найти в документации по usel протоколу (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/)
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="comments" method="comment" />
<category depth="1000">{1}</category>
</target>
<limit page="{3}">{2}</limit>
<sort order="descending">updatetime</sort>
</selection>
Последние(относительно) комменты для umi 2.9.x для младших не знаю