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

$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

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

$j = 0;
while ($j<$count)
{
echo '<div class="sp-thumbnails">';
echo '<div class="sp-thumbnail">';
    foreach ($items as $item) {
$j++;
$thumb = $this->app->jbimage->resize($orig, '50', '50');
echo $thumb;
echo $renderer->render('item.' . $modHelper->getItemLayout(), array(
                'item'   => $item,
                'params' => $params
        ));
}
echo '</div>';
}

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

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/

// встроенная функция для ресайза картинки (только полные (абсолютные) пути)
$thumbFullpath = $this->app->zoo->resizeImage($OriginalFullpath, $width, $height);
 
// обертка от JBZoo, которая умеет работать с относительными путями, но вернет объект
$thumbInfo = $this->app->jbimage->resize($OriginalPath, $width, $height);
 
// результат работы
$thumbInfo->orig // полный путь до оригинального файла
$thumbInfo->origUrl // полный путь до оригинального файла для сайта (ссылка)
$thumbInfo->path // полный путь до миниатюры
$thumbInfo->rel // относительный путь до миниатюры
$thumbInfo->url // полный путь до миниатюры для сайта (ссылка)
$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

Да, понял, что переменная неизвестная была $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

 $ItemElementModel = $item->getElement('ELEMENT_ID');
 $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

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

echo '<pre>';
var_dump($item); 
echo '</pre>';

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


  • 0




Click to return to top of page in style!