Как Подключить файл/код 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
Bu gönderi Roffun tarafından düzenlendi (2020-10-03 12:55, 5 yıllar önce)
|
| boris78 |
|
|---|---|
|
Уточните, пожалуйста, если нужно показать блок текста/html+js только на index page, то какая конструкция там будет, если в качестве index назначена market (market.list.tpl) ? Пробовал <!-- IF {PHP._SERVER.REQUEST_URI} == '/' --> Текст блока но не работает
А если <!-- IF {PHP._SERVER.REQUEST_URI} == '/market' --> Текст блока То показывает на странице /market
Слоты меню просьба не предлагать, там код обрезается почему-то..
Bu gönderi boris78 tarafından düzenlendi (2020-10-21 17:54, 5 yıllar önce)
|
| 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% !
Благодарю
Вам пора донаты за помощь собирать
Bu gönderi boris78 tarafından düzenlendi (2020-10-21 19:01, 5 yıllar önce)
|