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

Создание модуля для сайдбара

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем Desperado, 26.06.2011.

Загрузка
  1. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Доброй ночи :)
    Вот назрел вопрос.

    Имеется база (отдельная от форума) с произвольными данными.
    Задача: сделать выборку, обработать (ну это всё мелочи) и заткнуть результат в сайдбар.

    Если с первой частью проблем как бы нет, то вот с интеграцией в форум беда.
    Может кто-нибудь на пальцах разжевать алгоритм действий? Именно на пальцах) Ибо MVC не понимаю вообще никак.
    Думаю, я тут такой не 1, и мануальчик бы пригодился :)

    Заранее спасибо.
     
  2. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Iframe тебе в помоЩ_щ :)
     
  3. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Это не выход.
    И даже не вариант.
     
  4. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Для примера возьмите любой простейший плагин, который выводит инфу в сайдбар и просто посмотрите код. Если Вы можете написать свой код, то Ваших знаний должно хватить чтобы разобраться.
    Если что-то будет не понятно - спрашивайте и лучше на конкретном примере кода.
    Вопросы по фреймворку ксенфоро лучше всего обсуждать в специальном разделе.
     
    Праведник нравится это.
  5. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Модеры, перенесите темку пожалуйста в обозначенный раздел. Завтра на свежую голову продолжим :)
     
  6. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    И так расколупал модуль последних сообщений.

    Сходу появилось несколько вопросов.

    1. Подключение к базе, отличной от базы форума.

    PHP:
    $db            XenForo_Application::get('db');
    Всё хорошо, но как его заставить прожевать отличную от форума базу?
    Допустим, данные к ней мы добавим в конфиг с индексом 'other_db'.

    2. И не совсем понятно назначение файлов /Controller/Public.php

    PHP:
     class LastPosts_Controller_Public extends XFCP_LastPosts_Controller_Public {
        public function 
    actionIndex()
        {
            
    $response parent::actionIndex();

            if (
    $response instanceof XenForo_ControllerResponse_View)
            {
                
    $xfPosts LastPosts_Model_PostList::getPostsArray();
            }

            
    $response->params += array('xfPosts' => $xfPosts);

            return 
    $response;
        }
    }
    и /EventListener/Listener.php

    PHP:
    class LastPosts_EventListener_Listener
    {
        public static function 
    listen($class, array &$extend)
        {
            if (
    $class == 'XenForo_ControllerPublic_Index')
            {
                
    $extend[] = 'LastPosts_Controller_Public';
            }
        }
    }
    означенного модуля.
    Ну вот как-то так. На данный момент это все вопросы.
     
  7. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    насчет этого пока что не скажу - у меня пока что не стояло таких задач, надо детальнее смотреть код.
    Это класс который расширяет стандартный класс (само расширение описывается как раз в /EventListener/Listener.php)
    а именно:
    PHP:
            $response parent::actionIndex(); //получаем ответ (response) от родительского класса

            
    if ($response instanceof XenForo_ControllerResponse_View//проверяем что это стандартный экземпляр вьюкласа (есть и другие - редиректы, сообщения об ошибках, просто сообщения и т.д.)
            
    {
                
    $xfPosts LastPosts_Model_PostList::getPostsArray(); //получаем массив последних сообщений
            
    }

            
    $response->params += array('xfPosts' => $xfPosts); // добавляем его в набор параметров, доступ к которым можно будет получить в шаблоне.

            
    return $response;
    //p.s. для чистоты кода добавление к массиву лучше бы было перенести внутрь условия или делать предварительное присваивание переменной
    а это обработчик события, в котором и расширяется класс ControllerPublic_Index
     
    Праведник нравится это.
  8. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Ладно, пока сделаем отдельный коннект для этих целей.
    Если когла-либо сей момент всплывёт, дайте знать, пожалуйста.
     
  9. lexikon

    lexikon Пользователь

    Регистрация:
    11.10.11
    Сообщения:
    65
    Симпатии:
    24
    Версия XF:
    1.1.0 Final
    а что обозначает
     
  10. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Расширяем класс XenForo_ControllerPublic_Abstract. Т.е. можно переписывать все или часть методов этого класса. В принципе, класс xxx_Abstract является прототипом и содержит базовые методы. Этот класс остальные из ControllerPublic расширяют своими методами.
     

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