Перейти к содержимому


Фотография
- - - - -

Подключение js по условию


Лучший Ответ SmetDenis , 20 March 2015 - 16:06

Попробовал, ошибка идет. Не могу понять в чём

Не обижайтесь, но все же попробуйте изучить основы синтаксиса PHP :)
Оба ваших примера - это откровенный бред :)

Отдельно в init.php напишите мой вариант и положите JS-файл в нужное место. И все. Перейти к сообщению


Сообщений в теме: 6

#1 immortal727

immortal727

Отправлено 20 March 2015 - 10:15

Можно ли в файле init.php подключать js скрипты по условию модуля?

Если обычно мы подключаем

<!--Конструкция подключения модуля: -->
<?php if($this->countModules('left')) : ?>
<jdoc:include type="modules" name="left" style="mymenu" />
<?php endif; ?>

  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 20 March 2015 - 11:32

immortal727, можно, в документации написано.


  • При подключении изменится $this внтури шаблона, т.к. реализация partial() работает в контексте JBlankTemplate.
  • Для удобства внутри подключенного шаблона автоматически будут объявлены переменные $tpl и $_this (ссылка на JDocumentHTML), поэтому нет смысла их указывать явно.
  • Внутри вложенных шаблонов можно так же проверять позиции и делать прочие вещи, как в обычном index.php, но только с помощью переменной $_this.

Сообщение отредактировал Cheren-dow: 20 March 2015 - 11:33

  • 0
Изображение
 

#3 immortal727

immortal727

Отправлено 20 March 2015 - 12:50

Что-то я не нашел информацию там нужную.

В файле init.php есть строки

// один файл
$tpl->js('template.js');

// или несколько файлов
$tpl->js(array(
'libs/jquery.min.js',
'template.js'
));

Именно здесь можно к какому-нибудь js файлу сделать условие на позицию модуля?


  • 0

#4 SmetDenis

SmetDenis

Отправлено 20 March 2015 - 13:03

Именно здесь можно к какому-нибудь js файлу сделать условие на позицию модуля?


По сути точно так же
if($this->countModules('left')) {
    $tpl->js('template.js');
}

  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 immortal727

immortal727

Отправлено 20 March 2015 - 13:55

Попробовал, ошибка идет. Не могу понять в чём

// include JavaScript files
    ->js(array(
        // '//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', // any external lib (you can use http:// or https:// urls)
        'libs/jquery-1.x.min.js', // your own local lib
        'template.js',
if($this->countModules('reviews')) : 
   $tpl->js('masonry.pkgd.min.js,'); //Для работы масонри
   $tpl->js('facebox.js',);
   $tpl->js('carusel.js',);
endif;
 ))

Вставляем в index.php шаблона

<head>
    <jdoc:include type="head" />
    <? if(!$this->countModules('left')):?>
      <style>
       .right{ width:100%;}
      </style>
    <? endif;?>
    <? if($this->countModules('reviews')) : 
$tpl->js('masonry.pkgd.min.js, facebox.js, carusel.js'); //Для работы масонри
// $tpl->js('masonry.pkgd.js',); // Для развития
endif;
?>
</head>

Ошибки нет, но не работает


Сообщение отредактировал immortal727: 20 March 2015 - 14:04

  • 0

#6 SmetDenis

SmetDenis

Отправлено 20 March 2015 - 16:06   Лучший Ответ

Попробовал, ошибка идет. Не могу понять в чём

Не обижайтесь, но все же попробуйте изучить основы синтаксиса PHP :)
Оба ваших примера - это откровенный бред :)

Отдельно в init.php напишите мой вариант и положите JS-файл в нужное место. И все.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 Cheren-dow

Cheren-dow

Отправлено 20 March 2015 - 16:07

immortal727, из первого листинга у вас синктатическая ошибка - а это основы php. В вашем index.php не видно подключения init.php

// init $tpl helper
require dirname(__FILE__) . '/php/init.php';

  • 0
Изображение
 




Click to return to top of page in style!