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

resurepus

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Мне нужен элемент, который бы объединял в себе уже созданные поля. Например, назовем его "Адрес", чтобы можно было добавить туда Улицу, Город, Индекс, Страну и т.д. То есть, чтобы использовались уще имеющиеся поля, а не создавать новые каждый раз. (И не только текстовые)

ПС: Пробовал создать кастомный элемент, как в документации на оф. сайте, модифицировав немного функцию проверки
Код
		public function hasValue($params = array()) {
$elements = ($this->_data->get('street')) ||($this->_data->get('zip')) ||($this->_data->get('country'));
return !empty($elements);
}
но когда захожу в "item", чтобы ввести значение, выдает ошибку "JHTMLcontrol not supported. File not found." и отсуствует поле ввода этого "Адреса". Я в PHP начинающий, буду благодарен за подсказки.
*

voland

  • Легенда
  • 11031
  • 587 / 112
  • Эта строка съедает место на вашем мониторе
Re: Создать кастомный элемент (2.4)
« Ответ #1 : 10.04.2011, 07:55:41 »
Если речь именно об адресе, то нет смысла создавать элемент.
Проще и правильнее переопределить вывод имеющихся полей в шаблоне вывода, объединив логически близкие
*

OKM

  • Захожу иногда
  • 68
  • 4 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #2 : 10.04.2011, 12:44:31 »
Берите за основу элемент link и модифицируйте под свои нужды, это самый простой и наглядный пример для создания собственного элемента. Не забудьте присвоить уникальное имя новому элементу.
*

resurepus

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #3 : 11.04.2011, 06:59:18 »
Если речь именно об адресе, то нет смысла создавать элемент.
Проще и правильнее переопределить вывод имеющихся полей в шаблоне вывода, объединив логически близкие
А подробнее можно? Что значит объединив логически близкие? Объединить их в одном элементе? Можно пример? (И не только об адресе, другие поля тоже).
Вообще я хочу, чтобы был таб (элемент) "Инфо", куда можно добавлять по много полей сразу, но чтобы выводилось одним элементом в одном табе.
*

voland

  • Легенда
  • 11031
  • 587 / 112
  • Эта строка съедает место на вашем мониторе
Re: Создать кастомный элемент (2.4)
« Ответ #4 : 11.04.2011, 07:20:37 »
А подробнее можно? Что значит объединив логически близкие? Объединить их в одном элементе? Можно пример? (И не только об адресе, другие поля тоже).
Вообще я хочу, чтобы был таб (элемент) "Инфо", куда можно добавлять по много полей сразу, но чтобы выводилось одним элементом в одном табе.
Ну да - эти табы делаются на уровне верстки, в шаблоне вывода фильтровать поля
Вот пример подобной верстки для зу.
*

resurepus

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #5 : 11.04.2011, 08:39:05 »
Ну да - эти табы делаются на уровне верстки, в шаблоне вывода фильтровать поля
Вот пример подобной верстки для зу.
Может я тормоз, но тыкните меня носом где там табы? Я пытаюсь сделать что-то типа этого.
Табы я сделал как в этой теме.

ПС: И как фильтровать поля? Что это значит?
Может кто-нибудь для примера сделать хотя бы рабочий элемент из примера на оф. сайте? А то у них там криво и не работает как надо.
« Последнее редактирование: 11.04.2011, 09:14:19 от resurepus »
*

OKM

  • Захожу иногда
  • 68
  • 4 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #6 : 11.04.2011, 16:19:41 »
Может я тормоз, но тыкните меня носом где там табы? Я пытаюсь сделать что-то типа этого.
Табы я сделал как в этой теме.

ПС: И как фильтровать поля? Что это значит?
Может кто-нибудь для примера сделать хотя бы рабочий элемент из примера на оф. сайте? А то у них там криво и не работает как надо.
На сайте примеры ещё на старом коде, новые версии зуу работают несколько с изменённым кодом.
Посмотрите элемент link, там все проще простого, накопируйте нужных полей и сделайте нужный вам формат вывода.
*

resurepus

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #7 : 12.04.2011, 05:39:34 »
На сайте примеры ещё на старом коде, новые версии зуу работают несколько с изменённым кодом.
Посмотрите элемент link, там все проще простого, накопируйте нужных полей и сделайте нужный вам формат вывода.

Не совсем так, я хочу использовать уже имеющиеся поля. Например, как в RelatedItems, RelatedCategories, чтобы можно было так же элементы добавлять.
« Последнее редактирование: 12.04.2011, 06:53:36 от resurepus »
*

resurepus

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #8 : 12.04.2011, 07:05:30 »
Посмотрел, вроде RelatedCategories подходит, можно переделать. Только вот откуда брать данные по элементам? Категории берутся из отдельной таблицы Categories, а элементы просто хранятся в табл. Items. Причем называются просто, например, "text", далее идет его "identifier".
Как мне получить именно поле Улица например, или Email?

PS: Может у меня вообще подход к проблеме неправильный?
*

topos

  • Захожу иногда
  • 78
  • 10 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #9 : 18.04.2011, 11:59:00 »
Создаем текстовое поле улица
Код
$this->app->html->_('control.text', 'elements['. $this->identifier .'][' . $this->index(). '][street]', $this->_data->get('street'), 'size="60" maxlength="255"');

Получаем значение поля

Код
$this->_data->get('street', ' ')
*

topos

  • Захожу иногда
  • 78
  • 10 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #10 : 03.05.2011, 22:18:07 »
Кто нить уже делал обязательное к заполнению поле элемента? Как реализовать чтобы элемент не создавался если поле не заполнено? Можно это сделать не правя ядро?
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Re: Создать кастомный элемент (2.4)
« Ответ #11 : 04.05.2011, 17:06:43 »
Код: php
public function hasValue($params = array()) 
{
 $elements = $this->_data->get();
 return !empty($elements);
}
Если функция будет возвращать true - элемент будет отображатся всегда, а при таком раскладе, только когда есть данные.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

topos

  • Захожу иногда
  • 78
  • 10 / 0
Re: Создать кастомный элемент (2.4)
« Ответ #12 : 05.05.2011, 09:34:46 »
 Из-за того, что  элементы(в смысле item) и элементы(elements) называются у нас одинаково, вы меня не так поняли. Мне необходимо чтобы item не создавался если поле элемента(elements) не заполнено. Наподобие того как это сделано с полем name.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Элемент Image ( значение по дефолту)

Автор G300

Ответов: 22
Просмотров: 3437
Последний ответ 02.12.2020, 12:14:39
от vasmed
[Элемент] Calcage - показ возраста в годах

Автор likrion

Ответов: 20
Просмотров: 2981
Последний ответ 13.06.2019, 22:08:39
от Oliska76
[Руководство] Как создать вкладки (табы, панели) в материале ZOO 2.0

Автор ScratchUA

Ответов: 173
Просмотров: 50515
Последний ответ 21.04.2016, 16:57:15
от Cherepok15
[Элемент] Glink Ссылка кнопка

Автор likrion

Ответов: 15
Просмотров: 4653
Последний ответ 01.02.2016, 11:14:24
от likrion
[Элемент] archiv - перенос элемента в архивную категорию по окончанию публикации( и ее продление )

Автор likrion

Ответов: 37
Просмотров: 5389
Последний ответ 22.10.2015, 08:13:12
от nick71