Не получается подключить скрипт

InstantCMS 2.X
#1 18 апреля 2022 в 00:07

В общем, вот это: github.com/bigbite/macy.js

Подключал так: в самом начале файла «default_list.tpl» вставил

  1. <?php
  2. $this->addMainTplJSName('macy');

Потом создал div #macy-container, далее после вывода цикла постов добавлял уже код

  1. <script>
  2. var masonry = new Macy({
  3. container: '#macy-container',
  4. trueOrder: false,
  5. waitForImages: false,
  6. useOwnImageLoader: false,
  7. debug: true,
  8. mobileFirst: true,
  9. columns: 2,
  10. margin: 20,
  11. breakAt: {
  12. 1200: 2,
  13. 940: 2,
  14. 520: 2,
  15. 400: 2
  16. }
  17. });
  18. </script>

Не работает, в консоли пишет что macy не определена или как-то так.

Именно таким образом подключал скрипт еще в версии 2.12.2 — там работало (и сейчас проверил — работает).

В чем может быть проблема?

#2 18 апреля 2022 в 00:29

Подключаем библиотеку

  1. <?php $this->addTplJSName([ 'имя_файла' ]);?>

Инициализируем скрипт

  1. <?php ob_start(); ?>
  2. <script>
  3. Тут ваш скрипт
  4. </script>
  5. <?php $this->addBottom(ob_get_clean()); ?>

Как-то так, могу ошибаться, отвечаю по памяти с телефона

#3 18 апреля 2022 в 00:39

 Make, ага, спасибо, работает.

Только непонятно, вот я еще один скрипт подключал в main.tpl — и там обошелся без этой обертки 

  1. <?php ob_start(); ?>

и там нормально работает.

#4 18 апреля 2022 в 00:43

 Make, ага, спасибо, работает.

Только непонятно, вот я еще один скрипт подключал в main.tpl — и там обошелся без этой обертки 

  1. <?php ob_start(); ?>

и там нормально работает.

alkokrolik

Ну дык вы в main.tpl скрипт ставите перед закрывающим </body>. А в tpl файле нет этого тега, поэтому используем функцию, которая вставит код в ней перед </body>

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.