Перейти к содержимому


Фотография
- - - - -

Галерея в другом каталоге на другом сайте


Сообщений в теме: 3

#1 Leonardo+

Leonardo+

Отправлено 06 September 2016 - 17:00

Дано:

Сайт №1

На нем имеется каталог товаров со своей галерей изображений к каждому товару.

Сайт №2 (jbzoo) 

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

 

Собственно задача следующая:

 

Расположение сайтов находится на одном хосте для удобства.

Вроде бы все ок, получилось импортировать, но вот с галереей JBZoo Gallery есть один нюанс: если я в значение value передаю ссылку типа ../site.ru/0/0/1, то он не выводит изображения потому, что в файле site2\media\zoo\applications\jbuniversal\elements\jbgallery\jbgallery.php есть строка в функции "public function render($params = array())"

$this->_path = JPATH_ROOT . '/' . trim($this->config->get('directory'), '/')
            . '/' . trim($this->_data->get('value'), '/');

Из выше приведенного следует, что путь до изображения формируется здесь. Следовательно нужно лишь изменить путь на тот, что мне нужен и проблема решена. Однако появилось усложнение задачи и для одного из вида товаров требуется сохранить вывод изображений из папки images сайта№2(jbzoo).

 

Вопрос: Как сделать проверку, скажем на одно из "пользовательских полей", чтобы определить категорию или вид товара и сделать вывод галереи по пути ведущиму к site№1, если же товар принадлежит к другой категории или виду, то выводить стандартным способом из images в корне site№2

 

Надеюсь понятно изложил задачу. По сути надо лишь сделать проверку. Но вдруг есть и другие решения, которых я пока не вижу.

 

Спасибо за внимание!


  • 0

#2 SmetDenis

SmetDenis

Отправлено 07 September 2016 - 05:01

На самом деле поиском картинок занимается ф-я _getThumbnails с помощью JFolder::files()

 

Галерея формирует картинки на основе файловой системы.

Если вы перепишите путь на http-адрес, то элемент не сможет найти файлы, потому что такой директории нет на сервере.

 

Вам нужно переписать _getThumbnails, так чтобы это место http://llfl.ru/gj6lm5отдавало вам список абсолютных путей до картинок (не http).

А еще лучше не хранить картинки на другом сайте.

 

Других вариантов я пока что не вижу.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Leonardo+

Leonardo+

Отправлено 07 September 2016 - 10:34

На самом деле поиском картинок занимается ф-я _getThumbnails с помощью JFolder::files()

 

Галерея формирует картинки на основе файловой системы.

Если вы перепишите путь на http-адрес, то элемент не сможет найти файлы, потому что такой директории нет на сервере.

 

Вам нужно переписать _getThumbnails, так чтобы это место http://llfl.ru/gj6lm5отдавало вам список абсолютных путей до картинок (не http).

А еще лучше не хранить картинки на другом сайте.

 

Других вариантов я пока что не вижу.

 

Я не указываю http путь, а указываю также папку локально.

Второй сайт находится локально и выполняет функцию хранилища. Все что нужно это распознать если елемент относится к категории "А", то путь 

$this->_path = JPATH_ROOT . '/' . trim($this->config->get('directory'), '/')
            . '/' . trim($this->_data->get('value'), '/');

Если к категории "Б", то

$this->_path = trim($this->_data->get('value'), '/')

  • 0

#4 SmetDenis

SmetDenis

Отправлено 08 September 2016 - 06:23

Извините, видимо не верно вас понял.

 

Тогда объявление переменной обрамите одним из следующих условий

$element = $this->getItem()->getElement('ELEMENT_ID');
if ($element) {
    $data = (array)$element->data(); // контент элемента
    $value = $element->get('value'); // другой способ обратиться к контенту
    if ($value) {
        $this->_path = '...';
    }
}
 
$itemCategory = $this->getItem()->getPrimaryCategory();
if ($itemCategory && $itemCategory->name == 'Категория А') {
        $this->_path = '...';
}

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!