skeeks / cms-dadata
Работа с dadata.ru for SkeekS CMS
2.0.0.1
2026-06-17 12:24 UTC
Requires
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Info
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist skeeks/cms-dadata-suggest "*"
or add
"skeeks/cms-dadata-suggest": "*"
Configuration app
'components' => [ 'dadataSuggest' => [ 'class' => 'skeeks\cms\dadataSuggest\CmsDadataSuggestComponent', ], 'dadataSuggestApi' => [ 'class' => 'skeeks\cms\dadataSuggest\CmsDadataSuggestApi', ], 'i18n' => [ 'translations' => [ 'skeeks/dadata-suggest' => [ 'class' => 'yii\i18n\PhpMessageSource', 'basePath' => '@skeeks/cms/dadataSuggest/messages', 'fileMap' => [ 'skeeks/dadata-suggest' => 'main.php', ], ] ] ] ], 'modules' => [ 'dadataSuggest' => [ 'class' => 'skeeks\cms\dadataSuggest\CmsDadataSuggestModule', ] ]
Examples
First detect address from api and save to session
\Yii::$app->dadataSuggest->address
First detect address from api and save to session
if (\Yii::$app->dadataSuggest->isSavedAddress) { echo \Yii::$app->dadataSuggest->address->unrestrictedValue; } else { echo "Not saved address to session"; }
Address widget
<?= \skeeks\cms\dadataSuggest\widgets\address\DadataGetAddressWidget::widget([ 'options' => [ 'href' => '#', 'onclick' => 'new sx.classes.ModalRegionPageReload(); return false;', 'class' => 'sx-dadata-suggestion-city', ] ]); ?>
Suggest widget
<?= \skeeks\cms\dadataSuggest\widgets\suggest\DadataSuggestInputWidget::widget([ 'name' => 'address', 'id' => 'sx-global-region-input', 'addon' => 'clear', 'value' => \Yii::$app->dadataSuggest->isSavedAddress ? \Yii::$app->dadataSuggest->address->unrestrictedValue : "", 'clientOptions' => [ 'onInit' => new \yii\web\JsExpression(<<<JS function(e, data) { data.DadataSuggest.bind('onSelect', function() { $("#sx-save-region").show(); }); } JS ) ], 'options' => [ 'class' => 'form-control', 'placeholder' => 'Найти город', ] ]); ?>
Suggest widgets in forms
<?= $form->field($model, 'post_recipient')->widget( \skeeks\cms\dadataSuggest\widgets\suggest\DadataSuggestInputWidget::className(), [ 'options' => [ 'placeholder' => $model->getAttributeLabel('post_recipient'), ], 'type' => 'NAME' ] ); ?> ### Suggest widgets with additional settings ```php $form->field($model, 'post_address')->widget( \skeeks\cms\dadataSuggest\widgets\suggest\DadataSuggestInputWidget::className(), [ 'options' => [ 'placeholder' => "Адрес (улица, дом, кв)", ], 'clientOptions' => [ 'suggestOptions' => [ 'triggerSelectOnSpace' => true, 'triggerSelectOnBlur' => true, 'constraints' => [ [ 'locations' => \Yii::$app->dadataSuggest->address->getRegionArray(), 'deletable' => false, 'label' => '' ] ], 'restrict_value' => true, ], 'onInit' => new \yii\web\JsExpression(<<<JS function(e, data) { data.DadataSuggest.bind('onSelect', function() { data.DadataSuggest.bind('afterSave', function() { $.pjax.reload({container:'#sx-cart-full'}); }); data.DadataSuggest.save(); return false; }); } JS ) ] ]); ?>
##Links
SkeekS CMS (Yii2) — fast, simple, effective!
skeeks.com | cms.skeeks.com