public function actionCreatePhotobook()
 {
     \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
     if (Yii::$app->user->isGuest) {
         return ['error' => ['msg' => Yii::t('app', 'Ошибка доступа')]];
     }
     $model = new PhotobookForm();
     $title_line_1 = Yii::$app->request->post('title_line_1', '');
     $title_line_2 = Yii::$app->request->post('title_line_2', '');
     $title_line_3 = Yii::$app->request->post('title_line_3', '');
     $title_line_4 = Yii::$app->request->post('title_line_4', '');
     $user_id = Yii::$app->user->identity->getId();
     $model->user_id = $user_id;
     $model->title_line_1 = $title_line_1;
     $model->title_line_2 = $title_line_2;
     $model->title_line_3 = $title_line_3;
     $model->title_line_4 = $title_line_4;
     $line_1 = !empty($model->title_line_1) ? $model->title_line_1 : ' ';
     $line_2 = !empty($model->title_line_2) ? $model->title_line_2 : ' ';
     $line_3 = !empty($model->title_line_3) ? $model->title_line_3 : ' ';
     $line_4 = !empty($model->title_line_3) ? $model->title_line_4 : ' ';
     $model->name = $line_1 . " " . $line_2 . " " . $line_3;
     $model->status = Photobook::STATUS_NEW;
     $model->data = '';
     $model->template = '';
     if (empty($model->photos)) {
         //Забиваем группа по умолчанию
         $model->photos = ['Утро невесты' => ['photos' => [], 'reversals' => 3], 'Прогулка' => ['photos' => [], 'reversals' => 3], 'Текст' => ['type' => 'text', 'photos' => [], 'texts' => [], 'reversals' => 3]];
     }
     $styles = Style::find()->where(['delete' => 0, 'status' => 1])->all();
     if (empty($styles)) {
         return ['error' => ['msg' => Yii::t('app', 'Не удалось создать новую фотокнигу. Так как нет ни одного опубликованого стиля.')]];
     }
     $model->style_id = $styles[0]->id;
     $covers = Cover::find()->where(['status' => 1])->all();
     if (empty($covers)) {
         return ['error' => ['msg' => Yii::t('app', 'Не удалось создать новую фотокнигу. Так как нет ни одной опубликованой обложки.')]];
     }
     $cover_index = 0;
     foreach ($covers as $key => $cover) {
         if ($cover->default == 1) {
             $cover_index = $key;
             break;
         }
     }
     $model->cover_id = $covers[$cover_index]->id;
     $photobook = $model->save();
     if ($photobook) {
         $result = $model->updateCoverWindowImageText('title_line_1', $title_line_1);
         Yii::getLogger()->log('updateCoverWindowImageText:' . print_r($result, true), YII_DEBUG);
         return ['response' => ['status' => true, 'redirect' => Url::toRoute(['photobooks/upload-photos', 'ref' => AlphaId::id($photobook->user_id), 'id' => AlphaId::id($photobook->id)])]];
     } else {
         return ['error' => ['msg' => Yii::t('app', 'Не удалось сохранить фотокнигу.')]];
     }
 }
Example #2
0
 public function save()
 {
     //Yii::getLogger()->log('start save photobook:'.$this->id, YII_DEBUG);
     $style = Style::findOne(['id' => $this->id]);
     if (empty($style)) {
         $style = new Style();
         $style->name = $this->name;
         $style->status = $this->status;
         $style->data = $this->photosEncode($this->data);
         $style->weight = $this->weight;
         $style->thumb_key = $this->thumb_key;
         $style->delete = $this->delete;
         /*
                      *
                      *  public $text_for_icon='';
         
             public $placeholder_border_color_top_left='#000000';
         
             public $placeholder_border_color_bottom_right='#FFFFFF';
         
             public $padded_passepartout_key='style_default';
         
             public $padded_cover_key='style_default';
         */
         $style->text_for_icon = $this->text_for_icon;
         $style->placeholder_border_color_top_left = $this->placeholder_border_color_top_left;
         $style->placeholder_border_color_bottom_right = $this->placeholder_border_color_bottom_right;
         $style->padded_passepartout_key = $this->padded_passepartout_key;
         $style->padded_cover_key = $this->padded_cover_key;
         $style->max_spread = $this->max_spread;
         $style->font_id = $this->font_id;
         $style->cover_back_key = $this->cover_back_key;
         $style->cover_front_key = $this->cover_front_key;
         $style->price_spread = $this->price_spread;
         Yii::getLogger()->log('save:', YII_DEBUG);
         if ($style->save()) {
             $this->id = $style->id;
             return $style;
         } else {
             Yii::getLogger()->log('save error', YII_DEBUG);
         }
     } else {
         $style->name = $this->name;
         $style->status = $this->status;
         $style->data = $this->photosEncode($this->data);
         $style->weight = $this->weight;
         $style->thumb_key = $this->thumb_key;
         $style->delete = $this->delete;
         $style->text_for_icon = $this->text_for_icon;
         $style->placeholder_border_color_top_left = $this->placeholder_border_color_top_left;
         $style->placeholder_border_color_bottom_right = $this->placeholder_border_color_bottom_right;
         $style->padded_passepartout_key = $this->padded_passepartout_key;
         $style->padded_cover_key = $this->padded_cover_key;
         $style->max_spread = $this->max_spread;
         $style->font_id = $this->font_id;
         $style->cover_back_key = $this->cover_back_key;
         $style->cover_front_key = $this->cover_front_key;
         $style->price_spread = $this->price_spread;
         Yii::getLogger()->log('update:', YII_DEBUG);
         if ($style->update()) {
             return $style;
         } else {
             Yii::getLogger()->log('update error:' . print_r($style, true), YII_DEBUG);
         }
     }
     return null;
 }
 public function actionUploadPhotos()
 {
     // [ 'Группа 1'=>['photo1', 'photo2', 'photo3'], 'Группа 2'=>['photo1', 'photo2', 'photo3'], 'Группа 3'=>['photo1', 'photo2', 'photo3'] ]
     $this->layout = 'uploads';
     $ref = Yii::$app->request->get('ref');
     $id = Yii::$app->request->get('id');
     $selected_style_id = Yii::$app->request->get('style_id', 0);
     if (!empty($ref) && !empty($id)) {
         $user_id = AlphaId::id($ref, true);
         $pb_id = AlphaId::id($id, true);
         $model = new PhotobookForm();
         if (!$model->loadById($pb_id)) {
             Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Фотокнига не найдена'));
             $this->redirect(Url::toRoute(['photobooks/index']));
             return;
         }
         $styles = Style::find()->where(['delete' => 0, 'status' => 1])->all();
         if ($selected_style_id == 0) {
             $selected_style_id = $styles[0]->id;
         }
         $settings = new SettingForm();
         $note_upload_page = $settings->getValue('note_upload_page', '');
         return $this->render('uploadPhotos', ['model' => $model, 'ref' => $ref, 'id' => $id, 'pb_id' => $pb_id, 'user_id' => $user_id, 'styles' => $styles, 'selected_style_id' => $selected_style_id, 'note_upload_page' => $note_upload_page]);
     } else {
         Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Страница не найдена'));
         $this->redirect(Url::toRoute(['photobooks/index']));
     }
 }
Example #4
0
 public function deletePlaceholder($page, $place_num, $photo_id)
 {
     $style = Style::findOne(['id' => $this->style_id, 'delete' => 0]);
     $mapTemplates = $this->getMapTemplates();
     $new_photos = array();
     $photos = $this->data['pages'][$page]['photos'];
     if (count($photos) == 1) {
         return ['response' => ['status' => true, 'page' => $this->data['pages'][$page]]];
     }
     $place_index = intval($place_num) - 1;
     $i = 0;
     foreach ($photos as $index => $photo) {
         if ($index != $place_index) {
             $new_photos[$i] = $photo;
             $i++;
         }
     }
     $this->data['pages'][$page]['photos'] = $new_photos;
     $this->data['pages'][$page]['json'] = $this->renderJsonPage($this->data['pages'][$page], $mapTemplates, $style);
     $this->data['pages'][$page]['svg'] = $this->renderSvgPage($this->data['pages'][$page], $mapTemplates, $style);
     $this->data['pages'][$page]['svg_thumb'] = $this->renderSvgPage($this->data['pages'][$page], $mapTemplates, $style, UserUrl::IMAGE_SMALL);
     if ($this->save()) {
         return ['response' => ['status' => true, 'page' => $this->data['pages'][$page]]];
     } else {
         return ['error' => ['msg' => Yii::t('app', 'Не удалось записать в базу-данных')]];
     }
 }
Example #5
0
 public function actionEdit()
 {
     $this->layout = 'default';
     $id = Yii::$app->request->get('id', -1);
     $style = Style::findOne(['id' => $id]);
     if (!$style) {
         Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Стиль не найден'));
         $this->redirect(Url::toRoute(['styles/index']));
     }
     $fonts = Font::find()->all();
     $fonts = ArrayHelper::map($fonts, 'id', 'name');
     $style->data = json_decode($style->data, true);
     return $this->render('edit', ['style' => $style, 'fonts' => $fonts]);
 }