Перейти к содержанию

Реализация кода блока ленты базы данных


Рекомендуемые сообщения

Разобрался. Нужно было в хуке наследоваться от класса core\modules\front\system\plugins при создании плагина.

class hook91 extends _HOOK_CLASS_
{
		public function getFileVersions()
		{
			$result = array( 'data' => \IPS\Db::i()->select('b_version', 'downloads_filebackup', array('b_fileid=?', (int) \IPS\Request::i()->gamefile), 'b_version DESC'));
		
			\IPS\Output::i()->json($result);
		}
}

В JS коде затем вызывать так:

ips.getAjax()(ips.getSetting('baseURL') + 'index.php?app=core&module=system&controller=plugins&&do=getFileVersions&id=3', { type: 'get', })

В ответе получаем:

Object { data: (1) […] }
	data: Array [ "2.0.0" ]
		0: "2.0.0"
	length: 1

 

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 80
  • Создана
  • Последний ответ

Топ авторов темы

2 часа назад, edmsl сказал:

Разобрался. Нужно было в хуке наследоваться от класса core\modules\front\system\plugins при создании плагина.

Да, это самый простой вариант, и он описан у разработчика в доках
Можно и на любой другой контроллер повесить (путь до них идет через папку modules нужного приложения) и расширив его нужной функцией, после так же обратиться через do

Изменено пользователем Exception
Ссылка на комментарий
Поделиться на другие сайты

В форме для создания записи о баге имеются поля:

Спойлер

Screenshot_1.jpg.de6d3ac1c3c49a80a6f31448bcec4e77.jpg

Основное поле, первое, это то, что записывает данные в базу данных, ниже - это доп. контроллер, который через JS меняет значение основного. И так для двух полей. Проблема в том, что хотелось бы отключить возможность изменять значения основных полей вручную. Конечно, я их скрываю, да и вряд ли кто-то будет с этим заморачиваться, чтобы внести некорректные данные. Но все же. Если прописать полям атрибут disabled через $input->options['disabled']=true;, то значения не отправляются с формой, даже если значение стоит. Так уж устроены формы. Можно было бы прописать атрибут readonly, но такого атрибута нет в options! Как так, IPS?

Если прописать $input->options['readonly]=true;, то это, естественно, не работает.

Я пробовал основным полям ставить тип SelectBox, а потом менять список <options> в шаблоне $input->options['options'] = $arr;, но тогда при сохранении пишет, что значение недопустимо.

В общем, как можно запретить редактировать основные поля напрямую?

Ссылка на комментарий
Поделиться на другие сайты

Какую настройку нужно активировать в админке, чтобы это условие сработало?

\IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'search' ) )

Поиском пользоваться могу.

Изменено пользователем edmsl
Ссылка на комментарий
Поделиться на другие сайты

В 27.07.2023 в 18:35, edmsl сказал:

Какую настройку нужно активировать в админке, чтобы это условие сработало?

\IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'search' ) )

Поиском пользоваться могу.

Это проверка доступа к модулю, к модулям приложений разрешения меняются на странице приложений
image.thumb.png.94b3d14c3acee37b29d083c17e5ae091.png

Ссылка на комментарий
Поделиться на другие сайты

Exception Да, спасибо, уже разобрался. Проблема была вовсе не с этой строкой даже.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...