1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - новый и перспективный форумный движок от бывших создателей vBulletin.

1.4.3 Убрать кнопку создания темы

Тема в разделе "Вопросы по стилям, изменения в CSS и шаблонах", создана пользователем valera3680, 6 янв 2015.

Загрузка
  1. valera3680

    valera3680 Активный пользователь

    Регистрация:
    27.11.13
    Сообщения:
    45
    Симпатии:
    0
    Версия XF:
    1.5.4
    Как из определенной категории убрать кнопку "Создать тему"
    Я знаю, что это можно сделать через права. Но нужно не через права, а именно просто убрать вывод этой кнопки в определенной категории.
    Проще говоря:
    В категории 1 и всех разделах этой категории кнопка "Создать тему" есть.
    В категории 2 и всех разделах этой категории кнопка "Создать тему" отсутствует.
    В категории 3 и всех разделах этой категории кнопка "Создать тему" есть.
     
  2. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5.736
    Симпатии:
    5.263
    Версия XF:
    1.5.10
    И все же, чем права мешают?
     
  3. valera3680

    valera3680 Активный пользователь

    Регистрация:
    27.11.13
    Сообщения:
    45
    Симпатии:
    0
    Версия XF:
    1.5.4
    Наоборот, они не мешают и нужны. А вот отображение кнопки наоборот не нужно в этом разделе.
     
  4. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5.736
    Симпатии:
    5.263
    Версия XF:
    1.5.10
  5. valera3680

    valera3680 Активный пользователь

    Регистрация:
    27.11.13
    Сообщения:
    45
    Симпатии:
    0
    Версия XF:
    1.5.4
    Это не то. Я прекрасно знаю и понимаю как это делается через права. :)
    Права нельзя убирать, нужно убрать только кнопку. Если бы мне нужно было запретить через права постить в определенном разделе, то я бы не создавал тут топик и решил бы вопрос сам.
     
  6. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5.736
    Симпатии:
    5.263
    Версия XF:
    1.5.10
    Тогда правка шаблонов по условиям на ID раздела.
    Условия тут тоже на форуме описаны, поискать можно.
     
  7. valera3680

    valera3680 Активный пользователь

    Регистрация:
    27.11.13
    Сообщения:
    45
    Симпатии:
    0
    Версия XF:
    1.5.4
    Искал и ничего с условиями не получилось.
    Вот, обернул в шаблоне forum_view код кнопки создания темы в условие:
    PHP:
    <xen:if is="{$category.node_id} == 10">

    <
    xen:if is="{$canPostThread}">
       <
    xen:set var="$newDiscussionButton"><a href="{xen:link 'forums/create-thread', $forum}" class="callToAction"><span>{xen:phrase post_new_thread}</span></a></xen:set>
       <
    xen:if is="!{$renderedNodes}">
         <
    xen:topctrl>{xen:raw $newDiscussionButton}</xen:topctrl>
       </
    xen:if>
    </
    xen:if>

    </
    xen:if>
    В итоге кнопка пропала, но пропала не только из категории с id 10, но и в абсолютно всех категориях :)
     
  8. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5.736
    Симпатии:
    5.263
    Версия XF:
    1.5.10
    А если так попробовать?
    Код:
    <xen:if is="{$forum.node_id} == 10">
     
  9. valera3680

    valera3680 Активный пользователь

    Регистрация:
    27.11.13
    Сообщения:
    45
    Симпатии:
    0
    Версия XF:
    1.5.4
    То происходит тоже самое. Кнопка пропадает везде. Видимо есть какой-то нюанс из-за которого нельзя всё, что угодно оборачивать в условие, отсюда и проблема.
     
  10. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5.736
    Симпатии:
    5.263
    Версия XF:
    1.5.10
    Ну правильно. Так будет кнопка видна только в разделе с ID 10.
    Чтобы исключить раздел с ID 10, а другие не трогать, нужно такое условие:
    Код:
    <xen:if is="{$forum.node_id} !== 10">
    Проверил - 100% работает.
     
    valera3680 нравится это.
  11. valera3680

    valera3680 Активный пользователь

    Регистрация:
    27.11.13
    Сообщения:
    45
    Симпатии:
    0
    Версия XF:
    1.5.4
    Мне нужно немного не то. Я говорю не про раздел, а про категорию. У меня в категории куча разделов и прописывать каждый id не вариант.
    Грубо говоря, мне нужно условие, которое гласит:
    Если эта категория = id 10, то не показывать кнопку.

    Вот этот же код,
    Код:
    <xen:if is="{$forum.node_id} !== 10">
    он работает только с разделами. Соотвественно, если у меня в категории 100500 разделов, то я должен буду прописать 100500 id этих разделов, что крайне неудобно, не говоря уже про то, что это нужно будет делать постоянно при появлении новых разделов.
     
  12. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5.736
    Симпатии:
    5.263
    Версия XF:
    1.5.10
    А иначе видимо никак. Во всяком случае наверняка не таким способом, не через правку шаблонов.
     
  13. Exile

    Exile Местный

    Регистрация:
    27.06.11
    Сообщения:
    999
    Симпатии:
    543
    Версия XF:
    1.4.4
    Если проблема в нежелании показывать кнопку всем, кому не лень, просто запретите создание новых тем в разделе, а новые темы от определенных пользователей переносите туда через перенос тем. Делаете скрытый форум для определенной группы, например, даете им в нем право на перенос тем - профит.

    PS. Если описывать все конкретно для чего нужно, без замалчивания, возможно люди смогут дать более правильное решение, это вам так, совет на будущее.
     
    valera3680 нравится это.
  14. valera3680

    valera3680 Активный пользователь

    Регистрация:
    27.11.13
    Сообщения:
    45
    Симпатии:
    0
    Версия XF:
    1.5.4
    Спасибо за попытку помочь, но я уже решил проблему с помощью костыля
    Код:
    <xen:if is="{$forum.node_id} !== 10">
    
    и кучей прописанных в это условие id.
     
  15. Exile

    Exile Местный

    Регистрация:
    27.06.11
    Сообщения:
    999
    Симпатии:
    543
    Версия XF:
    1.4.4
    Возможно более корректное условие чуть упростит процесс добавления новых форумов в дальнейшем:
    HTML:
    <xen:if is="!in_array({$forum.node_id}, array(4,8,15,16,23,42))">
    ...
    </xen:if>
     
    valera3680 нравится это.
  16. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5.736
    Симпатии:
    5.263
    Версия XF:
    1.5.10
    Не более корректное, а правильное, когда речь идет о более одного раздела :)
     
  17. valera3680

    valera3680 Активный пользователь

    Регистрация:
    27.11.13
    Сообщения:
    45
    Симпатии:
    0
    Версия XF:
    1.5.4
    :) ну, я вообще не веб программист, я на официальном форуме ксенфоро код подсмотрел. Его выложил Броган, модератор ксенфоро. Насколько правильный код или нет, ничего сказать не могу.
     

Поделиться этой страницей