Jump to content


Photo
- - - - -

Создание Слайдера Через Jbzooitem


Best Answer immortal727 , 14 April 2020 - 11:02

Получил данные элемента

$element = $item->getElement('a941c919-8fc2-4d22-9087-dfa86b8e97f9'); // element id получаем так 

$data = (array)$element->data(); // получаем данные
print_r($data); // смотрим что там хранится
 
А как теперь мне вывести данные массива элемента file?
Если пробовать echo $data['file'];
то ничего не выводит
 
Получилось наконец-то
echo $data[0]['file'];
 
Это все что мне и нужно-то было, а Вы меня по дебрям водили
Go to the full post


22 replies to this topic

#1 immortal727

immortal727
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 765
  • topics: 253

Posted 14 April 2020 - 08:00

Хочу сделать слайдер на основе показа врачей - https://ctoma.ru/

Самое подходящее решение, что может подойти  - использование Slider_pro

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

 


  • 0

#2 CB9TOIIIA

CB9TOIIIA
  • Administrators
  • User rate: 230.6
  • posts: 3680
  • topics: 235

Posted 14 April 2020 - 08:43

  1. $thumb = $this->app->jbimage->resize($orig, '50', '50');

  • 0

#3 immortal727

immortal727
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 765
  • topics: 253

Posted 14 April 2020 - 09:56

Не знаю как вывести эти тумбинашку изображения, название и описание
Если в макете к примеру создавать таким образом (для примера чтоб показать вывод мин. изображения)

  1. $j = 0;
  2. while ($j<$count)
  3. {
  4. echo '<div class="sp-thumbnails">';
  5. echo '<div class="sp-thumbnail">';
  6.     foreach ($items as $item) {
  7. $j++;
  8. $thumb = $this->app->jbimage->resize($orig, '50', '50');
  9. echo $thumb;
  10. echo $renderer->render('item.' . $modHelper->getItemLayout(), array(
  11.                 'item'   => $item,
  12.                 'params' => $params
  13.         ));
  14. }
  15. echo '</div>';
  16. }

То будет сообщение об ошибке 

Object of class stdClass could not be converted to string in D:\OSPanel\domains\dent\modules\mod_jbzoo_item\tmpl\slider.php on line 43

Если же оставить вывода $render, то он подхватит естественно данные из шаблона. И получается что они будут с одинаковым выводом и соответствующими классами как и в слайдерах.
А нельзя ли подгрузить необходимые мне для вывода элементы в макет? Думал что как Вы написали, я могу в макет вставить необходимые мне элементы, но выходит ошибка. Элемент взял JbzooImage

 


  • 0

#4 CB9TOIIIA

CB9TOIIIA
  • Administrators
  • User rate: 230.6
  • posts: 3680
  • topics: 235

Posted 14 April 2020 - 10:02

ох... так $orig получили Вы по коду? файл


http://forum.jbzoo.c...enta-zoo-jbzoo/

  1. // встроенная функция для ресайза картинки (только полные (абсолютные) пути)
  2. $thumbFullpath = $this->app->zoo->resizeImage($OriginalFullpath, $width, $height);
  3. // обертка от JBZoo, которая умеет работать с относительными путями, но вернет объект
  4. $thumbInfo = $this->app->jbimage->resize($OriginalPath, $width, $height);
  5. // результат работы
  6. $thumbInfo->orig // полный путь до оригинального файла
  7. $thumbInfo->origUrl // полный путь до оригинального файла для сайта (ссылка)
  8. $thumbInfo->path // полный путь до миниатюры
  9. $thumbInfo->rel // относительный путь до миниатюры
  10. $thumbInfo->url // полный путь до миниатюры для сайта (ссылка)
  11. $thumbInfo->height; $thumbInfo->width // высота и ширина миниатюры

  • 0

#5 immortal727

immortal727
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 765
  • topics: 253

Posted 14 April 2020 - 10:02

Да, понял, что переменная неизвестная была $orig.

Подскажите пожалуйста, а как мне получать изображения и другие элементы в макете модуля jbzooitem


  • 0

#6 CB9TOIIIA

CB9TOIIIA
  • Administrators
  • User rate: 230.6
  • posts: 3680
  • topics: 235

Posted 14 April 2020 - 10:04

immortal727, on 14 Apr 2020 - 09:02, said:

Да, понял, что переменная неизвестная была $orig.

Подскажите пожалуйста, а как мне получать изображения и другие элементы в макете модуля jbzooitem

 

Воспользоваться дампером jbdump или симфони дампер или иным. 

У Вас там цикл - как вариант проверить переменную $item - что у нее внутри - можно также получить $item зная id материала и так далее.


  • 0

#7 immortal727

immortal727
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 765
  • topics: 253

Posted 14 April 2020 - 10:09

мне пока сложно понять что Вы пишите. Приведите пример хоть какой-нибудь, как вытащить нужный элемент?

Как понял пробую вытащить url картинки

$OriginalPath=$thumbInfo->images/Vrachi/Gulyeva.jpg;

А после 

$thumb = $this->app->jbimage->resize($OriginalPath, '50', '50');
echo $thumb;
Но идет ошибка. И как мне вытащить название изображения также?

Edited by immortal727, 14 April 2020 - 10:11.

  • 0

#8 CB9TOIIIA

CB9TOIIIA
  • Administrators
  • User rate: 230.6
  • posts: 3680
  • topics: 235

Posted 14 April 2020 - 10:13

В цикле $item

  1. $ItemElementModel = $item->getElement('ELEMENT_ID');
  2. $ItemDataTest = $item->getElement('ELEMENT_ID')->data();

  • 0

#9 immortal727

immortal727
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 765
  • topics: 253

Posted 14 April 2020 - 10:19

Пытаюсь в цикле получить хотя бы название элемента

$ItemElementModel = $item->getElement('34361333-6d6b-46ee-bf2b-a6537ce73587');
echo 'Элемент '.$ItemElementModel;
Пустышка.
А если использовать $ItemDataTest = $item->getElement('34361333-6d6b-46ee-bf2b-a6537ce73587')->data();
echo 'Элемент '.$ItemDataTest; 
То вообще ошибка

Edited by immortal727, 14 April 2020 - 10:22.

  • 0

#10 CB9TOIIIA

CB9TOIIIA
  • Administrators
  • User rate: 230.6
  • posts: 3680
  • topics: 235

Posted 14 April 2020 - 10:21

да потому что НЕЛЬЗЯ так делать. Это Модель! не строка

  1. echo '<pre>';
  2. var_dump($item); 
  3. echo '</pre>';

Хотя бы посмотрите $item


  • 0




Click to return to top of page in style!