• Почему при удалении одного файла в kartik-v-fileinput удаляются все остальные файлы?

    @bashcod
    https://plugins.krajee.com/file-input#usage-modes

    In this mode, you do not set the uploadUrl property. The plugin will use the native file input to store files and it can be read after a normal FORM submission (you must envelop the input within a FORM). This is useful for single file uploads OR simpler scenarios of multiple file uploads. Configuration is straightforward as you can read all data POSTED from a native form submission. However, note that the native file input is read only and cannot be modified or updated by external code. Especially for multiple file input selections, ONE cannot append files to an already selected file list. If one tries to select files on an already selected file input, it will overwrite and clear the previous selection. Similarly, one cannot selectively remove/delete files that have been added before upload in this mode.

    Т.е. все правильно.
    Если грузите в основной форме, кнопки удалить быть не должно, т.к. нельзя выборочно удалять, сортировать и добавлять новые файлы к уже выбранным. Вы добавляете uploadUrl и делаете поле для ajax загрузки и получается недокументированный вариант работы плагина.

    Если хотите продвинутую загрузку нужно использовать ajax загрузку вне основной формы. В этом случае нужно сделать отдельный экшн для загрузки картинок, передавать туда файл, csrf-токен, айдишник основной модели и обратно присылать ответом в json с результатом (структура ответа есть в доках). Чтобы передавать айдишник основной модели, нужно чтобы она была создана заранее и сохранена в бд. Получается такая связка js и php кода.
    Если все это трудно реализовать или нет времени, советую посмотреть в сторону готовых решений. Они есть. Например, https://github.com/zxbodya/yii2-gallery-manager
    Он рабочий, но со своими недостатками.
    Написано
  • Как динамически создавать sitemap в yii2?

    @bashcod
    Вы спрашиваете сначала про sitemap, а заканчиваете главной страницей и пангинацией)))
    Жадную и отложенную загрузку все таки рекомендую освоить.
    Извините за назойливость)))
    Написано
  • Как динамически создавать sitemap в yii2?

    @bashcod
    Для карты сайта не нужно вытаскивать статью отдельно. Нужно вытащить название и ссылку (ну м.б. еще анонс). Точнее массив из названий и ссылок. И этот массив можно закешировать. И лучше результат выборки нужных статей, если не знаете как работать с кэшем.
    Написано
  • Как динамически создавать sitemap в yii2?

    @bashcod
    Если умеете пользоваться дебаггером - значит можете посмотреть, какой запрос сколько по времени выполняется. Самые толстые запросы загоняем в профилировщик запросов и смотрим, почему так долго.
    Если запросов больше 10ти, допустим, или они все почти одинаковые, нужно менять логику вытягивания данных (жадная и отложенная загрузка).

    Проще всего включить кэш для результатов выполнения запросов.
    Включается так, примерно:
    Article::find()
    ->where(['active' => 1])
    ->cache(3600 * 24) //кэш в секундах. По прошествии этого времени он сбрасывается.
    ->all();

    Кэш по умолчанию файловый и особой настройки не требует. Должен работать из коробки.

    Насчет кэша статьи не совсем понятно, что Вы имеете ввиду. По идее всю статью для карты сайта бессмысленно складывать в кэш. Скорее список наименований и ссылок на них.
    Написано
  • Как объединить элементы массива?

    @bashcod
    Нужно увидеть структуру массива
    Написано