Вот список основных изменений:
Исправлены ошибки:
- несовместимость с php 5.3
- установка в конфиге экшена/ивента по умолчанию
- иногда нарушался порядок подключения js-файлов
- не работал ресайз в методе getPhotosetMainPhotoUrl() топика
- в некоторых случаях ломалась цветопередача для загружаемых jpeg-файлов с CMYK-профилем (очень старая ошибка, но никак не могли ее выловить)
- исправлен еще ряд мелких, но неприятных ошибок в коде и шаблонах
Обновлены сторонние библиотеки:
- CSSTidy до 1.5.5
- JShrink до 1.1.0
- jQuery до 1.12.4
Добавлено:
- местоположение директории для для загрузки и хранения изображений
- для js-файлов можно указывать атрибуты defer и async
- выбор изображений топика по параметрам
- методы AppendAsset() и PrependAsset() модуля Viewer
- вызов E::Module('Name') теперь кеширует экземпляр модуля, что увеличивает быстродействие
- ну и кое-что еще по мелочи
Кому интересны подробности про добавленные «плюшки», то добро пожаловать под кат
Местоположение директории для загрузки и хранения изображений
По умолчанию изображения загружаются в директорию /uploads, находящуюся в корневой директории сайта. Но иногда возникает желание загружать и хранить изображения в куда-то в другое место, возможно, на отдельный хост, специально создаваемый для статических файлов. Для этого в конфиге появились новые параметры:$config['module']['uploader']['drives'] = array(
'local' => array(
'dir' => '___path.root.dir___',
'url' => '___path.root.url___',
),
);
Нетрудно догадаться, что здесь задается полный путь на локальном диске до места расположения директории /uploads и URL к этой директории извне. Если изображение в базе сохраняется в виде '@uploads/path/to/image.jpg', то символ '@' заменяется на пути, указанные в конфиге, как показано выше.
Атрибуты defer и async для js-файлов
Если вы в курсе, зачем нужны атрибуты defer и async для загружаемых скриптов, то теперь вы можете их задавать в наборах js-файлов в конфигурации:$config['assets']['default']['js'] = array(
'___path.skin.dir___/assets/js/script1.js' => array('defer' => true),
'___path.skin.dir___/assets/js/script2.js' => array('async' => true),
);
Если в настройках задано слияние js-файлов, то файлы с заданными атрибутами будут группироваться, конечно же, отдельно. Грамотное использование этих атрибутов может значительно ускорить отображение загружаемых страницы сайта.
Новые методы получения изображений топика
В сущность топика добавлены новые методы, которые можно вызывать так (считаем, что в $oTopic у нас экземпляр конкретного топика):- $oTopic->getImages() — возвращает все изображения топика (и включенные в текст, и в фотосет)
- $oTopic->getLoadedImages($aFilter = []) — возвращает загруженные изображения топика (т.е. изображения включенные в текст по ссылке, включены не будут); в метод может быть передан массив с набором фильтров для выборки нужных изображений (описание фильтра см. ниже), если фильтр не задан, то возвращаются все загруженные изображения.
- $oTopic->selectImage($aFilter = []) — возвращает первое из загруженные изображения топика (т.е. изображения включенные в текст по ссылке, включены не будут); фактически вызывает метод getLoadedImages() и берет первое значение из возвращенного массива.
Параметры фильтра методов getLoadedImages() и selectImage():
- 'width-more' => N — получить изображения с шириное более N пикселей
- 'width-less' => N — получить изображения с шириное менее N пикселей
- 'height-more' => N — получить изображения с высотой более N пикселей
- 'height-less' => N — получить изображения с высотой менее N пикселей
- 'width-max' => true — получить изображения с максимальной шириной
- 'width-min' => true — получить изображения с минимальной шириной
- 'height-max' => true — получить изображения с максимальной высотой
- 'height-min' => true — получить изображения с минимальной высотой
Параметры фильтров могут быть заданы в любой комбинации. При этом имеет значение порядок задания фильтров:
$aFilter = ['width-more' => 799, 'height-max' => true];
// Сначала будут выбраны все изображения с шириной более 799px, а потом из них будет выбрано с максимальной высотой
$oImage = $oTopic->selectImage($aFilter);
// Сначала будут выбраны изображения с максимальной высотой, а из них - с шириной более 799px
$aFilter = ['width-more' => 799, 'height-max' => true];
$oImage = $oTopic->selectImage($aFilter);
Разумеется, эти методы могут быть использованы в шаблонах. Например, так:
<!-- выберем изображение с максимальными размерами, но не менее 800х600 -->
{$aFilter = ['width-more' => 799, 'height-more' => 599, 'height-max' => true, 'width-max' => true]}
{$oImage = $oTopic->selectImage($aFilter)}
{if $oImage}
<img src="{$oImage->getImageUrl('800х600crop')}">
{else}
<img src="default-image.jpg">
{/if}
28 комментариев
Тут обновился, все вроде бы нормально, когда фото грузить с интернета то проблем ни каких.
А вот если фото с ПК, то они загружаются без ошибок, но в статье дублируются. Заметил после публикации сегодня статьи, проверил размещенные ранее, статьи, во всех где загружались с ПК, одна фото идет в самом начале статьи и одна на том где я ее размещал. Дублируется только первая фото.
В статье, в которой дублируется фото, захожу в редактирование, удаляю эту картинку и загружаю другую с интернета, при сохранении в самом верху статьи остается ненужная копия изображения которое уже удалил и вместо него загрузил другое
куда копать?
приходится откатываться на 1.1.19.3
версия php 5.3 на хостинге.
В строке 1848 вот это
надо заменить на
Но вообще php надо бы обновлять
Так же пропала фича, которой уже привык пользоваться, а именно — фото из основного текста отображалось в превью статьи. Для превью использую Topic Intro.
Пока копирую картинку и в анонс в статьях где картинки с компьютера, там где с интернета то отображаются нормально.
Загружаются картинки видно совершенно по разному, раз такие отличия с отображением.
Еще нюанс связанный с этим и плагином похожих статей
Вот на скрине видно 3-и статьи где фото с интернета, в анонсе только текст, а одна статья с фото с компьютера, в анонсе сначала картинка и потом текст
Видно что там где с компа вместо миниатюры статьи только серый квадрат, а где с интернета, там нормальная миниатюра
Так же, плагин подтягивает с анонса все, будь то текст или картинку или видео (видео подтягивает и из основного текста).
картинку режит, видео вообще в полный размер подтягивает.
Проблема тянется уже давно, но похоже ответа так и небыло: http://altocms.ru/addons/item/86/
1.Не работает превью фотосета, точнее это вроде как и работает, после выбора превью пишет, что изображение отмечено как превью, но превью в итоге не меняется, все превьюшки заменились 1 фото.
2.Не работает загрузка изображений в тело топика, выдает ошибку «Ошибка при загрузке изображения»
Подскажите куда копать?
Добавлено:
местоположение директории для для загрузки и хранения изображений
для js-файлов можно указывать атрибуты defer и async
выбор изображений топика по параметрам
методы AppendAsset() и PrependAsset() модуля Viewer
вызов E::Module('Name') теперь кеширует экземпляр модуля, что увеличивает быстродействие
ну и кое-что еще по мелочи
Кто подскажет?
https://ru.wikipedia.org/wiki/Patch_(UNIX)