Новости 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 Гость просматривают эту тему.
  • 268 Ответов
  • 34244 Просмотров
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Цитировать
Я думаю что тут понятно. Удалить компонент.(Удалить все!)

Ну попробуйте удалить какие-нибудь компоненты форумов, комментариев, личных сообщений, гостевых книг - в подавляющем большинстве таблицы не удаляются с ходу, поскольку содержат информацию, которая может представлять ценность. А тут магазин.
Неплохо хотя бы предупреждение при удалении "Таблицы базы данных будут удалены. Вы не забыли сделать копию базы данных?"



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

На 42 поля таблицы _products всего два индекса - первичный (id товара) и id производителя - этого достаточно?

Большинство таблиц - вообще только один первичный индекс, есть таблицы, где ни одного индекса не определено.

Там есть весьма громоздкие конструкции WHERE в поисковых запросах, как эти запросы без индексов будут обрабатываться при количестве товаров хотя бы больше 1000 ?

А народ кроме того хочет всяческих выборок, сортировок и дополнительных атрибутов.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
И арифметические выражения из условий WHERE  в целях оптимизации запроса лучше убрать, вроде таких:

Код
$where[] = " AND ( (prod.product_price * ".$jshopConfig->currency_value.") <= " . $price_to ...

Вместо этого сразу переменную поискового запроса пересчитать, например:

Код
$search_price = $price_to / $jshopConfig->currency_value;
....
....
$where[] = " AND ( prod.product_price <= " . $search_price ...
*

sasha_ua

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Предложение по поводу изображений.


1. Хотелось бы задавать размеры для 3х типов изображений:


Допустим:
1. Картинка на странице списка товаров(browse в VM) 100px
2. Картинка на странице товара 300px
3. Мини-изображения на странице товара 50px

Т.е. если я правильно понял то у вас хорошая идея, загружаешь изображение в максимальном качестве, а система делает автоматом все остальное.

2. Но можно добавить опцию, к примеру (на изображении под цифрой 2), задаю размер 300x300px, а картинка 200х200px скрипт растянет и будет некрасиво.
Возможно сделать чтобы ресайз был возможен в меньшую но не в большую(иногда нельзя найти изображение необходимого размера)?

3. Такое планируется по клику на мини-изображениях? :)
« Последнее редактирование: 10.01.2011, 23:17:06 от sasha_ua »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
А над индексами таблиц ещё работать планируется?
Функционал магазина уже достаточно обрисовался, чтобы заняться оптимизацией запросов к базе.

На 42 поля таблицы _products всего два индекса - первичный (id товара) и id производителя - этого достаточно?

Большинство таблиц - вообще только один первичный индекс, есть таблицы, где ни одного индекса не определено.

Там есть весьма громоздкие конструкции WHERE в поисковых запросах, как эти запросы без индексов будут обрабатываться при количестве товаров хотя бы больше 1000 ?

А народ кроме того хочет всяческих выборок, сортировок и дополнительных атрибутов.

Оптимизация будет.

Тестировал на магазине 100 000 продуктов. (работает нормально).
*

sasha_ua

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Знаю что раскатал губу, но это то чего не хватало в виртумарте:

4. Мультивалютность, т.е. чтобы я мог выводить 2 цены, например доллары/гривна. Базовая цена в долларе а пересчетная в гривне.
Хотелось бы прямо в админке вводить курсы валют.
Предлагаю добавить в БД таблицу или расширить существующую для пересчетных валют.
Это будет выглядеть так:
1. Ввожу курс доллара (Например 1$ = 8грн)
2. Нажимаю кнопку "Пересчитать"
3. Базовая цена в долларе 100$ пересчитывается в 800грн и заносится в БД в отдельный столбец.
У меня в магазине на ВМ реализована данная фишка но криво, т.е. пересчет осуществляется на лету, из БД мне кажется правильнее запрашивать.

5. Вот еще очень востребованная фишка:
« Последнее редактирование: 10.01.2011, 23:17:17 от sasha_ua »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Мультивалютность Работает как вы описали.
« Последнее редактирование: 10.01.2011, 23:25:48 от victorantoniak »
*

sasha_ua

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Цитировать
1. Работает как вы описали.
Для изображений 1 и 3 размер общий, если вы обратили внимание подчеркнутое слишком мало, оба изображения 50px.
Обратите внимание как на Амазоне, там мини-картинки 30х30 чтобы были компактнее.

Хотелось бы так:
1. 100px
2. 300px
3. 50px

Или вы имели ввиду мультивалютность? Если да то как вывести вторую валюту?
« Последнее редактирование: 10.01.2011, 23:26:30 от sasha_ua »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Тестировал на магазине 100 000 продуктов. (работает нормально).

Ну, смотря какой сервер - можно ведь и вообще без оптимизации обойтись, если мощности позволяют.
Так такие в основном и не пользуются бесплатными решениями, а делают под заказ.

А ведь многие здесь сидят на виртуальном хостинге и трясутся, чтобы квоту нагрузки на сервер не превысить,
иначе хостер заставит перейти на более дорогой тариф.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Для изображений 1 и 3 размер общий, если вы обратили внимание подчеркнутое слишком мало, оба изображения 50px.
Обратите внимание как на Амазоне, там мини-картинки 30х30 чтобы были компактнее.

Хотелось бы так:
1. 100px
2. 300px
3. 50px

Или вы имели ввиду мультивалютность? Если да то как вывести вторую валюту?

мультивалютность.

Вы взяли 1 переменили на 4 (и сами запутались)
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Ну, смотря какой сервер - можно ведь и вообще без оптимизации обойтись, если мощности позволяют.
Так такие в основном и не пользуются бесплатными решениями, а делают под заказ.

А ведь многие здесь сидят на виртуальном хостинге и трясутся, чтобы квоту нагрузки на сервер не превысить,
иначе хостер заставит перейти на более дорогой тариф.
Пробуйте. будут проблемы, будем решать.

Нет програм, без ошибок.
*

sasha_ua

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
1. Добавить бы в jos_jshopping_products - поле "product_special"(Признак акционности).
Или у вас это по другому реализовано?

У вас есть модули:
Module Latest products
Module Bestseller
Module Top rating

Допустим я на первую страницу вывожу не список категорий а спецпредложения, такой флаг пригодился бы для выборки по аналогии с вышеперечисленными модулями.

2. Еще проблема, при выводе модулей в Главной области, при нажатии на категории ничего не выводится, вот скрин:
« Последнее редактирование: 11.01.2011, 23:16:26 от sasha_ua »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Такой флаг уже существует.
Смотрите Метка для продукта.
Вывод только через модули.
Через компонент будет позже.
*

sasha_ua

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
1. Вы имеете ввиду jos_jshopping_products - label_id?

Не понял по второму вопросу..
По логике модуль "Каталог товаров" при использовании должен замещать главную область.

Обратите внимание на OZON.RU

На главной странице выводятся такие полосы:
- Купившие то, чем вы интересовались, также покупают
- Другие пользователи сейчас смотрят
- Книги. Бестселлеры
- Электроника. Бестселлеры
- Музыка

Выборки могут быть любыми..
Но когда кликаешь по меню, вывод замещает основную область.
*

Сержo

  • Захожу иногда
  • 113
  • 4 / 1
victorantoniak, пожелание в догонку, так сказать.

По ходу создания магазина, заметил одну маленькую проблемку, нет проверки на нулевую цену, что не есть гут. При добавлении товара человек может просто пропустить случайно, и товар добавится с ценой в 0,00, чем сразу постараются воспользоваться не добропорядочные граждане. И при подтверждении в виде фото или скрина, могут ещё и через суд добиться бесплатного товара. :)

Так же, было бы куда удобней если бы языковые закладки описания товара, были бы внутри закладки Информация о товаре. Или хотя бы сделать одну закладку Описание товара, с внутренними закладками языков, и основными настройками, типа публикация, категории и т.д.. А уже на закладке Информация о товаре, всё остальное.
А так, довольно запутано, с начало пишешь название и прочее, а потом ищешь где категория. Конечно к этому привыкнуть можно, но всё же.
« Последнее редактирование: 12.01.2011, 16:52:49 от Сержo »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Спасибо за советы.

Почему языковые закладки вам не нравятся. Я думаю удобно.
*

Сержo

  • Захожу иногда
  • 113
  • 4 / 1
Почему языковые закладки вам не нравятся. Я думаю удобно.
Языковые закладки удобно, просто неудобно что они отдельно от выбора категории и других основных опций. Намного удобней думаю было бы, если бы первая закладка сверху содержала выбор категории, публикация и там может ещё чего, а ниже закладки с языками. Во первых я сразу определяю куда товар, публикация и прочие, и уже ниже не уходя с закладки делаю тексты. Особенно это будет удобно, если на сайте не один-два языка, а к примеру 5 и больше.

Но это только моё мнение, я ориентируюсь на удобство пользования, я веб дизайнер, у меня свои представления, которые могут отличаться от представления других.
*

Сержo

  • Захожу иногда
  • 113
  • 4 / 1
Кстати, было бы не плохо добавить и выбор языков, которые добавляются в магазин, из тех что установлены.
К примеру сайт на 10-и языках, а магазин надо только на трёх, но магазин автоматом добавляет все по умолчанию. В результате везде где тексты и переводы, будет большая куча закладок, или список из окон редакторов такой, что запаришься прокручивать, пока найдёшь нужный язык.

Это к тому, что я к примеру сейчас делаю сайт с этим магазином, сайт на двух языках, но стоят три, так как клиенту админка нужна и на английском. В результате вместо двух активных, русский и немецкий, во всех товарах и других опциях, везде ещё и английский присутствует.

Конечно, это всё не кретично и не важно, но просто предложение на будущее.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Список языков   administrator/index.php?option=com_jshopping&controller=languages
*

vit3716

  • Осваиваюсь на форуме
  • 28
  • 3 / 0
было бы здорово если при добавлении картинки товара накладывался watermark.
*

Сержo

  • Захожу иногда
  • 113
  • 4 / 1
Цитировать
Список языков   administrator/index.php?option=com_jshopping&controller=languages
Опля..., моя вина, плохо смотрел. Когда понадобилось по языкам, я эту закладку просто в упор не смог найти, хотя казалось всё просмотрел.
*

Сержo

  • Захожу иногда
  • 113
  • 4 / 1
Еще одно предложение. Походу работы над модулем корзины столкнулся с тем, что переводы на русский, как и немецкий, не везде так сказать в тему. К примеру, если в корзине 1 товар, или больше, всё равно пишет Продуктов, хотя должно быть 1 продукт, 2,3,4 продукта, 5 и больше продуктов. Правда с немецким понадобится только два варианта, Produkt и Produkte.

Я конечно внёс себе эти изменения, добавив нужное в лэнгвич файл, и прописав проверку в модуле в стиле шаблона, да только при обновлении придётся постоянно править ленгвич файл. Не знаю ещё точно, может что ещё в таком роде есть, без склонений.

Или хотя бы делать так, не "1 Продуктов", а "Продуктов в корзине: 1". В таком случае склонение не обязательно.
*

dmitry.pr

  • Осваиваюсь на форуме
  • 41
  • 4 / 0
Не трудно. (Мульти селек + сохранять масив а не число)
А мультиселект для меток вы можете сделать? очень надо такое )
*

xDD

  • Захожу иногда
  • 300
  • 4 / 0
А можно ли как то всем товарам сразу проставить, чтоб от 20 шт. другая цена? А то каждому товару проставлять очень долго получаеться товара много более 1000 шт.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
нет. Каждый имеет свою цену.
*

morph

  • Давно я тут
  • 924
  • 105 / 0
список хотелок ))
-имена картинок категорий и товаров  нужна возможность  задавать самому т.к рандомное название не очень красиво - также в вирте - многие клиенты просили переделывать ,титлы и т.п назначать картинкам...
-нужна настройка своих пользовательских полей при регистрации- чтобы создавать свои поля разного типа(календарь,вып. список,галка) в админке - как в вирте - очень удобно клиентам))
- а будут русские способы оплаты? Webmoney,яды?
-оплата - доставка зависимый выбор - тож очень желательно )
-атрибуты бы дополнить - файлы,чекбоксы, несколько чекбоксов,чтобы был мультивыбор нескольких атрибутов.
- тип характеристик(для фронта) - чекбокс,селект,мультиселект,от до, число и т.п.
- может в админке модальными окнами сделать такие элементы как Опции атрибутов - чтоб все перед глазами было?- в тиенде так)) - удобно
- мультипродавцов хочу ужасно )
- дочерние товары (контейнеры)
- странаца с инфой о производителе а не только ссыль на отбор товаров по нему
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
После 2.7.0 будем делать мультипродавцов.

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

Опишите что вам нужно от мультипродавцов. И как вы себе это представляете.
*

Сержo

  • Захожу иногда
  • 113
  • 4 / 1
Еще одно очень важное пожелание, не нашёл в магазине в настройках, хотя может опять в упор не замечаю. Нужно сделать выбор для отправки подтверждения и прочего, только на одном языке, к примеру на немецком, в не зависимости от языка сайта, на котором идёт заказ. Просто при заказе на русском, я получаю рехнунг на русском, а по идее должен быть на немецком, раз магазин в германии.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
В настройках нет.
Думаю позже исправим.
*

Сержo

  • Захожу иногда
  • 113
  • 4 / 1
Окей, хорошо бы в ближайших версиях, так как ну очень уж критическое пожелание. :)
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Извините. не могу обещать в ближайших версиях.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться