Иногда бывает нужным создать тему на форуме только когда к статье написали первый комментарий. И у статьи должна быть всегда ссылка "обсудить на форуме". Если комментариев нет, то и темы нет. Написали первый комментарий - тема создалась.
[spoiler]
Да, есть стандартный компонент "отзывы", но его минус в том, что приходится на странице статьи терпеть форму отправки и комментарии. В общем задача сводится к тому, чтобы на странице статьи оставить только ссылку "обсудить на форуме". Делается это следующим образом - прибегаем к помощи событий форума.
1. В инфоблоке статей заводим два свойства FORUM_ID и TOPIC_ID (тип строка или число). При добавлении статьи пишем только FORUM_ID - это ID форума, куда будут складироваться новые статьи. TOPIC_ID не трогаем.
2. В настройках вывода свойств для статьи (в компоненте) настраиваем чтобы выводились эти два свойства.
3. Кастомизируем news.detail.
Находим строчку
и сразу под ней пишем две строки:
Потом в самом низу дописываем строчки:
У меня форум в ЧПУ, поэтому ссылки такого формата. Вы можете поменять на свои.
4. Кастомизируем forum.post_form.
Добавляем result_modifier.php такого содержания:
Шаблон можно не трогать.
5. Ну и наконец, обработчик:
Топик создается с автором, который добавил элемент статьи.
Пример реализации:
[spoiler]
Да, есть стандартный компонент "отзывы", но его минус в том, что приходится на странице статьи терпеть форму отправки и комментарии. В общем задача сводится к тому, чтобы на странице статьи оставить только ссылку "обсудить на форуме". Делается это следующим образом - прибегаем к помощи событий форума.
1. В инфоблоке статей заводим два свойства FORUM_ID и TOPIC_ID (тип строка или число). При добавлении статьи пишем только FORUM_ID - это ID форума, куда будут складироваться новые статьи. TOPIC_ID не трогаем.
2. В настройках вывода свойств для статьи (в компоненте) настраиваем чтобы выводились эти два свойства.
3. Кастомизируем news.detail.
Находим строчку
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?> |
и сразу под ней пишем две строки:
<?if ($pid == "FORUM_ID") {$FORUM_ID = intval($arProperty["DISPLAY_VALUE"]); continue;}?>
<?if ($pid == "TOPIC_ID") {$TOPIC_ID = intval($arProperty["DISPLAY_VALUE"]); continue;}?> |
Потом в самом низу дописываем строчки:
<?
if ($FORUM_ID>0 && $TOPIC_ID>0)
{
?><a href="/forum/forum<?= $FORUM_ID?>/topic<?= $TOPIC_ID?>/" title="<?= GetMessage("IW_REVIEW")?>"><?= GetMessage("IW_REVIEW")?></a><?
}
elseif ($FORUM_ID>0)
{
?><a href="/forum/topic/add/forum<?= $FORUM_ID?>/?addreview=<?= $arResult["ID"]?>" title="<?= GetMessage("IW_REVIEW")?>"><?= GetMessage("IW_REVIEW")?></a><?
}
?> |
$MESS ['IW_REVIEW'] = "Обсудить на форуме";// это в ланг-файлы |
У меня форум в ЧПУ, поэтому ссылки такого формата. Вы можете поменять на свои.
4. Кастомизируем forum.post_form.
Добавляем result_modifier.php такого содержания:
Шаблон можно не трогать.
5. Ну и наконец, обработчик:
Топик создается с автором, который добавил элемент статьи.
Пример реализации: