2017 © Pedro Peláez
 

extension yii2-ajax-dialog

Yii2 ajax dialog

image

understeam/yii2-ajax-dialog

Yii2 ajax dialog

  • Thursday, February 16, 2017
  • by AnatolyRugalev
  • Repository
  • 2 Watchers
  • 1 Stars
  • 860 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 14 Versions
  • 2 % Grown

The README.md

Yii2 AJAX Dialog

Этот виджет позволяет легко подключить ajax загрузку контента внутрь всплывающих окон Bootstrap 3 Dialog., (*1)

Установка

$ composer require understeam/yii2-ajax-dialog:~0.1 --prefer-dist

Controller и View

Первое, что требуется сделать - это view, который будет загружаться внутрь окна. Здесь ничего особенного. Создается view файл, который рендерится из контроллера по запросу, например ['popup/show']., (*2)

render('show');
    }

}
```

Внутри view необходимо обернуть отображаемую часть в виджет `DialogContainer`:

```php
title = "Popup title!";
\understeam\dialog\DialogContainer::begin();
?>


Hello! This is popup

Через $this->title можно задать заголовок всплывающего окна., (*3)

Так как для загрузки используется Pjax, встроенный в Yii2, все ассеты, подключаемые внутри этого view будут подключены на страницу, в которой будет отображён попап. Это позволяет безопасно использовать, например, ActiveForm с клиентской и ajax валидацией., (*4)

Подключение модального окна

Чтобы вставить модальное окно на страницу, можно использовать следующий код:, (*5)

<?=\understeam\dialog\Dialog::widget([
    'url' => ['popup/show'],    // URL содержимого
    'open' => true,             // Открыть окно при загрузке
]) ?>

Этот пример откроет модальное сразу при загрузке страницы. Чтобы этого избежать, можно назначить селектор или вызвать открытие окна из js кода., (*6)

<?=\understeam\dialog\Dialog::widget([
    'url' => ['popup/show'],    // URL содержимого
    'jsName' => 'myPopup',      // Имя js переменной, в которую будет сохранён объект модального окна
    // Для вызова окна достаточно выполнить window.myPopup.open()
    'selector' => 'a.showPopup', // Селектор, при клике на который будет совершено открытие окна
]) ?>

Кнопки

Кнопки в модальное окно добавляются через свойство buttons:, (*7)

<?=\understeam\dialog\Dialog::widget([
    'url' => ['popup/show'],    // URL содержимого
    'buttons' => [
        \understeam\dialog\CloseButton::className(), // Кнопка "закрыть"
        [
            'class' => \understeam\dialog\Button::className(),
            'id' => 'btn-custom',
            'label' => 'Custom',
            'action' => 'function(){alert("custom button")}',
            'cssClass' => ['btn-warning'],
            'icon' => 'glyphicon glyphicon-ok',
        ],
    ]
]) ?>

Вы можете создавать свои кнопки, см. пример., (*8)

ActiveForm

Для отображение в окне ActiveForm с предопределёнными кнопками Submit и Close можно использовать виджет ActiveFormDialog., (*9)

<?=\understeam\dialog\ActiveFormDialog::widget([
    'url' => ['popup/show'],
    'jsName' => 'myPopup',
]) ?>

View при этом модифицировать не нужно, (*10)

Передаваемые переменные

При отображении окна через JS имеется возможность передать в него динамические данные:, (*11)

function openPopup(name, phone) {
    myPopup.setData('options', {name: name, phone: phone});
    myPopup.open();
}

При этом подстановка данных произойдёт в поля ввода текста с data аттрибутом data-dialog-attr:, (*12)

<input type="text" value="" name="name" data-dialog-attr="name" />
<input type="text" value="" name="phone" data-dialog-attr="phone" />

Или при выводе ActiveForm:, (*13)

<?php
/**
 * @var \yii\base\Model $model
 */
?>
<?php \understeam\dialog\DialogContainer::begin() ?>
<?php $form = \yii\bootstrap\ActiveForm::begin() ?>
<?= $form->field($model, 'name')->textInput([
    'data-dialog-attr' => 'name',
]); ?>
<?= $form->field($model, 'phone')->textInput([
    'data-dialog-attr' => 'phone',
]); ?>
<?php $form->end() ?>
<?php \understeam\dialog\DialogContainer::end() ?>

TODO

  1. Валидация ActiveForm
  2. Больше настроек для BootstrapDialog

The Versions

16/02 2017

dev-master

9999999-dev

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

16/02 2017

v0.1.12

0.1.12.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

16/02 2017

v0.1.11

0.1.11.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

02/02 2017

v0.1.10

0.1.10.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

23/12 2016

v0.1.9

0.1.9.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

26/09 2016

v0.1.8

0.1.8.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

15/08 2016

v0.1.7

0.1.7.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

15/08 2016

v0.1.6

0.1.6.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

15/08 2016

v0.1.5

0.1.5.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

15/08 2016

v0.1.4

0.1.4.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

15/08 2016

v0.1.3

0.1.3.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

15/08 2016

v0.1.2

0.1.2.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

15/08 2016

v0.1.1

0.1.1.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev

31/07 2016

v0.1.0

0.1.0.0

Yii2 ajax dialog

  Sources   Download

GPLv3

The Requires

 

by Anatoly Rugalev