Вставка 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 |
|
---|---|
Проверять имя категории еще можно вот так: <!-- IF {PHP.c} == "portfolio" --> <script src="portfolio.js"></script> <!-- ENDIF -->
|
kushelbek |
|
---|---|
Leshkens |
|
---|---|
Я на самом деле так и не понял как грамотно проверять условия подключения в файле theme.rc.php. Ведь переменная $env там не работает. Проверять по URL как предложил Roffun? Добавлено 3 дня спустя: Разобрался. Разделы в theme.rc.php можно проверять например вот так: if ($_GET['с'] == 'portfolio') { Resources::linkFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/portfolio.css'); } Здесь в разделе "porfolio" (и корневых страницах) грузим файл стилей portfolio.css. В подразделах работать не будет, потому что подразделы нужно проверять непосредственно.
Модули или плагины можно проверять так: if ($_GET['e'] == 'page') { Resources::linkFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/page.css'); } Здесь во всех разделах и страницах модуля page будет грузиться файл page.css.
Проверять по URI (например если нужно загружать файл стилей и в подразделах) можно вот так: if (mb_strpos($sys['uri_curr'], 'studio') !== false) { Resources::linkFile($cfg['themes_dir'].'/'.$usr['theme'].'/js/studio.js'); } Здесь везде, когда в URI есть "studio", будет подгружаться файл studio.js. Например http://test.dev/studio/portfolio/sites
По алиасу страницы: if ($_GET['al'] == 'big-hall') { Resources::linkFile($cfg['themes_dir'].'/'.$usr['theme'].'/css/big-hall.css'); }
|
|
Відредаговано: Leshkens (27.11.2016 20:34, 7 років тому) |
kushelbek |
|
---|---|
Такой вопрос, а как плагины грузить в футере(со стилями по умолчанию)? |
Roffun |
|
---|---|
#42616 kushelbek: Чтобы в футере была ссылка на файл, то можно использовать функцию: Resources::linkFileFooter($cfg['themes_dir'] . '/' . $usr['theme'] . '/css/mycss.css','css','2'); Саму функцию можно посмотреть в /system/resources.php строка ~ 639 Чтобы в футере было само тело файла: ($cfg['themes_dir'] . '/' . $usr['theme'] . '/css/mycss.css','css','2'); Но 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} (если посмотреть в режиме кода): <link href="rc.php?rc=global.название шаблона.css&nc=1485362013" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="rc.php?rc=global.название шаблона.js&nc=1485362013"></script> Заменяете {HEADER_HEAD} в header.tpl на <link href="rc.php?rc=global.название шаблона.css&nc=1485362013" type="text/css" rel="stylesheet" /> А в футер переносите <script type="text/javascript" src="rc.php?rc=global.название шаблона.js&nc=1485362013"></script> Но это перенесет все скрипты, в том числе 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'] == 'еще в каком то расширении') Это? |
|
Відредаговано: Виктор (30.09.2018 09:27, 5 років тому) |
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
|
|
Відредаговано: Roffun (01.10.2018 10:02, 5 років тому) |