├── tests └── .gitignore ├── .gitignore ├── media ├── favicon.ico ├── img │ └── logo_20.png ├── js │ └── frontend.js └── css │ ├── frontend.css │ └── empty.css ├── modules ├── subscribe │ ├── messages │ │ ├── fa │ │ │ ├── api.php │ │ │ └── admin.php │ │ └── ru │ │ │ ├── api.php │ │ │ └── admin.php │ ├── views │ │ └── a │ │ │ ├── create.php │ │ │ ├── _form.php │ │ │ ├── view.php │ │ │ ├── _menu.php │ │ │ ├── history.php │ │ │ └── index.php │ ├── SubscribeModule.php │ ├── models │ │ ├── History.php │ │ └── Subscriber.php │ └── controllers │ │ └── SendController.php ├── text │ ├── messages │ │ ├── fa │ │ │ ├── api.php │ │ │ └── admin.php │ │ └── ru │ │ │ ├── api.php │ │ │ └── admin.php │ ├── views │ │ └── a │ │ │ ├── edit.php │ │ │ ├── create.php │ │ │ ├── _form.php │ │ │ ├── _menu.php │ │ │ └── index.php │ ├── TextModule.php │ ├── models │ │ └── Text.php │ └── api │ │ └── Text.php ├── catalog │ ├── messages │ │ ├── fa │ │ │ ├── api.php │ │ │ └── admin.php │ │ └── ru │ │ │ ├── api.php │ │ │ └── admin.php │ ├── media │ │ └── css │ │ │ └── fields.css │ ├── views │ │ ├── items │ │ │ ├── create.php │ │ │ ├── edit.php │ │ │ ├── photos.php │ │ │ ├── _submenu.php │ │ │ ├── _menu.php │ │ │ └── _form.php │ │ └── a │ │ │ └── _submenu.php │ ├── assets │ │ └── FieldsAsset.php │ ├── models │ │ ├── ItemData.php │ │ └── Category.php │ ├── CatalogModule.php │ └── api │ │ ├── PhotoObject.php │ │ └── ItemObject.php ├── page │ ├── messages │ │ ├── fa │ │ │ ├── api.php │ │ │ └── admin.php │ │ └── ru │ │ │ ├── api.php │ │ │ └── admin.php │ ├── views │ │ └── a │ │ │ ├── edit.php │ │ │ ├── create.php │ │ │ ├── _form.php │ │ │ ├── _menu.php │ │ │ └── index.php │ ├── PageModule.php │ ├── api │ │ ├── Page.php │ │ └── PageObject.php │ └── models │ │ └── Page.php ├── carousel │ ├── messages │ │ ├── fa │ │ │ ├── api.php │ │ │ └── admin.php │ │ └── ru │ │ │ ├── api.php │ │ │ └── admin.php │ ├── views │ │ └── a │ │ │ ├── edit.php │ │ │ ├── create.php │ │ │ ├── _menu.php │ │ │ └── _form.php │ ├── api │ │ └── CarouselObject.php │ ├── CarouselModule.php │ └── models │ │ └── Carousel.php ├── gallery │ ├── messages │ │ ├── fa │ │ │ ├── api.php │ │ │ └── admin.php │ │ └── ru │ │ │ ├── api.php │ │ │ └── admin.php │ ├── views │ │ └── a │ │ │ ├── photos.php │ │ │ ├── _submenu.php │ │ │ └── _menu.php │ ├── GalleryModule.php │ ├── models │ │ └── Category.php │ ├── controllers │ │ └── AController.php │ └── api │ │ ├── PhotoObject.php │ │ └── CategoryObject.php ├── article │ ├── messages │ │ ├── fa │ │ │ ├── api.php │ │ │ └── admin.php │ │ └── ru │ │ │ ├── api.php │ │ │ └── admin.php │ ├── views │ │ └── items │ │ │ ├── create.php │ │ │ ├── photos.php │ │ │ ├── edit.php │ │ │ ├── _submenu.php │ │ │ └── _menu.php │ ├── controllers │ │ └── AController.php │ ├── models │ │ └── Category.php │ ├── ArticleModule.php │ └── api │ │ ├── PhotoObject.php │ │ └── ArticleObject.php ├── file │ ├── messages │ │ ├── fa │ │ │ ├── api.php │ │ │ └── admin.php │ │ └── ru │ │ │ ├── api.php │ │ │ └── admin.php │ ├── views │ │ └── a │ │ │ ├── edit.php │ │ │ ├── create.php │ │ │ ├── _menu.php │ │ │ └── _form.php │ ├── FileModule.php │ ├── controllers │ │ └── DownloadController.php │ └── api │ │ └── FileObject.php ├── faq │ ├── views │ │ └── a │ │ │ ├── create.php │ │ │ ├── edit.php │ │ │ ├── _form.php │ │ │ └── _menu.php │ ├── messages │ │ ├── fa │ │ │ └── admin.php │ │ └── ru │ │ │ └── admin.php │ ├── FaqModule.php │ ├── api │ │ ├── FaqObject.php │ │ └── Faq.php │ └── models │ │ └── Faq.php ├── news │ ├── views │ │ └── a │ │ │ ├── create.php │ │ │ ├── photos.php │ │ │ ├── edit.php │ │ │ ├── _submenu.php │ │ │ └── _menu.php │ ├── messages │ │ ├── ru │ │ │ └── admin.php │ │ └── fa │ │ │ └── admin.php │ ├── NewsModule.php │ └── api │ │ ├── PhotoObject.php │ │ └── NewsObject.php ├── shopcart │ ├── mail │ │ ├── en │ │ │ ├── new_order.php │ │ │ └── notify_user.php │ │ └── ru │ │ │ ├── new_order.php │ │ │ └── notify_user.php │ ├── controllers │ │ ├── GoodsController.php │ │ └── SendController.php │ ├── ShopcartModule.php │ ├── messages │ │ ├── fa │ │ │ └── admin.php │ │ └── ru │ │ │ └── admin.php │ ├── api │ │ ├── GoodObject.php │ │ └── OrderObject.php │ └── models │ │ └── Good.php ├── guestbook │ ├── mail │ │ ├── en │ │ │ ├── new_post.php │ │ │ └── notify_user.php │ │ └── ru │ │ │ ├── new_post.php │ │ │ └── notify_user.php │ ├── messages │ │ ├── fa │ │ │ └── admin.php │ │ └── ru │ │ │ └── admin.php │ ├── controllers │ │ └── SendController.php │ ├── GuestbookModule.php │ ├── api │ │ └── PostObject.php │ └── views │ │ └── a │ │ └── view.php └── feedback │ ├── mail │ ├── en │ │ ├── new_feedback.php │ │ └── answer.php │ └── ru │ │ ├── answer.php │ │ └── new_feedback.php │ ├── controllers │ └── SendController.php │ ├── messages │ ├── fa │ │ └── admin.php │ └── ru │ │ └── admin.php │ ├── FeedbackModule.php │ └── views │ └── a │ └── view.php ├── assets ├── redactor │ ├── redactor-font.eot │ ├── plugins │ │ ├── clips │ │ │ └── clips.css │ │ ├── textdirection │ │ │ ├── textdirection.js │ │ │ └── index.html │ │ ├── fontsize │ │ │ ├── fontsize.js │ │ │ └── index.html │ │ ├── limiter │ │ │ └── limiter.js │ │ ├── fontfamily │ │ │ └── fontfamily.js │ │ ├── counter │ │ │ └── counter.js │ │ ├── definedlinks │ │ │ └── definedlinks.js │ │ ├── textexpander │ │ │ └── textexpander.js │ │ ├── fontcolor │ │ │ └── index.html │ │ ├── fullscreen │ │ │ └── index.html │ │ └── filemanager │ │ │ └── filemanager.js │ └── lang │ │ ├── zh_cn.js │ │ ├── ko.js │ │ ├── zh_tw.js │ │ └── ja.js ├── photos │ └── photos.css ├── EmptyAsset.php ├── PhotosAsset.php ├── FancyboxAsset.php ├── FrontendAsset.php ├── SwitcherAsset.php ├── RedactorAsset.php ├── AdminAsset.php └── DateTimePickerAsset.php ├── views ├── admins │ ├── edit.php │ ├── create.php │ ├── _form.php │ ├── _menu.php │ └── index.php ├── settings │ ├── edit.php │ ├── create.php │ ├── _form.php │ ├── _menu.php │ └── index.php ├── modules │ ├── create.php │ ├── edit.php │ ├── _form.php │ ├── copy.php │ ├── _menu.php │ ├── _submenu.php │ └── settings.php ├── category │ ├── create.php │ ├── edit.php │ └── _menu.php ├── default │ └── index.php ├── logs │ ├── _menu.php │ └── index.php ├── system │ ├── update.php │ └── index.php ├── install │ ├── error.php │ ├── index.php │ ├── finish.php │ └── _form.php ├── layouts │ ├── empty.php │ └── frontend-toolbar.php └── sign │ └── in.php ├── models ├── TagAssign.php ├── Tag.php ├── CopyModuleForm.php ├── Photo.php ├── SeoText.php └── InstallForm.php ├── controllers ├── DefaultController.php ├── LogsController.php ├── TagsController.php └── SignController.php ├── validators └── EscapeValidator.php ├── README.md ├── components ├── ActiveQueryNS.php ├── ActiveRecord.php ├── API.php └── ActiveQuery.php ├── widgets ├── TagsInput.php ├── SeoForm.php ├── Photos.php ├── Fancybox.php └── views │ └── seo_form.php ├── CHANGELOG.md ├── helpers ├── Data.php ├── Mail.php └── Upload.php ├── behaviors ├── StatusController.php ├── SortableModel.php ├── CalculateNotice.php ├── CacheFlush.php ├── SortableDateController.php └── SortableController.php ├── messages ├── fa │ └── install.php ├── ru │ └── install.php └── uk │ └── install.php ├── config └── easyii.php └── composer.json /tests/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | vendor 3 | Thumbs.db 4 | -------------------------------------------------------------------------------- /media/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noumo/easyii/HEAD/media/favicon.ico -------------------------------------------------------------------------------- /media/img/logo_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noumo/easyii/HEAD/media/img/logo_20.png -------------------------------------------------------------------------------- /modules/subscribe/messages/fa/api.php: -------------------------------------------------------------------------------- 1 | 'عضویت', 4 | ]; -------------------------------------------------------------------------------- /modules/text/messages/fa/api.php: -------------------------------------------------------------------------------- 1 | 'ایحاد متن', 4 | ]; -------------------------------------------------------------------------------- /modules/catalog/messages/fa/api.php: -------------------------------------------------------------------------------- 1 | 'ایجاد دسته', 4 | ]; -------------------------------------------------------------------------------- /modules/page/messages/fa/api.php: -------------------------------------------------------------------------------- 1 | 'Создать страницу', 4 | ]; -------------------------------------------------------------------------------- /modules/page/messages/ru/api.php: -------------------------------------------------------------------------------- 1 | 'Создать страницу', 4 | ]; -------------------------------------------------------------------------------- /modules/subscribe/messages/ru/api.php: -------------------------------------------------------------------------------- 1 | 'Подписаться', 4 | ]; -------------------------------------------------------------------------------- /modules/text/messages/ru/api.php: -------------------------------------------------------------------------------- 1 | 'Создать текст', 4 | ]; -------------------------------------------------------------------------------- /modules/carousel/messages/fa/api.php: -------------------------------------------------------------------------------- 1 | 'ایجاد اسلاید', 4 | ]; -------------------------------------------------------------------------------- /modules/gallery/messages/fa/api.php: -------------------------------------------------------------------------------- 1 | 'Создать альбом', 4 | ]; -------------------------------------------------------------------------------- /modules/gallery/messages/ru/api.php: -------------------------------------------------------------------------------- 1 | 'Создать альбом', 4 | ]; -------------------------------------------------------------------------------- /modules/article/messages/fa/api.php: -------------------------------------------------------------------------------- 1 | 'Создать категорию', 4 | ]; -------------------------------------------------------------------------------- /modules/article/messages/ru/api.php: -------------------------------------------------------------------------------- 1 | 'Создать категорию', 4 | ]; -------------------------------------------------------------------------------- /modules/carousel/messages/ru/api.php: -------------------------------------------------------------------------------- 1 | 'Создать карусель', 4 | ]; -------------------------------------------------------------------------------- /modules/catalog/messages/ru/api.php: -------------------------------------------------------------------------------- 1 | 'Создать категорию', 4 | ]; -------------------------------------------------------------------------------- /assets/redactor/redactor-font.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noumo/easyii/HEAD/assets/redactor/redactor-font.eot -------------------------------------------------------------------------------- /modules/catalog/media/css/fields.css: -------------------------------------------------------------------------------- 1 | #categoryFields{margin-top: 20px;} 2 | #addField, #saveCategoryBtn {margin-left: 8px;} -------------------------------------------------------------------------------- /modules/file/messages/fa/api.php: -------------------------------------------------------------------------------- 1 | 'Создать файл', 4 | 'File not found' => 'Файл не найден' 5 | ]; -------------------------------------------------------------------------------- /modules/file/messages/ru/api.php: -------------------------------------------------------------------------------- 1 | 'Создать файл', 4 | 'File not found' => 'Файл не найден' 5 | ]; -------------------------------------------------------------------------------- /assets/redactor/plugins/clips/clips.css: -------------------------------------------------------------------------------- 1 | .label-red { 2 | color: #fff; 3 | background: #c92020; 4 | padding: 0 7px; 5 | border-radius: 4px; 6 | } -------------------------------------------------------------------------------- /views/admins/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Edit admin'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /views/admins/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Create admin'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /views/settings/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Edit setting'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /assets/photos/photos.css: -------------------------------------------------------------------------------- 1 | #photo-upload { 2 | margin: 20px 0; 3 | } 4 | .photo-description{height: 65px !important; margin-bottom: 5px;} 5 | 6 | #uploading-text{display: none;} -------------------------------------------------------------------------------- /views/modules/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Create module'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /views/settings/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Create setting'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/faq/views/a/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/faq', 'Create entry'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/faq/views/a/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/faq', 'Edit entry'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/file/views/a/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/file', 'Edit file'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/page/views/a/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/page', 'Edit page'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/text/views/a/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/text', 'Edit text'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/file/views/a/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/file', 'Create file'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/news/views/a/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/news', 'Create news'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/page/views/a/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/page', 'Create page'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/text/views/a/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/text', 'Create text'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/carousel/views/a/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/carousel', 'Edit carousel'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/carousel/views/a/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/carousel', 'Create carousel'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /views/category/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Create category'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model, 'parent' => $parent]) ?> -------------------------------------------------------------------------------- /views/default/index.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Welcome'); 3 | ?> 4 |

-------------------------------------------------------------------------------- /modules/subscribe/views/a/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/subscribe', 'Create subscribe'); 3 | ?> 4 | render('_menu') ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /views/modules/edit.php: -------------------------------------------------------------------------------- 1 | title = $model->title; 3 | ?> 4 | render('_menu') ?> 5 | render('_submenu', ['model' => $model]) ?> 6 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/article/views/items/create.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/article', 'Create article'); 3 | ?> 4 | render('_menu', ['category' => $category]) ?> 5 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/gallery/views/a/photos.php: -------------------------------------------------------------------------------- 1 | title = $model->title; 5 | ?> 6 | 7 | render('@easyii/views/category/_menu') ?> 8 | 9 | $model])?> -------------------------------------------------------------------------------- /modules/shopcart/mail/en/new_order.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | ?> 6 | 7 |

New order created #order_id ?>.

8 |

You can view it .

-------------------------------------------------------------------------------- /modules/guestbook/mail/en/new_post.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | ?> 6 |

User name ?> leaved message in your guestbook.

7 |

You can view it .

-------------------------------------------------------------------------------- /models/TagAssign.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/catalog', 'Create item'); 3 | ?> 4 | render('_menu', ['category' => $category]) ?> 5 | render('_form', ['model' => $model, 'dataForm' => $dataForm]) ?> -------------------------------------------------------------------------------- /modules/feedback/mail/en/new_feedback.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | ?> 6 |

User name ?> leaved message in your guestbook.

7 |

You can view it .

-------------------------------------------------------------------------------- /controllers/DefaultController.php: -------------------------------------------------------------------------------- 1 | render('index'); 9 | } 10 | } -------------------------------------------------------------------------------- /modules/carousel/api/CarouselObject.php: -------------------------------------------------------------------------------- 1 | title = $model->title; 5 | ?> 6 | 7 | render('_menu') ?> 8 | render('_submenu', ['model' => $model]) ?> 9 | 10 | $model])?> -------------------------------------------------------------------------------- /modules/news/views/a/edit.php: -------------------------------------------------------------------------------- 1 | title = $model->title; 3 | ?> 4 | render('_menu') ?> 5 | 6 | context->module->settings['enablePhotos']) echo $this->render('_submenu', ['model' => $model]) ?> 7 | 8 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/page/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'صفحات', 4 | 'Create page' => 'ایجاد صفحه', 5 | 'Edit page' => 'ویرایش صفحه', 6 | 'Page created' => 'صفحه ایجاد شد', 7 | 'Page updated' => 'صفحه ویرایش شد', 8 | 'Page deleted' => 'صفحه حذف شد' 9 | ]; -------------------------------------------------------------------------------- /modules/text/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'متن های وب سایت', 4 | 'Create text' => 'ایجاد متن', 5 | 'Edit text' => 'ویرایش متن', 6 | 'Text created' => 'متن ایجاد شد', 7 | 'Text updated' => 'متن ویرایش شد', 8 | 'Text deleted' => 'متن حذف شد' 9 | ]; -------------------------------------------------------------------------------- /views/category/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Edit category'); 3 | ?> 4 | render('_menu') ?> 5 | 6 | params['submenu'])) echo $this->render('_submenu', ['model' => $model], $this->context); ?> 7 | render('_form', ['model' => $model]) ?> -------------------------------------------------------------------------------- /modules/article/views/items/photos.php: -------------------------------------------------------------------------------- 1 | title = $model->title; 5 | ?> 6 | 7 | render('_menu', ['category' => $model->category]) ?> 8 | render('_submenu', ['model' => $model]) ?> 9 | 10 | $model])?> -------------------------------------------------------------------------------- /modules/text/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Текстовые блоки', 4 | 'Create text' => 'Создать текст', 5 | 'Edit text' => 'Редактировать текст', 6 | 'Text created' => 'Текст успешно создан', 7 | 'Text updated' => 'Текст обновлен', 8 | 'Text deleted' => 'Текст удален' 9 | ]; -------------------------------------------------------------------------------- /views/logs/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | ?> 6 | 9 |
10 | -------------------------------------------------------------------------------- /modules/catalog/views/items/edit.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Edit'). ' ' .$model->title; 3 | ?> 4 | render('_menu', ['category' => $model->category]) ?> 5 | render('_submenu', ['model' => $model]) ?> 6 | 7 | render('_form', ['model' => $model, 'dataForm' => $dataForm]) ?> 8 | -------------------------------------------------------------------------------- /modules/page/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Страницы', 4 | 'Create page' => 'Создать страницу', 5 | 'Edit page' => 'Редактировать страницу', 6 | 'Page created' => 'Страница успешно создана', 7 | 'Page updated' => 'Страница обновлена', 8 | 'Page deleted' => 'Страница удалена' 9 | ]; -------------------------------------------------------------------------------- /assets/EmptyAsset.php: -------------------------------------------------------------------------------- 1 | title = $model->title; 3 | ?> 4 | render('_menu', ['category' => $model->category]) ?> 5 | 6 | context->module->settings['enablePhotos']) echo $this->render('_submenu', ['model' => $model]) ?> 7 | 8 | render('_form', ['model' => $model]) ?> 9 | -------------------------------------------------------------------------------- /modules/shopcart/mail/ru/new_order.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | ?> 6 | 7 |

Создан новый заказ #order_id ?>.

8 |

Просмотреть его вы можете .

9 |
10 |

Это автоматическое сообщение и на него не нужно отвечать.

-------------------------------------------------------------------------------- /modules/catalog/views/items/photos.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Photos') . ' ' . $model->title; 5 | ?> 6 | 7 | render('_menu', ['category' => $model->category]) ?> 8 | render('_submenu', ['model' => $model]) ?> 9 | 10 | $model])?> -------------------------------------------------------------------------------- /modules/gallery/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'گالری', 4 | 'Albums' => 'آلبوم ها', 5 | 'Create album' => 'ایجاد آلبوم', 6 | 'Edit album' => 'ویرایش آلبوم', 7 | 'Album created' => 'آلبوم ایجاد شد', 8 | 'Album updated' => 'آلبوم ویرایش شد', 9 | 'Album deleted' => 'آلبوم حذف شد', 10 | ]; -------------------------------------------------------------------------------- /modules/guestbook/mail/ru/new_post.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | ?> 6 |

Пользователь name ?> оставил сообщение в вашей гостевой книге.

7 |

Просмотреть его вы можете .

8 |
9 |

Это автоматическое сообщение и на него не нужно отвечатью

-------------------------------------------------------------------------------- /validators/EscapeValidator.php: -------------------------------------------------------------------------------- 1 | $attribute = filter_var($model->$attribute, FILTER_SANITIZE_STRING); 11 | } 12 | } -------------------------------------------------------------------------------- /modules/feedback/mail/en/answer.php: -------------------------------------------------------------------------------- 1 | title = $subject; 3 | ?> 4 |

answer_text) ?>

5 |
6 |
7 |
8 |

formatter->asDatetime($feedback->time, 'medium') ?> you wrote:

9 |

10 | text) as $line) echo '> '.$line.'
'; ?> 11 |

-------------------------------------------------------------------------------- /modules/feedback/mail/ru/answer.php: -------------------------------------------------------------------------------- 1 | title = $subject; 3 | ?> 4 |

answer_text) ?>

5 |
6 |
7 |
8 |

formatter->asDatetime($feedback->time, 'medium') ?> Вы писали:

9 |

10 | text) as $line) echo '> '.$line.'
'; ?> 11 |

-------------------------------------------------------------------------------- /modules/news/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Новости', 4 | 'Create news' => 'Создать новость', 5 | 'Edit news' => 'Редактировать новость', 6 | 'News created' => 'Новость успешно создана', 7 | 'News updated' => 'Новость обновлена', 8 | 'News deleted' => 'Новость удалена', 9 | 'Short' => 'Коротко', 10 | ]; -------------------------------------------------------------------------------- /modules/carousel/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Карусель', 4 | 'Create carousel' => 'Создать карусель', 5 | 'Edit carousel' => 'Редактировать карусель', 6 | 'Carousel created' => 'Карусель успешно создана', 7 | 'Carousel updated' => 'Карусель обновлена', 8 | 'Carousel item deleted' => 'Элемент карусели удален' 9 | ]; -------------------------------------------------------------------------------- /modules/faq/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'سوالات متداول', 4 | 'Question' => 'سوال', 5 | 'Answer' => 'پاسخ', 6 | 'Create entry' => 'ایجاد مورد', 7 | 'Edit entry' => 'ویرایش یک مورد', 8 | 'Entry created' => 'مورد ایجاد شد', 9 | 'Entry updated' => 'مورد ویرایش شد', 10 | 'Entry deleted' => 'مورد حذف شد' 11 | ]; -------------------------------------------------------------------------------- /modules/feedback/mail/ru/new_feedback.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | ?> 6 |

Пользователь name ?> оставил сообщение в вашей гостевой книге.

7 |

Просмотреть его вы можете .

8 |
9 |

Это автоматическое сообщение и на него не нужно отвечать.

10 | -------------------------------------------------------------------------------- /modules/gallery/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Фотогалерея', 4 | 'Albums' => 'Альбомы', 5 | 'Create album' => 'Создать альбом', 6 | 'Edit album' => 'Редактировать альбом', 7 | 'Album created' => 'Альбом успешно создан', 8 | 'Album updated' => 'Альбом обновлен', 9 | 'Album deleted' => 'Альбом удален', 10 | ]; -------------------------------------------------------------------------------- /modules/carousel/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'اسلایدشو', 4 | 'Create carousel' => 'ایجاد اسلایدشو', 5 | 'Edit carousel' => 'ویرایش اسلایدشو', 6 | 'Carousel created' => 'اسلایدشو ایجاد شد', 7 | 'Carousel updated' => 'اسلایدشو ویرایش شد', 8 | 'Carousel item deleted' => 'آیتم اسلاید حذف شد', 9 | 'Link'=>'لینک', 10 | ]; -------------------------------------------------------------------------------- /modules/file/FileModule.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'en' => 'Files', 9 | 'ru' => 'Файлы', 10 | ], 11 | 'icon' => 'floppy-disk', 12 | 'order_num' => 30, 13 | ]; 14 | } -------------------------------------------------------------------------------- /assets/PhotosAsset.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | ?> 6 | 7 |

The administration of request->serverName ?> replied to your message in the guestbook.

8 |

You can read it .

9 |
10 |

This is an automatically generated email – please do not reply to it.

-------------------------------------------------------------------------------- /modules/guestbook/mail/ru/notify_user.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | ?> 6 | 7 |

Администрация сайта request->serverName ?> ответила на ваше сообщение в гостевой книге.

8 |

Просмотреть его вы можете .

9 |
10 |

Это автоматическое сообщение и на него не нужно отвечать.

-------------------------------------------------------------------------------- /modules/text/TextModule.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'en' => 'Text blocks', 9 | 'ru' => 'Текстовые блоки', 10 | ], 11 | 'icon' => 'font', 12 | 'order_num' => 20, 13 | ]; 14 | } -------------------------------------------------------------------------------- /modules/faq/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Вопросы и ответы', 4 | 'Question' => 'Вопрос', 5 | 'Answer' => 'Ответ', 6 | 'Create entry' => 'Создать запись', 7 | 'Edit entry' => 'Редактировать запись', 8 | 'Entry created' => 'Запись успешно создана', 9 | 'Entry updated' => 'Запись обновлена', 10 | 'Entry deleted' => 'Запись удалена' 11 | ]; -------------------------------------------------------------------------------- /modules/page/PageModule.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'en' => 'Pages', 11 | 'ru' => 'Страницы', 12 | ], 13 | 'icon' => 'file', 14 | 'order_num' => 50, 15 | ]; 16 | } -------------------------------------------------------------------------------- /assets/FancyboxAsset.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'en' => 'FAQ', 11 | 'ru' => 'Вопросы и ответы', 12 | ], 13 | 'icon' => 'question-sign', 14 | 'order_num' => 45, 15 | ]; 16 | } -------------------------------------------------------------------------------- /modules/news/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'اخبار', 4 | 'Create news' => 'ایجاد خبر', 5 | 'Edit news' => 'ویرایش خبر', 6 | 'News created' => 'خبر ایجاد شد', 7 | 'News updated' => 'خبر ویرایش شد', 8 | 'News deleted' => 'خبر حذف شد', 9 | 'News image cleared' => 'عکس های خبر پاک شد', 10 | 'Short' => 'کوتاه', 11 | 'Clear image' => 'پاک کردن عکس', 12 | ]; -------------------------------------------------------------------------------- /modules/subscribe/SubscribeModule.php: -------------------------------------------------------------------------------- 1 | [ 8 | 'en' => 'E-mail subscribe', 9 | 'ru' => 'E-mail рассылка', 10 | ], 11 | 'icon' => 'envelope', 12 | 'order_num' => 10, 13 | ]; 14 | } -------------------------------------------------------------------------------- /modules/article/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Статьи', 4 | 'Article' => 'Статья', 5 | 6 | 'Short' => 'Короткий текст', 7 | 8 | 'Create article' => 'Создать статью', 9 | 'Edit article' => 'Редактировать статью', 10 | 'Article created' => 'Новая статья успешно создана', 11 | 'Article updated' => 'Статья обновлена', 12 | 'Article deleted' => 'Статья удалена', 13 | ]; -------------------------------------------------------------------------------- /modules/catalog/assets/FieldsAsset.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Update'); 5 | ?> 6 | 14 |
15 | 16 |
17 | 
18 | 
19 | -------------------------------------------------------------------------------- /modules/file/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'فایل ها', 4 | 'Create file' => 'ایجاد فایل', 5 | 'Edit file' => 'ویرایش فایل', 6 | 'File created' => 'فایل ایجا شد', 7 | 'File updated' => 'فایل ویرایش شد', 8 | 'File error. {0}' => 'فایل خطا', 9 | 'File deleted' => 'فایل حذف شد', 10 | 11 | 'Size' => 'سایز', 12 | 'Downloads' => 'دانلود ها', 13 | 'Download file' => 'دانلود فایل', 14 | ]; -------------------------------------------------------------------------------- /models/Tag.php: -------------------------------------------------------------------------------- 1 | 64], 17 | ]; 18 | } 19 | } -------------------------------------------------------------------------------- /views/modules/_form.php: -------------------------------------------------------------------------------- 1 | 6 | true]); ?> 7 | field($model, 'name') ?> 8 | field($model, 'class') ?> 9 | field($model, 'title') ?> 10 | field($model, 'icon') ?> 11 | 'btn btn-primary']) ?> 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## EasyiiCMS ## 2 | 3 | Control panel and tools based on php framework Yii2. Easy cms for easy websites. 4 | 5 | This repository is development package (yii2 extension). 6 | 7 | #### You can find full information in links bellow #### 8 | * [Homepage](http://easyiicms.com) 9 | * [Installation](http://easyiicms.com/docs/install) 10 | * [Demo](http://easyiicms.com/demo) 11 | 12 | #### Contacts #### 13 | 14 | Feel free to email me on noumohope@gmail.com 15 | -------------------------------------------------------------------------------- /modules/catalog/models/ItemData.php: -------------------------------------------------------------------------------- 1 | 'Файлы', 4 | 'Create file' => 'Создать файл', 5 | 'Edit file' => 'Редактировать файл', 6 | 'File created' => 'Файл успешно создан', 7 | 'File updated' => 'Файл обновлен', 8 | 'File error. {0}' => 'Ошибка файла. {0}', 9 | 'File deleted' => 'Файл удален', 10 | 11 | 'Size' => 'Размер', 12 | 'Downloads' => 'Скачиваний', 13 | 'Download file' => 'Скачать файл', 14 | ]; -------------------------------------------------------------------------------- /modules/text/views/a/_form.php: -------------------------------------------------------------------------------- 1 | 5 | true, 7 | 'options' => ['class' => 'model-form'] 8 | ]); ?> 9 | field($model, 'text')->textarea() ?> 10 | field($model, 'slug') : '' ?> 11 | 'btn btn-primary']) ?> 12 | -------------------------------------------------------------------------------- /components/ActiveQueryNS.php: -------------------------------------------------------------------------------- 1 | orderBy('order_num DESC, lft ASC'); 18 | return $this; 19 | } 20 | } -------------------------------------------------------------------------------- /assets/FrontendAsset.php: -------------------------------------------------------------------------------- 1 | 5 | true]); ?> 6 | field($model, 'username')->textInput($this->context->action->id === 'edit' ? ['disabled' => 'disabled'] : []) ?> 7 | field($model, 'password')->passwordInput(['value' => '']) ?> 8 | 'btn btn-primary']) ?> 9 | -------------------------------------------------------------------------------- /modules/carousel/CarouselModule.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'enableText' => true, 9 | ]; 10 | 11 | public static $installConfig = [ 12 | 'title' => [ 13 | 'en' => 'Carousel', 14 | 'ru' => 'Карусель', 15 | ], 16 | 'icon' => 'picture', 17 | 'order_num' => 40, 18 | ]; 19 | } -------------------------------------------------------------------------------- /views/modules/copy.php: -------------------------------------------------------------------------------- 1 | title = $model->title; 6 | ?> 7 | render('_menu') ?> 8 | render('_submenu', ['model' => $model]) ?> 9 | 10 | true]) ?> 11 | field($formModel, 'title') ?> 12 | field($formModel, 'name') ?> 13 | 'btn btn-primary']) ?> 14 | -------------------------------------------------------------------------------- /widgets/TagsInput.php: -------------------------------------------------------------------------------- 1 | 'form-control']; 9 | public $loadUrl = ['/admin/tags/list']; 10 | public $clientOptions = [ 11 | 'plugins' => ['remove_button'], 12 | 'valueField' => 'name', 13 | 'labelField' => 'name', 14 | 'searchField' => ['name'], 15 | 'create' => true, 16 | ]; 17 | } -------------------------------------------------------------------------------- /modules/gallery/GalleryModule.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'itemsInFolder' => false, 9 | ]; 10 | 11 | public static $installConfig = [ 12 | 'title' => [ 13 | 'en' => 'Photo Gallery', 14 | 'ru' => 'Фотогалерея', 15 | ], 16 | 'icon' => 'camera', 17 | 'order_num' => 90, 18 | ]; 19 | } -------------------------------------------------------------------------------- /modules/guestbook/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'نظرات', 4 | 'Guestbook updated' => 'نظر ویرایش شد', 5 | 'View post' => 'مشاهده پست', 6 | 'Entry deleted' => 'مورد حذف شد', 7 | 'Answer' => 'پاسخ', 8 | 'No answer' => 'بدون پاسخ', 9 | 'Mark all as viewed' => 'همه خوانده شده است', 10 | 'Answer successfully saved' => 'پاسخ با موفقیت ذخیره شد', 11 | 'Mark as new' => 'این مورد جدید است', 12 | 'Notify user about answer' => 'کاربر را از پاسخ آگاه کن' 13 | ]; -------------------------------------------------------------------------------- /modules/subscribe/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'عضویت خبرنامه', 4 | 'Subscribers' => 'اعضای خبرنامه', 5 | 'Create subscribe' => 'ارسال خبرنامه', 6 | 'History' => 'تاریخچه', 7 | 'View subscribe history' => 'مشاهده تاریخچه ثبت نام', 8 | 'Subscriber deleted' => 'عضویت حذف شد', 9 | 'Subscribe successfully created and sent' => 'عضویت ایجاد شده و ارسال شد', 10 | 'Subject' => 'موضوع', 11 | 'Body' => 'متن', 12 | 'Sent' => 'ارسال شد', 13 | 'Unsubscribe' => 'لغو عضویت' 14 | ]; -------------------------------------------------------------------------------- /modules/subscribe/views/a/_form.php: -------------------------------------------------------------------------------- 1 | 6 | true 8 | ]); ?> 9 | field($model, 'subject') ?> 10 | field($model, 'body')->widget(Redactor::className(),[ 11 | 'options' => [ 12 | 'minHeight' => 400, 13 | ] 14 | ]) ?> 15 | 'btn btn-primary']) ?> 16 | -------------------------------------------------------------------------------- /assets/SwitcherAsset.php: -------------------------------------------------------------------------------- 1 | js[] = 'switcher.js'; 13 | $this->css[] = 'switcher.css'; 14 | } else { 15 | $this->js[] = 'switcher.min.js'; 16 | $this->css[] = 'switcher.css'; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /controllers/LogsController.php: -------------------------------------------------------------------------------- 1 | LoginForm::find()->desc(), 16 | ]); 17 | 18 | return $this->render('index', [ 19 | 'data' => $data 20 | ]); 21 | } 22 | } -------------------------------------------------------------------------------- /assets/RedactorAsset.php: -------------------------------------------------------------------------------- 1 | js[] = 'redactor.js'; 14 | $this->css[] = 'redactor.css'; 15 | } else { 16 | $this->js[] = 'redactor.min.js'; 17 | $this->css[] = 'redactor.min.css'; 18 | } 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /assets/AdminAsset.php: -------------------------------------------------------------------------------- 1 | \yii\web\View::POS_HEAD 20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /modules/guestbook/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Гостевая книга', 4 | 'Guestbook updated' => 'Гостевая книга обновлена', 5 | 'View post' => 'Просмотр записи', 6 | 'Entry deleted' => 'Запись удалена', 7 | 'Answer' => 'Ответ', 8 | 'No answer' => 'Без ответа', 9 | 'Mark all as viewed' => 'Отметить все как прочитанные', 10 | 'Answer successfully saved' => 'Ответ успешно сохранен', 11 | 'Mark as new' => 'Отметить как новое', 12 | 'Notify user about answer' => 'Послать уведомление пользователю об ответе' 13 | ]; -------------------------------------------------------------------------------- /modules/subscribe/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'E-mail рассылка', 4 | 'Subscribers' => 'Подписчики', 5 | 'Create subscribe' => 'Создать рассылку', 6 | 'History' => 'История', 7 | 'View subscribe history' => 'Просмотр истории рассылки', 8 | 'Subscriber deleted' => 'Подписчик удален', 9 | 'Subscribe successfully created and sent' => 'Рассылка успешно создана и отправлена', 10 | 'Subject' => 'Тема', 11 | 'Body' => 'Сообщение', 12 | 'Sent' => 'Отправлено', 13 | 'Unsubscribe' => 'Отписаться от рассылки' 14 | ]; -------------------------------------------------------------------------------- /modules/news/NewsModule.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'enablePhotos' => true, 9 | 'enableShort' => true, 10 | 'shortMaxLength' => 256, 11 | 'enableTags' => true 12 | ]; 13 | 14 | public static $installConfig = [ 15 | 'title' => [ 16 | 'en' => 'News', 17 | 'ru' => 'Новости', 18 | ], 19 | 'icon' => 'bullhorn', 20 | 'order_num' => 70, 21 | ]; 22 | } -------------------------------------------------------------------------------- /media/js/frontend.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | $('.easyiicms-edit').each(function(i, element){ 3 | var $this = $(element); 4 | $this.append(''); 5 | }); 6 | $('#easyii-navbar input').switcher({copy: {en: {yes: '', no: ''}}}).on('change', function(){ 7 | var checkbox = $(this); 8 | checkbox.switcher('setDisabled', true); 9 | location.href = checkbox.attr('data-link') + '/' + (checkbox.is(':checked') ? 1 : 0); 10 | });; 11 | }); -------------------------------------------------------------------------------- /modules/shopcart/controllers/GoodsController.php: -------------------------------------------------------------------------------- 1 | delete(); 15 | } else { 16 | $this->error = Yii::t('easyii', 'Not found'); 17 | } 18 | return $this->formatResponse(Yii::t('easyii/shopcart', 'Order deleted')); 19 | } 20 | } -------------------------------------------------------------------------------- /modules/news/views/a/_submenu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 8 | 12 |
-------------------------------------------------------------------------------- /modules/article/models/Category.php: -------------------------------------------------------------------------------- 1 | hasMany(Item::className(), ['category_id' => 'category_id'])->sortDate(); 14 | } 15 | 16 | public function afterDelete() 17 | { 18 | parent::afterDelete(); 19 | 20 | foreach ($this->getItems()->all() as $item) { 21 | $item->delete(); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /modules/catalog/views/items/_submenu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 8 | 12 |
-------------------------------------------------------------------------------- /modules/gallery/views/a/_submenu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 8 | 12 |
-------------------------------------------------------------------------------- /widgets/SeoForm.php: -------------------------------------------------------------------------------- 1 | model)) { 18 | throw new InvalidConfigException('Required `model` param isn\'t set.'); 19 | } 20 | } 21 | 22 | public function run() 23 | { 24 | echo $this->render('seo_form', [ 25 | 'model' => $this->model->seoText 26 | ]); 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /modules/catalog/CatalogModule.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'itemsInFolder' => false, 9 | 10 | 'itemThumb' => true, 11 | 'itemPhotos' => true, 12 | 'itemDescription' => true, 13 | 'itemSale' => true, 14 | ]; 15 | 16 | public static $installConfig = [ 17 | 'title' => [ 18 | 'en' => 'Catalog', 19 | 'ru' => 'Каталог', 20 | ], 21 | 'icon' => 'list-alt', 22 | 'order_num' => 100, 23 | ]; 24 | } -------------------------------------------------------------------------------- /modules/faq/api/FaqObject.php: -------------------------------------------------------------------------------- 1 | model->question, $this->editLink) : $this->model->question; 11 | } 12 | 13 | public function getAnswer(){ 14 | return LIVE_EDIT ? API::liveEdit($this->model->answer, $this->editLink) : $this->model->answer; 15 | } 16 | 17 | public function getEditLink(){ 18 | return Url::to(['/admin/faq/a/edit/', 'id' => $this->id]); 19 | } 20 | } -------------------------------------------------------------------------------- /modules/article/views/items/_submenu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 8 | 12 |
-------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | #Changelog 2 | 3 | ###0.8.0 4 | * Articles module added 5 | * FAQ module added 6 | * SEO h1, title, description, keywords fields added 7 | * Ability to create modules outside vendor path 8 | * New root menu item - System 9 | * Migrations integrated 10 | * WebConsole added 11 | * Slug attached to news 12 | * Photos module reworked 13 | * Colorbox changed to Fancybox 14 | * Fancybox and jquery.switcher moved to bower-assets 15 | * Many core improvements 16 | 17 | ###0.7.4 18 | * SluggableBehavior integrated 19 | 20 | ###0.7.3 21 | * Photo multi upload added 22 | 23 | ###0.7.2 24 | * GD support added (image scale quality improved) 25 | 26 | ###0.7.1 27 | * Minor fixes -------------------------------------------------------------------------------- /controllers/TagsController.php: -------------------------------------------------------------------------------- 1 | response->format = Response::FORMAT_JSON; 14 | 15 | $items = []; 16 | $query = urldecode(mb_convert_encoding($query, "UTF-8")); 17 | foreach (Tag::find()->where(['like', 'name', $query])->asArray()->all() as $tag) { 18 | $items[] = ['name' => $tag['name']]; 19 | } 20 | 21 | return $items; 22 | } 23 | } -------------------------------------------------------------------------------- /models/CopyModuleForm.php: -------------------------------------------------------------------------------- 1 | '/^[\w]+$/'], 17 | ['name', 'unique', 'targetClass' => Module::className()], 18 | ]; 19 | } 20 | public function attributeLabels() 21 | { 22 | return [ 23 | 'name' => 'New module name', 24 | 'title' => Yii::t('easyii', 'Title'), 25 | ]; 26 | } 27 | } -------------------------------------------------------------------------------- /modules/file/controllers/DownloadController.php: -------------------------------------------------------------------------------- 1 | updateCounters(['downloads' => 1]); 14 | Yii::$app->response->sendFile(Yii::getAlias('@webroot'). DIRECTORY_SEPARATOR .$model->file); 15 | } 16 | else{ 17 | throw new \yii\web\NotFoundHttpException(Yii::t('easyii/file/api', 'File not found')); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /modules/article/ArticleModule.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'articleThumb' => true, 9 | 'enablePhotos' => true, 10 | 11 | 'enableShort' => true, 12 | 'shortMaxLength' => 255, 13 | 'enableTags' => true, 14 | 15 | 'itemsInFolder' => false, 16 | ]; 17 | 18 | public static $installConfig = [ 19 | 'title' => [ 20 | 'en' => 'Articles', 21 | 'ru' => 'Статьи', 22 | ], 23 | 'icon' => 'pencil', 24 | 'order_num' => 65, 25 | ]; 26 | } -------------------------------------------------------------------------------- /views/admins/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | ?> 6 | 17 |
18 | -------------------------------------------------------------------------------- /modules/catalog/views/a/_submenu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 8 | 12 |
13 | -------------------------------------------------------------------------------- /views/settings/_form.php: -------------------------------------------------------------------------------- 1 | 6 | true]); ?> 7 | 8 | field($model, 'name')->textInput(!$model->isNewRecord ? ['disabled' => 'disabled'] : []) ?> 9 | field($model, 'visibility')->checkbox(['uncheck' => Setting::VISIBLE_ALL]) ?> 10 | 11 | field($model, 'title')->textarea(['disabled' => !IS_ROOT]) ?> 12 | field($model, 'value')->textarea() ?> 13 | 14 | 'btn btn-primary']) ?> 15 | -------------------------------------------------------------------------------- /modules/gallery/models/Category.php: -------------------------------------------------------------------------------- 1 | hasMany(Photo::className(), ['item_id' => 'category_id'])->where(['class' => self::className()])->sort(); 16 | } 17 | 18 | public function afterDelete() 19 | { 20 | parent::afterDelete(); 21 | 22 | foreach($this->getPhotos()->all() as $photo){ 23 | $photo->delete(); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /modules/subscribe/views/a/view.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/subscribe', 'View subscribe history'); 3 | $this->registerCss('.subscribe-view dt{margin-bottom: 10px;}'); 4 | ?> 5 | render('_menu') ?> 6 | 7 |
8 |
9 |
subject ?>
10 | 11 |
12 |
formatter->asDatetime($model->time, 'medium') ?>
13 | 14 |
15 |
sent ?>
16 | 17 |
18 |
19 |
20 | body ?> -------------------------------------------------------------------------------- /modules/catalog/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'محصولات', 4 | 'Category fields' => 'فیلدهای محصولات', 5 | 'Manage fields' => 'مدیریت فیلدها', 6 | 7 | 'Add field' => 'افزودن فیلد', 8 | 'Save fields' => 'ذخیره کردن فیلد ها', 9 | 'Type options with `comma` as delimiter' => 'با کاما وارد کنید', 10 | 'Fields' => 'فیلد ها', 11 | 12 | 'Item created' => 'آیتم ایجاد شد', 13 | 'Item updated' => 'آیتم ویرایش شد', 14 | 'Item deleted' => 'آیتم حذف شد', 15 | 16 | 'Title' => 'عنوان', 17 | 'Type' => 'نوع', 18 | 'Options' => 'انتخاب ها', 19 | 'Available' => 'در دسترس', 20 | 'Price' => 'قیمت', 21 | 'Discount' => 'تخفیف', 22 | 'Select' => 'انتخاب', 23 | ]; -------------------------------------------------------------------------------- /modules/feedback/controllers/SendController.php: -------------------------------------------------------------------------------- 1 | request; 14 | 15 | if ($model->load($request->post())) { 16 | $returnUrl = $model->save() ? $request->post('successUrl') : $request->post('errorUrl'); 17 | return $this->redirect($returnUrl); 18 | } else { 19 | return $this->redirect(Yii::$app->request->baseUrl); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /views/modules/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | ?> 6 | 17 |
18 | -------------------------------------------------------------------------------- /helpers/Data.php: -------------------------------------------------------------------------------- 1 | cache; 13 | if($cache->exists($key)){ 14 | $data = $cache->get($key); 15 | } 16 | else{ 17 | $data = $callable(); 18 | 19 | if($data) { 20 | $cache->set($key, $data, $duration); 21 | } 22 | } 23 | return $data; 24 | } 25 | 26 | public static function getLocale() 27 | { 28 | return strtolower(substr(Yii::$app->language, 0, 2)); 29 | } 30 | } -------------------------------------------------------------------------------- /modules/gallery/controllers/AController.php: -------------------------------------------------------------------------------- 1 | redirect(['/admin/'.$this->module->id]); 17 | } 18 | 19 | return $this->render('photos', [ 20 | 'model' => $model, 21 | ]); 22 | } 23 | } -------------------------------------------------------------------------------- /behaviors/StatusController.php: -------------------------------------------------------------------------------- 1 | model; 17 | 18 | if(($model = $modelClass::findOne($id))){ 19 | $model->status = $status; 20 | $model->update(); 21 | } 22 | else{ 23 | $this->error = Yii::t('easyii', 'Not found'); 24 | } 25 | 26 | return $this->owner->formatResponse(Yii::t('easyii', 'Status successfully changed')); 27 | } 28 | } -------------------------------------------------------------------------------- /modules/file/views/a/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 18 |
-------------------------------------------------------------------------------- /modules/carousel/views/a/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 18 |
-------------------------------------------------------------------------------- /modules/catalog/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Каталог', 4 | 'Category fields' => 'Поля категории', 5 | 'Manage fields' => 'Редактировать поля', 6 | 7 | 'Add field' => 'Добавить поле', 8 | 'Save fields' => 'Сохранить поля', 9 | 'Type options with `comma` as delimiter' => 'Элементы списка через запятую', 10 | 'Fields' => 'Поля', 11 | 12 | 'Item created' => 'Новая запись успешно создана', 13 | 'Item updated' => 'Запись обновлена', 14 | 'Item deleted' => 'Запись удалена', 15 | 16 | 'Title' => 'Название', 17 | 'Type' => 'Тип поля', 18 | 'Options' => 'Опции', 19 | 'Available' => 'Доступно', 20 | 'Price' => 'Цена', 21 | 'Discount' => 'Скидка', 22 | 'Select' => 'Выбрать', 23 | ]; -------------------------------------------------------------------------------- /modules/shopcart/controllers/SendController.php: -------------------------------------------------------------------------------- 1 | request; 14 | 15 | if($model->load($request->post())) { 16 | $returnUrl = Shopcart::send($model->attributes) ? $request->post('successUrl') : $request->post('errorUrl'); 17 | return $this->redirect($returnUrl); 18 | } else { 19 | return $this->redirect(Yii::$app->request->baseUrl); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /views/category/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | ?> 6 | 17 |
-------------------------------------------------------------------------------- /modules/guestbook/controllers/SendController.php: -------------------------------------------------------------------------------- 1 | scenario = 'send'; 13 | $request = Yii::$app->request; 14 | 15 | if ($model->load($request->post())) { 16 | $returnUrl = $model->save() ? $request->post('successUrl') : $request->post('errorUrl'); 17 | return $this->redirect($returnUrl); 18 | } else { 19 | return $this->redirect(Yii::$app->request->baseUrl); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /modules/news/views/a/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 18 |
-------------------------------------------------------------------------------- /widgets/Photos.php: -------------------------------------------------------------------------------- 1 | model)) { 18 | throw new InvalidConfigException('Required `model` param isn\'t set.'); 19 | } 20 | } 21 | 22 | public function run() 23 | { 24 | $photos = Photo::find()->where(['class' => get_class($this->model), 'item_id' => $this->model->primaryKey])->sort()->all(); 25 | echo $this->render('photos', [ 26 | 'photos' => $photos 27 | ]); 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /modules/gallery/views/a/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 18 |
-------------------------------------------------------------------------------- /views/modules/_submenu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | ?> 6 | 7 | 12 |
-------------------------------------------------------------------------------- /assets/redactor/plugins/textdirection/textdirection.js: -------------------------------------------------------------------------------- 1 | if (!RedactorPlugins) var RedactorPlugins = {}; 2 | 3 | RedactorPlugins.textdirection = function() 4 | { 5 | return { 6 | init: function() 7 | { 8 | var that = this; 9 | var dropdown = {}; 10 | 11 | dropdown.ltr = { title: 'Left to Right', func: that.textdirection.setLtr }; 12 | dropdown.rtl = { title: 'Right to Left', func: that.textdirection.setRtl}; 13 | 14 | var button = this.button.add('textdirection', 'Change Text Direction'); 15 | this.button.addDropdown(button, dropdown); 16 | }, 17 | setRtl: function() 18 | { 19 | this.buffer.set(); 20 | this.block.setAttr('dir', 'rtl'); 21 | }, 22 | setLtr: function() 23 | { 24 | this.buffer.set(); 25 | this.block.removeAttr('dir'); 26 | } 27 | }; 28 | }; -------------------------------------------------------------------------------- /modules/faq/api/Faq.php: -------------------------------------------------------------------------------- 1 | select(['faq_id', 'question', 'answer'])->status(FaqModel::STATUS_ON)->sort()->all() as $item){ 23 | $items[] = new FaqObject($item); 24 | } 25 | return $items; 26 | }); 27 | } 28 | } -------------------------------------------------------------------------------- /modules/subscribe/models/History.php: -------------------------------------------------------------------------------- 1 | true], 19 | ['time', 'default', 'value' => time()], 20 | ]; 21 | } 22 | 23 | public function attributeLabels() 24 | { 25 | return [ 26 | 'subject' => Yii::t('easyii/subscribe', 'Subject'), 27 | 'body' => Yii::t('easyii/subscribe', 'Body'), 28 | ]; 29 | } 30 | } -------------------------------------------------------------------------------- /behaviors/SortableModel.php: -------------------------------------------------------------------------------- 1 | 'findMaxOrderNum', 16 | ]; 17 | } 18 | 19 | public function findMaxOrderNum() 20 | { 21 | if(!$this->owner->order_num) { 22 | $maxOrderNum = (int)(new \yii\db\Query()) 23 | ->select('MAX(`order_num`)') 24 | ->from($this->owner->tableName()) 25 | ->scalar(); 26 | $this->owner->order_num = ++$maxOrderNum; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /modules/faq/views/a/_form.php: -------------------------------------------------------------------------------- 1 | 6 | ['class' => 'model-form'] 8 | ]); ?> 9 | field($model, 'question')->widget(Redactor::className(),[ 10 | 'options' => [ 11 | 'minHeight' => 300, 12 | 'buttons' => ['bold', 'italic', 'unorderedlist', 'link'], 13 | 'linebreaks' => true 14 | ] 15 | ]) ?> 16 | field($model, 'answer')->widget(Redactor::className(),[ 17 | 'options' => [ 18 | 'minHeight' => 300, 19 | 'buttons' => ['bold', 'italic', 'unorderedlist', 'link'], 20 | 'linebreaks' => true 21 | ] 22 | ]) ?> 23 | 24 | 'btn btn-primary']) ?> 25 | -------------------------------------------------------------------------------- /controllers/SignController.php: -------------------------------------------------------------------------------- 1 | user->isGuest || ($model->load(Yii::$app->request->post()) && $model->login())) { 17 | return $this->redirect(Yii::$app->user->getReturnUrl(['/admin'])); 18 | } else { 19 | return $this->render('in', [ 20 | 'model' => $model, 21 | ]); 22 | } 23 | } 24 | 25 | public function actionOut() 26 | { 27 | Yii::$app->user->logout(); 28 | 29 | return $this->redirect(Yii::$app->homeUrl); 30 | } 31 | } -------------------------------------------------------------------------------- /modules/news/api/PhotoObject.php: -------------------------------------------------------------------------------- 1 | thumb($width, $height)); 16 | $a = Html::a($img, $this->image, [ 17 | 'class' => 'easyii-box', 18 | 'rel' => 'news-'.$this->model->item_id, 19 | 'title' => $this->description 20 | ]); 21 | return LIVE_EDIT ? API::liveEdit($a, $this->editLink) : $a; 22 | } 23 | 24 | public function getEditLink(){ 25 | return Url::to(['/admin/news/a/photos', 'id' => $this->model->item_id]).'#photo-'.$this->id; 26 | } 27 | } -------------------------------------------------------------------------------- /modules/shopcart/ShopcartModule.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'subjectOnNewOrder' => 'New order', 9 | 'templateOnNewOrder' => '@easyii/modules/shopcart/mail/en/new_order', 10 | 'subjectNotifyUser' => 'Your order status changed', 11 | 'templateNotifyUser' => '@easyii/modules/shopcart/mail/en/notify_user', 12 | 'frontendShopcartRoute' => '/shopcart/order', 13 | 'enablePhone' => true, 14 | 'enableEmail' => true 15 | ]; 16 | 17 | public static $installConfig = [ 18 | 'title' => [ 19 | 'en' => 'Orders', 20 | 'ru' => 'Заказы', 21 | ], 22 | 'icon' => 'shopping-cart', 23 | 'order_num' => 120, 24 | ]; 25 | } -------------------------------------------------------------------------------- /widgets/Fancybox.php: -------------------------------------------------------------------------------- 1 | selector)) { 21 | throw new InvalidConfigException('Required `selector` param isn\'t set.'); 22 | } 23 | } 24 | 25 | public function run() 26 | { 27 | $clientOptions = (count($this->options)) ? Json::encode($this->options) : ''; 28 | 29 | $this->view->registerAssetBundle(FancyboxAsset::className()); 30 | $this->view->registerJs('$("'.$this->selector.'").fancybox('.$clientOptions.');'); 31 | } 32 | } -------------------------------------------------------------------------------- /modules/article/api/PhotoObject.php: -------------------------------------------------------------------------------- 1 | thumb($width, $height)); 16 | $a = Html::a($img, $this->image, [ 17 | 'class' => 'easyii-box', 18 | 'rel' => 'article-'.$this->model->item_id, 19 | 'title' => $this->description 20 | ]); 21 | return LIVE_EDIT ? API::liveEdit($a, $this->editLink) : $a; 22 | } 23 | 24 | public function getEditLink(){ 25 | return Url::to(['/admin/article/items/photos', 'id' => $this->model->item_id]).'#photo-'.$this->id; 26 | } 27 | } -------------------------------------------------------------------------------- /modules/carousel/views/a/_form.php: -------------------------------------------------------------------------------- 1 | 5 | true, 7 | 'options' => ['enctype' => 'multipart/form-data', 'class' => 'model-form'] 8 | ]); ?> 9 | image) : ?> 10 | 11 | 12 | field($model, 'image')->fileInput() ?> 13 | field($model, 'link') ?> 14 | context->module->settings['enableTitle']) : ?> 15 | field($model, 'title')->textarea() ?> 16 | 17 | context->module->settings['enableText']) : ?> 18 | field($model, 'text')->textarea() ?> 19 | 20 | 'btn btn-primary']) ?> 21 | -------------------------------------------------------------------------------- /modules/catalog/api/PhotoObject.php: -------------------------------------------------------------------------------- 1 | thumb($width, $height)); 16 | $a = Html::a($img, $this->image, [ 17 | 'class' => 'easyii-box', 18 | 'rel' => 'catalog-'.$this->model->item_id, 19 | 'title' => $this->description 20 | ]); 21 | return LIVE_EDIT ? API::liveEdit($a, $this->editLink) : $a; 22 | } 23 | 24 | public function getEditLink(){ 25 | return Url::to(['/admin/catalog/items/photos', 'id' => $this->model->item_id]).'#photo-'.$this->id; 26 | } 27 | } -------------------------------------------------------------------------------- /behaviors/CalculateNotice.php: -------------------------------------------------------------------------------- 1 | 'updateNotice', 16 | ActiveRecord::EVENT_AFTER_UPDATE => 'updateNotice', 17 | ActiveRecord::EVENT_AFTER_DELETE => 'updateNotice', 18 | ]; 19 | } 20 | 21 | public function updateNotice() 22 | { 23 | $moduleName = \yii\easyii\components\Module::getModuleName(get_class($this->owner)); 24 | if(($module = Module::findOne(['name' => $moduleName]))){ 25 | $module->notice = call_user_func($this->callback); 26 | $module->update(); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /assets/redactor/plugins/fontsize/fontsize.js: -------------------------------------------------------------------------------- 1 | if (!RedactorPlugins) var RedactorPlugins = {}; 2 | 3 | RedactorPlugins.fontsize = function() 4 | { 5 | return { 6 | init: function() 7 | { 8 | var fonts = [10, 11, 12, 14, 16, 18, 20, 24, 28, 30]; 9 | var that = this; 10 | var dropdown = {}; 11 | 12 | $.each(fonts, function(i, s) 13 | { 14 | dropdown['s' + i] = { title: s + 'px', func: function() { that.fontsize.set(s); } }; 15 | }); 16 | 17 | dropdown.remove = { title: 'Remove Font Size', func: that.fontsize.reset }; 18 | 19 | var button = this.button.add('fontsize', 'Change Font Size'); 20 | this.button.addDropdown(button, dropdown); 21 | }, 22 | set: function(size) 23 | { 24 | this.inline.format('span', 'style', 'font-size: ' + size + 'px;'); 25 | }, 26 | reset: function() 27 | { 28 | this.inline.removeStyleRule('font-size'); 29 | } 30 | }; 31 | }; -------------------------------------------------------------------------------- /components/ActiveRecord.php: -------------------------------------------------------------------------------- 1 | getErrors() as $attribute => $errors) { 30 | $result .= implode(" ", $errors)." "; 31 | } 32 | return $result; 33 | } 34 | } -------------------------------------------------------------------------------- /assets/redactor/plugins/limiter/limiter.js: -------------------------------------------------------------------------------- 1 | if (!RedactorPlugins) var RedactorPlugins = {}; 2 | 3 | RedactorPlugins.limiter = function() 4 | { 5 | return { 6 | init: function() 7 | { 8 | if (!this.opts.limiter) return; 9 | 10 | this.$editor.on('keydown.redactor-limiter', $.proxy(function(e) 11 | { 12 | var key = e.which; 13 | var ctrl = e.ctrlKey || e.metaKey; 14 | 15 | if (key == this.keyCode.BACKSPACE 16 | || key == this.keyCode.DELETE 17 | || key == this.keyCode.ESC 18 | || key == this.keyCode.SHIFT 19 | || (ctrl && key == 65) 20 | || (ctrl && key == 82) 21 | || (ctrl && key == 116) 22 | ) 23 | { 24 | return; 25 | } 26 | 27 | var count = this.$editor.text().length; 28 | if (count >= this.opts.limiter) 29 | { 30 | return false; 31 | } 32 | 33 | 34 | }, this)); 35 | 36 | } 37 | }; 38 | }; -------------------------------------------------------------------------------- /modules/file/views/a/_form.php: -------------------------------------------------------------------------------- 1 | 6 | true, 8 | 'options' => ['enctype' => 'multipart/form-data', 'class' => 'model-form'] 9 | ]); ?> 10 | field($model, 'title') ?> 11 | field($model, 'file')->fileInput() ?> 12 | isNewRecord) : ?> 13 |
file) ?> (formatter->asShortSize($model->size, 2) ?>)
14 |
15 | 16 | 17 | 18 | field($model, 'slug') ?> 19 | $model]) ?> 20 | 21 | 22 | 'btn btn-primary']) ?> 23 | -------------------------------------------------------------------------------- /modules/article/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'مقالات', 4 | 'Article' => 'مقاله', 5 | 6 | 'Categories' => 'دسته بندی ها', 7 | 'Create category' => 'ایجاد دسته بندی', 8 | 'Edit category' => 'ویرایش دسته بندی', 9 | ' Add subcategory' => 'اضافه کردن زیر بخش', 10 | 'Items' => 'آیتم ها', 11 | 'Short' => 'کوتاه', 12 | 13 | 'Category created' => 'دسته بندی ایجاد شد', 14 | 'Category updated' => 'دسته بندی ویرایش شد', 15 | 'Category deleted' => 'دسته بندی حذف شد', 16 | 'Category image cleared' => 'عکس دسته بندی پاک شد', 17 | 18 | 'Create article' => 'ایجاد مقاله', 19 | 'Edit article' => 'ویرایش مقاله', 20 | 'Article created' => 'مقاله ایجاد شد', 21 | 'Article updated' => 'مقاله ویرایش شد', 22 | 'Article deleted' => 'مقاله حذف شد', 23 | 24 | 'Clear image' => 'پاک کردن عکس', 25 | 'Image cleared' => 'عکس پاک شد', 26 | ]; -------------------------------------------------------------------------------- /modules/article/views/items/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 14 |
-------------------------------------------------------------------------------- /modules/catalog/views/items/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 14 |
-------------------------------------------------------------------------------- /views/system/index.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'System'); 6 | ?> 7 | 8 |

: 9 | floatval(Setting::get('easyii_version'))) : ?> 10 | 11 | 12 |

13 | 14 |
15 | 16 |

17 | 18 |

19 | 20 |
21 | 22 |

23 | 24 |

-------------------------------------------------------------------------------- /modules/gallery/api/PhotoObject.php: -------------------------------------------------------------------------------- 1 | thumb($width, $height)); 17 | $a = Html::a($img, $this->image, [ 18 | 'class' => 'easyii-box', 19 | 'rel' => 'album-' . ($this->rel ? $this->rel : $this->model->item_id), 20 | 'title' => $this->description 21 | ]); 22 | return LIVE_EDIT ? API::liveEdit($a, $this->editLink) : $a; 23 | } 24 | 25 | public function getEditLink(){ 26 | return Url::to(['/admin/gallery/a/photos', 'id' => $this->model->item_id]).'#photo-'.$this->id; 27 | } 28 | } -------------------------------------------------------------------------------- /assets/redactor/plugins/fontfamily/fontfamily.js: -------------------------------------------------------------------------------- 1 | if (!RedactorPlugins) var RedactorPlugins = {}; 2 | 3 | RedactorPlugins.fontfamily = function() 4 | { 5 | return { 6 | init: function () 7 | { 8 | var fonts = [ 'Arial', 'Helvetica', 'Georgia', 'Times New Roman', 'Monospace' ]; 9 | var that = this; 10 | var dropdown = {}; 11 | 12 | $.each(fonts, function(i, s) 13 | { 14 | dropdown['s' + i] = { title: s, func: function() { that.fontfamily.set(s); }}; 15 | }); 16 | 17 | dropdown.remove = { title: 'Remove Font Family', func: that.fontfamily.reset }; 18 | 19 | var button = this.button.add('fontfamily', 'Change Font Family'); 20 | this.button.addDropdown(button, dropdown); 21 | 22 | }, 23 | set: function (value) 24 | { 25 | this.inline.format('span', 'style', 'font-family:' + value + ';'); 26 | }, 27 | reset: function() 28 | { 29 | this.inline.removeStyleRule('font-family'); 30 | } 31 | }; 32 | }; -------------------------------------------------------------------------------- /modules/feedback/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'تماس', 4 | 'View feedback' => 'مشاهده تماس', 5 | 'Feedback deleted' => 'تماس حذف شد', 6 | 'Feedback updated' => 'تماس ویرایش شد', 7 | 'Answer' => 'پاسخ', 8 | 'Subject' => 'موضوع', 9 | 'Phone' => 'تلفن', 10 | 'No answer' => 'بدون پاسخ', 11 | 'Hello,' => 'سلام', 12 | 'Answer on your feedback message' => 'پاسخ برای تماس شما', 13 | 'Best regards.' => 'با آرزوی بهترین ها', 14 | 'Answer successfully sent' => 'پاسخ با موفقیت ارسال شد', 15 | 'Mark as answered' => 'زدن علامت پاسخ داده شده', 16 | 'feedback answer' => 'پاسخ تماس', 17 | 'Please fill correct `Admin E-mail` in Settings' => 'لطفا ایمیل ادمین را در تنظیمات درست کنید', 18 | 'Are you sure you want to resend the answer?' => 'آیا مطمئنید می خواهید پاسخ را مجدد ارسال کنید؟', 19 | 'An error has occurred while sending mail' => 'مشکلی در ارسال ایمیل رخ داده است', 20 | ]; -------------------------------------------------------------------------------- /modules/shopcart/messages/fa/admin.php: -------------------------------------------------------------------------------- 1 | 'سفارشات', 4 | 'Order' => 'سفارش', 5 | 'Order updated' => 'سفارش ویرایش شد', 6 | 'Blank' => 'در سبد خرید', 7 | 'Pending' => 'در حال بررسی', 8 | 'Processed' => 'بررسی شده', 9 | 'Sent' => 'ارسال شده', 10 | 'Completed' => 'کامل شده', 11 | 'Declined' => 'کنسل شده', 12 | 'Returned' => 'بازگشت داده شده', 13 | 'Error' => 'خطا', 14 | 'Fails' => 'ناموفق', 15 | 'Address' => 'آدرس', 16 | 'Cost' => 'هزینه', 17 | 'Phone' => 'تلفن', 18 | 'Comment' => 'نظر', 19 | 'Admin remark' => 'تجدید نظر ادمین', 20 | 'Items' => 'آیتم ها', 21 | 'Options' => 'انتخاب ها', 22 | 'Count' => 'تعداد', 23 | 'Discount' => 'تخفیف', 24 | 'Price' => 'قیمت', 25 | 'Total' => 'جمع', 26 | 'View' => 'مشاهده', 27 | 'Order status changed' => 'وضعیت سفارش تغییر یافت', 28 | 'Notify user on E-mail' => 'کاربر را با ایمیل آگاه کن' 29 | ]; -------------------------------------------------------------------------------- /modules/shopcart/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Заказы', 4 | 'Order' => 'Заказ', 5 | 'Order updated' => 'Заказ обновлен', 6 | 'Blank' => 'Незаполнен', 7 | 'Pending' => 'Ожидает', 8 | 'Processed' => 'В обработке', 9 | 'Sent' => 'Отправлен', 10 | 'Completed' => 'Завершен', 11 | 'Declined' => 'Отклонен', 12 | 'Returned' => 'Вовзрат', 13 | 'Error' => 'Ошибка', 14 | 'Fails' => 'Неудачи', 15 | 'Address' => 'Адрес', 16 | 'Cost' => 'Стоимость', 17 | 'Phone' => 'Телефон', 18 | 'Comment' => 'Комментарий', 19 | 'Admin remark' => 'Пометка', 20 | 'Items' => 'Товары', 21 | 'Options' => 'Опции', 22 | 'Count' => 'Кол-во', 23 | 'Discount' => 'Скидка', 24 | 'Price' => 'Цена', 25 | 'Total' => 'Всего', 26 | 'View' => 'Просмотр', 27 | 'Order status changed' => 'Статус заказа изменен', 28 | 'Notify user on E-mail' => 'Отправить уведомление пользователю на E-mail' 29 | ]; -------------------------------------------------------------------------------- /helpers/Mail.php: -------------------------------------------------------------------------------- 1 | mailer->compose($template, $data) 17 | ->setTo($toEmail) 18 | ->setSubject($data['subject']); 19 | 20 | if(filter_var(Setting::get('robot_email'), FILTER_VALIDATE_EMAIL)){ 21 | $message->setFrom(Setting::get('robot_email')); 22 | } 23 | 24 | if(!empty($options['replyTo']) && filter_var($options['replyTo'], FILTER_VALIDATE_EMAIL)){ 25 | $message->setReplyTo($options['replyTo']); 26 | } 27 | 28 | return $message->send(); 29 | } 30 | } -------------------------------------------------------------------------------- /modules/feedback/FeedbackModule.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'subjectOnNewFeedback' => 'New feedback', 9 | 'templateOnNewFeedback' => '@easyii/modules/feedback/mail/en/new_feedback', 10 | 11 | 'answerTemplate' => '@easyii/modules/feedback/mail/en/answer', 12 | 'answerSubject' => 'Answer on your feedback message', 13 | 'answerHeader' => 'Hello,', 14 | 'answerFooter' => 'Best regards.', 15 | 16 | 'enableTitle' => false, 17 | 'enablePhone' => true, 18 | 'enableCaptcha' => false, 19 | ]; 20 | 21 | public static $installConfig = [ 22 | 'title' => [ 23 | 'en' => 'Feedback', 24 | 'ru' => 'Обратная связь', 25 | ], 26 | 'icon' => 'earphone', 27 | 'order_num' => 60, 28 | ]; 29 | } -------------------------------------------------------------------------------- /modules/guestbook/GuestbookModule.php: -------------------------------------------------------------------------------- 1 | false, 8 | 'enableEmail' => true, 9 | 'preModerate' => false, 10 | 'enableCaptcha' => false, 11 | 'mailAdminOnNewPost' => true, 12 | 'subjectOnNewPost' => 'New message in the guestbook.', 13 | 'templateOnNewPost' => '@easyii/modules/guestbook/mail/en/new_post', 14 | 'frontendGuestbookRoute' => '/guestbook', 15 | 'subjectNotifyUser' => 'Your post in the guestbook answered', 16 | 'templateNotifyUser' => '@easyii/modules/guestbook/mail/en/notify_user' 17 | ]; 18 | 19 | public static $installConfig = [ 20 | 'title' => [ 21 | 'en' => 'Guestbook', 22 | 'ru' => 'Гостевая книга', 23 | ], 24 | 'icon' => 'book', 25 | 'order_num' => 80, 26 | ]; 27 | } -------------------------------------------------------------------------------- /models/Photo.php: -------------------------------------------------------------------------------- 1 | image); 40 | } 41 | } -------------------------------------------------------------------------------- /modules/page/views/a/_form.php: -------------------------------------------------------------------------------- 1 | 8 | true, 10 | 'options' => ['class' => 'model-form'] 11 | ]); ?> 12 | field($model, 'title') ?> 13 | field($model, 'text')->widget(Redactor::className(),[ 14 | 'options' => [ 15 | 'minHeight' => 400, 16 | 'imageUpload' => Url::to(['/admin/redactor/upload', 'dir' => 'pages']), 17 | 'fileUpload' => Url::to(['/admin/redactor/upload', 'dir' => 'pages']), 18 | 'plugins' => ['fullscreen'] 19 | ] 20 | ]) ?> 21 | 22 | 23 | field($model, 'slug') ?> 24 | $model]) ?> 25 | 26 | 27 | 'btn btn-primary']) ?> 28 | -------------------------------------------------------------------------------- /views/install/error.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/install', 'Installation error'); 5 | ?> 6 |
7 |
8 |
9 |
10 |
11 | 12 |
13 |
14 | 15 |
16 |
17 | 22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /views/layouts/empty.php: -------------------------------------------------------------------------------- 1 | 6 | beginPage() ?> 7 | 8 | 9 | 10 | 11 | <?= Yii::t('easyii', 'Control Panel') ?> - <?= Html::encode($this->title) ?> 12 | 13 | 14 | 15 | head() ?> 16 | 17 | 18 | beginBody() ?> 19 |
20 | 21 |
22 | endBody() ?> 23 | 24 | 25 | endPage() ?> -------------------------------------------------------------------------------- /views/install/index.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/install', 'Installation'); 5 | ?> 6 |
7 |
8 |
9 |
10 |
11 | 12 |
13 |
14 | render('_form', ['model' => $model])?> 15 |
16 |
17 | 22 |
23 |
24 |
25 | -------------------------------------------------------------------------------- /assets/DateTimePickerAsset.php: -------------------------------------------------------------------------------- 1 | js[] = 'moment/min/moment-with-locales.js'; 17 | $this->js[] = 'eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js'; 18 | $this->css[] = 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css'; 19 | } else { 20 | $this->js[] = 'moment/min/moment-with-locales.min.js'; 21 | $this->js[] = 'eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js'; 22 | $this->css[] = 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css'; 23 | } 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /modules/feedback/messages/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Обратная связь', 4 | 'View feedback' => 'Просмотр обращения', 5 | 'Feedback deleted' => 'Обращение удалено', 6 | 'Feedback updated' => 'Обращение обновлено', 7 | 'Answer' => 'Ответ', 8 | 'Subject' => 'Тема', 9 | 'Phone' => 'Телефон', 10 | 'No answer' => 'Без ответа', 11 | 'Hello,' => 'Здравствуйте,', 12 | 'Answer on your feedback message' => 'Ответ на ваше обращение', 13 | 'Best regards.' => 'С наилучшими пожеланиями.', 14 | 'Answer successfully sent' => 'Ответ успешно отправлен', 15 | 'Mark as answered' => 'Отметить отвеченным', 16 | 'feedback answer' => 'обратная связь', 17 | 'Please fill correct `Admin E-mail` in Settings' => 'Пожалуйста укажите корректный `E-mail Администратора` в разделе Настройки', 18 | 'Are you sure you want to resend the answer?' => 'Вы уверены, что хотите послать ответ повторно?', 19 | 'An error has occurred while sending mail' => 'Произошла ошибка при отправке письма', 20 | ]; -------------------------------------------------------------------------------- /modules/shopcart/api/GoodObject.php: -------------------------------------------------------------------------------- 1 | _item){ 19 | $this->_item = new ItemObject($this->model->item); 20 | } 21 | return $this->_item; 22 | } 23 | 24 | public function getPrice(){ 25 | return round($this->model->price * (1 - $this->discount / 100), 2); 26 | } 27 | 28 | public function getOld_price(){ 29 | return $this->discount ? $this->model->price : null; 30 | } 31 | 32 | public function getCategory_id() 33 | { 34 | return $this->item->category_id; 35 | } 36 | 37 | public function getSlug() 38 | { 39 | return $this->item->slug; 40 | } 41 | } -------------------------------------------------------------------------------- /models/SeoText.php: -------------------------------------------------------------------------------- 1 | 255], 19 | [['h1', 'title', 'keywords', 'description'], EscapeValidator::className()], 20 | ]; 21 | } 22 | 23 | public function attributeLabels() 24 | { 25 | return [ 26 | 'h1' => 'Seo H1', 27 | 'title' => 'Seo Title', 28 | 'keywords' => 'Seo Keywords', 29 | 'description' => 'Seo Description', 30 | ]; 31 | } 32 | 33 | public function isEmpty() 34 | { 35 | return (!$this->h1 && !$this->title && !$this->keywords && !$this->description); 36 | } 37 | } -------------------------------------------------------------------------------- /views/install/finish.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii/install', 'Installation completed'); 7 | ?> 8 |
9 |
10 |
11 |
12 |
13 | 14 |
15 | 18 |
19 | 24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /assets/redactor/plugins/counter/counter.js: -------------------------------------------------------------------------------- 1 | if (!RedactorPlugins) var RedactorPlugins = {}; 2 | 3 | RedactorPlugins.counter = function() 4 | { 5 | return { 6 | init: function() 7 | { 8 | if (!this.opts.counterCallback) return; 9 | 10 | this.$editor.on('keyup.redactor-limiter', $.proxy(function(e) 11 | { 12 | var words = 0, characters = 0, spaces = 0; 13 | 14 | var html = this.code.get(); 15 | 16 | var text = html.replace(/<\/(.*?)>/gi, ' '); 17 | text = text.replace(/<(.*?)>/gi, ''); 18 | text = text.replace(/\t/gi, ''); 19 | text = text.replace(/\n/gi, ''); 20 | text = text.replace(/\r/gi, ''); 21 | text = $.trim(text); 22 | 23 | if (text !== '') 24 | { 25 | var arrWords = text.split(/\s+/); 26 | var arrSpaces = text.match(/\s/g); 27 | 28 | if (arrWords) words = arrWords.length; 29 | if (arrSpaces) spaces = arrSpaces.length; 30 | 31 | characters = text.length; 32 | 33 | } 34 | 35 | this.core.setCallback('counter', { words: words, characters: characters, spaces: spaces }); 36 | 37 | 38 | }, this)); 39 | } 40 | }; 41 | }; -------------------------------------------------------------------------------- /modules/subscribe/models/Subscriber.php: -------------------------------------------------------------------------------- 1 | ip = Yii::$app->request->userIP; 30 | $this->time = time(); 31 | } 32 | return true; 33 | } else { 34 | return false; 35 | } 36 | } 37 | 38 | public function attributeLabels() 39 | { 40 | return [ 41 | 'email' => 'E-mail', 42 | ]; 43 | } 44 | } -------------------------------------------------------------------------------- /views/settings/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | ?> 6 | 7 | 18 |
19 | 20 | 28 |
29 | -------------------------------------------------------------------------------- /modules/page/api/Page.php: -------------------------------------------------------------------------------- 1 | _pages[$id_slug])) { 22 | $this->_pages[$id_slug] = $this->findPage($id_slug); 23 | } 24 | return $this->_pages[$id_slug]; 25 | } 26 | 27 | private function findPage($id_slug) 28 | { 29 | $page = PageModel::find()->where(['or', 'page_id=:id_slug', 'slug=:id_slug'], [':id_slug' => $id_slug])->one(); 30 | 31 | return $page ? new PageObject($page) : $this->notFound($id_slug); 32 | } 33 | 34 | private function notFound($id_slug) 35 | { 36 | $page = new PageModel([ 37 | 'slug' => $id_slug 38 | ]); 39 | return new PageObject($page); 40 | } 41 | } -------------------------------------------------------------------------------- /modules/page/api/PageObject.php: -------------------------------------------------------------------------------- 1 | model->isNewRecord){ 15 | return $this->createLink; 16 | } else { 17 | return LIVE_EDIT ? API::liveEdit($this->model->title, $this->editLink) : $this->model->title; 18 | } 19 | } 20 | 21 | public function getText(){ 22 | if($this->model->isNewRecord){ 23 | return $this->createLink; 24 | } else { 25 | return LIVE_EDIT ? API::liveEdit($this->model->text, $this->editLink, 'div') : $this->model->text; 26 | } 27 | } 28 | 29 | public function getEditLink(){ 30 | return Url::to(['/admin/page/a/edit/', 'id' => $this->id]); 31 | } 32 | 33 | public function getCreateLink(){ 34 | return Html::a(Yii::t('easyii/page/api', 'Create page'), ['/admin/page/a/create', 'slug' => $this->slug], ['target' => '_blank']); 35 | } 36 | } -------------------------------------------------------------------------------- /modules/faq/models/Faq.php: -------------------------------------------------------------------------------- 1 | self::STATUS_ON], 27 | ]; 28 | } 29 | 30 | public function attributeLabels() 31 | { 32 | return [ 33 | 'question' => Yii::t('easyii/faq', 'Question'), 34 | 'answer' => Yii::t('easyii/faq', 'Answer'), 35 | ]; 36 | } 37 | 38 | public function behaviors() 39 | { 40 | return [ 41 | CacheFlush::className(), 42 | SortableModel::className() 43 | ]; 44 | } 45 | } -------------------------------------------------------------------------------- /modules/page/views/a/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 8 | 19 |
20 | 21 | 29 |
30 | 31 | -------------------------------------------------------------------------------- /modules/guestbook/api/PostObject.php: -------------------------------------------------------------------------------- 1 | model->name, $this->editLink) : $this->model->name; 15 | } 16 | 17 | public function getTitle(){ 18 | return LIVE_EDIT ? API::liveEdit($this->model->title, $this->editLink) : $this->model->title; 19 | } 20 | 21 | public function getText(){ 22 | return LIVE_EDIT ? API::liveEdit($this->model->text, $this->editLink, 'div') : $this->model->text; 23 | } 24 | 25 | public function getAnswer(){ 26 | return LIVE_EDIT ? API::liveEdit($this->model->answer, $this->editLink, 'div') : $this->model->answer; 27 | } 28 | 29 | public function getDate(){ 30 | return Yii::$app->formatter->asDatetime($this->time, 'medium'); 31 | } 32 | 33 | public function getEditLink(){ 34 | return Url::to(['/admin/guestbook/a/edit', 'id' => $this->id]); 35 | } 36 | } -------------------------------------------------------------------------------- /modules/faq/views/a/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 8 | 19 |
20 | 21 | 29 |
30 | 31 | -------------------------------------------------------------------------------- /modules/text/models/Text.php: -------------------------------------------------------------------------------- 1 | true], 20 | ['text', 'required'], 21 | ['text', 'trim'], 22 | ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], 23 | ['slug', 'default', 'value' => null], 24 | ['slug', 'unique'] 25 | ]; 26 | } 27 | 28 | public function attributeLabels() 29 | { 30 | return [ 31 | 'text' => Yii::t('easyii', 'Text'), 32 | 'slug' => Yii::t('easyii', 'Slug'), 33 | ]; 34 | } 35 | 36 | public function behaviors() 37 | { 38 | return [ 39 | CacheFlush::className() 40 | ]; 41 | } 42 | } -------------------------------------------------------------------------------- /views/install/_form.php: -------------------------------------------------------------------------------- 1 | 6 | Url::to(['/admin/install'])]); ?> 7 | field($model, 'root_password', ['inputOptions' => ['title' => Yii::t('easyii/install','Password to login as root')]]) ?> 8 | field($model, 'admin_email', ['inputOptions' => ['title' => Yii::t('easyii/install','Used as "ReplyTo" in mail messages')]]) ?> 9 | field($model, 'robot_email', ['inputOptions' => ['title' => Yii::t('easyii/install','Used as "From" in mail messages')]]) ?> 10 | field($model, 'recaptcha_key', ['inputOptions' => ['title' => Yii::t('easyii/install','Required for using captcha in forms (guestbook, feedback)')]]) ?> 11 | field($model, 'recaptcha_secret') ?> 12 |

13 | 'btn btn-lg btn-primary btn-block']) ?> 14 | -------------------------------------------------------------------------------- /models/InstallForm.php: -------------------------------------------------------------------------------- 1 | 6], 23 | [['recaptcha_key', 'recaptcha_secret'], 'string'], 24 | [['robot_email', 'admin_email'], 'email'], 25 | [['root_password', 'recaptcha_key', 'recaptcha_secret', 'robot_email', 'admin_email'], 'trim'], 26 | ]; 27 | } 28 | public function attributeLabels() 29 | { 30 | return [ 31 | 'root_password' => Yii::t('easyii/install', 'Root password'), 32 | 'admin_email' => Yii::t('easyii/install', 'Admin E-mail'), 33 | 'robot_email' => Yii::t('easyii/install', 'Robot E-mail') 34 | ]; 35 | } 36 | } -------------------------------------------------------------------------------- /modules/file/api/FileObject.php: -------------------------------------------------------------------------------- 1 | model->title, $this->editLink) : $this->model->title; 17 | } 18 | 19 | public function getFile(){ 20 | return Url::to(['/admin/file/download', 'id' => $this->id]); 21 | } 22 | 23 | public function getLink(){ 24 | return Html::a($this->title, $this->file, ['target' => '_blank']); 25 | } 26 | 27 | public function getBytes(){ 28 | return $this->model->size; 29 | } 30 | 31 | public function getSize(){ 32 | return Yii::$app->formatter->asShortSize($this->model->size, 2); 33 | } 34 | 35 | public function getDate(){ 36 | return Yii::$app->formatter->asDatetime($this->time, 'medium'); 37 | } 38 | 39 | public function getEditLink(){ 40 | return Url::to(['/admin/file/a/edit/', 'id' => $this->id]); 41 | } 42 | } -------------------------------------------------------------------------------- /modules/page/models/Page.php: -------------------------------------------------------------------------------- 1 | 128], 20 | ['slug', 'match', 'pattern' => self::$SLUG_PATTERN, 'message' => Yii::t('easyii', 'Slug can contain only 0-9, a-z and "-" characters (max: 128).')], 21 | ['slug', 'default', 'value' => null], 22 | ['slug', 'unique'], 23 | ]; 24 | } 25 | 26 | public function attributeLabels() 27 | { 28 | return [ 29 | 'title' => Yii::t('easyii', 'Title'), 30 | 'text' => Yii::t('easyii', 'Text'), 31 | 'slug' => Yii::t('easyii', 'Slug'), 32 | ]; 33 | } 34 | 35 | public function behaviors() 36 | { 37 | return [ 38 | 'seoBehavior' => SeoBehavior::className(), 39 | ]; 40 | } 41 | } -------------------------------------------------------------------------------- /modules/text/views/a/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | ?> 7 | 8 | 19 |
20 | 21 | 29 |
30 | -------------------------------------------------------------------------------- /views/admins/index.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Admins'); 5 | ?> 6 | 7 | render('_menu') ?> 8 | 9 | count > 0) : ?> 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | models as $admin) : ?> 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | $data->pagination 29 | ]) ?> 30 |
#
admin_id ?>username ?>
31 | 32 |

33 | -------------------------------------------------------------------------------- /modules/shopcart/api/OrderObject.php: -------------------------------------------------------------------------------- 1 | _goods){ 20 | $this->_goods = []; 21 | if($this->id){ 22 | foreach(Good::find()->where(['order_id' => $this->id])->with('item')->all() as $good){ 23 | $this->_goods[] = new GoodObject($good); 24 | } 25 | } 26 | } 27 | return $this->_goods; 28 | } 29 | 30 | public function getCost() 31 | { 32 | if($this->_cost === null) { 33 | $this->_cost = 0; 34 | foreach ($this->goods as $good) { 35 | $this->_cost += $good->price * $good->count; 36 | } 37 | } 38 | return $this->_cost; 39 | } 40 | 41 | public function getStatus() 42 | { 43 | return $this->model->statusName; 44 | } 45 | } -------------------------------------------------------------------------------- /modules/subscribe/views/a/_menu.php: -------------------------------------------------------------------------------- 1 | context->action->id; 5 | $module = $this->context->module->id; 6 | 7 | $historyUrl = Url::to(['/admin/'.$module.'/a/history']); 8 | if($action === 'view'){ 9 | $returnUrl = $this->context->getReturnUrl(); 10 | if(strpos($returnUrl, 'history') !== false){ 11 | $historyUrl = $returnUrl; 12 | } 13 | } 14 | ?> 15 | 33 |
34 | -------------------------------------------------------------------------------- /widgets/views/seo_form.php: -------------------------------------------------------------------------------- 1 | 'control-label']; 8 | $inputOptions = ['class' => 'form-control']; 9 | ?> 10 |

11 | 12 |

13 | 14 |
15 |
16 | 17 | 18 |
19 |
20 | 21 | 22 |
23 |
24 | 25 | 26 |
27 |
28 | 29 | 30 |
31 |
-------------------------------------------------------------------------------- /behaviors/CacheFlush.php: -------------------------------------------------------------------------------- 1 | key) $this->key = constant(get_class($owner).'::CACHE_KEY'); 22 | } 23 | 24 | public function events() 25 | { 26 | return [ 27 | ActiveRecord::EVENT_AFTER_INSERT => 'flush', 28 | ActiveRecord::EVENT_AFTER_UPDATE => 'flush', 29 | ActiveRecord::EVENT_AFTER_DELETE => 'flush', 30 | ]; 31 | } 32 | 33 | /** 34 | * Flush cache 35 | */ 36 | public function flush() 37 | { 38 | if($this->key) { 39 | if(is_array($this->key)){ 40 | foreach($this->key as $key){ 41 | Yii::$app->cache->delete($key); 42 | } 43 | } else { 44 | Yii::$app->cache->delete($this->key); 45 | } 46 | } 47 | else{ 48 | Yii::$app->cache->flush(); 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /modules/shopcart/mail/en/notify_user.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | 6 | $total = 0; 7 | ?> 8 | 9 |

The status of your order #primaryKey ?> changed.

10 |

New status: statusName ?>

11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | goods as $good) : ?> 20 | discount ? round($good->price * (1 - $good->discount / 100)) : $good->price; 22 | $unitTotal = $good->count * $price; 23 | $total += $unitTotal; 24 | ?> 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 37 |
ItemQuantityUnit priceTotal
item->title ?> options ? "($good->options)" : '' ?>count ?>
34 | Total: 35 |
38 |

You can view it .

39 |
40 |

This is an automatically generated email – please do not reply to it.

-------------------------------------------------------------------------------- /modules/shopcart/mail/ru/notify_user.php: -------------------------------------------------------------------------------- 1 | title = $subject; 5 | 6 | $total = 0; 7 | ?> 8 | 9 |

Статус вашего заказа #primaryKey ?> изменен.

10 |

Новый статус: statusName ?>

11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | goods as $good) : ?> 20 | discount ? round($good->price * (1 - $good->discount / 100)) : $good->price; 22 | $unitTotal = $good->count * $price; 23 | $total += $unitTotal; 24 | ?> 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 37 |
ТоварКол-воЦенаВсего
item->title ?> options ? "($good->options)" : '' ?>count ?>
34 | Итого: 35 |
38 |

Посмотреть свой заказ на сайте Вы можете .

39 |
40 |

Это автоматическое сообщение и на него не нужно отвечать.

-------------------------------------------------------------------------------- /media/css/frontend.css: -------------------------------------------------------------------------------- 1 | #easyii-navbar { 2 | font-family: 'Open Sans', sans-serif !important; 3 | background: #1d212a; 4 | color: #B3B8C3; 5 | } 6 | #easyii-navbar .navbar-left li:first-child { 7 | border-right: 1px solid #111; 8 | } 9 | #easyii-navbar .navbar-text{ 10 | color: #B3B8C3; 11 | } 12 | #easyii-navbar .switcher{ 13 | margin-top: 15px; 14 | border: none; 15 | background: #b3b8c3; 16 | color: #FFF; 17 | height: 20px; 18 | min-width: 40px; 19 | font-size: 11px; 20 | border-radius: 10px; 21 | padding: 1px; 22 | } 23 | #easyii-navbar .switcher .slider{ 24 | background: #f0f3f3; 25 | height: 18px; 26 | border-radius: 10px; 27 | box-shadow: 0 0 2px 1px #999; 28 | } 29 | #easyii-navbar .switcher.is-active{ 30 | background: #27b6af; 31 | } 32 | #easyii-navbar .switcher .textNo{ 33 | color: #fff; 34 | } 35 | /*#easyii-navbar li.live-edit a:hover{ 36 | background: #27b6af; 37 | }*/ 38 | 39 | span.easyiicms-edit{ 40 | display: inline-block; 41 | } 42 | 43 | .easyiicms-edit{ 44 | position: relative; 45 | } 46 | .easyiicms-goedit{ 47 | position: absolute; top: 0; left: 0; 48 | 49 | } 50 | .easyiicms-goedit:hover{ 51 | border: 1px solid #337ab7; 52 | box-shadow: 0 0 10px #337ab7; 53 | background-color: rgba(51, 122, 183, 0.2); 54 | } -------------------------------------------------------------------------------- /views/layouts/frontend-toolbar.php: -------------------------------------------------------------------------------- 1 | registerCss('body {padding-'.$position.': 50px;}'); 10 | ?> 11 | 12 | -------------------------------------------------------------------------------- /messages/fa/install.php: -------------------------------------------------------------------------------- 1 | 'نصب کردن', 5 | 'Install' => 'نصب', 6 | 'Root password' => 'کلمه عبور کاربر Root', 7 | 'Admin E-mail' => 'ایمیل ادمین', 8 | 'Robot E-mail' => 'ایمیل روبوت', 9 | 'Auth time' => 'زمان ثبت نام', 10 | 'Frontend toolbar position' => 'موقعیت نوار ابزار صفحه اصلی', 11 | 'Password to login as root' => 'کلمه عبور برای ورود به عنوان Root', 12 | 'Used as "ReplyTo" in mail messages' => 'استفاده به عنوان ReplyTo در پیام ایمیل', 13 | 'Used as "From" in mail messages' => 'استفاده به عنوان From در پیام ایمیل', 14 | 'Required for using captcha in forms (guestbook, feedback)' => 'استفاده از کپچا در فرم ها', 15 | 'You easily can get keys on' => 'شما می توانید به راحتی کلید ها را بردارید', 16 | 'ReCaptcha website' => 'سایت ReCaptcha', 17 | 'Installation completed' => 'نصب کامل شد', 18 | 'Installation error' => 'خطا در نصب', 19 | 'Cannot connect to database. Please configure `{0}`.' => 'به دیتابیس نمی توان متصل شد لطفادر `{0}` تنظیم کنید.', 20 | 'EasyiiCMS is already installed. If you want to reinstall easyiiCMS, please drop all tables with prefix `easyii_` from your database manually.' => 'EasyiiCMS در حال حاضر نصب شده است. اگر می خواهید نصب را مجدد انجام دهید لطفا تمامی جدول های دیتابیس با _easyii را حذف نمایید.' 21 | ]; 22 | -------------------------------------------------------------------------------- /views/logs/index.php: -------------------------------------------------------------------------------- 1 | title = Yii::t('easyii', 'Logs'); 3 | ?> 4 | 5 | render('_menu') ?> 6 | 7 | count > 0) : ?> 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | models as $log) : ?> 21 | success ? 'class="danger"' : ''?>> 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
#IPUSER AGENT
primaryKey ?>username ?>password ?>ip ?>user_agent ?>formatter->asDatetime($log->time, 'medium') ?>
32 | $data->pagination 34 | ]) ?> 35 | 36 |

37 | -------------------------------------------------------------------------------- /assets/redactor/plugins/definedlinks/definedlinks.js: -------------------------------------------------------------------------------- 1 | if (!RedactorPlugins) var RedactorPlugins = {}; 2 | 3 | RedactorPlugins.definedlinks = function() 4 | { 5 | return { 6 | init: function() 7 | { 8 | if (!this.opts.definedLinks) return; 9 | 10 | this.modal.addCallback('link', $.proxy(this.definedlinks.load, this)); 11 | 12 | }, 13 | load: function() 14 | { 15 | var $select = $(' 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /assets/redactor/lang/ko.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | $.Redactor.opts.langs['ko'] = { 3 | html: 'HTML', 4 | video: '비디오', 5 | image: '이미지', 6 | table: '표', 7 | link: '링크', 8 | link_insert: '링크 삽입', 9 | link_edit: '링크 편집', 10 | unlink: '링크 삭제', 11 | formatting: '스타일', 12 | paragraph: '단락', 13 | quote: '인용', 14 | code: '코드', 15 | header1: '헤더 1', 16 | header2: '헤더 2', 17 | header3: '헤더 3', 18 | header4: '헤더 4', 19 | header5: '헤더 5', 20 | bold: '굵게', 21 | italic: '기울임꼴', 22 | fontcolor: '글자색', 23 | backcolor: '배경색', 24 | unorderedlist: '글머리기호', 25 | orderedlist: '번호매기기', 26 | outdent: '내어쓰기', 27 | indent: '들여쓰기', 28 | cancel: '취소', 29 | insert: '삽입', 30 | save: '저장', 31 | _delete: '삭제', 32 | insert_table: '표 삽입', 33 | insert_row_above: '열을 위에 추가', 34 | insert_row_below: '열을 아래에 추가', 35 | insert_column_left: '행을 왼쪽에 추가', 36 | insert_column_right: '행을 오른쪽에 추가', 37 | delete_column: '컬럼 삭제', 38 | delete_row: '행 삭제', 39 | delete_table: '표 삭제', 40 | rows: '행', 41 | columns: '열', 42 | add_head: '표 헤더 추가', 43 | delete_head: '표 헤더 체거', 44 | title: '제목', 45 | image_position: '이미지 위치', 46 | none: '없음', 47 | left: '왼쪽', 48 | right: '오른쪽', 49 | image_web_link: '이미지 링크', 50 | text: '텍스트', 51 | mailto: '메일', 52 | web: 'URL', 53 | video_html_code: '비디오 삽입(embed) 코드', 54 | file: '파일', 55 | upload: '업로드', 56 | download: '다운로드', 57 | choose: '선택', 58 | or_choose: '또는 선택', 59 | drop_file_here: '파일을 여기에 떨굼', 60 | align_left: '왼쪽정렬', 61 | align_center: '가운데정렬', 62 | align_right: '오른쪽정렬', 63 | align_justify: '가지런히정렬', 64 | horizontalrule: '수평선', 65 | fullscreen: '전체화면', 66 | deleted: '취소선', 67 | anchor: '링크', 68 | link_new_tab: '새로운 탭에서 링크 열기', 69 | underline: '밑줄', 70 | alignment: '정렬', 71 | filename: '파일명 (선택)', 72 | edit: '편집', 73 | center: 'Center' 74 | }; 75 | })( jQuery ); -------------------------------------------------------------------------------- /assets/redactor/plugins/fontcolor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Redactor is awesome! 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | 44 | 45 | 46 | 47 |
48 | 51 | 52 | 53 |
54 | 55 | -------------------------------------------------------------------------------- /assets/redactor/plugins/fullscreen/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Redactor is awesome! 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | 44 | 45 | 46 | 47 |
48 | 51 | 52 | 53 |
54 | 55 | -------------------------------------------------------------------------------- /assets/redactor/plugins/textdirection/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Redactor is awesome! 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 28 | 29 | 30 | 44 | 45 | 46 | 47 |
48 | 51 | 52 | 53 |
54 | 55 | -------------------------------------------------------------------------------- /assets/redactor/lang/zh_tw.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | $.Redactor.opts.langs['zh_tw'] = { 3 | html: 'HTML', 4 | video: '插入影片', 5 | image: '插入圖片', 6 | table: '表格', 7 | link: '連結', 8 | link_insert: '插入連結', 9 | link_edit: 'Edit link', 10 | unlink: '移除連結', 11 | formatting: '樣式', 12 | paragraph: '段落', 13 | quote: '引用', 14 | code: '原始碼', 15 | header1: '標題 1', 16 | header2: '標題 2', 17 | header3: '標題 3', 18 | header4: '標題 4', 19 | header5: '標題 5', 20 | bold: '將文字變成粗體', 21 | italic: '將文字變成斜體', 22 | fontcolor: '選擇文字顏色', 23 | backcolor: '選擇文字底色', 24 | unorderedlist: '項目列表', 25 | orderedlist: '編號列表', 26 | outdent: '減少縮排', 27 | indent: '增加縮排', 28 | cancel: '取消', 29 | insert: '插入', 30 | save: '儲存', 31 | _delete: '刪除', 32 | insert_table: '插入表格', 33 | insert_row_above: '加入上方橫列', 34 | insert_row_below: '加入下方橫列', 35 | insert_column_left: '加入左方直欄', 36 | insert_column_right: '加入右方直欄', 37 | delete_column: '刪除整欄', 38 | delete_row: '刪除整列', 39 | delete_table: '刪除表格', 40 | rows: '橫列', 41 | columns: '直欄', 42 | add_head: '加入表格標題', 43 | delete_head: '刪除表格標題', 44 | title: '標題', 45 | image_position: '位置', 46 | none: '無', 47 | left: '靠左', 48 | right: '靠右', 49 | image_web_link: '連結', 50 | text: '內文', 51 | mailto: 'Email', 52 | web: '網址', 53 | video_html_code: '嵌入影片的原始碼', 54 | file: '插入文件', 55 | upload: '上傳', 56 | download: '下載', 57 | choose: '選擇', 58 | or_choose: '或選擇', 59 | drop_file_here: '將文件拖曳至此', 60 | align_left: '將文字對齊至左側', 61 | align_center: '將文字置中', 62 | align_right: '將文字對齊至右側', 63 | align_justify: '對齊至兩側', 64 | horizontalrule: '插入水平線', 65 | fullscreen: '全銀幕', 66 | deleted: '刪除線', 67 | anchor: '錨點', 68 | link_new_tab: 'Open link in new tab', 69 | underline: 'Underline', 70 | alignment: 'Alignment', 71 | filename: 'Name (optional)', 72 | edit: 'Edit', 73 | center: 'Center' 74 | }; 75 | })( jQuery ); -------------------------------------------------------------------------------- /assets/redactor/plugins/filemanager/filemanager.js: -------------------------------------------------------------------------------- 1 | if (!RedactorPlugins) var RedactorPlugins = {}; 2 | 3 | RedactorPlugins.filemanager = function() 4 | { 5 | return { 6 | init: function() 7 | { 8 | if (!this.opts.fileManagerJson) return; 9 | 10 | this.modal.addCallback('file', this.filemanager.load); 11 | }, 12 | load: function() 13 | { 14 | var $modal = this.modal.getModal(); 15 | 16 | this.modal.createTabber($modal); 17 | this.modal.addTab(1, 'Upload', 'active'); 18 | this.modal.addTab(2, 'Choose'); 19 | 20 | $('#redactor-modal-file-upload-box').addClass('redactor-tab redactor-tab1'); 21 | 22 | var $box = $('
').hide(); 23 | $modal.append($box); 24 | 25 | 26 | $.ajax({ 27 | dataType: "json", 28 | cache: false, 29 | url: this.opts.fileManagerJson, 30 | success: $.proxy(function(data) 31 | { 32 | var ul = $('