Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Характеристики товара, как лучше сделать?

Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1531

  • malavka
  • malavka аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 58
  • Спасибо получено: 1
  • Репутация: 0
Привет, друзья!

У моего товара есть такие характеристики:
  • Крытая площадь: 165 кв.м
  • Площадь участка: 400 кв.м
  • Спальни: 2
  • Кухня: 1
  • Ванные комнаты: 4
  • Парковка
  • Рядом с морем и песчаным пляжем
  • Близко к магазинам
  • Камин
  • Встроенный шкаф
  • Центральное отопление
  • Кондиционеры
  • Бассейн (частный)
  • Место для пикника
  • Беседка
  • Гараж
  • Встроенный шкаф
  • Центральное отопление
  • Кондиционеры
  • Бассейн (частный)
  • Мебель

Спален может быть одна, может быть три, парковки-бассейны, гаражи- аналогично.
Т.е. не каждая характеристика будет больше одной. А выводить Бассейн- 1 шт. как-то не очень, мне кажется.

Как правильно тип контента организовать, подскажите, пожалуйста?
Чтобы потом клиент мог выбрать торвар с 2-мя спальнями и 1-м гаражом, к примеру.

Спасибо
Администратор запретил публиковать записи гостям.

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1533

  • Keanor
  • Keanor аватар
  • Не в сети
  • Модератор
  • Сообщений: 190
  • Спасибо получено: 49
  • Репутация: 14
Создаете ТК, накидываете туда полей, и всё. Поля у которых ограниченное кол-во вариантов значений делаете через select simple, другие через text, некоторые параметры (да/нет) можно объединить в checkbox. В чем суть вопроса не понятно.
Личные сообщения не читаю! Вообще!
Администратор запретил публиковать записи гостям.
Спасибо сказали: malavka

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1534

  • malavka
  • malavka аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 58
  • Спасибо получено: 1
  • Репутация: 0
Суть проблемы в том, что я не знаю как правильно объединить текст и цифру в одно поле.
Кухня: 1 - плохо выглядит. Лучше писать: Кухня.
Спальни: 2 - нормально выглядит, но если она одна, более красиво написать просто Спальня.
Администратор запретил публиковать записи гостям.

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1536

  • Keanor
  • Keanor аватар
  • Не в сети
  • Модератор
  • Сообщений: 190
  • Спасибо получено: 49
  • Репутация: 14
Используйте поле checkbox
Личные сообщения не читаю! Вообще!
Администратор запретил публиковать записи гостям.
Спасибо сказали: malavka

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1544

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 668
  • Спасибо получено: 194
  • Репутация: 66
эх. писал-писал ответ, и случайно страницу закрыл...
Ну ладно, попробую ответить снова.

Тут надо сказать про некоторые тонкости создания полей.
первый момент.
Для того, чтобы в поле хранилось цифровое значение, или любое другое, при использовании полей select simple, checkbox и др. указывайте в поле опции данные как опция=значение, или, например, одна кухня=1.
При этом в базе данных сохраняется значение "1", а название опции хранится в настройках поля.
Тем самым вы всегда имеете возможность изменять выводимую надпись (опцию) при необходимости. Вы можете вывести любое название опции в контенте (создав еще одно поле select simple в котором изменить названия опций на нужные: 1=1, 2=2, 3=3, либо 1 шт=1, 2шт=2 и т.д. Storage поля, естественно, указать аналогичный первому полю, для того, чтобы значения поля брались из той же ячейки БД. Разместить второе поле (с нужными опциями) вместо первого в контенте. Тем самым вы получите: в форме в поле выбор "одна кухня", "две кухни" и т.д., а в контенте "1, 2, 3" и т.д.
Вы также можете изначально добавлять значения в БД обычным текстовым полем, вводя цифры (кол-во кухонь) в него, а в выводе с помощью select simple, с тем же Storage, выводить уже нужное вам значение (опцию). Думаю этот момент разжевал детально.
Это если стандартными средствами. У нас еще есть огромный функционал кастом шаблонов и овверайда позиций, который позволяет нам обрабатывать хранимые значения полей как угодно и выводить в нужном виде. Например, для того чтобы получить значение! поля в контенте в кастоме указываете <?php echo $cck->get('имя_поля')->value; ?>.
Для получения опции поля <?php echo $cck->get('имя_поля')->text; ?>, для получения лейбла поля <?php echo $cck->get('имя_поля')->label; ?>, для вывода поля со всеми его настройками: typo, ссылками, лейблами и т.д. <?php echo $cck->renderField('имя_поля'); ?> и т.д. Почитайте советы и документацию по кастомам.

Второй важный момент.
Если у вас стоит задача в дальнейшем осуществлять поиск по диапазону полей, которые вы сохраняете (вывести объекты с количеством комнат от и до, площадью от и до и т.д.), либо проводить какие-то арифметические операции с полями - сохраняйте их в одном из цифровых типов в БД, например INT (при создании поля галочка Alter возле Storage).
В случае если будет выбран строковый тип данных, например, Varchar, который установлен по умолчанию - такого вида операции будут производится некорректно. Формат поля Вы всегда можете изменить и после создания полей, непосредственно в БД, либо нажав Alter и изменив тип данных непосредственно в настройках поля.

В Seblod есть одна проблема, или скорее особенность, с цифровыми полями, типа int.
О плюсах применения данного типа я уже сказал, однако из-за особенности типа данных, в поле по умолчанию всегда хранится 0, и изменить это не получится. В Seblod отсутствует опция в настройках поля "скрывать значение, если оно =0" (разработчики благодаря нашим стараниям обещали добавить в будущих версиях). Тем самым, даже если поле Вами не было заполнено - оно будет отображено с нулевым значением в контенте.
Это легко решается проверкой значения в поле в овверайде позиции перед выводом - например, кодом <?php if ($cck->get('имя_поля')->value !=0){echo renderField('имя_поля');} ?>
, т.е. если значение поля не равно нулю, тогда выводить это самое поле.

надеюсь, рассказал об основых моментах, на которые стоит обратить внимание.
С уважением,
Юрий Посохов
www.seblod.pro
Реквизиты для поддержки проекта seblod.pro:
WMR: R244179985703, WMZ: Z130736735723, WME: E359359968529
PayPal: moscowfly(cобаCHка)gmail.сом
Яндекс.Деньги: 410011637395363

Для ваших проектов рекомендую хостинг от Beget! Стабильная работа сайтов Joomla, отличная поддержка. БЕСПЛАТНЫЙ тестовый месяц без ограничений! Регистрируясь по реферальной ссылке Вы также поддерживаете наш проект! http://beget.ru?id=21871
Администратор запретил публиковать записи гостям.
Спасибо сказали: Vitek72, Keanor, malavka, liv

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1545

  • malavka
  • malavka аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 58
  • Спасибо получено: 1
  • Репутация: 0
Спасибо Вам огромное! Очень приятно и главное- полезно получать такие развернутые ответы. Особенно такому чайнику в Себлоде, как я.
Администратор запретил публиковать записи гостям.

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1547

  • malavka
  • malavka аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 58
  • Спасибо получено: 1
  • Репутация: 0
--
Это легко решается проверкой значения в поле в овверайде позиции перед выводом - например, кодом <?php if ($cck->get('имя_поля')->value !=0){echo renderField('имя_поля');} ?>
, т.е. если значение поля не равно нулю, тогда выводить это самое поле.
--
Юрий, я пока не очень разбираюсь в оверрайде. Подскажите, пожалуйста, куда я должен вставить этот код? Чтобы не выводить, к примеру поле "Площадь: " area (Text INT) , если оно не было заполнено.
Ну и почитать про оверрайд в Себлод тоже очень хочу.
Спасибо
Администратор запретил публиковать записи гостям.

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1549

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 668
  • Спасибо получено: 194
  • Репутация: 66
Про овверайд читайте здесь -
http://www.old.sebloders.ru/documentation-blog/95-seblod-templates/73-custom-templates-start
Туда же его и вставлять.
Т.е. к примеру у вас поля, которые вы хотите проверить, лежат в позиции mainbody -
создайте папки в соответствии с документацией, добавьте файл mainbody.php в конечную, туда вставьте этот код.
Поскольку овверайд полностью переписывает позицию, то в выводе будет только то, что Вы напишете в файле - если у вас в позиции 20 полей, а в файле mainbody.php вы напишите код только для одного поля - будет выведено 1 поле.
соответственно, для всех остальных полей, которые вам просто нужно вывести (без проверки),
пишите echo $cck->renderField('имя_поля');
Почитайте Советы, там есть список API команд для вывода в овверайдах.
С уважением,
Юрий Посохов
www.seblod.pro
Реквизиты для поддержки проекта seblod.pro:
WMR: R244179985703, WMZ: Z130736735723, WME: E359359968529
PayPal: moscowfly(cобаCHка)gmail.сом
Яндекс.Деньги: 410011637395363

Для ваших проектов рекомендую хостинг от Beget! Стабильная работа сайтов Joomla, отличная поддержка. БЕСПЛАТНЫЙ тестовый месяц без ограничений! Регистрируясь по реферальной ссылке Вы также поддерживаете наш проект! http://beget.ru?id=21871
Администратор запретил публиковать записи гостям.
Спасибо сказали: malavka, liv

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1577

  • malavka
  • malavka аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 58
  • Спасибо получено: 1
  • Репутация: 0
=====
В Seblod есть одна проблема, или скорее особенность, с цифровыми полями, типа int.
О плюсах применения данного типа я уже сказал, однако из-за особенности типа данных, в поле по умолчанию всегда хранится 0, и изменить это не получится.
=====
Быстрее бы вышла новая версия, где это исправят. Вроде такая простая вещь, а ее нет.
Администратор запретил публиковать записи гостям.

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1586

  • Keanor
  • Keanor аватар
  • Не в сети
  • Модератор
  • Сообщений: 190
  • Спасибо получено: 49
  • Репутация: 14
Мне как программисту такое поведение кажется правильным :) Ну или как минимум логичным )
Личные сообщения не читаю! Вообще!
Администратор запретил публиковать записи гостям.

Re: Характеристики товара, как лучше сделать? 5 года 6 мес. назад #1587

  • admin
  • admin аватар
  • Не в сети
  • Администратор
  • Сообщений: 668
  • Спасибо получено: 194
  • Репутация: 66
Ну работа с int и БД абсолютно логична - так и должно быть!
Но вот отсутствие проверки стандартными средствами Seblod на null или 0 в поле, ИМХО, существенная недоработка. Также как и возможность показать поля, с отсутствующими значениями (где просто пусто) - такое тоже иногда требуется.
С уважением,
Юрий Посохов
www.seblod.pro
Реквизиты для поддержки проекта seblod.pro:
WMR: R244179985703, WMZ: Z130736735723, WME: E359359968529
PayPal: moscowfly(cобаCHка)gmail.сом
Яндекс.Деньги: 410011637395363

Для ваших проектов рекомендую хостинг от Beget! Стабильная работа сайтов Joomla, отличная поддержка. БЕСПЛАТНЫЙ тестовый месяц без ограничений! Регистрируясь по реферальной ссылке Вы также поддерживаете наш проект! http://beget.ru?id=21871
Администратор запретил публиковать записи гостям.

Характеристики товара, как лучше сделать? 2 года 9 мес. назад #9243

  • vetkrs
  • vetkrs аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 76
  • Спасибо получено: 1
  • Репутация: 0
Подскажите как правильно создать папки для овверайда результата поиска в позиции mainbody
название поиска filter_tovarov
Так
seb_one/positions/_content_type/content/mainbody.php
или так
seb_one/positions/filter_tovarov/content/mainbody.php
а может так
seb_one/positions/filter_tovarov/item/mainbody.php
Я так понял для LIST нельзя оверрайд сделать?
Администратор запретил публиковать записи гостям.

roundtheme