instantcms 2 виджет php

Нужен виджет вывода php кода

 
Посетитель
small user social cms
Медаль
Сообщений: 427
Код PHP:
  1.  
  2. Потому, что не объявлена в том виджете переменная $item.
  3. Получите её в виджете заново и оперируйте ею, как хотите.
  4.  
А как её объявить?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3374
Vladimir:
А как её объявить?
Так посмотрите, как она попадает в default_item.tpl.php.
Примерно таким же образом её придется добывать в виджете.
Вы точно не хотите решить эту проблему более простым способом, чем виджет php ?
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1463
Если надо выводить поля в своей вёрстке то вот вам варианты
https://instantcms.ru/blogs/dopolnenija-ot-instantcms2-ru/dbl-tn.html
https://instantcms.ru/blogs/dopolnenija-ot-instantcms2-ru/pole-html-tekst-s-obrabotkoi-polei.html
Редактировалось: 1 раз (Последний: 17 июля 2020 в 21:41)
Делаю сайты, дополнения, верстаю, исправляю. skype:gdvden
Посетитель
small user social cms
Медаль
Сообщений: 427
Интересный вариант, но с помощью данного виджета, у меня получилось вывести только столбец title из таблицы. Когда вставляю {id}, id не отображается.
Ris:
Вы точно не хотите решить эту проблему более простым способом, чем виджет php ?
Думаю, виждет, оптимальный вариант.
Редактировалось: 1 раз (Последний: 17 июля 2020 в 22:00)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3374
Vladimir:
Думаю, виждет, оптимальный вариант.
Dj многих компонентах есть виджеты. И виджет php не получает данных ни из одного компонента.
Хотя можно попробовать получать единицу контента как-то так прямо в этом виджете.
$this->model_content->getContenItem(тип_контента, номер единицы контента):
Посетитель
small user social cms
Медаль
Сообщений: 499
Vladimir:
С помощью виджета, пытаюсь делать манипуляции со страницей контента, к примеру вывести ID текущей страницы,
<?php html($item['id']); ?>

но не получается.

У меня так получилось:

Код PHP:
  1.  
  2. $inCore = cmsCore::getInstance();
  3. $content_model = $inCore->getModel('content');
  4. $current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
  5. echo 'current_item = ' . $current_item['id'];
  6.  
Дополнение: Форум в группах . Тестировать здесь https://test.proglite.ru/
PLSHOP - Шаблон интернет-магазина. Демо
Посетитель
small user social cms
Медаль
Сообщений: 427
Ris:
Хотя можно попробовать получать единицу контента как-то так прямо в этом виджете.
$this->model_content->getContenItem(тип_контента, номер единицы контента):
Я как понимаю здесь получение конкретной записи, а мне нужно что-то формировалось динамически.
как вариант уже подумал добавить поле id в таблицу cms_con_articles_fields, там через приватность всё скрыть, но главное чтобы виджет заработал. Ан нет. Ещё задача что-бы данный виджет видел только автор записи) А такого функционала здесь нет, а php он не поддерживает...
Тогда приходим к этому решению https://instantcms.ru/forum/thread33504-1.html, а здесь снова $item, который не объявлен...
Посетитель
small user social cms
Медаль
Сообщений: 427
vladimird:
$inCore = cmsCore::getInstance();
$content_model = $inCore->getModel('content');
$current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
echo 'current_item = ' . $current_item['id'];
Супер! Работает, спасибо!
Теперь бы ещё как сделать, чтобы запись мог видеть только автор?
Редактировалось: 1 раз (Последний: 17 июля 2020 в 22:46)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3374
Vladimir:
Теперь бы ещё как сделать, чтобы запись мог видеть только автор?
Код PHP:
  1. $inCore = cmsCore::getInstance();
  2. $content_model = $inCore->getModel('content');
  3. $current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
  4. if ($current_item['id'] == $this->cms_user->id){
  5. echo 'current_item = ' . $current_item['id'];
  6. }
Посетитель
small user social cms
Медаль
Сообщений: 427
Ris:
$inCore = cmsCore::getInstance();
$content_model = $inCore->getModel('content');
$current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
if ($current_item['id'] == $this->cms_user->id){
echo 'current_item = ' . $current_item['id'];
}
Не сработало, ничего не выводит автору. Наверное $this->cms_user->id не работает.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3374
Vladimir:
Наверное $this->cms_user->id не работает.
Тогда так:
Код PHP:
  1. $user_id = cmsUser::getInstance()->id;
  2. $inCore = cmsCore::getInstance();
  3. $content_model = $inCore->getModel('content');
  4. $current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
  5. if ($current_item['user_id'] == $user_id){
  6. echo 'current_item = ' . $current_item['id'];
  7. }
Редактировалось: 1 раз (Последний: 17 июля 2020 в 23:09)
Посетитель
small user social cms
Медаль
Сообщений: 427
Ris:
$user_id = cmsUser::getInstance()->id;
$inCore = cmsCore::getInstance();
$content_model = $inCore->getModel('content');
$current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
if ($current_item['user_id'] == $user_id){
echo 'current_item = ' . $current_item['id'];
}
Спасибо! Работает!
Но...).. Если просматривает не автор записи, место под виджет остаётся... Есть вариант использовать шаблон контейнера "wrapper_plain", но тогда при отображении информации, дизайн теряется...
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4072
Ris:
Код PHP:
  1. $inCore = cmsCore::getInstance();
  2. $content_model = $inCore->getModel('content');
  3. $current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'))
;
Всё уже давно придумано и гораздо проще https://github.com/instantsoft/icms2/blob/master/system/controllers/content/actions/item_view.php#L377
Код PHP:
  1. $current_item = cmsModel::getCachedResult('current_ctype_item');
Посетитель
small user social cms
Почетный донор проекта
Сообщений: 72
Здравствуйте!
Пробую установить виджет в версию 2.10.0, но выдается ошибка:
Ошибка в запросе БД:
Table 'u0402614_nordveg.cms_widgets' doesn't exist

INSERT INTO `cms_widgets` (`controller`, `name`, `title`, `author`, `url`, `version`) VALUES
(NULL, 'php', 'PHP code', 'IngDesign', 'http://ingdesign.ru', '1.0');
Последние вызовы:

cmsDatabase->importDump() @ /system/controllers/admin/actions/install_finish.php : 345
actionAdminInstallFinish->importPackageDump() @ /system/controllers/admin/actions/install_finish.php : 26
actionAdminInstallFinish->run()
call_user_func_array() @ /system/core/controller.php : 514
cmsController->runExternalAction() @ /system/core/controller.php : 425
cmsController->runAction()
call_user_func_array() @ /system/core/action.php : 29
cmsAction->__call() @ /system/controllers/admin/actions/install.php : 12
actionAdminInstall->runAction() @ /system/controllers/admin/actions/install.php : 12
actionAdminInstall->run()
call_user_func_array() @ /system/core/controller.php : 514

Нужно подключить Sape. Не получается. Может кто поможет?
Подключал вставкой html блока с кодом sape для главной и других страниц. Но при добавлении сайта на sape выдается, что код не установлен. По F12 на главной странице, по поиску "sape" не находится. Находится на других страницах. Так же пробовал добавить код sape в шаблон main.tpl.php. Но тоже не помогло. И по f12 search не находится слово sape.
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2928
max_nordvegan, предположу, что в пакете установки префикс таблиц прописан прямо cms_ а не {#}
У вас этот префикс не cms, а другой. И установка не проходит, не находя таблицу

Используйте для вывода сапы виджет https://addons.instantcms.ru/addons/php.html
Судя по коду, установиться должно нормально. И работать тоже.
Виджеты, поля и компоненты для instantcms 2 www.zau4man.ru tm @zau4man
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.