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

1.1.3 Создаем дополнительные пункты помощи

Тема в разделе "Основные вопросы по XenForo", создана пользователем Alakey, 31.01.2013.

Загрузка
  1. Alakey

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

    Регистрация:
    15.03.12
    Сообщения:
    102
    Симпатии:
    9
    Версия XF:
    1.1.3
    Нашел статью на хабре. Геморная статья :) нада делать события, и так для каждого пункта, в общем долбатни там много.

    Сделал свой вариант ;) Можно сказать, работает это всё из коробки :)


    XenForo: добавляем новую страницу в раздел помощи


    Итак, открываем файл Help.php по адресу library/XenForo/ControllerPublic/Help.php.

    Находим:
    Код:
        public function actionCookies()
        {
            return $this->_getWrapper('cookies',
                $this->responseView('XenForo_ViewPublic_Help_Cookies', 'help_cookies')
            );
        }
    Добавляем:
    Код:
        public function actionmagazin()
        {
            return $this->_getWrapper('magazin',
                $this->responseView('XenForo_ViewPublic_Help_magazin', 'help_magazin')
            );
        }
     
     
     
          public function actionpreimushestvaregistracii()
        {
            return $this->_getWrapper('preimushestvaregistracii',
                $this->responseView('XenForo_ViewPublic_Help_preimushestva_registracii', 'help_preimushestva_registracii')
            );
        }
    
    Таким образом можно добавить несколько пунктов, вне зависимости от порядка расположения.

    Таким образом мы определили, что наша страница будет открываться по адресу http://forum.com/help/magazin и preimushestvaregistracii (в случае, если включено ЧПУ) и http://forum.com/index.php?help/magazin и preimushestvaregistracii.


    Приступаем к верстке:
    В шаблон help_wrapper (левая колонка Помощь (сайдбар)) по аналогии с другими пунктами добавим наш новый:
    Код:
    <li><a href="{xen:link help/magazin}" class="{xen:if "{$selected} == 'magazin'", 'secondaryContent', 'primaryContent'}">{xen:phrase magazin}</a></li>
     
    <li><a href="{xen:link help/preimushestva-registracii}" class="{xen:if "{$selected} == 'preimushestvaregistracii'", 'secondaryContent', 'primaryContent'}">{xen:phrase preimushestva_registracii}</a></li>
    
    Точно так же поступим и с help_index (основное поле с пунктами Помощь):
    Код:
    <dl>
    <dtм><a href="{xen:link help/magazin}">{xen:phrase magazin}</a></dt>
    <dd>{xen:phrase view_text_magazin}</dd>
    </dl>
     
    <dl>
    <dtм><a href="{xen:link help/preimushestva-registracii}">{xen:phrase preimushestva_registracii}</a></dt>
    <dd>{xen:phrase view_text_preimushestva_registracii}</dd>
    </dl>
    Шаблон navigation (просветить пункты помощи в выпадающем меню Помощь), добавив в блок с хуком navigation_tabs_help свой пункт.
    Код:
    <li><a href="{xen:link help/magazin}">{xen:phrase magazin}</a></li>
    <li><a href="{xen:link help/preimushestva-registracii}">{xen:phrase preimushestva_registracii}</a></li>
    
    Завершим все созданием нового шаблона help_magazin и help_preimushestva_registracii ( для наполнения пункта информацией) (именно это название у нас прописано в функции actionmagazin):
    Код:
    <xen:title>{xen:phrase magazin}</xen:title>
    <div class="baseHtml">
    {xen:phrase magazin_rules_text}
    </div>
     
     
    <xen:title>{xen:phrase preimushestva_registracii}</xen:title>
    <div class="baseHtml">
    {xen:phrase preimushestva_registracii_rules_text}
    </div>
    
    В языковых пакетах нам потребуется создать 3 фразы:
    • view_text_magazin и view_text_preimushestva_registracii — описание пункта помощи в основном поле с пунктами Помощи
    • magazin и preimushestva_registracii — заголовок пункта помощи в левой колонке Помощь и в основном поле с пунктами Помощи
    • magazin_rules_text и preimushestva_registracii_rules_text — html код нашей страницы (наполнение пункта помощи Магазин (содежание пункта Магазин))
    Лично себе сделал 8 пунктов. ;)

    2013-01-30_221738.jpg

    Так что, включаем логику и делаем пункты :) Очень доходчиво расписывать не захотел, т.к. времени мало :)

    В общем, хотел идею продать :D но решил поделиться и с вами :)
     
    Telia нравится это.
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Если честно, то становится страшно...
    Я категорически против прямой правки оригинального кода движка. Это во-первых. А, во-вторых, есть определенные правила именования функций.

    Если пять-шесть таких решений сделать на своем форуме, то о безболезненном апгрейде затем придется забыть. Также можно будет потом периодически натыкаться на непонятные глюки в результате установки/удаления плагинов.

    Мой совет - не используйте такие методы "решения". Ибо убивается безопасная эксплуатация форума, а также его модернизирование (апгрейды, установка плагинов и т.д.) становится крайне сложным.
     
    GishValve и TAIFUN нравится это.
  3. Alakey

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

    Регистрация:
    15.03.12
    Сообщения:
    102
    Симпатии:
    9
    Версия XF:
    1.1.3
    хм, правится всего один файлик Help.php :) при обновлении движка он конечно заменится. В него вносится всего лишь новый пункт, не больше. Это статья на хабре - действительно тяжелая, там точно можно запутаться и натворить :)

    Не думаю что что-то нарушено, просто добавлен пункт, и через шаблоны просвечивается на форуме :)
     
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Я не совсем именно про это изменение. Вся проблема в том, что различными такими "исправлениями" идет деградация в сторону phpBB, SMF и т.д. Конечно, можно все поправить в коде, шаблоны менять и т.д. Вот только потом куча воплей, что после апгрейда вдруг все полетело, а то и при установке очередного дополнения чуть ли админка не вылетает. Ну и т.д. и т.п. Ведь даже для того, чтобы оригинальные шаблоны не правили, сделали дополнение TMS, плюс большинство косметических изменений вносится через EXTRA.CSS. Система плагинов специально создана для того, чтобы избежать проблем. Правка оригинального кода вне зависимости от количества вносимых изменений приводит к потенциальным проблемам.
    Вообще, бОльшую часть мелких изменений можно буквально одной-двумя строками в оригинальном коде сделать. Тогда как написать плагин под это порой является нетривиальной задачей. Но зато при плагине мы страхуем себя от кучи различных проблем.
    Кстати, изменение оригинального файла попутно приводит к несоответствию его контрольной суммы, что в принципе затем делает невозможным гарантировать целостность файлов. Т.е. после таких изменений злоумышленнику развязываем руки, так как он получает возможность внести тот же бэкдор в оригинальные файлы движка, а администратор ресурса банально этого не заметит. Тогда как при проверки контрольной суммы измененный файл легко укажет на попытку взлома. Так что это еще и небезопасно.

    Вообще, получился полный офтоп. Админы форума, либо перенесите это сообщение в новую тему, либо просто прокомментируйте со свой стороны, что думаете, да и можете удалить.
     
    TAIFUN нравится это.
  5. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Это всё хорошо, но если нужно редактировать файлы форума - для меня плагин или модификация теряет смысл автоматически.
     
    ISupport и infis нравится это.
  6. ISupport

    ISupport Новичок

    Регистрация:
    30.12.16
    Сообщения:
    11
    Симпатии:
    1
    Версия XF:
    1.5.11
    Шаблон navigation где блок с хуком navigation_tabs_help ?
    Хлебные крошки не отображаються......
     

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