Новости Joomla

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

Денис-SP

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
Друзья, приветствую!

В магазине закончились характеристики товаров. Исчерпан лимит в 190 штук. Выход для добавления новых товаров - это новый сайт. Либо в рамках уже существующего домена (развернуть новый сайт в каталоге действующего), либо сайт на отдельном поддомене.  Первый вариант наиболее предпочтителен.

Отсюда вопрос:
Как эти 2 сайта (или больше) объединить общей корзиной с товарами и общим личным кабинетом?

Пример такой "связки" общеизвестный викимарт:
Если положить в корзину товары из категорий _http://appliances.wikimart.ru/large/ и _http://computers.wikimart.ru/computers/ , то их можно купить без проблем из одной корзины залогинившись единожды.

Может подскажете что-то ещё..? Буду признателен.
 
*

artful knave

  • Захожу иногда
  • 68
  • 8 / 0
Может подскажете что-то ещё..? Буду признателен. 
попробуйте для начала исправить в MySQL тип полей extra_field_### на TEXT.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
корзину технически можно, тот же модуль и БД.
но как вы заказы планируете? тут столько "минусов" начнётся
статистика, настройки и тд.? это как?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
нашёл нужное для вас решение:
Невиген-ему пишите, платно за услугу, если не занят, и постарается решить вопрос.
Нев лучший!
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
попробуйте для начала исправить в MySQL тип полей extra_field_### на TEXT.
и в этом поможет DB Checker
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Денис-SP

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
Всем спасибо за участие и оперативнось.
и в этом поможет DB Checker
Ничего дельного не нагуглил. Можно подробнее?

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
https://www.webdesigner-profi.de/joomla-webdesign/shop/addons/check-db-structure-table-shop.html?lang=en

а также чтобы вновь создаваемые характеристики были text
Цитата: \components\com_jshopping\lib\default_config.php
$config->new_extra_field_type = 'text';
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
В инете пишут что если "text" - то будет проблема с сортировкой... ?
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
во-первых в интернете и не такое пишут. а во-вторых, вы в принципе сортируете по столбцам характеристик?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Денис-SP

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
во-первых в интернете и не такое пишут. а во-вторых, вы в принципе сортируете по столбцам характеристик?
Что значит "сортировать по столбцам характеристик"?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Что значит "сортировать по столбцам характеристик"?
в мускуле
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну как например по цене сортировка от большей к меньшей или наоборот, по наименованию (по алфавиту), и т.п.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Денис-SP

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
ну как например по цене сортировка от большей к меньшей или наоборот, по наименованию (по алфавиту), и т.п.
Используется 2 фильтра: первый от невиджен (Модуль AJAX фильтр товаров) + второй по умолчанию (сортировка в категориях товаров).
Они будут работать, если сменить тип полей extra_field_### на TEXT ?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
фильтры обеспечивают сортировку ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
если сменить тип полей extra_field_### на TEXT ?

как вы думаете, почему я написал
во-первых в интернете и не такое пишут
? это касается только случая, когда для русского текста есть несоответствие кодировок поля и таблицы/базы, да еще и плюс MySQL версии 4, о которой уже все забыли, потому что в ней нельзя переопределить на стороне клиента кодировку. а поскольку во-первых для Joomla все должно быть UTF-8, а во-вторых уже давно MySQL 5.5 или по крайней мере 5.1, то не вижу смысла рассматривать эту проблему вообще.

ну и
во-вторых, вы в принципе сортируете по столбцам характеристик?
:) в 99.99% случаев ответ думаю будет "нет"
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Денис-SP

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
nevigen, dmitry_stas спасибо большое за участие и развёрнутые ответы.
В ближайшее время изменю типы полей и отпишусь о результате.
*

Денис-SP

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
Реализовал:
1. Установил Check DB structure table shop и при прохождении проверки исправлены были поля на "text"
2. В файле www/components/com_jshopping/lib/default_config.php добавил вконце $config->new_extra_field_type = 'text';
3. Импортировал 50 новых характеристик. Итого характеристик сейчас в админке 234 штуки.

После импорта характеристик движок отдал предупреждение: "Ошибка записи в базу данных", но характеристики (все 50) были добавлены в админку.
При этом на сайте перестала отображаться часть фильтра (стоит от https://nevigen.com/ru/modules/universalnyj-ajax-filtr-joomshopping.html ), которая отвечает за работу с характеристиками. Осталась только эта часть: http://c2n.me/3qPrK52

В админке, если пройти в сам аддон Check DB , вылезло вот это: http://c2n.me/3qPs6HR и исправлению не поддаётся.
При чём характеристика с ID 323 это характеристика с порядковым номером 191.
Т.е. записать в админку их больше, чем 190 получилось, но не более.

Буду признателен за помощь как это дело побороть и нормализовать работу характеристик которых более 190 штук.
*

ViktorMah

  • Захожу иногда
  • 252
  • 30 / 0
лучше бы сами характеристики создали руками. а свойства характеристик импортировали.

я сейчас делаю сайтик - так в нём уже 680 характеристик и более 4000 их свойств. И пока не замечал проблем с модулем фильтра. Копирую базу характеристик яндекс-маркет "Компьютерные комплектующие" + "Ноутбуки ".
По моим подсчётам,  режим $config->new_extra_field_type = 'text'; позволит мне создать порядка 1500-2000 характеристик.

Для импорта и экспорта из/в БД <=> .xlsx пользую эту программку https://www.devart.com/ru/dbforge/mysql/studio/
 
« Последнее редактирование: 26.11.2015, 09:34:51 от ViktorMah »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
1. Убедитесь, что существующие столбцы имеют тип TEXT
2. Выполните в phpMyAdmin запрос
Код
ALTER TABLE ПРЕФИКС_jshopping_products ADD extra_field_666 TEXT
и скажите какая будет ошибка
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Денис-SP

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
1. Убедитесь, что существующие столбцы имеют тип TEXT
Скрин: http://c2n.me/3qQTn8L

2. Выполните в phpMyAdmin запрос
Код
ALTER TABLE ПРЕФИКС_jshopping_products ADD extra_field_666 TEXT
и скажите какая будет ошибка
ошибки не возникло.
« Последнее редактирование: 25.11.2015, 23:09:04 от Денис-SP »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
как это сделать?
в phpMyAdmin посмотреть

ошибка:
#1146 - Table 'baza-2.префикс_jshopping_products' doesn't exist
ну а префикс на свой поменять - не? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Денис-SP

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
поправил предыдущее сообщение
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
речь идет о таблице префикс_jshopping_products . столбцы в ней, и в запросе префикс поменять тоже для нее
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Товар - файл. Как ограничить добавление в корзину только 1 шт?

Автор SLV

Ответов: 15
Просмотров: 2358
Последний ответ 24.07.2025, 11:34:21
от SLV
Добавить кнопку 'В корзину'

Автор Indexxx

Ответов: 16
Просмотров: 3226
Последний ответ 13.09.2023, 10:42:25
от kit2m2
Как убрать системные сообщения о добавлении товара в корзину?

Автор Dolphin4ik_1

Ответов: 3
Просмотров: 718
Последний ответ 05.10.2021, 16:12:44
от draff
Отключить сообщение "товар добавлен в корзину."

Автор Dolphin4ik_1

Ответов: 0
Просмотров: 573
Последний ответ 10.04.2021, 12:00:27
от Dolphin4ik_1
При нажатии на кнопку toogle+jquery добавляется в корзину товар

Автор Dolphin4ik_1

Ответов: 2
Просмотров: 660
Последний ответ 24.02.2021, 13:24:38
от Dolphin4ik_1