FAQ

Разные вопросы

Тут временно публикуются различные полезные примеры, которые можно использовать на своих сайтах. Куча разных несвязных примеров, которые могут быть полезны. Позже это будет структурированно и разнесено

Как правильно сделать resize изображений?

Вот так можно получить ссылку на resize изображения.

echo \Yii::$app->imaging->thumbnailUrlOnRequest($model->image ? $model->image->src : null,
     new \skeeks\cms\components\imaging\filters\Thumbnail([
         'w' => 0,
         'h' => 200,
     ]), $model->code
);

Как можно загрузить файл в хранилище?

Скачать с удаленного сервер и загрузить в хранилище

$imageUrl = 'http://test.ru/test.jpg';
$element = \skeeks\cms\models\CmsContentElement::find(10);

$file = \Yii::$app->storage->upload($imageUrl, [
    'name' => $element->name
]);

$element->link('image', $file);

Как правильно поймать событие отправки формы в конструкторе

Чаще всего, возниает необходимость отлавливать события успешной отправки формы, и сообщать о них в yandex или google метрику. Для этого предлагается использовать следующий код:

<?
\yii\bootstrap\Modal::begin([
      'header' => 'Обратная связь',
      'id' => 'sx-feedback',
      'toggleButton' => false,
      'size' => \yii\bootstrap\Modal::SIZE_DEFAULT
  ]);
?>
    <?= \skeeks\modules\cms\form2\cmsWidgets\form2\FormWidget::widget([
        'form_code' => 'feedback',
        'namespace' => 'FormWidget-feedback',
        'viewFile' => 'with-messages',
        'successJs' => new \yii\web\JsExpression(<<<JS
        console.log('successJs');
        //yaCounter17836507.reachGoal('btn-send');
JS
    ),
    'errorJs' => new \yii\web\JsExpression(<<<JS
        console.log('errorJs');
JS
    ),
        //'viewFile' => '@app/views/widgets/FormWidget/fiz-connect'
    ]); ?>
<?
    \yii\bootstrap\Modal::end();
?>

Как отметить обязательные поля в формах *

Для того чтобы добавить во все формы генерируемые стандартными средствами yii2, звездочки * обязтельных полей. Глобально на стринце можно подключить js и css.

$(function()
{
    $('.form-group.required label').each(function()
    {
        $(this).append($('<span class="sx-from-required">').text(' *'));
    });
});
.sx-from-required
{
    color: red;
    font-weight: bold;
}

Как изменить timeout pjax?

Для того, чтобы изменить timeout pjax, глобально во всех виджетах pjax проекта, можно добавить код javascript:

$(function()
{
    $.pjax.defaults.timeout = 30000;
});

Как вызвать событие в момент окончания работы pjax-скрипта с определенным id?

Для того, чтобы изменить вызвать событие в момент окончания работы pjax-скрипта, можно добавить код javascript:

$(document).on('pjax:complete', function (e) {
//любой pjax на странице закончился
   if (e.target.id == self.get('id')) {
   //pjax с конкретным id закончился $(e.target)
   }
});

Оптимальный robots.txt

User-agent: *
Disallow: /~*
Disallow: /search*
Disallow: *&SearchProductsModel*
Disallow: *?SearchProductsModel*
Disallow: *&SearchRelatedPropertiesModel*
Disallow: *?SearchRelatedPropertiesModel*
Disallow: *&ProductFilters*
Disallow: *?ProductFilters*
Clean-Param: from&_openstat&utm_source&utm_medium&utm_campaign&utm_content&utm_term&pm_source&pm_block&pm_position&clid&yclid&ymclid&frommarket&text
Host: https://your-site.com
Sitemap: https://your-site.com/sitemap.xml

Как включить js, css и html оптимизацию?

Для этих целей существуют дополнительное расширение, которое обычно уже стоит в базовых проектах.

https://github.com/skeeks-cms/cms-assets-auto-compress

Включение и настройка оптимизаций, проивзодится через систему управления сайтом:

SkeekS CMS

Перенос проекта на другой хостинг

Архивация

Создать актуальный архив базы данных

php yii dbDumper/mysql/dump

Создать архив вашего проекта

Восстановление

1. Скачать файлы проекта

Развернуть архив, или склонировать проект из git репозитория

2. Установка composer и зависимостей

# Download latest version of composer in project
curl -sS https://getcomposer.org/installer | COMPOSER_HOME=.composer php
# Download dependency
COMPOSER_HOME=.composer php composer.phar install -o

3. Configuring the database

Прописать коннект к базе данных common/config/db.php

4. Installation of migrations

#Installation of ready-dump
php yii dbDumper/mysql/restore