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

Создание главной страницы без CMS - нужна помощь

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем megavolt, 28 ноя 2010.

Загрузка
  1. megavolt

    megavolt Местный

    Регистрация:
    31.10.10
    Сообщения:
    80
    Симпатии:
    48
    Сделано на основе статьи от FractalizeRа http://www.xf-russia.ru/forum/threads/Пишем-первый-аддон-для-xenforo-mvc-шаблоны-стили-настройки-навигация-—-используем-все.162/

    Цель - создать стартовую страницу сайта, используя оформление и возможности форума, и переходить к ней по пункту меню "ГЛАВНАЯ".
    Обращение к ней будет такого вида: http://domains.com/forum/index.php?main-page/
    (предполагается,что форум на сайте лежит в /forum )

    Это макет,но работоспособный:)

    В library создается каталог MainPage. В ней создаются ControllerPublic , Route.
    В ControllerPublic помещается Index.php следующего содержания:
    PHP:
    <?php
    class MainPage_ControllerPublic_Index extends XenForo_ControllerPublic_Abstract
    {
        public function 
    actionIndex()
        {
    return 
    $this->responseView('MainPage_ViewPublic_Index''mainpage_index');
        }
    protected function 
    _getMainPageModel()
        {
            return 
    $this->getModelFromCache('MainPage_Model_MainPage');
        }
    }
    В Route вкладывается ещё папка Prefix, в которой создается файл MainPage.php с текстом:
    PHP:
    <?php

    class MainPage_Route_Prefix_MainPage implements XenForo_Route_Interface
    {
        public function 
    match($routePathZend_Controller_Request_Http $requestXenForo_Router $router)
        {
            return 
    $router->getRouteMatch('MainPage_ControllerPublic_Index''index''main-page');
        }
    }
    Перевести форум в отладку, дополнив файл /library/config.php строкой
    PHP:
    $config['debug'] = true;
    Теперь в панель управления. НАСТРОЙКИ - ОСНОВНАЯ ИНФОРМАЦИЯ О ФОРУМЕ - URL ДОМАШНЕЙ СТРАНИЦЫ. Прописать там http://domains.com/forum/index.php?main-page/

    РАЗРАБОТКА - ПРЕФИКСЫ РОУТИНГА - СОЗДАТЬ НОВЫЙ :
    Префикс роутинга: main-page
    Тип роутинга: Публичный
    Класс роутинга: MainPage_Route_Prefix_MainPage
    Использовать класс для генерации ссылки: Никогда

    ВНЕШНИЙ ВИД - ШАБЛОНЫ. Создать новый шаблон mainpage_index с содержимым того,что будет у вас на главной.
    Пример того,что может быть. Вступление меняется в зависимости от того,опознан юзверь или нет. На скрине вариант с опознаванием.
    HTML:
    <xen:title> </xen:title>
    <div align="center">
    <font  size="5" >
    <i>Приветствуем Вас
           <xen:if is="{$visitor.user_id}"> ,{$visitor.username},<BR></xen:if>
     на Большом - Пребольшом Форуме!</i></font>
    
    <p class="importantMessage">
       <xen:if is="!{$visitor.user_id}">
    Вы еще не зарегистрированы?Это зря,пожалуйста,сделайте это <a href="{xen:link 'register/'}">ЗДЕСЬ</a>
    <xen:else />
    Спасибо,что не забываете нас! Приятного Вам общения!
    </xen:if>
    </p>
    </div>
    Здесь вывод всякой бяки стартовой страницы
    <BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
    Окончание вывода бяки
     
    Буфер обмена02.jpg
    Теперь вопросы. Как сделать кнопу "Главная" на вкладке активной? И как убрать breadcrumb - тут он явно лишний. Или это всё на более высоком уровне перехватывать надо было?
     
  2. FrozenLord

    FrozenLord Местный

    Регистрация:
    15.11.10
    Сообщения:
    71
    Симпатии:
    100
    По моему ты забыл про теги
     
    Pepelac нравится это.
  3. megavolt

    megavolt Местный

    Регистрация:
    31.10.10
    Сообщения:
    80
    Симпатии:
    48
    А подробнее? :)
     
  4. Pepelac

    Pepelac Продам луц в бутылках Команда форума

    Регистрация:
    28.09.10
    Сообщения:
    1.794
    Симпатии:
    1.349
    Вы забыли оформить свое сообщение с использованием тэгов [html] и [php]. Весь код, который вы написали - нечитаем, поскольку слипается. Рекомендую исправить сообщение с использованием тэгов.
     
  5. FractalizeR

    FractalizeR XenForo Addicted Команда форума

    Регистрация:
    27.09.10
    Сообщения:
    1.085
    Симпатии:
    823
    Версия XF:
    1.3.2
    Я поправил.
     
  6. megavolt

    megavolt Местный

    Регистрация:
    31.10.10
    Сообщения:
    80
    Симпатии:
    48
    Спасибо,немножко сам не успел:)
     
  7. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2.577
    Симпатии:
    1.614
    Версия XF:
    1.5.10
    Ещё лучше было бы все параметры внешнего вида реализовывать через классы и оставить только чистый html без css примесей. Для этого понадобится такой же шаблон с окончанием .css. Будет: mainpage_index.css
     
  8. vitas1987

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

    Регистрация:
    26.01.11
    Сообщения:
    44
    Симпатии:
    9
    Версия XF:
    1.1.1
    Один момент:
    если xf есть доменом 1 уровня, а не поддоменом, то как сделать так, чтобы при входе на главную страницу сайта сразу показывало вкладку "Главная", а не "Форум"???
     
  9. FractalizeR

    FractalizeR XenForo Addicted Команда форума

    Регистрация:
    27.09.10
    Сообщения:
    1.085
    Симпатии:
    823
    Версия XF:
    1.3.2
    В этом случае зачем она вам вообще? Удалите эту вкладку. Для этого нужно всего лишь зайти в основные настройки и оставить пустую строку в поле "URL домашней страницы".

    Тогда останется только форум.
     
  10. vitas1987

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

    Регистрация:
    26.01.11
    Сообщения:
    44
    Симпатии:
    9
    Версия XF:
    1.1.1
    Я имею ввиду, что никакой СМS сверх XF нет, а роль такой себе СМS должна на себя взять как раз эта главная страница.
    Для этого и нужно, чтоб у нее был адрес index.php, а не index.php?main-page/
    Это как-то можно сделать???
     
  11. FractalizeR

    FractalizeR XenForo Addicted Команда форума

    Регистрация:
    27.09.10
    Сообщения:
    1.085
    Симпатии:
    823
    Версия XF:
    1.3.2
    C index.php я не уверен, но можно в странице указать часть URL вроде "/home" и сделать ее главной. Тогда будет не http://www.example.com/index.php?main-page/, а http://www.example.com/home, при условии, конечно, что у вас активен mod_rewrite. По-моему так тоже красиво :)
     
    CyberAP нравится это.
  12. vitas1987

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

    Регистрация:
    26.01.11
    Сообщения:
    44
    Симпатии:
    9
    Версия XF:
    1.1.1
    Я сделал немножко подругому.
    Я создал файл index.html с таким содержимым:
    HTML:
    <!DOCTYPE html "-//w3c//dtd XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="autor" content="FIO" />
    <meta http-equiv="refresh" content="0; url=http://www.domain.com/index.php?main-page/" />
    <title></title>
    </head>
    
    <body>
    </body>
    </html>
    
    и залил его в корневую папку сайта.
    Тогда он при входе на адрес www.domain.com автоматически перенаправляется на
    www.domain.com/index.php?main-page/
    думаю так тоже будет нормально:):):)
     
  13. vitas1987

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

    Регистрация:
    26.01.11
    Сообщения:
    44
    Симпатии:
    9
    Версия XF:
    1.1.1
    Вроде как есть одна неисправность.
    Когда на форуме нажимаешь на название Категории (именно категории!) - перенаправляет на страницу Главная...
    Как его можно починить?

    Помогите, пожалуйста, доделать до конца эту тему и закрыть ее!!!
     
  14. Yoskaldyr

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

    Регистрация:
    27.09.10
    Сообщения:
    1.921
    Симпатии:
    1.160
    Версия XF:
    1.0.4
    Это не неисправность - а именно заложенный функционал. Во первых идет не просто перенаправление на главную, а на определенный якорь главной. Если кто хочет генерировать отдельные страницы для категорий, то для этого есть настройка в админке (Список разделов и узлов -> создавать страницы для категорий)
     
  15. vitas1987

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

    Регистрация:
    26.01.11
    Сообщения:
    44
    Симпатии:
    9
    Версия XF:
    1.1.1
    Я имею ввиду, что идет перенаправление не на Главную страницу форума (которая находится в меню "Форум"), а именно на страницу "Главная".
    То есть получается, пользователь сидит где-то в форуме, читает что-то, потом жмет на ссылку breadcrumbs "Для разработчиков XenForo" и попадает на страницу "Главная", где форума вообще нет.
    Разве так должно быть?
    Хух, вроде все объяснил, как смог...:)
     
  16. KODEAK

    KODEAK Местный

    Регистрация:
    27.09.10
    Сообщения:
    41
    Симпатии:
    22
    в строке
    PHP:
    class MainPage_ControllerPublic_Index extends XenForo_ControllerPublic_Abstract
    произвольный класс я как понимаю, ? и обязательно его наследовать с XenForo_ControllerPublic_Abstract
     
  17. GELMESHIK

    GELMESHIK Местный

    Регистрация:
    24.05.12
    Сообщения:
    21
    Симпатии:
    1
    Версия XF:
    1.1.2
    Выдает ошибку:
    Кто подскажет что делать?
     
  18. GELMESHIK

    GELMESHIK Местный

    Регистрация:
    24.05.12
    Сообщения:
    21
    Симпатии:
    1
    Версия XF:
    1.1.2
    Такое ощущение, что этот форум пуст!
     
  19. Yoskaldyr

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

    Регистрация:
    27.09.10
    Сообщения:
    1.921
    Симпатии:
    1.160
    Версия XF:
    1.0.4
    Но Вы ничего конкретно не спросили!
    Просто написали сообщение об ошибке, хотя по ней и так все написано - что в MainPage_ControllerPublic_Index не имеет определения действия Index. Т.е. в классе MainPage_ControllerPublic_Index нет метода actionIndex
     
    AfterWork нравится это.
  20. GELMESHIK

    GELMESHIK Местный

    Регистрация:
    24.05.12
    Сообщения:
    21
    Симпатии:
    1
    Версия XF:
    1.1.2
    Все делал по инструкции, как в 1 сообщении этой темы.
    И что мне нужно исправить/дописать, чтоб убрать ошибку: MainPage_ControllerPublic_Index не имеет определения действия Index?
     

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