From 147ec2fb7c1be60fa8d2988e328112471b0e44bb Mon Sep 17 00:00:00 2001 From: dozer111 Date: Mon, 22 Oct 2018 17:25:53 +0300 Subject: [PATCH] add speakers part --- backend/controllers/SpeakerController.php | 8 ++++++++ common/models/speaker/Speaker.php | 9 ++++++--- common/models/speaker/SpeakerLang.php | 4 ++++ console/migrations/m181022_120253_speaker_lang_add_column_text1.php | 28 ++++++++++++++++++++++++++++ frontend/components/UrlManager.php | 16 +++++++++++++--- frontend/controllers/SiteController.php | 30 ++++++++++++++++++++++++++++-- frontend/views/site/index.php | 65 ++++++++++++++++++++++++----------------------------------------- frontend/views/site/speakers.php | 96 +++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------- frontend/web/js/sliders.js | 3 +++ frontend/widgets/LangLinks.php | 5 ++++- frontend/widgets/SpeakersWidget.php | 36 ++++++++++++++++++++++++++++++++++++ frontend/widgets/views/_speakers.php | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 12 files changed, 253 insertions(+), 101 deletions(-) create mode 100644 console/migrations/m181022_120253_speaker_lang_add_column_text1.php mode change 100644 => 100755 frontend/web/js/sliders.js create mode 100644 frontend/widgets/SpeakersWidget.php create mode 100644 frontend/widgets/views/_speakers.php diff --git a/backend/controllers/SpeakerController.php b/backend/controllers/SpeakerController.php index c4009ef..6dbcd1f 100755 --- a/backend/controllers/SpeakerController.php +++ b/backend/controllers/SpeakerController.php @@ -75,6 +75,10 @@ 'name' => 'body', 'type' => Form::WYSIWYG, ], + [ + 'name' => 'text1', + 'type' => Form::WYSIWYG, + ], ], 'fields' => [ [ @@ -136,6 +140,10 @@ 'name' => 'position', 'type' => Form::TEXTAREA, ], + [ + 'name' => 'text1', + 'type' => Form::WYSIWYG, + ], [ 'name' => 'organization', 'type' => Form::TEXTAREA, diff --git a/common/models/speaker/Speaker.php b/common/models/speaker/Speaker.php index cdab32e..6402e99 100755 --- a/common/models/speaker/Speaker.php +++ b/common/models/speaker/Speaker.php @@ -17,6 +17,7 @@ * @property integer $sort * @property boolean $status * @property Image $image + * @property string $text1 * @method ActiveQuery hasDefaultVariationRelation(); */ class Speaker extends ActiveRecord @@ -31,6 +32,7 @@ ], 'integer', ], + [ [ 'status', @@ -107,9 +109,10 @@ public function attributeLabels() { return [ - 'sort' => \Yii::t('core', 'Sort'), - 'status' => \Yii::t('core', 'Status'), - 'image_id' => \Yii::t('core', 'Image'), + 'sort' => \Yii::t('core', 'Sort'), + 'status' => \Yii::t('core', 'Status'), + 'image_id' => \Yii::t('core', 'Image'), + ]; } } \ No newline at end of file diff --git a/common/models/speaker/SpeakerLang.php b/common/models/speaker/SpeakerLang.php index 6a74de3..37b084c 100755 --- a/common/models/speaker/SpeakerLang.php +++ b/common/models/speaker/SpeakerLang.php @@ -32,6 +32,7 @@ 'name', 'organization', 'position', + 'text1' ], 'string', ], @@ -56,6 +57,9 @@ 'name' => \Yii::t('app', 'Speaker Name'), 'organization' => \Yii::t('app', 'Organization'), 'position' => \Yii::t('app', 'Position'), + 'text1' => \Yii::t('app','text1'), + + ]; } } \ No newline at end of file diff --git a/console/migrations/m181022_120253_speaker_lang_add_column_text1.php b/console/migrations/m181022_120253_speaker_lang_add_column_text1.php new file mode 100644 index 0000000..fe0d1fd --- /dev/null +++ b/console/migrations/m181022_120253_speaker_lang_add_column_text1.php @@ -0,0 +1,28 @@ +addColumn( + 'speaker_lang', + 'text1', + $this->text() + ); + + } + + public function down() + { + + $this->dropColumn('speaker_lang','text1'); + + + } + +} diff --git a/frontend/components/UrlManager.php b/frontend/components/UrlManager.php index 443f0a9..6c614e0 100755 --- a/frontend/components/UrlManager.php +++ b/frontend/components/UrlManager.php @@ -79,7 +79,9 @@ ] ) ->one(); + $links[ $this->languages->getCurrent()->id ] = $request->url; + if ($alias !== NULL) { $other = Alias::find() @@ -97,10 +99,12 @@ /** * @var Alias $item */ + if ($item->language->default) { if ($this->hideDefaultLanguagePrefix) { $links[ $item->language->id ] = '/' . $item->value; } else { + $links[ $item->language->id ] = '/' . $item->language->url . '/' . $item->value; } } @@ -126,15 +130,21 @@ $params, ]; } + $langs = ['/ru/','/ua/','/fr/','/en/']; foreach ($this->languages->getActive() as $key => $lang) { - if ($this->hideDefaultLanguagePrefix and $lang->default) { - $links[ $lang->id ] = '/' . $request->pathInfo; + $url12 = str_replace($langs,'',$request->url); + if ($this->hideDefaultLanguagePrefix and $lang->default) { + + $links[ $lang->id ] = '/' . $url12; } else { - $links[ $lang->id ] = '/' . $key . '/' . $request->pathInfo; + $links[ $lang->id ] = '/' . $key . '/' . $url12; } } $langLink = \Yii::$app->get('langLinks'); + $links = array_map(function ($links){ + return str_replace('//','/',$links); + },$links); $langLink->setLinks($links); return parent::parseRequest($request); } diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php index 9dc465b..4af531d 100755 --- a/frontend/controllers/SiteController.php +++ b/frontend/controllers/SiteController.php @@ -12,6 +12,7 @@ use yii\swiftmailer\Mailer; use yii\web\BadRequestHttpException; use yii\web\Controller; + use yii\web\NotFoundHttpException; use yii\web\Response; use yii\web\UploadedFile; @@ -101,8 +102,33 @@ - public function actionSpeakers(){ - return $this->render('speakers'); + public function actionSpeakers($id){ + + + $currentSpeaker = Speaker::findOne($id); + if($currentSpeaker == null){ + throw new NotFoundHttpException(); + } + $speakers = Speaker::find() + ->with( + [ + 'language', + 'image', + ] + ) + ->where([ 'status' => true ]) + ->orderBy('sort') + ->all(); + $partners = Logo::find() + ->all(); + return $this->render( + 'speakers', + [ + 'speakers' => $speakers, + 'partners' => $partners, + 'currentSpeaker' => $currentSpeaker, + ] + ); } diff --git a/frontend/views/site/index.php b/frontend/views/site/index.php index c1104e9..f612ebe 100755 --- a/frontend/views/site/index.php +++ b/frontend/views/site/index.php @@ -7,6 +7,23 @@ use artbox\core\helpers\ImageHelper; use artbox\core\helpers\Url; use frontend\assets\SliderAsset; + use frontend\widgets\SpeakersWidget; + + + + + + + + + + + + + + + + $currentLang=\artbox\core\models\Language::getCurrent()->url; SliderAsset::register($this); ?> @@ -53,45 +70,11 @@ - -
-
-
-
-
-
- -
-
- -
-
-
-
- + $speakers, + ]); +} ?> @@ -185,13 +168,13 @@ -
+
diff --git a/frontend/views/site/speakers.php b/frontend/views/site/speakers.php index 13c2c86..bc07479 100644 --- a/frontend/views/site/speakers.php +++ b/frontend/views/site/speakers.php @@ -1,34 +1,58 @@ -
+params[ 'breadcrumbs' ][] = \Yii::t('app','Speakers'); +$this->params[ 'breadcrumbs' ][] = $currentSpeaker->language->name; + + + + +?> + + + +
- +
-
Наталія Бойко
-
Заступник міністра енергетики і вугільної промисловості
-
Україна
+
language->name?>
+
language->position?>
+
language->organization?>
-

Кабінет Міністрів України утворив Організаційний комітет з підготовки та проведення в Україні восени 2018 року 9-го Міжнародного форуму з енергетики для сталого розвитку. Його очолив Віце-прем’єр-міністр України Володимир Кістіон. Відповідне рішення прийнято 13 грудня на засіданні Уряду.

-

Форум проходитиме під егідою Європейської Економічної Комісії Організації Об’єднаних Націй.

-

Міжнародні форуми з енергетики в інтересах сталого розвитку є щорічними заходами, що організовуються п’ятьма Регіональними комісіями ООН з 2010 року. Такі заходи є важливим елементом для поліпшення розуміння сталої енергетики та дієвою платформою для широкого політичного діалогу з метою досягнення Цілей сталого розвитку ООН у майбутньому.

-

Кабінет Міністрів України утворив Організаційний комітет з підготовки та проведення в Україні восени 2018 року 9-го Міжнародного форуму з енергетики для сталого розвитку. Його очолив Віце-прем’єр-міністр України Володимир Кістіон. Відповідне рішення прийнято 13 грудня на засіданні Уряду.

-

Форум проходитиме під егідою Європейської Економічної Комісії Організації Об’єднаних Націй.

-

Міжнародні форуми з енергетики в інтересах сталого розвитку є щорічними заходами, що організовуються п’ятьма Регіональними комісіями ООН з 2010 року. Такі заходи є важливим елементом для поліпшення розуміння сталої енергетики та дієвою платформою для широкого політичного діалогу з метою досягнення Цілей сталого розвитку ООН у майбутньому.

+ language->text1?>
@@ -36,45 +60,15 @@
- -
-
-
-
-
-
-
-
- -
-
-
-
- + $speakers + ]); +} ?> + + +
diff --git a/frontend/web/js/sliders.js b/frontend/web/js/sliders.js old mode 100644 new mode 100755 index ab0b024..daea3d0 --- a/frontend/web/js/sliders.js +++ b/frontend/web/js/sliders.js @@ -34,10 +34,13 @@ $(document).ready(function () { items: 4, slideBy: 1, + } }, + dotsEach:1, smartSpeed:250, nav:true, + autoplay:true, navText:[], loop:true, diff --git a/frontend/widgets/LangLinks.php b/frontend/widgets/LangLinks.php index b12aac2..15bfb85 100755 --- a/frontend/widgets/LangLinks.php +++ b/frontend/widgets/LangLinks.php @@ -31,15 +31,18 @@ { $items = []; $langs = Language::getActive(); - + foreach ($langs as $key => $item) { + if ($item->id == Language::getCurrent()->id) { $items[ $key ] = Html::tag('li', Html::a(($this->mobile ? $item->short : $item->name), '', ['class' => 'active'])); } else { + $items[ $key ] = Html::tag('li', Html::a(($this->mobile ? $item->short : $item->name), $this->links[ $key ])); } } + if ($this->mobile){ return $this->render('links_mobile', [ 'links' => $items ]); } diff --git a/frontend/widgets/SpeakersWidget.php b/frontend/widgets/SpeakersWidget.php new file mode 100644 index 0000000..06116da --- /dev/null +++ b/frontend/widgets/SpeakersWidget.php @@ -0,0 +1,36 @@ +render('_speakers',[ + 'speakerList' =>$this->speakers + ]); + } + + +} + + + diff --git a/frontend/widgets/views/_speakers.php b/frontend/widgets/views/_speakers.php new file mode 100644 index 0000000..2428e51 --- /dev/null +++ b/frontend/widgets/views/_speakers.php @@ -0,0 +1,54 @@ + + + +
+
+
+
+
+
+ +
+
+ +
+
+
+
\ No newline at end of file -- libgit2 0.21.4