Jump to content

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

Featured Replies

  • Author
comment_194968

Разобрался. Нужно было в хуке наследоваться от класса 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

 

  • Replies 80
  • Просмотров 9k
  • Created
  • Последний ответ

Лучшие авторы в теме

Most Popular Posts

  • можешь изучить классы IPS\Helpers\Table\Content ( или \IPS\Helpers\Table\Db ) \IPS\Content\Item и функцию getItemsWithPermission() вывести например через функцию getItemsWithPermission {{d

  • В файлах движка конкретной версии ips и php (так как с разными версиями функции модифицируются) IPS\Helpers\Table\Content ( или \IPS\Helpers\Table\Db ) -> корень/system/Helpers/Table Content.p

  • ну я так понимаю что какой-то баг принадлежит какой-то сборке и при создании новой записи с новым багом вы (согласно полю связать с БД)  размещаете запись с этим багом привязав его к какой-то сборке.

Posted Images

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

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

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

Edited by Exception

  • Author
comment_195029

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

Спойлер

Screenshot_1.jpg.de6d3ac1c3c49a80a6f31448bcec4e77.jpg

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

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

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

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

  • Author
comment_195063

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

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

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

Edited by edmsl

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

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

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

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.