0 Пользователей и 1 Гость просматривают эту тему.
  • 19 Ответов
  • 2958 Просмотров
*

eragon

  • Осваиваюсь на форуме
  • 148
  • 7
Хочу поправить вывод title материала, добавить в него значение одного из поля, для этого правим файлик /components/com_zoo/controllers/default.php, а именно функцию item(), где он и задается.

Чтобы вытащить содержимого некого элемента используем $this->item->getElement('elementID');, но вот досада, полученное содержимое имеет не понятный тип данных, объект?

Как его обработать, чтобы корректно можно было получить содержимое нашего элемента?


------------------------------------
Например на странице в руководстве Accessing element data написано, что есть функция public function get($name, $default = null);, но вызвать ее не удается, функция в функции.
*

MetaSpirit

  • Живу я здесь
  • 1379
  • 106
  • R.A.S.Lab[.org]
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #1 : 12.01.2013, 21:09:45 »
Код: php
$elm = $this->item->getElement('elementID');
$value = $elm->get('value');
P.S. 'value' значение, которое нужно вытащить
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

eragon

  • Осваиваюсь на форуме
  • 148
  • 7
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #2 : 12.01.2013, 21:55:47 »
Код: php
$elm = $this->item->getElement('elementID');
$value = $elm->get('value');
P.S. 'value' значение, которое нужно вытащить
Спасибо, работает :)
*

verstalshik

  • Практически профи
  • 1787
  • 93
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #3 : 27.03.2013, 22:53:19 »
как сам код оформили, не подскажете?
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

verstalshik

  • Практически профи
  • 1787
  • 93
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #4 : 30.03.2013, 18:03:25 »
вот слепил конструкцию, чтобы для разных языков разные титлы были, вроде пашет, что тут упростить можно, МАСТЕРА?
Код
$elm = $this->item->getElement('8d9059a6-b3b4-4e79-ad5c-ef609d65aee8');
$value = $elm->get('value');
$elm = $this->item->getElement('ed392eab-3a51-4a70-b9a4-ba2a9917346b');
$value2 = $elm->get('value');
$document = & JFactory::getDocument();
$curlang = $document->language;
if ($curlang == "ru-ru")
$title = $this->item->name;
if ($curlang == "en-gb")
$title = $value;
if ($curlang == "es-es")
$title = $value2;
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

MetaSpirit

  • Живу я здесь
  • 1379
  • 106
  • R.A.S.Lab[.org]
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #5 : 31.03.2013, 19:12:56 »
Как вариант:
Код: php
$document = & JFactory::getDocument();
$curlang = strtolower($document->language);
if ($curlang == "ru-ru") {
$title = $this->item->name;
} elseif ($curlang == "en-gb") {
$title = $this->item->getElement('8d9059a6-b3b4-4e79-ad5c-ef609d65aee8')->get('value');
} elseif ($curlang == "es-es") {
$title = $this->item->getElement('ed392eab-3a51-4a70-b9a4-ba2a9917346b')->get('value');
}
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

verstalshik

  • Практически профи
  • 1787
  • 93
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #6 : 31.03.2013, 21:25:31 »
класс, так тоже работает!! кода меньше - клиенту приятнее!!)))
СПС, Метаспирит! очередной раз убеждаюсь в вашем профессионализме!
интересно, ваш код меньше запросов делает? по идее, мой код сначала эти value готовит, потом отдает, а у вас как бы на лету все...
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

GrandKain801s

  • Новичок
  • 6
  • 0
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #7 : 27.12.2013, 06:01:45 »
Как вариант:
Код: php
$document = & JFactory::getDocument();
$curlang = strtolower($document->language);
if ($curlang == "ru-ru") {
$title = $this->item->name;
} elseif ($curlang == "en-gb") {
$title = $this->item->getElement('8d9059a6-b3b4-4e79-ad5c-ef609d65aee8')->get('value');
} elseif ($curlang == "es-es") {
$title = $this->item->getElement('ed392eab-3a51-4a70-b9a4-ba2a9917346b')->get('value');
}

доброго времени суток, могли бы Вы мне пояснить куда именно вписывать этот код на странице /components/com_zoo/controllers/default.php? я нашел часть кода с комментарием // get page title, if exists, но я не очень силен в PHP (((
уже перепробовал все что в голову приходило, но у меня не выходит ничего (((
Мне нужно чтобы в Тайтле, к Имени страници (Итема), дописывались значения опций из элемента Select (которые в нем выбраны)

примерно так --- Зд модель Телевизора(это Имя) - *.маx, *.c4d, *.3ds, (это опции Селекта)

заранее благодарен за любую помощь
« Последнее редактирование: 27.12.2013, 06:05:41 от GrandKain801s »
*

MetaSpirit

  • Живу я здесь
  • 1379
  • 106
  • R.A.S.Lab[.org]
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #8 : 27.12.2013, 11:59:45 »
В шаблон айтема вставьте
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

GrandKain801s

  • Новичок
  • 6
  • 0
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #9 : 27.12.2013, 14:15:59 »
В шаблон айтема вставьте

если я правильно понял, то шаблон находится
/media/zoo/applications/product/templates/default/item.php ?
но результата не получил

есть другое, я вот на нашел - такой код и попробовал его вставить в выше указаный файл
Код
$document =& JFactory::getDocument();
if ($category = $this->item->getPrimaryCategory()){
     $document->setTitle($this->item->name.' - '.$this->item->getElement('76d6096d-4152-4f61-a0da-036a6436f9ab')->get('value'));
}

в итоге получил тайтле Имя - (пустое место) где по сути должны были бы быть мои значения, и вообще есть ли смысл в этом
мне кажется есть, потому что если вписать в конце вместо ->get('value') к примеру ->config->get('name')
то получаю Имя (Айтема) - Формат (это имя Селекта данное ему мной)
значит, я считаю что тут если подобное срабатывает, значит направление верное (вроде бы), но вот как его довести?

прошу прощение, если мое предположение окажется полной ересью ))
*

MetaSpirit

  • Живу я здесь
  • 1379
  • 106
  • R.A.S.Lab[.org]
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #10 : 27.12.2013, 15:30:00 »
То что было описано, а именно ->get('value'), относится к полю текста, у селекта другой формат, посмотрите сам элемент.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

GrandKain801s

  • Новичок
  • 6
  • 0
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #11 : 27.12.2013, 16:57:57 »
То что было описано, а именно ->get('value'), относится к полю текста, у селекта другой формат, посмотрите сам элемент.

к сожалению у меня с элементом Селект так ничего и не вышло, пересмотрел весь PHP этого элемента, и перепробовал все что в нем есть, (а может и не все, я столько комбинаций перепробовал, что сбился со счета и толку), но нет худа без добра
я реализовал то что хотел при помощи элемента Текст (как Вы выше мне объяснили) + поэтому же принципу я смог сделать вписывание Декскрипшна с определенного для этого элемента ТекстАриа

Код
$document =& JFactory::getDocument();
if ($category = $this->item->getPrimaryCategory()){
     $document->setTitle($this->item->name.' - 3d модель - '.$this->item->getElement('c4124947-05a3-4ce5-97ee-c08848806390')->get('value'));
     $document->setDescription($this->item->getElement('83ba7366-d126-40f0-923e-3e7a94f0e773')->get('value'));
}

хотел еще как то оформить подобное для Keywords - стобы они брались с Тегов ЗУУ, но не нашел ИД этого эелемента, в конфиге, его просто нет (((
но думаю - это станет моим следущим "подвигом" немного позже )))

Благодарю  Вас MetaSpirit, спасибо Вам за оказанную помощь
*

MetaSpirit

  • Живу я здесь
  • 1379
  • 106
  • R.A.S.Lab[.org]
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #12 : 27.12.2013, 17:53:38 »
Если нужно, то все это реализовано в ZOOptimizere.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

GrandKain801s

  • Новичок
  • 6
  • 0
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #13 : 27.12.2013, 17:54:59 »
если вдруг кому-то мой труд пригодится, немного усовершенствовал

Код
$document =& JFactory::getDocument();
if ($category = $this->item->getPrimaryCategory()){
     $document->setTitle($this->item->name.' - 3d модель - '.$this->item->getElement('c4124947-05a3-4ce5-97ee-c08848806390')->get('value').' | CINEMA4D.801S ');
     $document->setDescription(' Скачать бесплатно '.$this->item->getElement('83ba7366-d126-40f0-923e-3e7a94f0e773')->get('value').' для Cinema 4d, в формате - '.$this->item->getElement('c4124947-05a3-4ce5-97ee-c08848806390')->get('value'));
}

в итоге получим

Код
  <title>Средневековый дом - 3d модель - c4d, obj, 3ds | CINEMA4D.801S </title>
  <meta name="description" content=" Скачать бесплатно Low Poly 3д модель Дома времен Средневековья, с текстурами для Cinema 4d, в формате - c4d, obj, 3ds" />
*

GrandKain801s

  • Новичок
  • 6
  • 0
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #14 : 27.12.2013, 18:01:39 »
Если нужно, то все это реализовано в ZOOptimizere.

спасибо, но мне хотелось докопаться до истины, так сказать,
я в будущем планирую, заниматься разработками сайта, и это стало для меня первыми шишками в PHP

я понимаю - что это конечно не метод его изучения, но хоть какой-то, опыт )))
___________

немного не по теме, не подскажите какие нибудь СТОЯЩИЕ книги или источник по изучению PHP, да-да, Google мне в руки, но может есть какие-то действительно хорошие труды на эту тему
*

MetaSpirit

  • Живу я здесь
  • 1379
  • 106
  • R.A.S.Lab[.org]
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #15 : 27.12.2013, 18:13:16 »
хаками далеко не продвинитесь,
основной труд - правильно поставленная задача и ее решение
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

likrion

  • Завсегдатай
  • 753
  • 126
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #16 : 01.01.2014, 04:25:56 »
немного не по теме, не подскажите какие нибудь СТОЯЩИЕ книги или источник по изучению PHP, да-да, Google мне в руки, но может есть какие-то действительно хорошие труды на эту тему

https://www.youtube.com/user/MrBooravoi/videos

нажимайте на кнопку "ЕЩЕ"

внизу должны быть лекции по php с 1 по 4 уровень(с установки php до ООП)
лекции читает профессор мгту им.Баумана  - очнь понятно доступно для изучения с нуля самое то, + еще много полезной информации

каждая лекция в среднем по два с половиной часа, не поленитесь уделить себе недельку для изучения
« Последнее редактирование: 01.01.2014, 04:29:13 от likrion »
R331474010295
*

newvideo

  • Осваиваюсь на форуме
  • 192
  • 2
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #17 : 23.01.2017, 12:09:26 »
Думаю с тэгами будет сложнее, там массив, я пытаюсь получить значение тэгов на странице, где выведен элемент с тэгами, но ничего не получается.
Вот так устроен вывод в элементе
Код
	public function render($params = array()) {

$params = $this->app->data->create($params);

$values = array();
if ($params->get('linked')) {
foreach ($this->_item->getTags() as $tag) {
$values[] = '<a href="'.JRoute::_($this->app->route->tag($this->_item->application_id, $tag)).'">'.$tag.'</a>';
}
} else {
$values = $this->_item->getTags();
}

return $this->app->element->applySeparators($params->get('separated_by'), $values);
}

в странице пишу
$tagg = $this->_item->getTags() as $tag;
echo 'tagggg: '.$tagg;
Выдает синтаксическую ошибку  syntax error, unexpected T_AS

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

robert

  • Профи
  • 4075
  • 376
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #18 : 23.01.2017, 12:17:13 »
Выдает синтаксическую ошибку  syntax error, unexpected T_AS
мне не нужны значения все в цикле, пойдет первый в списке, как его выковырять?
А цикла-то нету, вы просто изнасиловали PHP!
Не вникал в ZOO, но по контексту тут должен быть массив, так что это должно работать:
Код: php-brief
$tagg = $this->_item->getTags();
echo 'tagggg: '.$tagg[0];
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

newvideo

  • Осваиваюсь на форуме
  • 192
  • 2
Re: Вытащить значение элемента, ZOO 3.x
« Ответ #19 : 23.01.2017, 12:35:57 »
Код
$tagg = $this->_item->getTags();
echo 'tagggg: '.$tagg[0];
Спасибо, помогло, плюс!))
Цикл я имел в виду в коде элемента, он же ищет все тэги - foreach кажется.
кто не работает, тот ест
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Получить значение textarea

Автор SamDecKs

Ответов: 0
Просмотров: 254
Последний ответ 04.08.2016, 05:14:01
от SamDecKs
Как добавить проверку значения элемента при сохранении в админке?

Автор skat201

Ответов: 1
Просмотров: 326
Последний ответ 13.01.2016, 21:36:21
от likrion
Счетчик элемента

Автор Taiven

Ответов: 0
Просмотров: 375
Последний ответ 17.06.2015, 09:56:10
от Taiven