FAQ по работе с плагином «Main Preview»

Больше всего вопросов при использовании моих шаблонов возникает по поводу работы плагина «Main Preview». Ниже — небольшой FAQ по плагину.

Первое что следует уяснить: созданием превью занимается не шаблон, а плагин. В шаблоне лишь указывается какого размера превью выводить, если плагин не создал превью такого размера, шаблон ничего не выведет. Соответственно вся настройка вывода превьюшек сводится к указанию одинаковых размеров в плагине и шаблоне.

Но давайте пройдемся по наиболее частым вопросам и попробуем разобраться во всех тонкостях работы плагина.

1. У меня не выводятся превью, что делать?

В первую очередь, внимательно прочитайте ридми шаблона и выполните все, что там написано. Внимательно. Вплоть до копировал-вставил. Потому как первая причина — это нераскомментированные настройки плагина. Смотрим в конфиг:

/**
 * Список размеров превью топика
 * Обычно задается другим плагином или шаблоном
 */
$config['size_images_preview']=array(
	/*
	array(
		'w' => 100,
		'h' => 100,
		'crop' => true,
	)
	*/
);

В нем настройки ширины и высоты превью закомментированы и они просто не читаются (воспринимаются как комментарий, пояснение к коду). Какие бы размеры Вы не поставили, плагин просто ничего не сгенерирует. Все, что необходимо сделать, убрать /* и */ в этой части:

/*
array(
	'w' => 100,
	'h' => 100,
	'crop' => true,
)
*/

Далее, в настройках необходимо указать изображения какого размера Вам необходимы.

Что касается моих шаблонов, то чаще всего там речь идет о ширине превью в 700-750 пикселей. Такой размер выбран для того, чтобы превью выводились на всю ширину при переходе на мелкие экраны и выводе содержимого страницы в один столбец (телефоны). Загрузка больших изображений ведет к увеличению времени загрузки страницы, поэтому Вам необходимо решить для себя какие размеры будете использовать, что для Вас важнее — трафик или отображение. Соответственно, эти размеры и необходимо прописать в плагине и шаблоне.

2. У меня не создаются автоматические превью, при загрузке изображения через форму все работает.

Обратите внимание на то, до какого размера ужимаются изображения при загрузке их в топики. Данный параметр прописывается в конфиге сайта и, если он меньше, чем ширина превью заданная в плагине, то все логично, смотрите:

В конфиге сайта Вы указали:

$config['view']['img_resize_width'] = 500;    // до какого размера в пикселях ужимать картинку по ширине при загрузки её в топики и комменты

А в конфиге плагина:

$config['preview_minimal_size_width']   = 750;  // Минимальная ширина превью, если изображение меньше, то на его основе превью создаваться не будет. Актуально только для автоматических превью

В итоге происходит следующее: изображение загружается в топик и ужимается до ширины в 500 пикселей, соответственно под условие плагина оно не подходит, т.к. плагин делает превьюшки только из изображений шире 750 пикселей. Поэтому после прописывания необходимых размеров в плагине «Main Preview», открываем конфиг сайта и проверяем, чтобы заданный там размер был не менее указанного.

3. Не создаётся превью при создании фотосета.

Причина такая же, как и в пункте №2: ширина изображений для фотосета в конфиге сайта меньше ширины заданной в плагине. Находим в конфиге следующие строчки:

/**
 * Настройка топика-фотосета
 */
$config['module']['image']['photoset']['jpg_quality'] = 100;        // настройка модуля Image, качество обработки фото
$config['module']['topic']['photoset']['photo_max_size'] = 6*1024;  // максимально допустимый размер фото, Kb
$config['module']['topic']['photoset']['count_photos_min'] = 2;     // минимальное количество фоток
$config['module']['topic']['photoset']['count_photos_max'] = 30;    // максимальное количество фоток
$config['module']['topic']['photoset']['per_page'] = 20;            // число фоток для одновременной загрузки
$config['module']['topic']['photoset']['size'] = array(             // список размеров превью, которые необходимо делать при загрузке фото
	array(
		'w' => 1000,
		'h' => null,
		'crop' => false,
	),
	array(
		'w' => 500,
		'h' => null,
		'crop' => false,
	),
	array(
		'w' => 100,
		'h' => 65,
		'crop' => true,
	),
	array(
		'w' => 50,
		'h' => 50,
		'crop' => true,
	)
);

и проверяем, чтобы второе значение в списке размеров превью (500) было больше, чем ширина заданная в плагине «Main Preview».

4. Я установил шаблон и плагин на существующий сайт, запустил генерацию превью, но они так и не появились.

Здесь опять же проблема пункта №2: к примеру, в конфиге сайта у Вас стояла ширина для загружаемых в топики изображений 500 пикселей, а в конфиге плагина Вы указываете 750. Естественно, что при генерации превью плагин не находит изображений удовлетворяющих его конфигу и ничего не генерирует.

Решения в данном случае вижу два:
1. Если на сайте много материалов и заливать превью вручную для каждого топика не вариант — ставим в конфиге плагина ширину такую же, как в конфиге шаблона и запускаем генерацию. Для топиков без изображений превьюшки заливаем вручную (если необходимо).
2. Если топиков на сайте немного и нужны превью большего размера, чем загруженные в топики, то для новых топиков в конфиге сайта меняем размер изображений, а для существующих — добавляем превью вручную.

5. При перегенерации превью к новым размерам некоторые из них выводятся размером выше или ниже остальных.

Случается и такое, да. Происходит потому, что некоторые изображения не подходят под новые размеры. Для устранения проблемы необходимо либо перезалить вручную превью для таких топиков, либо попробовать указать в конфиге плагина меньшие размеры (если это допустимо).

Ну и в заключение, несколько слов по конфигу плагина.

Давайте разберем его более детально. Итак, конфиг:

/**
 * Настройки
 */
$config['make_preview_video']   = true;  // Создавать или нет автоматические превью топика на основе вставленного в текст видео
$config['make_preview_image']   = true;  // Создавать или нет автоматические превью топика на основе вставленного в текст изображения
$config['preview_minimal_size_width']   = 300;  // Минимальная ширина превью, если изображение меньше, то на его основе превью создаваться не будет. Актуально только для автоматических превью
$config['preview_minimal_size_height']  = 150;  // Минимальная высота превью, если изображение меньше, то на его основе превью создаваться не будет. Актуально только для автоматических превью

/**
 * Список размеров превью топика
 * Обычно задается другим плагином или шаблоном
 */
$config['size_images_preview']=array(
	/*
	array(
		'w' => 100,
		'h' => 100,
		'crop' => true,
	)
	*/
);

Первая строчка отвечает за создание превьюшек для видео вставленного в топик. Работает не со всеми видеосервисами, на Ютуб тоже были жалобы. Оставим без изменений, но при создании топика обращаем внимание создалась или нет превьюшка, если нет — загружаем какое-нибудь изображение вручную.

Вторая строчка отвечает за автоматическое создание превью из первого изображения загруженного в топик. Все изображения топика плагин не перебирает, поэтому если первая картинка в тексте будет меньшего размера, чем указано в конфиге, превью не создастся, даже если следующая картинка в топике будет удовлетворять условиям конфига.

Далее, две следующие строчки:

$config['preview_minimal_size_width']   = 300;  // Минимальная ширина превью, если изображение меньше, то на его основе превью создаваться не будет. Актуально только для автоматических превью
$config['preview_minimal_size_height']  = 150;  // Минимальная высота превью, если изображение меньше, то на его основе превью создаваться не будет. Актуально только для автоматических превью

Здесь тоже бывают ошибки — в настройках размеров превью указываются большие значения, чем здесь. В итоге, в топик загружено изображение 350х200, к примеру, а сделать из него превью размером 700х500 проблема. Поэтому, следим за тем чтобы ширина и высота требуемых превью была меньше либо равна значениям указанным в данных строчках.

Самое интересное, задаем какие превьюшки нам нужны:

/**
 * Список размеров превью топика
 * Обычно задается другим плагином или шаблоном
 */
$config['size_images_preview']=array(
	/*
	array(
		'w' => 100,
		'h' => 100,
		'crop' => true,
	)
	*/
);

Не забываем про удаление /* и */! :) В данной части конфига: 'w' — необходимая ширина превью, 'h' — необходимая высота, 'crop' — надо ли обрезать лишнее с изображения после ужимания одной из сторон до заданного размера.

Здесь, кроме банального изменения размеров 100х100 на какие-то свои, можно и другие варианты использовать. Например, прописать так:

/**
 * Список размеров превью топика
 * Обычно задается другим плагином или шаблоном
 */
$config['size_images_preview']=array(
	
	array(
		'w' => 100,
		'h' => null,
		'crop' => false,
	)
	
);

И тогда высота Ваших превью не будет ограничена жесткими рамками и будет изменяться пропорционально исходным размерам. Если использовать шаблон с masonry, то можно в итоге получить что-нибудь в стиле www.pinterest.com.

Бывает, что некоторым шаблонам необходимы превью различных размеров, в таком случае конфиг можно переписать следующим образом:

/**
 * Список размеров превью топика
 * Обычно задается другим плагином или шаблоном
 */
$config['size_images_preview']=array(
	
	array(
		'w' => 750,
		'h' => 500,
		'crop' => true,
	),
	
	array(
		'w' => 300,
		'h' => 200,
		'crop' => true,
	),
	
	array(
		'w' => 64,
		'h' => 64,
		'crop' => true,
	)
	
);


В данном примере на выходе мы получим четыре изображения: исходное и три с размерами 750х500, 300х200 и 64х64. Но и место на сервере будет заканчиваться быстрее, поэтому такие моменты рекомендую продумывать тщательно и заранее.

На этом пока все. Возможно, я что-то забыл или упустил, вспомню — добавлю в топик, а вы задавайте вопросы, если что-то не ясно.

Топик — кросспост из моего блога.

11 комментариев

avatar
Спасибо за FAQ большое, все доходчиво и понятно))) Плюсанул)))
avatar
Большая благодарность за все Ваши труды! Думаю многим был бы полезен подобный FAQ, особенно для ваших шаблонов!
avatar
Возможно, если будет свободное время, распишу. Но там то, на самом деле, писанины больше, чем подключения. Тем более, что уже все расписано. И не важно к какому шаблону прикручивать: меняете разметку меню, подключаете стили и в head добавляете скрипт. В случае с моими шаблонами Бутстраповский navbar придется либо убрать, либо переделывать в нем что-то. Более детально надо вникать и крутить сидеть.
avatar
Пытался сделать по тому мануалу, но походу что-то не туда пишу, не получается). Я и думал просто для примера тыкнуть пальцем, что куда закинуть и прописать. Не обязательно шлифовать всё идеально в navbar, главное понять как подключать такие скрипты. А уж потом каждый сам докрутит стили под себя.
avatar
главное понять как подключать такие скрипты

меняете разметку меню, подключаете стили и в head добавляете скрипт

Меню меняется в header_top.tpl, стили можно просто в стилевые файлы скопипастить или отдельным файлом подключить, скрипт в файле header.tpl в секцию head прописать. А дальше молоток, зубило, напильник и доводить до требуемого состояния.

Вы бы лучше в своем топике описали подробно что сделали, что у Вас получилось/не получилось, демку дали напосмотреть — глядишь и помощи больше было бы. Убивать вечер для того, чтобы разобраться со сторонним скриптом, прикрутить, вылизать и расписать «за пивко» вряд ли кому-то захочется, а так с миру по нитке — глядишь и сами докрутили бы, да и полезней для саморазвития было бы.
avatar
Спасибо, так и сделаю)
avatar
Спасибо за дельную статью, ответы на наболевшие вопросы. Респект!
avatar
Kreddik , kovalrulit , andreykr23 : пожалуста, рад если смог помочь!
avatar
Это какое-то недоразумение?


P.S. Большое спасибо за плагин и отличную работу!
avatar
Да нет, все верно. Я же и не говорил, что плагин мой. :) Просто в связи с тем, что практически все мои шаблоны могут его использовать, то и вопросы от пользователей постоянные возникают, поэтому и решил сделать небольшой FAQ по плагину, чтобы отправлять читать топик, а не отвечать на однотипные вопросы.
avatar
Понял )
А то вначале подумал, что глюк каталога какой-то.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.