Последнее обновление:
July 6, 2020

Есть мысль... Жми, напиши!
Что имеем: Постов : 140 Авторов: 1 Категорий: 22

IPS alert() — диалоговые окна в даминке.

Нашёл тут как в админке UI IP.Board вывести диалоговое окно, пример alert():

ips.ui.alert.show({
 type: 'alert',
 message: ips.getString('myapp_dlg_alert1_title'),
 subText: ips.getString('myapp_dlg_alert1_desc'),
 icon: 'info',
 buttons: {
  ok: ips.getString('myapp_dlg_alert1_btn_ok'),
 },
 callbacks: {
  ok: function() {
   this.alertOpen = false;
  }
 }
});

Пример confirm():

ips.ui.alert.show({
 type: 'confirm',
 message: ips.getString('rebuildGalleryThumbnails'),
 subText: ips.getString('rebuildGalleryThumbnailsBlurb'),
 icon: 'question',
 buttons: {
  ok: ips.getString('rebuildGalleryThumbnailsYes'),
  cancel: ips.getString('rebuildGalleryThumbnailsNo')
 },
 callbacks: {
  ok: function(){
    $('input[name=rebuildWatermarkScreenshots]').val(1);
    this.alertOpen = false;
  },
  cancel: function(){
   $('input[name=rebuildWatermarkScreenshots]').val(0);
   this.alertOpen = false;
  }
 }
});

ips.getString() — берёт строку из файла jslang.php (для возможности перевода), формат файла:

$lang = array(
    'myapp_dlg_alert1_title' => 'Title Alert1',
    'myapp_dlg_alert1_desc' => 'Description of Alert1 dlg',
    'myapp_dlg_alert1_btn_ok' => 'BTN OK!'
);

Вот как-то так.

Views :

17

IPS скрипты приложения (application resources)

Попросили тут меня помочь разобраться, как подключить скрипты в приложение, так как в документации не очень понятно написано.

Чтож, оказывается, структура каталогов должна быть такая:
«<youapp>/dev/js/<location>/<type>/<group>/<script.js>
<youapp> — директория вашего приложения
<location> — где будет отображаться (admin/front/global)
<type> — кто выводит (controllers/templates/models/mixins/common)
<group> — название группы (любое, на ваше усмотрение)
<script.js> — название скрипта (любое, на ваше усмотрение)

Допустим, у нас есть контроллер и нужно подключить в выводе javascript, для этого создаём файл:
«/applications/myappname/dev/js/admin/controllers/mygroup/myscript.js»

В функции manage(), которая отвечает за вывод контроллера, прописываем:

\IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('admin_mygroup.js', 'myappname', 'location'));

Обратите внимание на ‘admin_mygroup.js’ — да, должно быть именно так! т.е. «<location>_<group>.js» название скрипта пропускаем — прогрузятся все в этой папке автоматически.
Вместо ‘myappname’ пишем имя приложения именно так, как называется его директория в папке applications.

Вот как-то так. Похоже, открываю новую рубрику по плагино писанию к IPS, посмотрим, может действительно окажется хорошим форумным движком.

Views :

14