+
$category_lang) {
@@ -51,9 +107,9 @@ $def_lang = array_keys($langs)[0];
= $form->field($category_langs[$index], "[$index]lang_id")->label(false)->hiddenInput(['value' => $index]) ?>
- = $form->field($category_langs[$index], "[$index]text")->textarea() ?>
+ = $form->field($category_langs[$index], "[$index]text")->widget(CKEditor::className(),['editorOptions' => [ 'preset' => 'full', 'inline' => false, ], ]); ?>
- = $form->field($category_langs[$index], "[$index]preview")->textarea() ?>
+ = $form->field($category_langs[$index], "[$index]preview")->widget(CKEditor::className(),['editorOptions' => [ 'preset' => 'full', 'inline' => false, ], ]); ?>
= $form->field($category_langs[$index], "[$index]seo_url")->textInput() ?>
@@ -61,7 +117,7 @@ $def_lang = array_keys($langs)[0];
= $form->field($category_langs[$index], "[$index]meta_title")->textInput() ?>
- = $form->field($category_langs[$index], "[$index]meta_descr")->textarea() ?>
+ = $form->field($category_langs[$index], "[$index]meta_descr")->textarea(); ?>
= $form->field($category_langs[$index], "[$index]meta_keywords")->textInput() ?>
@@ -84,42 +140,5 @@ $def_lang = array_keys($langs)[0];
\ No newline at end of file
diff --git a/common/modules/blog/views/category/create.php b/common/modules/blog/views/category/create.php
index 561b67e..265a30d 100644
--- a/common/modules/blog/views/category/create.php
+++ b/common/modules/blog/views/category/create.php
@@ -1,7 +1,7 @@
title = Yii::t('app', 'Create category');
+$this->title = Yii::t('app', 'Category create');
$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Categories'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
@@ -12,12 +12,8 @@ $this->params['breadcrumbs'][] = $this->title;
= $this->render('_form', [
'category_langs' => $category_langs,
'category' => $category,
- 'langs' => $langs
+ 'langs' => $langs,
+ 'images' => $images
]) ?>
-
diff --git a/common/modules/blog/views/category/index.php b/common/modules/blog/views/category/index.php
index 16908ba..134f5aa 100644
--- a/common/modules/blog/views/category/index.php
+++ b/common/modules/blog/views/category/index.php
@@ -1,7 +1,26 @@
$dataProvider,
+ 'columns' => [
+ 'id',
+ 'code',
+ 'created_at',
+ 'updated_at',
+ [
+ 'class' => Column::className(),
+ 'header' => Yii::t('app', 'Name'),
+ 'content' => function($model, $key, $index, $column) {
+ return $model->getArticleCategoryLangs()->where(['lang_id' => Language::getDefaultLang()->language_id])->one()->name;
+ }
+ ],
+ [
+ 'class' => ActionColumn::className(),
+ 'template' => '{update} {delete}'
+ ]
+ ]
]);
\ No newline at end of file
diff --git a/common/modules/blog/views/category/update.php b/common/modules/blog/views/category/update.php
new file mode 100644
index 0000000..353c73e
--- /dev/null
+++ b/common/modules/blog/views/category/update.php
@@ -0,0 +1,18 @@
+title = Yii::t('app', 'Update category');
+$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Categories'), 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+
= Html::encode($this->title) ?>
+ = $this->render('_form', [
+ 'category_langs' => $category_langs,
+ 'category' => $category,
+ 'langs' => $langs,
+ 'images' => $images
+ ]) ?>
+
+
diff --git a/common/modules/blog/views/media/index.php b/common/modules/blog/views/media/index.php
new file mode 100644
index 0000000..b931b6b
--- /dev/null
+++ b/common/modules/blog/views/media/index.php
@@ -0,0 +1,37 @@
+ ['enctype' => 'multipart/form-data']]);
+
+echo $form->field($model, 'imageFile')->fileInput(['multiple' => 'multiple']);
+
+?>
+

+
+ = Html::submitButton(Yii::t('app', 'Create'), ['class' => 'btn btn-success']) ?>
+
+
+
diff --git a/common/translation/ru/app.php b/common/translation/ru/app.php
index 83733ba..abb07fb 100644
--- a/common/translation/ru/app.php
+++ b/common/translation/ru/app.php
@@ -24,4 +24,38 @@ return [
'message' => 'Сообщение',
'Feedback' => 'Обратная связь',
'Pages' => 'Страницы',
+ 'Articles' => 'Статьи',
+ 'Article update' => 'Редактирование статьи',
+ 'Code' => 'Идентификатор',
+ 'Tags' => 'Тэги',
+ 'Sort' => 'Сортировка',
+ 'Parent ID' => 'Родительская запись',
+ 'Article Categories Array' => 'Родительские категории',
+ 'Active' => 'Активность',
+ 'full' => 'Детальное изображение',
+ 'preview' => 'Миниатюрное изображение',
+ 'additional' => 'Дополнительные изображения',
+ 'Image File' => 'Изображение',
+ 'Text' => 'Текст записи детально',
+ 'Preview' => 'Текст записи кратко',
+ 'Seo Url' => 'Seo Url',
+ 'Name' => 'Название',
+ 'Meta Title' => 'Meta Title',
+ 'Meta Descr' => 'Meta Description',
+ 'Meta Keywords' => 'Meta Keywords',
+ 'H1 Tag' => 'H1 тэг',
+ 'Create At' => 'Дата создания',
+ 'Update At' => 'Дата изменения',
+ 'Author' => 'Автор',
+ 'Created At' => 'Дата создания',
+ 'Updated At' => 'Дата изменения',
+ 'Add language' => 'Добавить язык',
+ 'Categories' => 'Категории',
+ 'Category create' => 'Создание категории',
+ 'Category update' => 'Редактирование категории',
+ 'Article create' => 'Создание статьи',
+ 'Update category' => 'Редактирование категории',
+ 'Select parent' => 'Выберать родителя',
+ 'Blog' => 'Блог',
+ 'Static pages' => 'Статические страницы',
];
\ No newline at end of file
diff --git a/composer.json b/composer.json
index a2cf6a9..d72bd01 100644
--- a/composer.json
+++ b/composer.json
@@ -21,6 +21,7 @@
"dmstr/yii2-adminlte-asset": "2.*",
"yiisoft/yii2-jui": "^2.0",
"kartik-v/yii2-widget-select2": "@dev",
+ "mihaildev/yii2-ckeditor": "*",
"developeruz/yii2-db-rbac": "*",
"nodge/yii2-eauth": "*"
},
diff --git a/composer.lock b/composer.lock
index 57da971..efa182e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "6b310fccece1d1eddc11db43624c06ab",
+ "hash": "0a46956b2ac16c603963c69e1b1f078c",
+ "content-hash": "1827ea8c78463126c172696034e7e2aa",
"packages": [
{
"name": "almasaeed2010/adminlte",
@@ -97,16 +98,16 @@
},
{
"name": "bower-asset/fontawesome",
- "version": "v4.4.0",
+ "version": "v4.5.0",
"source": {
"type": "git",
"url": "https://github.com/FortAwesome/Font-Awesome.git",
- "reference": "e554555d73a44e0a7d11b0361ad7a5325a5f551c"
+ "reference": "fddd2c240452e6c8990c4ef75e0265b455aa7968"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FortAwesome/Font-Awesome/zipball/e554555d73a44e0a7d11b0361ad7a5325a5f551c",
- "reference": "e554555d73a44e0a7d11b0361ad7a5325a5f551c",
+ "url": "https://api.github.com/repos/FortAwesome/Font-Awesome/zipball/fddd2c240452e6c8990c4ef75e0265b455aa7968",
+ "reference": "fddd2c240452e6c8990c4ef75e0265b455aa7968",
"shasum": ""
},
"type": "bower-asset-library",
@@ -713,6 +714,57 @@
"time": "2015-09-09 06:43:02"
},
{
+ "name": "mihaildev/yii2-ckeditor",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/MihailDev/yii2-ckeditor.git",
+ "reference": "d20aa7f6bcf610fee226d6eb15212a279875bf87"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/MihailDev/yii2-ckeditor/zipball/d20aa7f6bcf610fee226d6eb15212a279875bf87",
+ "reference": "d20aa7f6bcf610fee226d6eb15212a279875bf87",
+ "shasum": ""
+ },
+ "require": {
+ "yiisoft/yii2": "*"
+ },
+ "type": "yii2-extension",
+ "extra": {
+ "asset-installer-paths": {
+ "npm-asset-library": "vendor/npm",
+ "bower-asset-library": "vendor/bower"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "mihaildev\\ckeditor\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Mihail",
+ "email": "mihail.kucher@gmail.com",
+ "homepage": "https://github.com/MihailDev",
+ "role": "Developer"
+ }
+ ],
+ "description": "Yii2 CKEditor",
+ "homepage": "https://github.com/MihailDev/yii2-ckeditor",
+ "keywords": [
+ "CKEditor",
+ "editor",
+ "wysiwyg",
+ "yii"
+ ],
+ "time": "2014-11-19 22:04:08"
+ },
+ {
"name": "nodge/lightopenid",
"version": "1.1.2",
"source": {
@@ -813,20 +865,20 @@
},
{
"name": "rmrevin/yii2-fontawesome",
- "version": "2.12.2",
+ "version": "2.13.0",
"source": {
"type": "git",
"url": "https://github.com/rmrevin/yii2-fontawesome.git",
- "reference": "62308687477734c166753de0ad9e2333dc7dce32"
+ "reference": "2efbfacb22be59f373d11a7e3dfa9213e2ba18a9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/rmrevin/yii2-fontawesome/zipball/62308687477734c166753de0ad9e2333dc7dce32",
- "reference": "62308687477734c166753de0ad9e2333dc7dce32",
+ "url": "https://api.github.com/repos/rmrevin/yii2-fontawesome/zipball/2efbfacb22be59f373d11a7e3dfa9213e2ba18a9",
+ "reference": "2efbfacb22be59f373d11a7e3dfa9213e2ba18a9",
"shasum": ""
},
"require": {
- "bower-asset/fontawesome": "4.4.*",
+ "bower-asset/fontawesome": "4.5.*",
"php": ">=5.4.0",
"yiisoft/yii2": "2.0.*"
},
@@ -861,7 +913,7 @@
"font",
"yii"
],
- "time": "2015-11-20 09:17:45"
+ "time": "2015-11-26 15:24:53"
},
{
"name": "swiftmailer/swiftmailer",
diff --git a/frontend/assets/AppAsset.php b/frontend/assets/AppAsset.php
index 4d3475f..f6ac539 100644
--- a/frontend/assets/AppAsset.php
+++ b/frontend/assets/AppAsset.php
@@ -22,6 +22,7 @@ class AppAsset extends AssetBundle
'css/flags32.css'
];
public $js = [
+ 'js/option.js'
];
public $depends = [
'yii\web\YiiAsset',
diff --git a/frontend/config/main.php b/frontend/config/main.php
index 20034bb..82c7344 100644
--- a/frontend/config/main.php
+++ b/frontend/config/main.php
@@ -15,6 +15,11 @@ return [
//'bootstrap' => ['log', 'PageController'],
'bootstrap' => ['log'],
'controllerNamespace' => 'frontend\controllers',
+ 'modules' => [
+ 'blog' => [
+ 'class' => 'common\modules\blog\Module',
+ ],
+ ],
'components' => [
//'PageController'=>[
// 'class' => 'frontend\controllers\PageController'
diff --git a/frontend/web/js/option.js b/frontend/web/js/option.js
new file mode 100644
index 0000000..5a9b0ec
--- /dev/null
+++ b/frontend/web/js/option.js
@@ -0,0 +1,92 @@
+function readURL(input) {
+ $(input).parents('.tab-pane').find('.image_inputs_prev').remove();
+ var urls = [];
+ if (input.files) {
+ $.each(input.files, function(key, value) {
+ var reader = new FileReader();
+ reader.onload = function(e) {
+ $(input).parent().append('

');
+ }
+ reader.readAsDataURL(value);
+ });
+ }
+ return urls;
+}
+$(function() {
+ var counter = 0;
+ $(document).on('click', '.add_row', function() {
+ counter++;
+ var clone = $('#main_row').clone().html().replace(new RegExp("Option\\[0\\]", 'g'), "Option["+counter+"]");
+ console.log(form);
+ $(clone).appendTo('#'+form);
+ $('#'+form+' button[type=submit]').parent().appendTo('#'+form);
+ });
+ $(document).on('click', '.add_lang', function() {
+ var field_block = $(this).parent().parent();
+ if($(this).hasClass('active')) {
+ $(field_block).find('.main_input').attr('required', '').show();
+ $(field_block).find('.lang_inputs').hide();
+ $(this).removeClass('active');
+ } else {
+ $(field_block).find('.main_input').removeAttr('required').hide();
+ $(field_block).find('.lang_inputs').show();
+ $(this).addClass('active');
+ }
+ });
+ $(document).on('click', '.remove_lang', function() {
+ $(this).parents('.form-wrapper').remove();
+ });
+ if($('#lang-tabs li').length > 1) {
+ $('#lang-tabs li').append('
')
+ }
+ $(document).on('click', '#lang-dropdown li a[data-lang]', function() {
+ var lang = $(this).data('lang');
+ var flag = $(this).find('span').first().clone();
+ var el = $(this);
+ $.get('/blog/ajax/category-form', { lang_id: lang }, function(data) {
+ $('#lang-tabs li').removeClass('active');
+ $('#lang-tabs').append('
'+$('').append($(flag)).html()+'
');
+ $('.lang-tab-content .tab-pane.active').removeClass('active');
+ $('.lang-tab-content').append($(data).find('.ajax-loaded').first());
+ $('body').append($(data).filter('script'));
+ $(el).parent().remove();
+ if(!$('#lang-dropdown li').length) {
+ $('#dropdownLang').addClass('disabled');
+ }
+ if($('#lang-tabs li').length > 1) {
+ $('#lang-tabs li').append('
')
+ }
+ });
+ });
+ $(document).on('click', '.remove-lang', function() {
+ var lang = $(this).parent().data('lang');
+ var flag = $(this).parent().find('span.flag').first().clone();
+ $('#lang-'+lang).remove();
+ $('#lang-dropdown').append('
'+$('').append($(flag)).html()+'
');
+ $('#dropdownLang').removeClass('disabled');
+ $(this).parent().remove();
+ if($('#lang-tabs li').length <= 1) {
+ $('#lang-tabs li').find('.remove-lang').remove();
+ }
+ if(!$('#lang-tabs>li.active').length) {
+ $('#lang-tabs>li').first().find('a').tab('show');
+ }
+ });
+ $(document).on('change', '.image_inputs_field', function() {
+ readURL(this);
+ });
+ $('a.remove_image').on('click', function(e) {
+ var el = $(this);
+ e.preventDefault();
+ if(confirm(confirm_message)) {
+ $.ajax({
+ type: 'post',
+ url: $(this).attr('href'),
+ data: $(this).data('params')
+ }).done(function() {
+ $(el).parents('.additional_image_container').remove();
+ });
+ }
+ return false;
+ });
+});
\ No newline at end of file
--
libgit2 0.21.4