edmsl Опубликовано 23 июля, 2023 Автор Поделиться Опубликовано 23 июля, 2023 Разобрался. Нужно было в хуке наследоваться от класса 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 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 23 июля, 2023 Поделиться Опубликовано 23 июля, 2023 (изменено) 2 часа назад, edmsl сказал: Разобрался. Нужно было в хуке наследоваться от класса core\modules\front\system\plugins при создании плагина. Да, это самый простой вариант, и он описан у разработчика в доках Можно и на любой другой контроллер повесить (путь до них идет через папку modules нужного приложения) и расширив его нужной функцией, после так же обратиться через do Изменено 23 июля, 2023 пользователем Exception edmsl 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
edmsl Опубликовано 26 июля, 2023 Автор Поделиться Опубликовано 26 июля, 2023 В форме для создания записи о баге имеются поля: Спойлер Основное поле, первое, это то, что записывает данные в базу данных, ниже - это доп. контроллер, который через JS меняет значение основного. И так для двух полей. Проблема в том, что хотелось бы отключить возможность изменять значения основных полей вручную. Конечно, я их скрываю, да и вряд ли кто-то будет с этим заморачиваться, чтобы внести некорректные данные. Но все же. Если прописать полям атрибут disabled через $input->options['disabled']=true;, то значения не отправляются с формой, даже если значение стоит. Так уж устроены формы. Можно было бы прописать атрибут readonly, но такого атрибута нет в options! Как так, IPS? Если прописать $input->options['readonly]=true;, то это, естественно, не работает. Я пробовал основным полям ставить тип SelectBox, а потом менять список <options> в шаблоне $input->options['options'] = $arr;, но тогда при сохранении пишет, что значение недопустимо. В общем, как можно запретить редактировать основные поля напрямую? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
edmsl Опубликовано 27 июля, 2023 Автор Поделиться Опубликовано 27 июля, 2023 (изменено) Какую настройку нужно активировать в админке, чтобы это условие сработало? \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'search' ) ) Поиском пользоваться могу. Изменено 27 июля, 2023 пользователем edmsl Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 30 июля, 2023 Поделиться Опубликовано 30 июля, 2023 В 27.07.2023 в 18:35, edmsl сказал: Какую настройку нужно активировать в админке, чтобы это условие сработало? \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'search' ) ) Поиском пользоваться могу. Это проверка доступа к модулю, к модулям приложений разрешения меняются на странице приложений Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
edmsl Опубликовано 31 июля, 2023 Автор Поделиться Опубликовано 31 июля, 2023 Exception Да, спасибо, уже разобрался. Проблема была вовсе не с этой строкой даже. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.