MaxHub
Полезности по Maxsite CMS

Как добавить свои стили и JS в MaxSite CMS?

Вопросы-ответы / 27 февраля 2015

Столкнулся с проблемой. Необходимо добавить в head шаблона свои стили и скрипты.

Добавлял записи в main.php шаблона:

И cтили и скрипты срабатывают, но только тогда, когда Шаблон вывода по-умолчанию из админке стоит в ОБЫЧНЫЙ

Но когда меняю в админке вывод на no-sidebar скрипты и стили работать перестают.

Я так понял нужно в папку шаблона custom закинуть заготовку head со своими записями из custom c shared, но тогда вообще ошибка вылазит php.

Как всё таки в MaxSite CMS можно однозначно подключить свои скрипты и стили? Логику подключения "допетрить" не могу.

Комментариев: 6
  1. Дмитрий, дефолтный шаблон сейчас так устроен, что лезть править main.php ради секции HEAD нет никакой нужды. Рекомендую найти функцию mso_default_head_section (см. файл \application\maxsite\shared\functions\template.php), которая вызывается в main.php для вывода HEAD и изучить логику её работы. Тогда многое станет понятно.

    В частности, для подключения своих стилей и скиптов реализовано несколько способов. Цитирую фрагмент функции:

    if ($fn = mso_fe('custom/head.php')) require($fn);
      if ($fn = mso_page_foreach('head')) require($fn);
      if (function_exists('ushka')) echo ushka('head');
      
      // autoload js-файлов
      if ($autoload_js = mso_get_path_files(getinfo('template_dir') . 'js/autoload/', getinfo('template_url') . 'js/autoload/', true, array('js')))
      {
       foreach($autoload_js as $fn_js)
       {
        echo NT .'[removed][removed]';
       }
      }
      
      if (mso_fe('js/my.js')) 
       echo NT . '[removed][removed]';
      
      
         if ($my_ 'templates', '')) 
       echo NR . '<!-- custom css-my_style -->' . NR . '<style>' . NR . $my_style . '</style>';
      
      mso_hook('head-end');

    Из кода видно, что можно разместить код подключения в файле custom/head.php или в type_foreach файле head. Есть ещё вариант с использование ушки head.

    Есть способ автоматического подключения скриптов - разместить его в папку js/autoload/. Некоторые малые фрагменты js-кода можно разместить (скопировать) в файл js/my.js.

    Часть стилей можно прописать через опции настройки шаблона.

    Вы не привели код ошибки при использовании custom/head.php. Но подозреваю, что ошибка скорее всего в синтаксисе. Просто внимательно проверьте то место, которое указано в сообщении об ошибке. Должно всё нормально работать. Пожалуй это самый простой и популярный способ подключения всего чего угодно (например, можно подключить семантическую разметку для социалок) в секцию HEAD.

  2. Спасибо Илья - с этим моментом понятно, логику нужно включать rolleyes

    Никак не мог войти через логинзу - Яндекс, пришлось через гугл аккаунт. Пробовал три раза-при авторизации выходит ошибка на странице:

    A PHP Error was encountered
    Severity: Warning
    Message: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set
    Filename: loginza_auth/index.php
    Line Number: 230
    Fatal error: Cannot use object of type stdClass as array in /var/www/manager/data/www/maxhub.ru/application/maxsite/plugins/loginza_auth/index.php on line 264
  3. Я года полтора назад пробовал использовать custom/head.php, но содержимое файла полностью заменило содержание head и больше не экспериментировал. Исправилась ситуация сейчас?

  4. AndreySPb, а на каком шаблоне пробовали? Если поищите функцию mso_default_head_section как я и писал выше, то сможете сами убедиться, что custom/head.php не должен затирать всю секцию head. Ну и вопрос ещё о том, что именно вы размещали в файл custom/head.php...

  5. Задумался.. Это было точно в старых версиях шаблонов. И походу пихал я в папку type_foreach grin

  6. Пробовал подключать через custom/head.php и через ушку - всё работает отлично! Спасибо за разъяснение.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Вход / регистрация или войти без комментирования
  Имя и сайт используются только при регистрации

Авторизация MaxSiteAuth. Войти через loginza

(обязательно)