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

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

Тема в разделе "Вопросы по стилям, изменения в CSS и шаблонах", создана пользователем valera3680, 06.01.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 742
    Симпатии:
    5 292
    Версия XF:
    1.5.15
    И все же, чем права мешают?
     
  3. valera3680

    valera3680 Местный

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

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

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

    valera3680 Местный

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

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

    Регистрация:
    26.09.10
    Сообщения:
    5 742
    Симпатии:
    5 292
    Версия XF:
    1.5.15
    Тогда правка шаблонов по условиям на 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 742
    Симпатии:
    5 292
    Версия XF:
    1.5.15
    А если так попробовать?
    Код:
    <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 742
    Симпатии:
    5 292
    Версия XF:
    1.5.15
    Ну правильно. Так будет кнопка видна только в разделе с 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 742
    Симпатии:
    5 292
    Версия XF:
    1.5.15
    А иначе видимо никак. Во всяком случае наверняка не таким способом, не через правку шаблонов.
     
  13. Exile

    Exile Местный

    Регистрация:
    27.06.11
    Сообщения:
    999
    Симпатии:
    549
    Версия 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
    Симпатии:
    549
    Версия 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 742
    Симпатии:
    5 292
    Версия XF:
    1.5.15
    Не более корректное, а правильное, когда речь идет о более одного раздела :)
     
  17. valera3680

    valera3680 Местный

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

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