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

/ Просмотров: 4808
Как добавить свои стили и JS в MaxSite CMS?

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

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

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

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

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

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

Комментариев: 6 RSS

Дмитрий, дефолтный шаблон сейчас так устроен, что лезть править 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.

Спасибо Илья - с этим моментом понятно, логику нужно включать 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

Я года полтора назад пробовал использовать custom/head.php, но содержимое файла полностью заменило содержание head и больше не экспериментировал. Исправилась ситуация сейчас?

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

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