Вставка JS на определенной странице
Roffun |
|
---|---|
#42083 Denisbox: Лучше сделать и скорость и валидность. Css в таком случае в верхней части страницы подгружается основной, участвующий в рендеринге, а остальной подгружается в футере через js , такой вариант правильный с точки зрения рекомендации Google, только нужно учесть ситуацию с отключенным JS. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
Denisbox |
|
---|---|
Спасибо! Я именно так и хочу реализовать. css слайдера буду подгружать в футере, так как он используется только на главной и то можно сказать в середине сайта, а основная часть css кода будет в внедрена в шапку. contact: fonts (at) otlab . ru
|
kushelbek |
|
||
---|---|---|---|
#42001 Roffun:#41999 kushelbek:Конкретно вывести js файл на mysite.ru/lab/stranica не получаеятся =( День добрый, на другом сайте делаю все точно так же, но нужно вывести скрипт только в page.list.tpl <!-- IF {PHP.list} == "category" --> Что - то мне подсказывает, что я сделал что то не так... |
Roffun |
|
---|---|
<!-- IF {PHP.env.location} == 'list' --> <script src="simple.js"></script> <!-- ENDIF --> Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
Leshkens |
|
|
---|---|---|
Проверять имя категории еще можно вот так:
|
kushelbek |
|
---|---|
Leshkens |
|
||||
---|---|---|---|---|---|
Я на самом деле так и не понял как грамотно проверять условия подключения в файле theme.rc.php. Ведь переменная $env там не работает. Проверять по URL как предложил Roffun? Добавлено 3 дня спустя: Разобрался. Разделы в theme.rc.php можно проверять например вот так:
Здесь в разделе "porfolio" (и корневых страницах) грузим файл стилей portfolio.css. В подразделах работать не будет, потому что подразделы нужно проверять непосредственно.
Модули или плагины можно проверять так:
Здесь во всех разделах и страницах модуля page будет грузиться файл page.css.
Проверять по URI (например если нужно загружать файл стилей и в подразделах) можно вот так:
Здесь везде, когда в URI есть "studio", будет подгружаться файл studio.js. Например http://test.dev/studio/portfolio/sites
По алиасу страницы:
|
|||||
Dit bericht is bewerkt door Leshkens (2016-11-27 20:34, 8 jaren ago) |
kushelbek |
|
---|---|
Такой вопрос, а как плагины грузить в футере(со стилями по умолчанию)? |
Roffun |
|
||
---|---|---|---|
#42616 kushelbek: Чтобы в футере была ссылка на файл, то можно использовать функцию:
Саму функцию можно посмотреть в /system/resources.php строка ~ 639 Чтобы в футере было само тело файла:
Но css с точки зрения валидации нужно грузить в head, а в футере их можно через js подгружать, тогда второй параметр изменяете на js, а сам код css нужно сконвертировать в js. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
kushelbek |
|
||
---|---|---|---|
#42617 Roffun:#42616 kushelbek: я имел ввиду вот эти скрипты по умолчанию и скрипты плагинов. где нужно поправить что бы они грузились в футере? Заранее спасибо.
|
Roffun |
|
|||
---|---|---|---|---|
И js и css попадают в один тег: {HEADER_HEAD} Если включить в админке Объединять ресурсы header/footer (JS/CSS): То останется 2 файла в {HEADER_HEAD} (если посмотреть в режиме кода):
Заменяете {HEADER_HEAD} в header.tpl на
А в футер переносите
Но это перенесет все скрипты, в том числе JQuery Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
kushelbek |
|
|||
---|---|---|---|---|
#42619 Roffun: Понял, спасибо, будем пробовать =) |
Виктор |
|
---|---|
а как прописать в самом плагине например в довольном плагине "plug" в файле plug.rc.php, условие, чтоб файлы css и js подключались только тогда когда используется плагин "plug"
if($_GET['e'] == 'в каком плагине или модуле') if($_GET['e'] == 'page' || $_GET['e'] == 'plug' || $_GET['e'] == 'еще в каком то расширении') Это? |
|
Dit bericht is bewerkt door Виктор (2018-09-30 09:27, 6 jaren ago) |
Roffun |
|
---|---|
Варианты разные бывают, в зависимости от ситуации. Часто используется переменная $env. А если это свой модуль или плагин, и хотите максимально кастомизировать вывод css js без привязок к другим переменным, сделайте свою переменную или функцию, которая будет видимая только в определенных местах, нужных вам, и уже через нее выводите c помощью Resources (linkFileFooter, linkFilе, embed, embedFooter) на выбор. Если это переменная, то делаете ее видимой во всех нужных файлах, например $myvar = 'myvalue'. Если это функция, то в файле функций перечисляете нужные места видимости, например ($env['ext'], $env['location']) и т.д, отдавая свой вариант $myvar = "myvalue" в нужном месте:
Resources::linkFilе($cfg['themes_dir'] . '/' . $usr['theme'] . '/css/my.css', 'css', '15'); Resources::linkFilе($cfg['themes_dir'] . '/' . $usr['theme'] . '/js/my.js', 'js', '20'); } То же самое функция: if (myfunction() == 'myvalue'){ Resources::linkFilе($cfg['themes_dir'] . '/' . $usr['theme'] . '/css/my.css', 'css', '15'); Resources::linkFilе($cfg['themes_dir'] . '/' . $usr['theme'] . '/js/my.js', 'js', '20'); } Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
|
Dit bericht is bewerkt door Roffun (2018-10-01 10:02, 6 jaren ago) |