Jump to content
  • Создаём свою ленту тем для каждого форума


     Официально

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

    Данная возможность 'из коробки' отсутствует, т.к. если разместить блок, например популярных тем, на странице форума, то на страницах всех форумов блок будет отображать одни и те же темы.

    Однако, Invision Community не настолько однообразен, чтобы не справиться с такой задачей, в данном случае - с помощью HTML логики.

    Создание условных блоков

    Реализовать данную функцию мы можем с помощью условного блока, который будет некоторой оболочкой других блоков. Этот блок-оболочка будет получать служебную информацию со страницы и отображать на её основе нужный нам блок.

    Первым делом нужно создать стандартные блоки лент тем из форумов, для каждого форум свой блок с темами. Вы можете создать список самых комментируемых или просматриваемых тем, зависит от желания, суть от этого не меняет. В поле "Ключ шаблона" у каждого блока необходимо указать forum_x, где х - идентификатор форума, в котором будет отображаться блок.

    img.PNG

     

    После этого создаём наш блок-обёртку, Тип которого должен быть Блок, а редактор - HTML. В содержимое блока вставим код:

    {{if request.app == 'forums' && request.module == 'forums'}}
    	{{$id = \IPS\Request::i()->id;}}
    	{block="forum_{$id}"}
    {{endif}}

    Здесь мы с помощью условия проверяем приложение и модуль 'forums' на странице, которые указывают на то, что пользователь находится на страницах форума. Затем мы используем тег {block="forum_{$id}"}, который подставит блок тем с ID, взятым со страницы.

    Осталось сохранить блок и перенести его на страницу просмотра тем форума с помощью менеджера блоков. Если у вас есть интересные идеи создания нестандартных блоков, поделитесь ими в комментариях!





      Report запись


    User Feedback


    There are no comments to display.



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.
    Note: Your post will require moderator approval before it will be visible.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    Loading...

Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy