Phoca Gallery для JOOMLA — устанавливаем картинку категории

Тем кто сталкивался с галереей PhocaGallery известна проблема, когда при выводе категорий и соответственно подкатегорий, картинки к разделам выбираются по весьма непонятной схеме. Ну мягко говоря — от фанаря. К сожалению в документации к PhocaGallery этот вопрос как-то плохо освещен.
Включаем голову, PHP редактор и поехали …

Все что нам необходимо сделать — отредактировать 2 файла, которые являются шаблонами вывода на экран.

Вначале меняем шаблон вывода категорий в корне галереи:
1) файл:   /components/com_phocagallery/views/categories/tmpl/default.php

строки 86 — 89

else {
echo JHTML::_( 'image.site', $this->categories[$i]->linkthumbnailpath, '', '', '', str_replace('»', '-',$this->categories[$i]->title), 'style="border:0"' );
}

меняем на

else {
$correctImageRes = PhocaGalleryPicasa::correctSizeWithRate($this->categories[$i]->extw, $this->categories[$i]->exth, $this->tmpl['picasa_correct_width'], $this->tmpl['picasa_correct_height']);
if (($this->categories[$i]->image)!= ''){
echo $cat_img = JHTML::_('image', 'images/stories/'.$this->categories[$i]->image, JText::_('Phoca Gallery'),'style="width:150px;"');
}
else{
echo JHTML::_( 'image.site', $this->categories[$i]->linkthumbnailpath, '', '', '', str_replace('»', '-',$this->categories[$i]->title), 'style="border:0;"' );
}
}

Теперь необходимо изменить шаблон вывода подкатегорий:
* файл /components/com_phocagallery/views/category/tmpl/default_categories.php

строка (примерно 64 — может отличаться)

ищем

echo JHTML::_( 'image.site',$imageThumbnail, '', '', '', $this->itemscv[$i]->title, 'style="border:0"' );

меняем на

if (($this->itemscv[$i]->image)!= ''){
echo $cat_img = JHTML::_('image', 'images/stories/'.$this->itemscv[$i]->image, JText::_('Phoca Gallery'),'style="width:150px;"');
}
else{
echo JHTML::_( 'image.site', $this->itemscv[$i]->linkthumbnailpath, '', '', '', str_replace('»', '-',$this->itemscv[$i]->title), 'style="border:0;"' );
}

* Нужному изображению придается размер (у меня 150х150)
* Забрасывается в папку /images/stories

После этих действий картинка категории задается в настройках самой категории Изображение посередине настроек категории  — ПРИНУДИТЕЛЬНО !!!

Phoca Gallery для JOOMLA — устанавливаем картинку категории: 13 комментариев

  1. Привет, Игорь! у меня такая проблема возникла на phoca gallery 3.2.1 (Joomla 2.5.6)…по твоему способу не получается, нашел кусок кода:
    по адресу: components/com_phocagallery/views/categories/view.html.php
    в котором как раз решается вопрос с выводом иконки категории:
    строки 226-265:
    // DISPLAY AVATAR, IMAGE(ordered), IMAGE(not ordered, not recursive) OR FOLDER ICON
    $displayAvatar = 0;
    if($this->tmpl[‘categoriesdisplayavatar’] == 1 && isset($this->categories[$key]->avatar) && $this->categories[$key]->avatar !=» && $this->categories[$key]->avatarapproved == 1 && $this->categories[$key]->avatarpublished == 1) {
    $sizeString = PhocaGalleryImageFront::getSizeString($image_categories_size);
    $pathAvatarAbs = $path->avatar_abs .’thumbs’.DS.’phoca_thumb_’.$sizeString.’_’. $this->categories[$key]->avatar;
    $pathAvatarRel = $path->avatar_rel . ‘thumbs/phoca_thumb_’.$sizeString.’_’. $this->categories[$key]->avatar;
    if (JFile::exists($pathAvatarAbs)){
    $this->categories[$key]->linkthumbnailpath = $pathAvatarRel;
    $displayAvatar = 1;
    }
    }

    if ($displayAvatar == 0) {
    if ($extCategory) {
    if ($this->tmpl[‘categoriesimageordering’] != 10) {
    $imagePic = PhocaGalleryImageFront::getRandomImageRecursive($this->categories[$key]->id, $categoriesImageOrdering, 1);
    $fileThumbnail = PhocaGalleryImageFront::displayCategoriesExtImgOrFolder($imagePic->exts,$imagePic->extm, $imagePic->extw,$imagePic->exth, $image_categories_size, $rightDisplayKey);
    } else {
    $fileThumbnail = PhocaGalleryImageFront::displayCategoriesExtImgOrFolder($this->categories[$key]->exts,$this->categories[$key]->extm, $this->categories[$key]->extw, $this->categories[$key]->exth, $image_categories_size, $rightDisplayKey);
    }

    $this->categories[$key]->linkthumbnailpath = $fileThumbnail->rel;
    $this->categories[$key]->extw = $fileThumbnail->extw;
    $this->categories[$key]->exth = $fileThumbnail->exth;
    $this->categories[$key]->extpic = $fileThumbnail->extpic;
    } else {
    if ($this->tmpl[‘categoriesimageordering’] != 10) {
    $this->categories[$key]->filename = PhocaGalleryImageFront::getRandomImageRecursive($this->categories[$key]->id, $categoriesImageOrdering);
    }
    $fileThumbnail = PhocaGalleryImageFront::displayCategoriesImageOrFolder($this->categories[$key]->filename, $image_categories_size, $rightDisplayKey);
    $this->categories[$key]->linkthumbnailpath = $fileThumbnail->rel;

    }
    }

    if ($rightDisplay == 0) {
    unset($this->categories[$key]);
    $unSet = 1;
    }
    // — — — — — — — — — — — — — — —

    Но для меня это что-то сложновато…не поможешь решить?
    можешь на почту кинуть пару слов… [email protected]

    • Привет. Единственное что — могу по совместной договоренности подключиться по фтп и разрулить)

  2. В случае с шаблоном подкатегорий не работает…. Для списка категорий все работает.
    Версия 2.8.1

    • Да, конечно! По аналогии можно модифицировать и подкатегории в соответствующем Файле.

  3. Скажите, пожалуйста, где я должен указать картинку для категории? У меня ничего не изменилось после ваших правок. Версия 2.8.1
    Я должен зайти в Компоненты-Галерея ФокаГеллари-Категории-определенна категория. И там появляется дополнительное поле выбора изображения? Так что ли?

    • Поля останутся старые. Там где настройки категории есть выбор картинки.

      • Кстати, это не совсем мои правки. Я их как то раздобыл в интернете, и сохранил в файл. Потом вот поделился. Пробуйте! Уверен, что получится!

  4. Кто в курсе, подскажите пожалуйста, как такое реализовать для версии 3.2.6.

  5. Добрый день. Подскажите, пожалуйста, как поменять обложку категории. Вместо первой фотографии в фотогалерее в качестве обложки установилась вторая фото. И как установить отступ от края для подписей к фото? Сейчас подписи касаются левого края. Длинные подписи не помещаются целиком.

    • Даже не подскажу, посмотрите в сторону библиотеки http://www.developerfusion.com/project/20035/flexiblejsformatting/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *