Как Подключить файл/код php на определенных страницах
boris78 |
|
---|---|
Во многих cms конструкция <?php if($_SERVER['REQUEST_URI'] == '/' ) { include ($_SERVER['DOCUMENT_ROOT'].'/2.php'); } ?> позволяет подключить кастомный код php из файла 2. Но в Cotonti, если добавить это условие даже в footer.tpl файл 2 не подключается. Как все-таки подключить? |
Roffun |
|
---|---|
#45099 boris78: В Cotonti это делается оператором FILE, описано в документации: Синтаксис CoTemplate. Только во включаемом файле не должно быть логических блоков. И переменные должны иметь синтаксис шаблонизатора а не PHP. <!-- IF {PHP._SERVER.REQUEST_URI} == '/' --> {FILE "{PHP.cfg.plugins_dir}/{PHP.theme}/something.tpl"} <!-- /ENDIF --> Или же написать отдельную функцию PHP, в которой будет нужная логика, а в шаблоне ее использовать как условие: <!-- IF {PHP|myfunc} == '/' --> {FILE "{PHP.cfg.plugins_dir}/{PHP.theme}/something.tpl"} <!-- /ENDIF --> Но это все если нужно именно в шаблоне получить значения, а если нужно больше функционала то конечно лучше отдельно свое расширение. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
|
This post was edited by Roffun (2020-10-03 12:55, 4 years ago) |
boris78 |
|
---|---|
Уточните, пожалуйста, если нужно показать блок текста/html+js только на index page, то какая конструкция там будет, если в качестве index назначена market (market.list.tpl) ? Пробовал <!-- IF {PHP._SERVER.REQUEST_URI} == '/' --> Текст блока но не работает
А если <!-- IF {PHP._SERVER.REQUEST_URI} == '/market' --> Текст блока То показывает на странице /market
Слоты меню просьба не предлагать, там код обрезается почему-то..
|
|
This post was edited by boris78 (2020-10-21 17:54, 4 years ago) |
Roffun |
|
---|---|
#45142 boris78: Логично, тем более в чисом виде переменные нежелательно использовать если есть альтернатива, например $env, в некоторых случая $m, бывает $out, и другие варианты, зависит от цели. Конкретизируйте вопрос, не совсем понятно что и где нужно вывести. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
boris78 |
|
---|---|
Нужно на главной странице сайта (просто при переходе на адрес сайта как он указан в конфиге) показывало содержание определенного кода. Но на остальных страницах этот код не нужен. Повторюсь, что при вводе кода через слоты меню часть кода теряется, поэтому нужно пробовать так.. |
Roffun |
|
---|---|
#45146 boris78: А в каком файле будете размещать вызов, в глобальном (header.tpl, footer.tpl) или индексном (index.tpl) ? Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
boris78 |
|
---|---|
market.list.tpl Включена обработка списка товаров в качестве главной страницы. Поэтому этот шаблон подключен. |
Roffun |
|
---|---|
Например если разместить в header.tpl конструкцию: <!-- IF {PHP.env.ext} == 'index' AND {PHP.env.location} == 'home' --> {FILE "{PHP.cfg.themes_dir}/{PHP.theme}/inc/customfile.tpl"} <!-- ENDIF --> А в папке шаблона создать папку inc (необязательно), в ней tpl файл, в котором свой код, то содержимое появится только на главной. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
boris78 |
|
---|---|
В нем и нужно отобразить, но с условием, что только в нем. |
Roffun |
|
---|---|
#45150 boris78: Попробуйте вышеприведенный код, еще можно поиграться с: <!-- IF {PHP.env.ext} == 'market' AND {PHP.m} == 'list' AND !{PHP.c} --> {FILE "{PHP.cfg.themes_dir}/{PHP.theme}/inc/customfile.tpl"} <!-- ENDIF --> или <!-- IF {PHP.m} == 'list' AND !{PHP.c} --> {FILE "{PHP.cfg.themes_dir}/{PHP.theme}/inc/customfile.tpl"} <!-- ENDIF -->
Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
boris78 |
|
---|---|
<!-- IF {PHP.env.ext} == 'market' AND {PHP.m} == 'list' AND !{PHP.c} --> Работает 100% !
Благодарю
Вам пора донаты за помощь собирать
|
|
This post was edited by boris78 (2020-10-21 19:01, 4 years ago) |