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

Инклюд своих php-html файлов в любой шаблон

Тема в разделе "Советы, руководства и видео-уроки", создана пользователем Mr. Brightside, 18.09.2011.

Загрузка
  1. shurik8888

    shurik8888 Местный

    Регистрация:
    27.09.12
    Сообщения:
    37
    Симпатии:
    2
    Версия XF:
    1.4.0
    Есть html - который просто подгружает js, который в свою очередь ссылается на другие js в том-же каталоге, которые в свою очередь обрабатывают элементы на странице , содержат данные о элементах (в данном случае о картинках, тексте, анимации, шрифтах ) расположенных в том-же каталоге в папке img , из которых и строится страница.

    В данный момент вставляю ее через Iframe: <iframe src="../mainPg.html"></iframe>, что в принципе работает - но появляются косяки с анимацией при прокрутке страницы. Вот и пытаюсь избавится от iframe'ов.
    Задача проста:
    Вставить страницу в блок.
    То что мне нужно уже есть в плагине widget framework, но думал можно как-то проще вставить по типу iframe : прописал тег и адрес к странице и готово, но видимо придется ставить WF.
     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Хм. А в чем проблема использовать xen:callback? И устанавливать ради одного включения своей страницы совсем не легкий и качественный плагин? Ну как хотите.
     
    shurik8888 нравится это.
  3. shurik8888

    shurik8888 Местный

    Регистрация:
    27.09.12
    Сообщения:
    37
    Симпатии:
    2
    Версия XF:
    1.4.0
    Тут вы правы, думаю стоит попробовать.
    Добавлено:
    Попробовал - не сработало, js не подгружается.
     
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Если Вы хотите загрузить html страницу целиком, то да, это не будет работать, кроме как в iframe. Если Вы хотите использовать какой-то код страницы частично, то что мешает именно этот код вставлять, а не всю страницу? К тому же, если там используется js, то надо еще и на него смотреть. Там запросто может загружаться лишний раз jQuery и т.д.
    В общем метод включения кода есть, но его нужно правильно применять, а не как iframe.
     
    shurik8888 нравится это.
  5. shurik8888

    shurik8888 Местный

    Регистрация:
    27.09.12
    Сообщения:
    37
    Симпатии:
    2
    Версия XF:
    1.4.0
    Ясно, спасибо за помощь, буду искать другие альтернативы iframe.
    Ну да, там вся страница строится на js.
     
  6. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    А вообще это динамическая страница или нет? Код страницы меняется вообще? Если не меняется, то все значительно проще. Можно свой шаблон сделать и включить его в нужное место. Я же говорю, все сильно зависит от конкретной задачи.
     
    Mirovinger нравится это.
  7. shurik8888

    shurik8888 Местный

    Регистрация:
    27.09.12
    Сообщения:
    37
    Симпатии:
    2
    Версия XF:
    1.4.0
    Страница статичная, будет отображаться только в одном блоке под лого, с фиксированным размером размером.
    Нагуглил как заменить iframe js'ом или object'ом - не сработало, писали что можно как-то через div подгружать , но примеров так и не нашел.
     
  8. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Так что мешает создать шаблон и содержимое <body>...</body> без самого тека body вставить в него? Затем просто в нужном месте нужно будет вставить такую конструкцию:
    Код:
    <xen:include template="имя_вашего_шаблона" />
    Скрипты лучше всего оформить отдельными файлами, если они непосредственно в странице, а в шаблоне подключать их по аналогии с:
    Код:
    <xen:require js="js/redactor/redactor.full.js" />
    Ну а чтобы это было все красиво и на всех стилях, да еще и с беспроблемным затем обновлением, строку инклуда шаблона лучше добавлять через TMS.

    При этом в случае использования jQuery нет необходимости загружать эту библиотеку, так как XenForo сам ее загружает. Правда тут может быть проблема, когда Ваш скрипт требует более свежей версии jQuery.
     
    Mirovinger нравится это.
  9. shurik8888

    shurik8888 Местный

    Регистрация:
    27.09.12
    Сообщения:
    37
    Симпатии:
    2
    Версия XF:
    1.4.0
    Мешает то, что скрипт отказывается работать при вызове его из шаблона, почему хз - просто вставить в шаблон я пробовал в первую очередь - никак не вставлялось, по этому пришлось подгружать через iframe отдельную страницу.

    Для пробы создал отдельную страницу через древо узлов XenForo, вставил туда содержимое html с правкой путей к js - страница не отображается.

    Создаю вторую страницу, и вместо содержимого вставляю iframe с ссылкой на html файл в корне - все подгружается.

    Как так - хз , видимо придется и дальше пользоваться iframe.
     
  10. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Получается, что Вы просто не разобрались со своей собственной страницей, как и что там работает. Тогда все мои советы здесь были просто не нужны. От XenForo здесь ровным счетом ничего не зависит :)
     
  11. eLts

    eLts Новичок

    Регистрация:
    02.01.15
    Сообщения:
    14
    Симпатии:
    0
    Версия XF:
    1.3.2
    У вас не осталось, случаем, изображений с кодом дополнения и обработчика события из шапки темы?
     
  12. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Последнее редактирование модератором: 10.01.2015
    Patriarh и Mirovinger нравится это.
  13. eLts

    eLts Новичок

    Регистрация:
    02.01.15
    Сообщения:
    14
    Симпатии:
    0
    Версия XF:
    1.3.2
    Простите, быстро листал - пропустил вторую страницу. Попробую прикрепить скрипт к шаблону
     
  14. Zum07

    Zum07 Местный

    Регистрация:
    01.07.11
    Сообщения:
    55
    Симпатии:
    12
    Версия XF:
    1.5.11
    Извините,а есть у кого-нибудь [Product] XenFans.com - Extra Debug очень надо.
     
  15. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Держите. Не знаю, будет ли работать на новых версиях. Но он в общем-то и не нужен особо. Можно непосредственно в шаблон добавить вывод отладочной информации типа содержимого переменной.
    Чтобы посмотреть все переменные, переданные в шаблон, достаточно включить туда следующие строки:
    Код:
    <table class="dataTable">
       <caption>{xen:phrase available_template_parameters}</caption>
       <tr class="dataRow">
         <th>{xen:phrase variable_name}</th>
         <th>{xen:phrase data_type}</th>
       </tr>
       <xen:foreach loop="$__params" key="$key" value="$value">
         <tr class="dataRow">
           <td>${$key}</td>
           <td>{xen:helper type, $value}</td>
         </tr>
       </xen:foreach>
    </table>
    
    Или так:
    Код:
    <xen:foreach loop="$__params" key="$key" value="$value">
        <div style="padding: 10px 0;">
            <b>{$key}</b>
            {xen:helper dump, $value}
        </div>
    </xen:foreach>
    
    Принцип там одинаковый, просто оформление разное. Ну и во втором случае применяется вывод дампа переменной, что в некоторых случаях может привести к очень большому размеру вывода.

    Для вывода дампа конкретной переменной в шаблон можно просто использовать такой код:
    Код:
    {xen:helper dump, $variable}
     

    Вложения:

    Mirovinger и Zum07 нравится это.
  16. eLts

    eLts Новичок

    Регистрация:
    02.01.15
    Сообщения:
    14
    Симпатии:
    0
    Версия XF:
    1.3.2
    Сделал все по инструкции. Вместо Blablabla везде использовал свое название - tdon. Вылетает следующая ошибка:
    Fatal error: Cannot redeclare class XenForo_Autoloader in C:\OpenServer\domains\localhost\forum\library\XenForo\Autoloader.php on line 17
    В чем проблема? Версия xenforo 1.3.2
     
  17. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Вы каким-то образом пытаетесь переопределить класс Autoloader. Ни в каком туториале этого не было. Значит, что-то Вы совсем не то делаете.
     
  18. eLts

    eLts Новичок

    Регистрация:
    02.01.15
    Сообщения:
    14
    Симпатии:
    0
    Версия XF:
    1.3.2
    Видимо, проблема была в самом blablabla.php скрипте, стер содержимое - ошибка перестала вылетать. Попробую покопаться. Как я могу использовать переменные из скрипта? Он уже подключен по инструкции к шаблону
     
    Последнее редактирование: 03.01.2015
  19. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Шаблону передается массив переменных. Вот в этот массив можете вставлять любые Ваши переменные. И у меня такое подозрение, что Вы все же либо неправильно что-то делаете, либо не понимаете, что делаете. Скачайте какой-нибудь простенький плагин и посмотрите, как он работает.
    Ну и, если в гугле не забанены, наберите "create add-on xenforo". В youtube есть цикл уроков от Floris'а, наконец.
     
  20. eLts

    eLts Новичок

    Регистрация:
    02.01.15
    Сообщения:
    14
    Симпатии:
    0
    Версия XF:
    1.3.2
    Нет, все в порядке, просто скрипт использовался отдельный, там внутри подключалась куча мусора, что стало ненужным после подключения его к шаблону. Убрав мусор - скрипт не мешает прогрузке страницы. Я имею в виду, какую конкретно переменную мне использовать? Я перепробовал все названия из инструкции: $blablabla, $Lestener, $myphpcode, пробовал значения переменных, которые объявлены в моем скрипте - ничего не выводится на странице
     

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