Example #1
0
 public function init()
 {
     $id = $this->getId();
     $buttonId = 'fm-btn-' . $id;
     $this->fileManager = ArrayHelper::merge(['controller' => Adm::getInstance()->id . '/elfinder', 'filter' => 'image', 'template' => '<div class="input-group fm-input-cont"><span class="input-group-addon">{button}</span>{input}</div>', 'options' => ['class' => 'form-control'], 'buttonTag' => 'a', 'buttonName' => '', 'buttonOptions' => ['class' => 'glyphicon glyphicon-folder-open filemanager-btn', 'href' => 'javascript:void(0);', 'id' => $buttonId, 'data' => ['placement' => 'top']], 'multiple' => true], $this->fileManager);
     if ($this->enablePreview) {
         $basePath = Yii::getAlias($this->basePath);
         $this->getView()->registerJs('
         $("#' . $buttonId . '").tooltip({
             html: true,
             title: function(){
                 var v = $(this).closest(".fm-input-cont").find("#' . Html::getInputId($this->model, $this->attribute) . '").val();
                 var $img = $("<img src=\\"' . $basePath . '" + v + "\\" class=\\"hide file-input-img\\">");
                 var $loading = $("<span class=\\"file-input-loading fa fa-spinner rotating\\"></span>");
                 $img.on("load", function(){
                     $img.removeClass("hide");
                     $loading.hide();
                 })
                 return $("<div class=\\"file-input-cont\\"><div>").append($loading).append($img);
             },
         });
     ');
     }
     parent::init();
 }
Example #2
0
 public function init()
 {
     if ($this->controller === null) {
         $this->controller = Adm::getInstance()->id . '/elfinder';
     }
     parent::init();
 }
Example #3
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = Adm::getInstance()->manager->createUserQuery('findByUsername', $this->username);
     }
     return $this->_user;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $sourceMessageTable = static::tableName();
     $query = static::find()->from(['s' => $sourceMessageTable]);
     $sort = isset($params['sort']) ? $params['sort'] : null;
     $emptyTranslation = Yii::$app->request->get('is-empty');
     $isTranslationSearch = $emptyTranslation || isset($params['SourceMessageSearch']['translation']) && $params['SourceMessageSearch']['translation'];
     $isTranslationSort = in_array($sort, ['-translation', 'translation']) ? $sort : null;
     if ($isTranslationSearch || $isTranslationSort) {
         $messageTable = Adm::getInstance()->manager->createMessageQuery('tableName');
         $query->innerJoin(['m' => $messageTable], 'm.id=s.id')->with(['messages']);
         if ($emptyTranslation) {
             $query->andWhere(['m.translation' => '', 'm.language_id' => Yii::$app->i18n->getId()]);
         }
     }
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_DESC]], 'pagination' => ['pageSize' => 100]]);
     $dataProvider->sort->attributes['translation']['asc'] = ['m.translation' => SORT_ASC];
     $dataProvider->sort->attributes['translation']['desc'] = ['m.translation' => SORT_DESC];
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     if ($isTranslationSearch) {
         $query->andFilterWhere(['like', 'm.translation', $this->translation]);
     }
     $query->andFilterWhere(['like', 's.category', $this->category])->andFilterWhere(['like', 's.message', $this->message]);
     return $dataProvider;
 }
Example #5
0
 /**
  * Executes the widget.
  * @return string the result of widget execution to be outputted.
  */
 public function run()
 {
     $ckeditorOptions = [];
     if ($this->removeFirstTag) {
         $ckeditorOptions['enterMode'] = new JsExpression('CKEDITOR.ENTER_BR');
     }
     $ckeditorOptions = ArrayHelper::merge($ckeditorOptions, $this->clientOptions);
     $options = ArrayHelper::merge(['initOnEvent' => 'focus', 'options' => ['class' => 'form-control form-redactor']], $this->options);
     $options['editorOptions'] = ElFinder::ckeditorOptions(Adm::getInstance()->id . '/elfinder', $ckeditorOptions);
     return $this->form->field($this->model, $this->attribute)->widget(CKEditor::className(), $options);
 }
Example #6
0
 /**
  * Initializes the [[rules]] array by instantiating rule objects from configurations.
  */
 public function init()
 {
     if ($this->user === null) {
         $this->user = Adm::getInstance()->user;
     }
     $this->user = Instance::ensure($this->user, User::className());
     foreach ($this->rules as $i => $rule) {
         if (is_array($rule)) {
             $this->rules[$i] = Yii::createObject(array_merge($this->ruleConfig, $rule));
         }
     }
 }
Example #7
0
<?php

use pavlinter\adm\Adm;
$adm = Adm::getInstance();
$adm->trigger(Adm::EVENT_FOOTER);
?>


 /**
  * @param null $id
  * @return string
  */
 public function actionFindUser($id = null)
 {
     $search = Yii::$app->request->get('search');
     $out = ['more' => false];
     if (!is_null($search)) {
         $data = Adm::getInstance()->manager->createUserQuery()->select(['id', 'text' => 'username'])->where(['like', 'username', $search['term']])->limit(20)->asArray()->all();
         $out['results'] = array_values($data);
     } else {
         if ($id > 0) {
             $user = Adm::getInstance()->manager->createUserQuery()->where(['id' => $id])->one();
             $out['results'] = ['id' => $id, 'text' => $user->username];
         } else {
             $out['results'] = ['id' => 0, 'text' => 'No matching records found'];
         }
     }
     return Json::encode($out);
 }
 /**
  * Finds the AuthItem model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param string $id
  * @return AuthItem the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     $model = Adm::getInstance()->manager->createAuthItemQuery('findOne', $id);
     if ($model !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 /**
  * @param null $search
  * @param null $id
  */
 public function actionUserList($search = null, $id = null)
 {
     $viewCallback = Module::getInstance()->userSelect['viewCallback'];
     $querySearch = Module::getInstance()->userSelect['querySearch'];
     $queryLoad = Module::getInstance()->userSelect['queryLoad'];
     if ($viewCallback === null) {
         $viewCallback = function ($row) {
             return Adm::t('oplata', '{email}:select2 template', $row);
         };
     }
     if ($querySearch === null) {
         $querySearch = function ($query, $userTable, $search) {
             /* @var \yii\db\Query $query */
             return $query->from($userTable)->where(['like', 'email', $search])->limit(20)->all();
         };
     }
     if ($viewCallback === null) {
         $queryLoad = function ($query, $userTable, $id) {
             /* @var \yii\db\Query $query */
             return $query->from($userTable)->where(['id' => $id])->one();
         };
     }
     $userTable = forward_static_call(array(Adm::getInstance()->manager->userClass, 'tableName'));
     $out = ['more' => false];
     if (!is_null($search)) {
         $query = new \yii\db\Query();
         $rows = call_user_func($querySearch, $query, $userTable, $search);
         $results = [];
         foreach ($rows as $row) {
             $params = [];
             foreach ($row as $attribute => $value) {
                 if (in_array($attribute, ['auth_key', 'password_hash', 'password_reset_token', 'role', 'status'])) {
                     continue;
                 }
                 $params[$attribute] = $value;
             }
             $params['dot'] = false;
             $params['br'] = false;
             if (isset($row['dot'])) {
                 $row['dot'] = false;
             }
             $results[] = ['id' => $row['id'], 'text' => call_user_func($viewCallback, $row), 'template' => Adm::t('oplata', "Email - {email} Username - {username}", $params)];
         }
         $out['results'] = $results;
     } else {
         if ($id > 0) {
             $query = new \yii\db\Query();
             $row = call_user_func($queryLoad, $query, $userTable, $id);
             $out['results'] = ['id' => $id, 'text' => call_user_func($viewCallback, $row)];
         } else {
             $out['results'] = ['id' => 0, 'text' => 'No matching records found'];
         }
     }
     echo Json::encode($out);
 }
Example #11
0
        <a href="<?php 
echo $baseUrl;
?>
" class="nav-brand" target="_blank">ADM<sup>cms</sup></a>
        <a class="btn btn-link visible-xs" data-toggle="collapse" data-target=".navbar-collapse">
            <i class="fa fa-comment-o"></i>
        </a>
    </div>
    <div class="collapse navbar-collapse">

        <?php 
$adm->trigger(Adm::EVENT_TOP_MENU);
?>

        <?php 
if (!Adm::getInstance()->user->isGuest) {
    ?>
        <ul class="nav navbar-nav navbar-right">
            <li class="dropdown">
                <a href="#" class="dropdown-toggle dker" data-toggle="dropdown">
                        <?php 
    echo $adm->user->identity->username;
    ?>
 <b class="caret"></b>
                </a>
                <ul class="dropdown-menu">
                    <li>
                        <a href="<?php 
    echo Url::to(['/' . $adm->id . '/user/update']);
    ?>
"><?php 
Example #12
0
 /**
  * @inheritdoc
  */
 public function actionLogout()
 {
     Adm::getInstance()->user->logout(false);
     return Adm::redirect(['login']);
 }
Example #13
0
                <ul class="dropdown-menu animated fadeInLeft">
                    <li>
                        <a href="<?php 
    echo Url::to(['/' . Adm::getInstance()->id . '/user/update']);
    ?>
"><?php 
    echo Adm::t("header", "Profile", ['dot' => false]);
    ?>
</a>
                    </li>
                    <?php 
    $adm->trigger(Adm::EVENT_INNER_PROFILE_MENU);
    ?>
                    <li>
                        <?php 
    echo Html::a(Adm::t("header", "Logout", ['dot' => false]), ['/' . Adm::getInstance()->id . '/default/logout'], ['data-method' => 'post']);
    ?>
                    </li>
                </ul>
            </li>

        </ul>
        <?php 
}
?>

        <?php 
if ($languages) {
    ?>
            <ul class="nav navbar-nav navbar-right">
                <li class="dropdown">
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getLanguage()
 {
     return $this->hasOne(Adm::getInstance()->manager->createLanguageQuery('className'), ['id' => 'language_id']);
 }
Example #15
0
<?php

use kartik\widgets\Select2;
use pavlinter\adm\Adm;
use pavlinter\buttons\InputButton;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\helpers\Url;
/* @var $this yii\web\View */
/* @var $model pavlinter\adm\models\AuthItem */
/* @var $form yii\widgets\ActiveForm */
$rules = Adm::getInstance()->manager->createAuthRuleQuery()->select('name')->asArray()->all();
$rules = Adm::getInstance()->manager->createAuthRuleQuery()->select('name')->asArray()->all();
?>

<div class="auth-item-form">

    <?php 
$form = Adm::begin('ActiveForm');
?>

    <div class="row">
        <div class="col-xs-12 col-sm-6 col-md-6">
            <?php 
echo $form->field($model, 'name')->textInput(['maxlength' => 64]);
?>

            <?php 
echo $form->field($model, 'type')->widget(Select2::classname(), ['data' => $model::typeList(), 'options' => ['placeholder' => Adm::t('', 'Select ...', ['dot' => false])], 'pluginOptions' => []]);
?>
Example #16
0
 public function init()
 {
     $this->fileManager = ArrayHelper::merge(['controller' => Adm::getInstance()->id . '/elfinder', 'filter' => 'image', 'template' => '<div class="input-group"><span class="input-group-addon">{button}</span>{input}</div>', 'options' => ['class' => 'form-control'], 'buttonTag' => 'a', 'buttonName' => '', 'buttonOptions' => ['class' => 'glyphicon glyphicon-folder-open filemanager-btn', 'href' => 'javascript:void(0);'], 'multiple' => true], $this->fileManager);
     parent::init();
 }
Example #17
0
<?php

use pavlinter\adm\Adm;
use yii\helpers\Html;
use yii\helpers\Url;
/**
 * @var yii\web\View $this
 * @var string $name
 * @var string $message
 * @var Exception $exception
 */
$this->title = $name;
if (!Adm::getInstance()->user->getIsGuest()) {
    $this->context->layout = 'main';
} else {
    $this->context->layout = 'base';
}
?>
<section id="content">
    <div class="row m-n">
        <div class="col-sm-4 col-sm-offset-4">
            <div class="text-center m-b-lg">
                <h1 class="text-black animated bounceInDown"><?php 
echo Html::encode($this->title);
?>
</h1>
            </div>
            <div class="list-group m-b-sm bg-white m-b-lg">
                <a href="<?php 
echo Url::to(['/']);
?>
 /**
  * Updates an existing User model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param null $id
  * @return string|\yii\web\Response
  * @throws ForbiddenHttpException
  * @throws NotFoundHttpException
  * @throws \yii\base\InvalidConfigException
  */
 public function actionUpdate($id = null)
 {
     if ($id === null) {
         $id = Adm::getInstance()->user->getId();
     }
     /* @var $model \pavlinter\adm\models\User */
     $model = $this->findModel($id);
     if (Adm::getInstance()->user->can('Adm-UpdateOwnUser', $model)) {
         $model->setScenario('adm-updateOwn');
     } elseif (Adm::getInstance()->user->can('AdmRoot')) {
         $model->setScenario('adm-update');
     } else {
         throw new ForbiddenHttpException('Access denied');
     }
     $dynamicModel = DynamicModel::validateData(['password', 'password2'], [[['password', 'password2'], 'string', 'min' => 6], ['password2', 'compare', 'compareAttribute' => 'password']]);
     $post = Yii::$app->request->post();
     if ($model->load($post) && $dynamicModel->load($post)) {
         if ($model->validate() && $dynamicModel->validate()) {
             if (!empty($dynamicModel->password)) {
                 $model->setPassword($dynamicModel->password);
             }
             if (!Adm::getInstance()->user->can('Adm-UpdateOwnUser', $model)) {
                 //AdmRoot
                 $auth = Yii::$app->authManager;
                 $roles = Yii::$app->request->post('roles', []);
                 $auth->revokeAll($model->id);
                 //remove all assignments
                 if (in_array('AdmRoot', $roles) || in_array('AdmAdmin', $roles)) {
                     $model->role = \app\models\User::ROLE_ADM;
                 } else {
                     $model->role = \app\models\User::ROLE_USER;
                 }
                 foreach ($roles as $role) {
                     $newRole = $auth->createRole($role);
                     $auth->assign($newRole, $model->id);
                 }
             }
             $model->save(false);
             Yii::$app->getSession()->setFlash('success', Adm::t('', 'Data successfully changed!'));
             if (Adm::getInstance()->user->can('Adm-UpdateOwnUser', $model)) {
                 return $this->refresh();
             } else {
                 //AdmRoot
                 return Adm::redirect(['update', 'id' => $model->id]);
             }
         }
     }
     return $this->render('update', ['model' => $model, 'dynamicModel' => $dynamicModel]);
 }
Example #19
0
<?php

use kartik\checkbox\CheckboxX;
use pavlinter\admoplata\Module;
use pavlinter\multifields\MultiFields;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\web\JsExpression;
use yii\widgets\ActiveForm;
use pavlinter\adm\Adm;
/* @var $this yii\web\View */
/* @var $model pavlinter\admoplata\models\OplataTransaction */
/* @var $form yii\widgets\ActiveForm */
/* @var $userModel \pavlinter\adm\models\User */
$userModel = Adm::getInstance()->manager->createUser();
$languages = Yii::$app->getI18n()->getLanguages();
$attributes = $userModel->attributes();
$var = '';
foreach ($attributes as $attribute) {
    if (in_array($attribute, ['auth_key', 'password_hash', 'password_reset_token', 'role', 'status'])) {
        continue;
    }
    $var .= "{" . $attribute . "} - " . $userModel->getAttributeLabel($attribute) . "<br/>";
}
?>

<div class="oplata-transaction-form m-t-lg">

    <?php 
$form = Adm::begin('ActiveForm', ['id' => 'order-form']);
?>
 /**
  * Finds the AuthItemChild model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param string $parent
  * @param string $child
  * @return AuthItemChild the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($parent, $child)
 {
     $model = Adm::getInstance()->manager->createAuthItemChildQuery('findOne', ['parent' => $parent, 'child' => $child]);
     if ($model !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Example #21
0
<?php

use kartik\widgets\Select2;
use pavlinter\adm\Adm;
use pavlinter\buttons\InputButton;
use yii\helpers\ArrayHelper;
use yii\helpers\Url;
use yii\web\JsExpression;
/* @var $this yii\web\View */
/* @var $model pavlinter\adm\models\AuthAssignment */
/* @var $form yii\widgets\ActiveForm */
$users = Adm::getInstance()->manager->createUserQuery()->select('id,username')->asArray()->all();
$items = Adm::getInstance()->manager->createAuthItemQuery()->select('name')->asArray()->all();
?>

<div class="auth-assignment-form">

    <?php 
$form = Adm::begin('ActiveForm');
?>

    <div class="row">
        <div class="col-xs-12 col-sm-6 col-md-6">
            <?php 
$url = Url::to(['find-user']);
$initScript = <<<SCRIPT
                function (element, callback) {
                    var id=\$(element).val();
                    if (id !== "") {
                        \$.ajax("{$url}?id=" + id, {
                            dataType: "json"
Example #22
0
?>
<div class="user-index">

    <h1><?php 
echo Html::encode($this->title);
?>
</h1>

    <p>
        <?php 
echo Html::a(Adm::t('user', 'Create User'), ['create'], ['class' => 'btn btn-primary']);
?>
    </p>

    <?php 
echo Adm::widget('GridView', ['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['class' => 'kartik\\grid\\SerialColumn'], 'username', 'email:email', ['attribute' => 'role', 'vAlign' => 'middle', 'value' => function ($model, $key, $index, $widget) {
    return $model::roles($model->role);
}, 'filterType' => GridView::FILTER_SELECT2, 'filter' => $searchModel::roles(), 'filterWidgetOptions' => ['pluginOptions' => ['allowClear' => true]], 'filterInputOptions' => ['placeholder' => Adm::t('', 'Select ...', ['dot' => false])], 'format' => 'raw'], ['attribute' => 'status', 'vAlign' => 'middle', 'value' => function ($model, $key, $index, $widget) {
    return $model::status($model->status);
}, 'filterType' => GridView::FILTER_SELECT2, 'filter' => $searchModel::status(), 'filterWidgetOptions' => ['pluginOptions' => ['allowClear' => true]], 'filterInputOptions' => ['placeholder' => Adm::t('', 'Select ...', ['dot' => false])], 'format' => 'raw'], ['class' => 'kartik\\grid\\ActionColumn', 'template' => '{login} {view} {update} {delete}', 'buttons' => ['delete' => function ($url, $model) {
    if ($model->id == Adm::getInstance()->user->getId()) {
        return null;
    }
    return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, ['title' => Yii::t('yii', 'Delete'), 'data-confirm' => Yii::t('yii', 'Are you sure you want to delete this item?'), 'data-method' => 'post', 'data-pjax' => '0']);
}, 'login' => function ($url, $model) {
    return Html::a('<span class="glyphicon glyphicon-sunglasses"></span>', ['/profilelogin/default/login', 'username' => $model->username], ['title' => Yii::t('adm/title', 'Login', ['dot' => false]), 'data-method' => 'post', 'data-pjax' => '0']);
}]]]]);
?>
</div>

Example #23
0
    ?>
            </div>
        </div>

    <?php 
}
?>

    <div class="form-group">

        <?php 
echo InputButton::widget(['label' => $model->isNewRecord ? Adm::t('', 'Create', ['dot' => false]) : Adm::t('', 'Update', ['dot' => false]), 'options' => ['class' => 'btn btn-primary'], 'input' => 'adm-redirect', 'name' => 'redirect', 'formSelector' => $form]);
?>

        <?php 
if (!Adm::getInstance()->user->can('Adm-UpdateOwnUser', $model)) {
    ?>

            <?php 
    if ($model->isNewRecord) {
        ?>
                <?php 
        echo InputButton::widget(['label' => Adm::t('', 'Create and insert new', ['dot' => false]), 'options' => ['class' => 'btn btn-primary'], 'input' => 'adm-redirect', 'name' => 'redirect', 'value' => Url::to(['create']), 'formSelector' => $form]);
        ?>
            <?php 
    }
    ?>


            <?php 
    echo InputButton::widget(['label' => $model->isNewRecord ? Adm::t('', 'Create and list', ['dot' => false]) : Adm::t('', 'Update and list', ['dot' => false]), 'options' => ['class' => 'btn btn-primary'], 'input' => 'adm-redirect', 'name' => 'redirect', 'value' => Url::to(['index']), 'formSelector' => $form]);
Example #24
0
<?php

use pavlinter\adm\Adm;
/**
 * @var yii\web\View $this
 */
$user = Adm::getInstance()->user;
?>


<div class="adm-default-index">
    <h1><?php 
echo Adm::getInstance()->id;
?>
</h1>
</div>
Example #25
0
    return \pavlinter\buttons\AjaxButton::widget(['label' => Adm::t('oplata', 'Send'), 'options' => ['class' => 'btn btn-primary'], 'ajaxOptions' => ['url' => Url::to('send-email'), 'data' => ['id' => $model->id], 'done' => 'function(data){
                                if(data.r){
                                    $("#" + abId).next("span").removeClass("hide").end().remove();
                                }
                            }']]) . Html::tag('span', '', ['class' => 'glyphicon glyphicon-ok text-success hide cursor-help', 'data-toggle' => 'tooltip', 'title' => Adm::t('admoplata', 'Email Sent')]) . $remind;
}], ['class' => '\\kartik\\grid\\ActionColumn', 'width' => '100px', 'template' => '{pay} {view} {update} {delete}', 'buttons' => ['view' => function ($url, $model) {
    if ($model->alias) {
        return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', ['default/invoice', 'alias' => $model->alias], ['title' => Yii::t('yii', 'View'), 'data-pjax' => '0', 'target' => '_blank']);
    }
}, 'update' => function ($url, $model) {
    if (!Adm::getInstance()->user->can('Adm-OplataUpdate')) {
        return null;
    }
    return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, ['title' => Yii::t('yii', 'Update'), 'data-pjax' => '0']);
}, 'delete' => function ($url, $model) {
    if (!Adm::getInstance()->user->can('Adm-OplataDelete')) {
        return null;
    }
    return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, ['title' => Yii::t('yii', 'Delete'), 'data-confirm' => Yii::t('yii', 'Are you sure you want to delete this item?'), 'data-method' => 'post', 'data-pjax' => '0']);
}, 'pay' => function ($url, $model) {
    if ($model->alias) {
        return Html::a(null, 'javascript:void(0);', ['class' => 'fa fa-link', 'data-pjax' => '0', 'data-toggle' => 'popover', 'data-placement' => 'top', 'data-content' => Url::to(['default/invoice', 'alias' => $model->alias], true)]);
    }
}]]]]);
?>

    <?php 
Yii::$app->i18n->resetDot();
?>

</div>