Как заинклудить php-шку на одной определенной странице?

InstantCMS 2.X
#1 11 сентября 2021 в 12:28

Есть страница, тип контента — страницы.

В теле страницы нужно вывести список, который генерируется из локальной php-шки.

Редактор режет все попытки вставить инклуд. 

Пожалуйста, подскажите решение.

#2 11 сентября 2021 в 13:06

Редактор режет все попытки вставить инклуд. 

Alexey

Вы пытаетесь в редакторе написать php код? Вряд ли это у вас выйдет. Здесь можно поступить так: если вам нужно выводить список из php файла, то вывести его полем. В поле просто можно будет указывать название файла или наоборот — загружать его на сервер. Еще можно вывести этот файл непосредственно в файле шаблона записи, но данный метод будет иметь ограничение — показываться будет во всех записях одни и те же данные. Как по мне — так я бы сделал поле для этой цели.

#4 11 сентября 2021 в 13:39

 IamB, это в виджете. А ему надо в теле страницы выводить. А в тело страницы, как мы знаем, виджет с фронта не запихаешь

#5 11 сентября 2021 в 15:42

 Make, термин тело страницы мы с вами по-разному поняли. Осталось выяснить, что же ТС имел в виду.

#6 11 сентября 2021 в 15:46

В теле страницы нужно вывести список, который генерируется из локальной php-шки.

Редактор режет все попытки вставить инклуд. 

Alexey

Ну здесь думаю ситуация следующая. Есть тип контента — страницы, в него ТС добавляет записи. И пытается через редактор (куда пишется описание страницы) вставить <?php include… ?>

#7 11 сентября 2021 в 20:48

Насколько я помню, в maxsitecms это называлось «ушки».

Изображение

Может и в инстанте кто-то подобное создаст.

#8 12 сентября 2021 в 13:18

Насколько я помню, в maxsitecms это называлось «ушки».

Изображение

Может и в инстанте кто-то подобное создаст.

Melon

 

Попробовал, не работает такое.

#9 12 сентября 2021 в 21:45

Попробовал, не работает такое.

А как вы попробовали?) 

#10 12 сентября 2021 в 23:43

Попробовал, не работает такое.

А как вы попробовали?) 

Make

как написано, так и пробовал.

В итоге я просто вставил в шаблон инклуд, который проверяет URI и если он равен нужной странице, то инклуд возвращает нужный мне контент.

Все работает. Хотя и костыль.

#11 18 февраля 2022 в 11:22

В поле просто можно будет указывать название файла

Make

Наверно это лучший вариант, создал папку myphp, закинул туда  файл test.php, установил поле — «Добавить файл», при создании записи в поле написал test и всё проблем нет. Вот только одна проблема, как написать это поле когда руки — крюки?

#12 18 февраля 2022 в 12:53

В итоге я просто вставил в шаблон инклуд, который проверяет URI и если он равен нужной странице, то инклуд возвращает нужный мне контент.

Все работает. Хотя и костыль.

Alexey

Ещё можно (если подойдет) создать свой шаблон для страницы… вот тема там есть как:

instantcms.ru/forum/svoi-shablon-dlja-stranicy.html#post-331639

#13 18 февраля 2022 в 16:46

Ещё можно (если подойдет) создать свой шаблон

RSN

Тоже вариант, видел его, также фремом можно, но это как то не солидно. Хотелось бы так

Изображение

Поле то пустяковое, всего пара строчек, в двойке ещё не силен, не понимаю логики, как привязать include '/test/test.php' в поле

Для начало набросал и теперь чешу дыню, что дальше делать

  1. <?php
  2.  
  3. class fieldAadfile extends cmsFormField {
  4.  
  5. public $title = 'Добавить файл php';
  6. public $sql = 'text';
  7. public $filter_type = false;
  8. public $filter_hint = false;
  9.  
  10. public function parse($value) {
  11.  
  12. if (){
  13. return '';
  14. }
  15. else {
  16. return 'Неверное название файла';
  17. }
  18.  
  19. }
Добавлено спустя 2 часа

Раз занялся, надо добить до конца, главное чтоб сил хватило. Посоветуйте что будет лучше для этого поля include или file_get_contents.

#14 19 февраля 2022 в 21:13

Чтоб другие не тратили время зря: require, include, require_once и include_once с ними не получилось указать путь к файлу, перебрал много способов, но у вы. При использовании file_get_contents при указании абсолютного пути до файла донора всё заработало.

Изображение

Простой и рабочий код в папку system — fields если чё не так пишите.

  1. <?php
  2.  
  3. class fieldAdfiles extends cmsFormField {
  4.  
  5. public $title = 'Добавить файл PHP';
  6. public $sql = 'varchar(200) NULL DEFAULT NULL';
  7. public $filter_type = false;
  8. public $var_type = false;
  9.  
  10. public function parse($value) {
  11.  
  12. if (!$value) {
  13. return '';
  14. }
  15.  
  16. if (preg_match('/php/i', trim($value))){
  17. return '<div class="add_files">' . @file_get_contents ($value, false) . '</div>';
  18. }
  19. else {
  20. return 'Указана неверная ссылка';
  21. }
  22.  
  23. }
  24.  
  25. }
#15 20 февраля 2022 в 13:19

 Nikolay, а что будет, если я на сайте example.com размещу файл example.com/php.js, в файл помещу свой js, а в ваше поле вставлю хттп://example.com/php.js ? 

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.