Вопрос к знатокам компонент costa-rico/yii2-images

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Kven
Сообщения: 112
Зарегистрирован: 2016.10.20, 23:03

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Kven »

alexnew2000 писал(а): 2017.01.06, 16:05 Вот урок в ссылке. Там и модель и view и показ рисунков и ajax удаление.
http://ftask.ru/2017/01/06/costa-ricoyii2-images/
Всем здравствуйте. Обращаюсь с аналогичным вопросом по удалению картинки, не могу ни как разобраться как переписать урл, чтобы удалять файлы, в блоке где вывод всех картинок с последующим удалением через ajax есть строка:

Код: Выделить всё

$url_delete=Url::toRoute(['reshenie/deleteimg', 'id_reshenie' => $model->id, 'id_img' => $img_g->id]); //настройка роутера на нужный урл
Картинки у меня хранятся по такому адресу:

Код: Выделить всё

domen.loc\web\upload\store\Materials\Material10\2fe304.jpg
Matvik
Сообщения: 194
Зарегистрирован: 2013.06.21, 02:32

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Matvik »

А кстати, насколько сильнее будет грузится сервер при выводе миниатюры картинки (например, если их много в каталоге товаров) таким методом, как в этом расширении (ресайз динамически через GD или Imagic), чем при сохранении миниатюры на сервере?
bstrd
Сообщения: 4
Зарегистрирован: 2017.03.04, 11:47

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение bstrd »

Matvik писал(а): 2017.02.26, 04:20 А кстати, насколько сильнее будет грузится сервер при выводе миниатюры картинки (например, если их много в каталоге товаров) таким методом, как в этом расширении (ресайз динамически через GD или Imagic), чем при сохранении миниатюры на сервере?
В этом расширении ресайз происходит один раз при первом обращении, после этого полученная миниатюра хранится на сервере.
bstrd
Сообщения: 4
Зарегистрирован: 2017.03.04, 11:47

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение bstrd »

Я делал так:

вью

Код: Выделить всё

<?php Pjax::begin(); ?>

<?php $images = $model->getImages(); ?>

<div class="row">

    <?php foreach ( $images as $image ): ?>
        <div class="col-md-4">
            <?= Html::img( $image->getUrl('x300') , [ 'class' => 'img-responsive' ] ) ?>
            <p class="text-center">
                <?php 
                    if ( $image->isMain ) {
                        echo Html::tag( 'span' , Yii::t( 'backend' , 'Main' ) , [ 'class' => "label label-success" ] );
                    } else {
                        echo Html::a( '<i class="glyphicon glyphicon-pushpin"></i> ' . Yii::t( 'backend' , 'Set Main' ),
                            [ 'set-main-image' , 'id' => $model->id , 'image_id' => $image->id ],
                            [ 'class' => 'btn btn-xs btn-default' ]
                        );
                    }
                ?>
                <?= Html::a( '<i class="glyphicon glyphicon-remove"></i> ' . Yii::t( 'backend' , 'Remove' ),
                    [ 'delete-image' , 'id' => $model->id , 'image_id' => $image->id ],
                    [ 'class' => 'btn btn-xs btn-danger' ]
                ) ?>
            </p>
        </div>
    <?php endforeach; ?>

</div>

<?php Pjax::end(); ?>
Контроллер, в render вместо update написать нужную вью.

Код: Выделить всё

use rico\yii2images\models\Image;

    /**
     * Deletes an existing Image model.
     * @param integer $id
     * @param integer $image_id
     * @return mixed
     */
    public function actionDeleteImage($id, $image_id = null)
    {
        $model = $this->findModel($id);

        if ( $image_id !== null && ($image = Image::findOne($image_id)) !== null) {
            $model->removeImage( $image );
        }

        return $this->render('update', [
            'model' => $model,
        ]);
    }

    /**
     * Sets main model image.
     * @param integer $id
     * @param integer $image_id
     * @return mixed
     */
    public function actionSetMainImage($id, $image_id = null)
    {
        $model = $this->findModel($id);

        if ( $image_id !== null && ($image = Image::findOne($image_id)) !== null) {
            $model->setMainImage( $image );
        }

        return $this->render('update', [
            'model' => $model,
        ]);
    }
Andre_perm
Сообщения: 1
Зарегистрирован: 2017.05.03, 13:15

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Andre_perm »

Всем здравствуйте. Кто-нибудь знает почему в кеше сохраняются картинки размером гораздо больше оригинального?? Как их сжимать..??
bstrd
Сообщения: 4
Зарегистрирован: 2017.03.04, 11:47

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение bstrd »

Andre_perm писал(а): 2017.05.03, 13:24 Всем здравствуйте. Кто-нибудь знает почему в кеше сохраняются картинки размером гораздо больше оригинального?? Как их сжимать..??
Потому что раньше для сохраняемых изображений жестко устанавливалось значение imageCompressionQuality=100, теперь значение по умолчанию 85 и можно изменять его в конфиге модуля.
Idaho
Сообщения: 58
Зарегистрирован: 2017.04.24, 08:06

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Idaho »

Привет
есть вопрос. прикручиваю yii2-images как процесс идет нормально до момента когда нужно привязать картинку, при добавлении параметра

Код: Выделить всё

$this->attachImage($path);
получаю ошибку : Getting unknown property: app\models\Pedigrees::id
при этом файл загружается в папку. но нет записи в таблице image
миграция, модуль, поведение в моделе, рули указаны.
контроллер

Код: Выделить всё

/**
     * Updates an existing Pedigrees model.
     * If update is successful, the browser will be redirected to the 'view' page.
     * @param string $id
     * @return mixed
     */
    public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->save()) {

            $model->image = UploadedFile::getInstance($model,'image');           
                          
            if($model->image){                
                $model->upload();        
            }            

            return $this->redirect(['view', 'id' => $model->pedigrees_id]);
        } else {
            return $this->render('update', [
                'model' => $model,
            ]);
        }
    }
модель:

Код: Выделить всё

public function upload(){
        if($this->validate()){
            $path = 'upload/images/store/' . $this->image->baseName . '.' . $this->image->extension;
            $this->image->saveAs($path);
            $this->attachImage($path);
            @unlink($path);
            return true;
        }else{
            return false;
        }
    }
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Nex-Otaku »

В приведённом коде вы используете "$model->pedigrees_id", видимо где-то ещё написано "$model->id", скорее всего в findModel(), вот и вышла путаница.
Idaho
Сообщения: 58
Зарегистрирован: 2017.04.24, 08:06

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Idaho »

Nex-Otaku писал(а): 2017.07.04, 09:08 В приведённом коде вы используете "$model->pedigrees_id", видимо где-то ещё написано "$model->id", скорее всего в findModel(), вот и вышла путаница.
Спасибо! сам бы не додумал.
поменял название поля на ID и переписал все файлы, все загружается и падает куда нужно.
Idaho
Сообщения: 58
Зарегистрирован: 2017.04.24, 08:06

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Idaho »

nekit44 писал(а): 2016.03.25, 11:03 Извините за мою глупость, можете более подробно описать как сделать
Спасибо
UPD:
Решил сам:

Код: Выделить всё

'image' => 'yii2images/images/image-by-item-and-alias', 
эта беда началась после того как прикрутил RBAC
добавил

Код: Выделить всё

'as access' => [
...
'yii2images/*',
],
роут только меняет буквы. а как бы это теперь по человечески поправить? )
Idaho
Сообщения: 58
Зарегистрирован: 2017.04.24, 08:06

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Idaho »

Можно ли как то ограничить количество загружаемых картинок?
т.е. загрузил пользователь 5 фоток, и пока не удалит какую-то из 5 новую не загрузит.
в стоке может загрузить 5 и перейдя еще раз на страницу update загрузить еще.
Ostry
Сообщения: 16
Зарегистрирован: 2018.03.04, 21:48

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Ostry »

Всем привет, а как сделать так , чтобы картинка сохранялась с нужным нам именем?
Barkov
Сообщения: 96
Зарегистрирован: 2011.10.08, 13:23
Откуда: Симферополь

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение Barkov »

Использую yii2 2.0.15.1
Подключаю как указанно, добавляю по вьюху field($model, 'image')->fileInput()
После сохранения статьи в папках и в базе пусто... Куда копать?
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение futbolim »

Ostry писал(а): 2018.05.22, 15:48 Всем привет, а как сделать так , чтобы картинка сохранялась с нужным нам именем?
http://php.net/manual/ru/function.rename.php
У них нет встроенного функционала
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение futbolim »

Idaho писал(а): 2017.07.10, 10:14 Можно ли как то ограничить количество загружаемых картинок?
т.е. загрузил пользователь 5 фоток, и пока не удалит какую-то из 5 новую не загрузит.
в стоке может загрузить 5 и перейдя еще раз на страницу update загрузить еще.
Можно, с пом. js и правил валидации
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Вопрос к знатокам компонент costa-rico/yii2-images

Сообщение futbolim »

Barkov писал(а): 2018.07.19, 22:21 Использую yii2 2.0.15.1
Подключаю как указанно, добавляю по вьюху field($model, 'image')->fileInput()
После сохранения статьи в папках и в базе пусто... Куда копать?
Логи
Ответить