В компоненте Zoo присутствует галерея которая может отображать картинки в виде слайдшоу или через lightbox.
И она не лишена одного важного недостатка - невозможно прописать каждой картинке индивидуальный заголовок, мы можем прописать общий заголовок для всех фотографий в данной галерее или использовать названия файлов, но ведь если нам нужны заголовки на русском или нестандартные языки... как быть?
При составлении данной инструкции использовалась версия 2.0.3, в новый версиях возможны некоторые изменения.Прежде всего советую сделать копию элемента галереи, чтобы в случае неполадок можно было сделать откат, или назвать копию папки по своему и работать в ней, я же объясню все на примере стандартной галереи.
[ROOT]/administrator/components/com_zoo/elements/gallery - директория галереи
В ней находится файл
gallery.php который нам нужен
На 145-150 строках имеется код
if ($width < 1 && $height < 1) {
$width = 100;
$height = null;
}
foreach ($files as $file) {
Замените его на
if ($width < 1 && $height < 1) {
$width = 100;
$height = null;
}
// MOD START
// J Hoye Aug 2010
// Look for a file called captions.txt with the images
// If available then use to determine the caption text to display for each image filename
// Format of file is: // image_filename.jpg The caption to display
if(file_exists($this->_path.'/captions.txt')) {
$caption_file_contents = file_get_contents($this->_path.'/captions.txt');
preg_match_all('/(\S+\.(?:jpg|png|gif))\s(.*)/i', $caption_file_contents, $caption_file_rows, PREG_PATTERN_ORDER);
$file_captions = array_combine($caption_file_rows[1],$caption_file_rows[2]);
}
// MOD END
foreach ($files as $file) {
А также на 162-165 строках
$name = JFile::stripExt($filename);
$name = JString::str_ireplace('_', ' ', $name);
$name = JString::ucwords($name);
}
нужно заменить этим кодом
// MOD START
// J Hoye Aug 2010
// If no title has been specified then see if there is a caption instead
if ($file_captions[$filename] != '') {
$name = $file_captions[$filename];
} else {
$name = JFile::stripExt($filename);
$name = JString::str_ireplace('_', ' ', $name);
$name = JString::ucwords($name);
}
// MOD END
}
А что дальше?
А дальше необходимо поместить в папку где находятся фотографии файл
captions.txtВ котором будут перечислены фотографии с их заголовками
image1.jpg This is the first image
image2.gif This is the second image
image3.png This is the third image
Тестируем, пользуемся, наслаждаемся.
Автором данного хака является некто
james.hoye с официального форума YooTheme, все копирайты и комментарии в коде сохранены.
Собственно я наткнулся на данное решение находясь в поисках другого - вывод заголовка внизу фотографии на полупрозрачном фоне при использовании слайдшоу,
пример.
Если у вас имеется данное решение или написанное тут может дополнить его, поделитесь с народом
