Telegram
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!

Пример реализации: комментарии в модуле «Новости сайта» по подписке

Пример реализации: комментарии в модуле «Новости сайта» по подписке
📌 Подробнее о возможностях нового модуля — на лендинге.
Есть идеи или предложения? Поделитесь ими на портале обратной связи.
Материал добавлен: 22 Мая 2025
Материал обновлен: 22 Мая 2025

Как изменить шаблон страницы

Перейдите во вкладку «Дизайн» → «Управление дизайном» → «Новости сайта» → «Страница материала и комментариев к нему» и замените участок кода про комментарии:

Было:

<?if($COM_IS_ACTIVE$)?>
 <?if($COM_CAN_READ$)?>
 <table class="entry-comments" border="0" cellpadding="0" cellspacing="0" width="100%">
 <tr><td width="60%" height="25"><!--<s5183>-->Всего комментариев<!--</s>-->: <b>$COM_NUM_ENTRIES$</b></td><td align="right" height="25">$COM_PAGE_SELECTOR$</td></tr>
 <tr><td colspan="2">$COM_BODY$</td></tr>
 <tr><td colspan="2" align="center">$COM_PAGE_SELECTOR1$</td></tr>
 <tr><td colspan="2" height="10"></td></tr>
 </table>
 <?endif?>
 <?if($COM_CAN_ADD$)?>$COM_ADD_FORM$
 <?else?>
 <?if($USER_LOGGED_IN$)?>
 <?else?>
 <div align="center" class="commReg"><!--<s5237>-->Добавлять комментарии могут только зарегистрированные пользователи.<!--</s>--><br />[ <a href="$REGISTER_LINK$"><!--<s3089>-->Регистрация<!--</s>--></a> | <a href="$LOGIN_LINK$"><!--<s3087>-->Вход<!--</s>--></a> ]</div>
 <?endif?>
 <?endif?>
<?endif?>

Если вы хотите скрывать комментарии по условию наличия тарифа:

<?if($COM_IS_ACTIVE$)?>
 <?if($USER_LOGGED_IN$)?>
 <?if($SUBSCR_LAST_ID_AUTH$ = 2)?>
 <?if($COM_CAN_READ$)?>
 <div class="info-box">
 <h3>Комментарии</h3>
 <table class="entry-comments" border="0" cellpadding="0" cellspacing="0" width="100%">
 <tr>
 <td width="60%" height="25"><!--<s5183>-->Всего комментариев<!--</s>-->: <b>$COM_NUM_ENTRIES$</b></td>
 <td align="right" height="25">$COM_PAGE_SELECTOR$</td>
 </tr>
 <tr><td colspan="2">$COM_BODY$</td></tr>
 <tr><td colspan="2" align="center">$COM_PAGE_SELECTOR1$</td></tr>
 </table>
 </div>
 <?endif?>
 <?if($COM_CAN_ADD$)?>
 <div class="info-box" style="margin-top: 20px;">
 <h3>Оставьте свой комментарий</h3>
 $COM_ADD_FORM$
 </div>
 <?else?>
 <div class="info-box" style="margin-top: 20px;">
 <p><strong>У вас есть доступ к просмотру комментариев, но добавление доступно не для всех подписчиков.</strong></p>
 </div>
 <?endif?>
 <?else?>
 <div class="info-box">
 <h3>Комментарии доступны по подписке</h3>
 <p>Чтобы просматривать и участвовать в обсуждениях, активируйте тариф с доступом к комментариям.</p>
 <p>Оформите подписку и получите полный доступ к общению и закрытым функциям сайта.</p>
 <div class="subs-entry-actions" style="margin-top:10px;">
 <a class="button-link subs-entry-buy-link" href="/subscriptions">Оформить подписку</a>
 </div>
 </div>
 <?endif?>
 <?else?>
 <div class="info-box">
 <h3>Комментарии только для подписчиков</h3>
 <p>Обсуждение материалов доступно только авторизованным пользователям с активной подпиской.</p>
 <p>Создайте учётную запись и подключите подписку, чтобы участвовать в жизни сообщества!</p>
 <div style="margin-top:10px;">
 <a class="button-link subs-entry-buy-link" href="$LOGIN_LINK$">Войти</a>
 <a class="button-link subs-entry-buy-link" href="$REGISTER_LINK$">Зарегистрироваться</a>
 </div>
 </div>
 <?endif?>
<?endif?>

Если вы хотите скрывать комментарии по условию группы пользователя:

<?if($COM_IS_ACTIVE$)?>
 <?if($USER_LOGGED_IN$)?>
 <?if($GROUP_ID$ != 0 && $GROUP_ID$ != 1)?>
 <?if($COM_CAN_READ$)?>
 <div class="info-box">
 <h3>Комментарии</h3>
 <table class="entry-comments" border="0" cellpadding="0" cellspacing="0" width="100%">
 <tr>
 <td width="60%" height="25"><!--<s5183>-->Всего комментариев<!--</s>-->: <b>$COM_NUM_ENTRIES$</b></td>
 <td align="right" height="25">$COM_PAGE_SELECTOR$</td>
 </tr>
 <tr><td colspan="2">$COM_BODY$</td></tr>
 <tr><td colspan="2" align="center">$COM_PAGE_SELECTOR1$</td></tr>
 </table>
 </div>
 <?endif?>
 <?if($COM_CAN_ADD$)?>
 <div class="info-box" style="margin-top: 20px;">
 <h3>Оставьте свой комментарий</h3>
 $COM_ADD_FORM$
 </div>
 <?else?>
 <div class="info-box" style="margin-top: 20px;">
 <p><strong>У вас активная подписка, но комментирование недоступно в рамках вашего тарифа.</strong></p>
 </div>
 <?endif?>
 <?else?>
 <div class="info-box">
 <h3>Комментарии доступны только по подписке</h3>
 <p>Просмотр и участие в обсуждениях открыты только для пользователей с активной подпиской.</p>
 <p>Подключите подходящий тариф и получите доступ к полному функционалу сайта, включая комментарии.</p>
 <div class="subs-entry-actions" style="margin-top:10px;">
 <a class="button-link subs-entry-buy-link" href="/subscriptions">Оформить подписку</a>
 </div>
 </div>
 <?endif?>
 <?else?>
 <div class="info-box">
 <h3>Доступ к комментариям</h3>
 <p>Комментарии доступны только авторизованным пользователям с активной подпиской.</p>
 <p>Войдите или зарегистрируйтесь, чтобы подключить подписку и участвовать в обсуждениях.</p>
 <div style="margin-top:10px;">
 <a class="button-link subs-entry-buy-link" href="$LOGIN_LINK$">Войти</a>
 <a class="button-link subs-entry-buy-link" href="$REGISTER_LINK$">Зарегистрироваться</a>
 </div>
 </div>
 <?endif?>
<?endif?>

Что делает этот код

  1. Проверка, включены ли комментарии

    <?if($COM_IS_ACTIVE$)?>

    Если функция комментариев отключена, код дальше не выполняется.

  2. Проверка: авторизован ли пользователь

    <?if($USER_LOGGED_IN$)?>

    Ветвление логики: если пользователь авторизован — выполняются следующие проверки, если нет — показывается блок с приглашением авторизоваться и оформить подписку.

  3. Авторизован и имеет тариф с ID = 2

    <?if($SUBSCR_LAST_ID_AUTH$ = 2)?>
    1. Проверка права на чтение комментариев

      <?if($COM_CAN_READ$)?>

      Если доступ разрешён — выводится таблица с комментариями:

      • $COM_NUM_ENTRIES$ — количество комментариев
      • $COM_BODY$ — список комментариев
      • $COM_PAGE_SELECTOR$, $COM_PAGE_SELECTOR1$ — навигация по страницам
    2. Проверка права на добавление комментариев

      <?if($COM_CAN_ADD$)?>

      Если разрешено — отображается форма комментариев: $COM_ADD_FORM$

      Если нет — показывается сообщение о недоступности добавления комментариев в рамках текущего тарифа.

  4. Авторизован, но не имеет нужного тарифа

    <?else?>

    Показывается информационный блок с предложением оформить подписку:

    • Текст о необходимости подписки
    • Кнопка <a href="/subscriptions">Оформить подписку</a>
  5. Пользователь не авторизован (гость)

    <?else?>

    Отображается приглашение зарегистрироваться или войти:

    • Краткое пояснение: «Комментарии доступны только авторизованным пользователям с подпиской»
    • Кнопки «Войти» и «Зарегистрироваться».

Используемые переменные:

  • $COM_IS_ACTIVE$ — комментарии включены на странице
  • $USER_LOGGED_IN$ — пользователь авторизован
  • $SUBSCR_LAST_ID_AUTH$ — ID текущего тарифа пользователя
  • $COM_CAN_READ$ — пользователь может читать комментарии
  • $COM_CAN_ADD$ — пользователь может оставлять комментарии
  • $COM_NUM_ENTRIES$, $COM_BODY$, $COM_ADD_FORM$ — содержимое комментариев и форма
  • $LOGIN_LINK$, $REGISTER_LINK$ — ссылки для авторизации и регистрации
Пример реализации: комментарии в модуле «Новости сайта» по подписке