Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace app\modules\system\daemon\models;
- use app\modules\system\daemon\models\enums\DaemonType;
- use yii\base\Model;
- use yii\data\ActiveDataProvider;
- use yii\data\ArrayDataProvider;
- class DaemonNameSearch extends DaemonName
- {
- public function rules()
- {
- return [
- [[static::$TYPE_CODE_FIELD], 'integer'],
- [[static::$NAME_FIELD, static::$TRANSLATED_NAME_FIELD, static::$LAUNCHER_FIELD, static::$GREP_FIELD], 'string'],
- [[static::$TYPE_ID_FIELD, static::$IS_ACTIVE_FIELD, static::$PID_FIELD, static::$TYPE_NAME_FIELD,], 'safe'],
- ];
- }
- public function scenarios()
- {
- return Model::scenarios();
- }
- public function search($params)
- {
- $models = DaemonNameQuery::find()->all();
- $daemons = [];
- $personalShop = array_filter($models, function ($daemon) {
- return $daemon->{DaemonName::$TYPE_CODE_FIELD} == DaemonType::$PERSONAL_SHOP;
- });
- $shops = Shop::find()->all();
- foreach ($shops as $shop) {
- foreach ($personalShops as $daemon) {
- $daemonModel = new DaemonName();
- $daemonModel->{DaemonName::$NAME_FIELD} = $daemon->{DaemonName::$NAME_FIELD};
- $daemonModel->{DaemonName::$TRANSLATED_NAME_FIELD} = $daemon->{DaemonName::$TRANSLATED_NAME_FIELD};
- $daemonModel->{DaemonName::$LAUNCHER_FIELD} = $daemon->{DaemonName::$LAUNCHER_FIELD};
- $daemonModel->{DaemonName::$TYPE_CODE_FIELD} = $daemon->{DaemonName::$TYPE_CODE_FIELD};
- $daemonModel->{DaemonName::$GREP_FIELD} = $daemon->{DaemonName::$GREP_FIELD};
- $daemonModel->{DaemonName::$TYPE_ID_FIELD} = $shop->id;
- $daemonModel->{DaemonName::$TYPE_NAME_FIELD} = $shop->name;
- $daemons[] = $daemonModel;
- }
- }
- $systemAndSingleDaemons = array_filter($models, function ($daemon) {
- return $daemon->{DaemonName::$TYPE_CODE_FIELD} == DaemonType::$SYSTEM
- || $daemon->{DaemonName::$TYPE_CODE_FIELD} == DaemonType::$SINGLE_APP;
- });
- foreach ($systemAndSingleDaemons as $daemon) {
- $daemon->{DaemonName::$TYPE_ID_FIELD} = $daemon->{DaemonName::$NAME_FIELD};
- $daemon->{DaemonName::$TYPE_NAME_FIELD} = 'System';
- $daemons[] = $daemon;
- }
- $dataProvider = new ArrayDataProvider([
- 'allModels' => $daemons,
- 'pagination' => [
- 'pageSize' => 20,
- ],
- 'sort' => [
- 'attributes' => ['id', DaemonName::$NAME_FIELD],
- ],
- ]);
- $this->load($params);
- return $dataProvider;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement