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(); }
public function init() { if ($this->controller === null) { $this->controller = Adm::getInstance()->id . '/elfinder'; } parent::init(); }
/** * 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; }
/** * 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); }
/** * 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)); } } }
<?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); }
<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
/** * @inheritdoc */ public function actionLogout() { Adm::getInstance()->user->logout(false); return Adm::redirect(['login']); }
<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']); }
<?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' => []]); ?>
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(); }
<?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]); }
<?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.'); } }
<?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"
?> <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>
?> </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]);
<?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>
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>