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

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Ошибки магазина
« Ответ #510 : 21.03.2013, 11:03:35 »
Так и должно быть.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Ошибки магазина
« Ответ #511 : 21.03.2013, 11:08:16 »
хм...
продавать в долг ?
забавно как можно продать товара больше чем есть ?
При любых настройках такого быть не должно по идее
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

assaru

  • Давно я тут
  • 763
  • 88 / 1
Re: Ошибки магазина
« Ответ #512 : 21.03.2013, 11:27:00 »
Так и должно быть.
Так быть НЕ должно. (Если конечно не хочется последующих разборок с покупателем).
В одном магазине продается товар, который можно заказать/изготовить, уговорив покупателя подождать. В другом магазине продается эксклюзивный товар (10 одинаковых матрешек ручной работы, мастер запил/пропал/больше не работает - товара больше нет и взять неоткуда.).
Проблему можно решить и по скрину и по эмоциям, счет на оплату через ЛС (с) Nobody
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Ошибки магазина
« Ответ #513 : 21.03.2013, 19:58:50 »
Цитировать
Ставим галочку "Скрыть кнопку купить, если товара нет на складе". Оформляем заказ на 20 единиц товара. Заказ не оформляется, сообщение о превышении количества отображается.

Так и должно быть.

Если опция отключена (количество не учитывается)
*

falur

  • Осваиваюсь на форуме
  • 44
  • 4 / 0
Re: Ошибки магазина
« Ответ #514 : 21.03.2013, 22:32:14 »
авторизованные пользователи могу видеть форму регистрации
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ошибки магазина
« Ответ #515 : 21.03.2013, 23:00:35 »
русский ленг - День рождениЕ -> День рождениЯ
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

del1rium

  • Новичок
  • 8
  • 0 / 0
Re: Ошибки магазина
« Ответ #516 : 22.03.2013, 01:43:44 »
версия 3.14.0

При создании/редактировании заказа вручную невозможно выбрать пол клиента, также не подгружается пол уже имеющихся в базе клиентов (вместо пола в заказе отображается "выберите"), пол возможно выбрать/изменить только вручную в MySQL.

И еще есть пожелание - при создании заказа вручную если не выбрать опцию "Завершенный", заказ не появляется в списке. Возможно ли сделать в последующих версиях, чтобы заказ все же отображался со статусом "В ожидании", ибо не всегда на момент создания заказ имеет статус "Выполнен". Приходится каждый раз лезть в MySQL и ставить  order_created = "1"
« Последнее редактирование: 22.03.2013, 11:49:04 от del1rium »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ошибки магазина
« Ответ #517 : 22.03.2013, 09:57:51 »
Цитировать
при создании заказа вручную если не выбрать опцию "Завершенный", заказ не появляется в списке

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

del1rium

  • Новичок
  • 8
  • 0 / 0
Re: Ошибки магазина
« Ответ #518 : 22.03.2013, 11:53:53 »
Цитировать
над списком заказов Не закончен: Показывать не помогает?

Заказ появляется, но невозможно менять его статус...

Upd. Выбрал в редактировании не завершенного заказа "Завершенный" и получил статус "В ожидании". Танцы с бубном конечно, но ладно... и так сойдет.
« Последнее редактирование: 22.03.2013, 11:58:44 от del1rium »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ошибки магазина
« Ответ #519 : 27.03.2013, 00:44:38 »
несколько раз было замечено неожиданное поведение синхронизации пользователей ЖШ с пользователями Жумлы: после смены имени юзера Joomla через какое то время оно менялось обратно на имя, выбранное в юзере ЖШ. так и должно быть? также похожее поведение с аддоном мультивендоров: при смене имени/фамилии в вендоре через время оно менялось на имя юзера ЖШ. это так и задумывалось, или все таки ошибка?
« Последнее редактирование: 27.03.2013, 01:29:18 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

agasfer

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
  • Жить интересно!
Re: Ошибки магазина
« Ответ #520 : 27.03.2013, 09:53:41 »
несколько раз было замечено неожиданное поведение синхронизации пользователей ЖШ с пользователями Жумлы: после смены имени юзера Joomla через какое то время оно менялось обратно на имя, выбранное в юзере ЖШ. так и должно быть? также похожее поведение с аддоном мультивендоров: при смене имени/фамилии в вендоре через время оно менялось на имя юзера ЖШ. это так и задумывалось, или все таки ошибка?
Точно. Более того, при тестировании заказа от имени кого-то из администраторов это происходит систематически - изменяется имя пользователя в Joomla. Даже если "так задумано", деталь неприятная.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ошибки магазина
« Ответ #521 : 04.04.2013, 17:46:06 »
файл \components\com_jshopping\tables\usershop.php функция check

Код
if(strlen($this->u_name) > 25) {
$this->u_name = substr($this->u_name,0,25);
}

однако для пользователя Joomla такого ограничения нет. при сохранении юзера из админки получаем разные логины для пользователей Joomla и ЖШ
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Ошибки магазина
« Ответ #522 : 05.04.2013, 13:31:17 »
столкнулись со случаем когда была установлена ЖШ 4.1 на Ж2.5.

2ол
повторять не рекомендуем.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Ошибки магазина
« Ответ #523 : 05.04.2013, 17:34:47 »
Кстати почему в архивах недоступны для скачивания версии 4.х.х?
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ошибки магазина
« Ответ #524 : 08.04.2013, 13:52:12 »
по поводу версии 3.14.1

1. в файле \components\com_jshopping\tables\usershop.php

Код
if(strlen($this->u_name) > 25) {
$this->u_name = substr($this->u_name,0,25);
}

встречается не единожды.

2. По поводу

Код
if ($limitstart>=$total) $limitstart = 0;

Опять решили плодить несуществующие страницы? вместо того, чтобы в форму фильтра добавить

Код
<input type="hidden" name="limitstart" value="0" />
?

3. Спасибо за возможность управлять списком заказов в админке.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Ошибки магазина
« Ответ #525 : 08.04.2013, 17:52:37 »
1. Поправил в 3.14.2

2. Проблему не полностью решает
<input type="hidden" name="limitstart" value="0" />

филтер на 2-й странице - купить - корзина - назад - 404
*

olaf

  • Захожу иногда
  • 225
  • 23 / 0
Re: Ошибки магазина
« Ответ #526 : 08.04.2013, 18:42:39 »
В версии 3.14.2 в админцентре перестали удаляться добавленные в товар фото.
Пробовал на Joomla! 2.5.9 с PHP 5.2.12 (пробовал и 5.3.23), Apache/2.2.4. В Firefox 20 и IE8...
Вижу ссылку http://сайт/administrator/index.php?option=com_jshopping&controller=products&task=edit&product_id=3#,
жму на нее, вижу окно "удалить изображение", жму OK и ничего...
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Ошибки магазина
« Ответ #527 : 08.04.2013, 18:46:41 »
Почистите кеш
*

olaf

  • Захожу иногда
  • 225
  • 23 / 0
Re: Ошибки магазина
« Ответ #528 : 08.04.2013, 19:56:31 »
Почистите кеш
Чистил кэш, куки. Не помогло. Проверил еще в Google Crome 26.0.1410.43 и IE9, на другом компьютере, тоже не удаляются картинки.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ошибки магазина
« Ответ #529 : 08.04.2013, 21:35:16 »
2. Проблему не полностью решает
<input type="hidden" name="limitstart" value="0" />

филтер на 2-й странице - купить - корзина - назад - 404

не понял о чем вы. экспериментировал тут. перехожу на 2-ю страницу, ставлю в фильтре Тип картриджа - картридж. 2 товара - Показать. Купить. Переходим в корзину, Назад в браузере - вижу 2 товара. возможно сочетание браузера / настроек. но даже если так, все равно if ($limitstart>=$total) $limitstart = 0; Неправильно, согласны?

Добавлено чуть позже...
надо значит из action формы удалять start если он есть. а то получается, что ради модуля ломаем компонент
« Последнее редактирование: 09.04.2013, 10:30:05 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

olaf

  • Захожу иногда
  • 225
  • 23 / 0
Re: Ошибки магазина
« Ответ #530 : 08.04.2013, 22:16:32 »
В версии 3.14.2 в админцентре перестали удаляться добавленные в товар фото....
Извиняюсь, так получилось потому, что я отключил jquery из JoomShopping и включил, более новую версию 1.8.2 в шаблоне на фронте.
А оказалось  jquery (1.8.2 вполне подходит) нужен для некоторых операций и в админцентре...
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: Ошибки магазина
« Ответ #531 : 08.04.2013, 23:29:11 »
кто то буквально сегодня писал, что отрубил JavaScript и чего то там перестало работать... может быть убрать из админки сомнительные опции, чтобы не было искушения для "великомудрых"? кому надо, тот и так справится с отключением жиквери... остальным ни к чему оно
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ошибки магазина
« Ответ #532 : 10.04.2013, 23:30:25 »
Виктор, как насчет
Код
if ($limitstart>=$total && $limitstart>0){
    $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=category&task=view&category_id='.$category_id, 1));
    return;
}
?

вроде все хорошо получается, даже limitstart=0 в фильтре не нужно добавлять

P.S. лучше только наверное не 303, а 301. т.е. как то так
Код
$mainframe->redirect(SEFLink('index.php?option=com_jshopping&controller=category&task=view&category_id='.$category_id, 1),'','',true);
« Последнее редактирование: 10.04.2013, 23:49:46 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: Ошибки магазина
« Ответ #533 : 11.04.2013, 08:41:41 »
Магазин не уживается с шаблонами от yootheme.com - в них прописана собственная error.php и она вместо 404 выдаёт такое:

Спойлер
[свернуть]

error.php в аттаче. бесплатный шаблон для 2.5 можно забрать здесь http://www.yootheme.com/themes/downloads/load?id=388&token=fb7fea1a&format=raw
ЗЫ. Со стандартным error.php из папки system всё нормально работает.

[вложение удалено Администратором]
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Ошибки магазина
« Ответ #534 : 11.04.2013, 09:00:11 »
2jorevo
ну к ошибкам магазина это относится ....
разместили бы в улучшения или шаблоны... а тут то оно причем ?
это что ошибка ЖШ ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ошибки магазина
« Ответ #535 : 11.04.2013, 09:03:29 »
файл \templates\your_template\warp\systems\joomla\helpers\system.php строка примерно 95

Код
$this->config->set('page_class', trim(preg_replace(array('/columns-(\d+)/', '/columnwidth-(\d+)/'), array('', ''), $this->application->getParams()->get('pageclass_sfx'))));

меняем на

Код
$this->config->set('page_class', trim(preg_replace(array('/columns-(\d+)/', '/columnwidth-(\d+)/'), array('', ''), $this->application->getParams(JRequest::getCmd('option')?'':'com_jshopping')->get('pageclass_sfx'))));

2Виктор: не знаете, почему так надо делать? почему не может определить текущий компонент? такое только с ЖШ, все остальное правильно. по крайней мере я других компонентов не встречал с такой же проблемой
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: Ошибки магазина
« Ответ #536 : 11.04.2013, 09:04:32 »
это что ошибка ЖШ ?

На мой непритязательный взгляд - это глюк роутера ЖШ. Если со многими другими компонентами шаблоны дружат, а с ЖШ нет - то по моему ответ на вопрос "кто виноват и что делать" очевиден.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Ошибки магазина
« Ответ #537 : 11.04.2013, 09:09:18 »
да да вспомнилось...
мы тоже этот бок правили.. и вспомнил что ЖШ неправильно определяется (не  отдает корректно 404 в каких то случая, грубо) потому остальные спотыкаются на это и выдают бред.
да все таки это недоработка ЖШ.

П.С. ЙоТема рулит.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Ошибки магазина
« Ответ #538 : 12.04.2013, 10:13:02 »
файл \templates\your_template\warp\systems\joomla\helpers\system.php строка примерно 95

Код
$this->config->set('page_class', trim(preg_replace(array('/columns-(\d+)/', '/columnwidth-(\d+)/'), array('', ''), $this->application->getParams()->get('pageclass_sfx'))));

меняем на

Код
$this->config->set('page_class', trim(preg_replace(array('/columns-(\d+)/', '/columnwidth-(\d+)/'), array('', ''), $this->application->getParams(JRequest::getCmd('option')?'':'com_jshopping')->get('pageclass_sfx'))));

2Виктор: не знаете, почему так надо делать? почему не может определить текущий компонент? такое только с ЖШ, все остальное правильно. по крайней мере я других компонентов не встречал с такой же проблемой

Не знаю в чем проблема.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Ошибки магазина
« Ответ #539 : 12.04.2013, 15:17:38 »
Код
...(JRequest::getCmd('option')?'':'com_jshopping')...

Вообще по смыслу этой конструкции получается не совсем то, что от неё ожидает автор:

если любая какая-нибудь option имеет место - она заменяется на '' , а если option не определена - заменяется на 'com_jshopping'

Или это задумка такая?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки JoomShopping 4.x+ (2017)

Автор nevigen

Ответов: 53
Просмотров: 10090
Последний ответ 17.01.2021, 19:03:23
от gartes
Региональность магазина

Автор misteri27

Ответов: 2
Просмотров: 678
Последний ответ 08.03.2020, 14:11:33
от misteri27
Вставка рекламы стороннего магазина после 5-го товара

Автор anatolij

Ответов: 7
Просмотров: 2029
Последний ответ 02.08.2018, 16:47:42
от kit2m2
Ошибки при создании товара

Автор 12mv

Ответов: 3
Просмотров: 1020
Последний ответ 21.02.2018, 23:09:24
от nevigen
Установленные аддоны - ошибки в админке 0 Null primary key not allowed

Автор 12mv

Ответов: 10
Просмотров: 2313
Последний ответ 21.02.2018, 15:04:47
от 12mv