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

Pups-am

  • Осваиваюсь на форуме
  • 29
  • 13 / 0
Вопрос по поиску.
« : 29.05.2012, 13:48:59 »
Поиск в ЖШ работает по описанию товара. (если ошибаюсь, поправьте). Отсюда вопрос.
Зачем интернет-магазину поиск по описанию товара? Клиент ищет конкретный товар, а не его описание. Почему бы не сделать поиск по названию товара.
(вопрос victorantoniak)

Я так понимаю надо править search.php в components\com_jshopping\controllers\, но что именно знаний php не хватает. Подскажите знатоки.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Вопрос по поиску.
« Ответ #1 : 29.05.2012, 18:03:05 »
плагин поиска ЖШ стоит и опубликован ?
поиск ищет везде, в названиях и описаниях.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Pups-am

  • Осваиваюсь на форуме
  • 29
  • 13 / 0
Re: Вопрос по поиску.
« Ответ #2 : 29.05.2012, 18:15:19 »
Плагин поиска стоит и опубликован.
Возможно ищет везде, только приоритет в выдаче отдается описанию, а не названию товара. В этом и есть неудобство для покупатель. Зачем ему (покупателю) искать товар в описании если он хочет найти определенную позицию.
*

Pups-am

  • Осваиваюсь на форуме
  • 29
  • 13 / 0
Re: Вопрос по поиску.
« Ответ #3 : 03.06.2012, 15:20:30 »
Решил проблему редактированием плагина Plugin Search 3.0.0.1 (joomla 1.6 / 1.7).
В файле JoomShopping.php закомментировал 4 строки:
67 - $wheres2[]     = "prod.`".$lang->get('short_description')."` LIKE ".$text;
68 - $wheres2[]     = "prod.`".$lang->get('description')."` LIKE ".$text;
82 - $wheres2[]     = "prod.`".$lang->get('short_description')."` LIKE ".$word;
83 - $wheres2[]     = "prod.`".$lang->get('description')."` LIKE ".$word;
после данных действий поиск работает только по названию товара.

На сайте использую AJAX поиск и столкнулся с такой ситуацией, что в окне поиска выводится название товара и его описание.
Решил удалением строки 92 - CONCAT(prod.`".$lang->get('short_description')."`,' ',prod.`".$lang->get('description')."`) as text,

Может это и варварский способ, но другого решения не нашел.
Если есть более красивое решение, то подскажите!
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Вопрос по поиску.
« Ответ #4 : 03.06.2012, 17:34:39 »
Наверное красивее будет если области поиска вынести в настройки плагина и соответственно sql-запрос будет формироваться в зависимости от настроек.
*

x-masters

  • Захожу иногда
  • 80
  • 0 / 0
Re: Вопрос по поиску
« Ответ #5 : 08.06.2014, 09:26:12 »
Поддерживаю тему, создал товары "Красный воблер" и "Желтый воблер". В описание к желтому написал "Он похож на красный воблер, только....". В итоге когда ввожу в поиске "Красный воблер" он первым мне выдает желтый, а не красный. Считаю это серьёзной недоработкой. Хоть бы чекбоксы сделали для переключения нужного алгоритма поиска.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Вопрос по поиску
« Ответ #6 : 09.08.2014, 16:28:21 »
Интересен был момент на счет поиска англоязычных названий, но на русском языке или слов с ошибками.
Решение с поиском придумал довольно интересное, морфологическое почти ;D (поправьте если че т.к. я ламер в php, js и во всем остальном)

Разберем на примере товара-запроса "apple" или "iphone". (ведь его как только не пишут)

Если пользователь ошибется хотябы на одну букву, то он получит наипустейший ответ, а это встречается очень часто (спасибо поисковикам за это) да и в силу неграмотности населения. Это плохо, очень плохо, просто ужасно.
И так решение такое, для каждой условной категории товара будь то айфон, samsung, lenovo и пр. примерно придумываем список возможных ошибок включая раскладку (по желанию) и выясняем их важность здесь wordstat.yandex.ru.
(aple, appl, эпл, айфон и тд.)
Подготавлием их кому как удобно. (не придумал вопрос с удобством добавления)

Далее редактируем сам поиск убираем поиск по описанию и добавляем по тегу keywords. А уже в keywords вписываем все наши ключевые слова..)
Решаем две вещи, существенно улучшаем поиск, и добавляем ключевые слова. На крайний случай можно создать доп поле в базе.

Но, тут возникает еще один вопрос, как точно искать если в поисковом запросе два слова и более?
Выдача как я понял идет по сортировке товара в таблице product_to_categories.
Т.е. к примеру на сайте 30 iphone'ов разных вариантов, и если при запросе iphone 4 или iphone 5, он выдаст результаты в соответствии с сортировкой и учитывая только первое слово. Если iphone 3 добавили раньше, то выйдет на первых местах именно он..

Давайте решим вопрос с многословным поиском хотя-бы на примере моего решения!

P.S дело бы на Joomla 1.5 и jsopping 2.9.
« Последнее редактирование: 09.08.2014, 16:35:03 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вопрос по поиску
« Ответ #7 : 09.08.2014, 19:47:34 »
Давайте решим вопрос с многословным поиском хотя-бы на примере моего решения!

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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Вопрос по поиску
« Ответ #8 : 09.08.2014, 20:00:43 »
dmitry_stas - опять сложно все делаете (понимаете), я хочу сказать что если есть товар apple и товар apple iphone на сайте, то при вводе слов apple iphone, apple или просто iphone, выдача практически не изменится.. Или грубо говоря хотя бы сделать так чтобы при запросе iphone 4, не выходили все товары где в названии есть цифра 4...
И все, ведь это реализуемо.. Я не пытаюсь выйти на уровень ПС, не позволяют знания (с амбициями все в порядке) а то что могу сделать делаю, хотя бы минимум, айфон ifone и пр..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вопрос по поиску
« Ответ #9 : 09.08.2014, 21:13:42 »
аааа... ну так вы тогда объясняйте для тупых попроще :) а то как объясняете - так и понимаю :) поиск какой? Joomla или ЖШ ?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Вопрос по поиску
« Ответ #10 : 09.08.2014, 23:53:02 »
Не скромничайте молодой человек.. ;) Для ЖШ. Сейчас просматривал скрипты транслита, в принципе "ничего сложного" буду пробовать прикрутить, с условием, типа если ниче не найдено транслитим и ищем еще раз.
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вопрос по поиску
« Ответ #11 : 10.08.2014, 09:08:03 »
если ЖШ, то там за это отвечает условие

Цитата: components\com_jshopping\controllers\search.php
if ($search_type=="exact"){

т.е. $search_type определяет, как именно искать, по всем словам, по любому слову, либо по всей фразе целиком. а $search_type чуть раньше там же определяется как

Цитата: components\com_jshopping\controllers\search.php
$search_type = $post['search_type'];
if (!$search_type) $search_type = "any";

соответственно, либо менять $search_type по-умолчанию в контроллере, либо (что правильнее) добавить input name="search_type" в форму поиска. например, так же, как это сделано в форме поиска Joomla
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вопрос про краткое и полное описание товара

Автор maffi

Ответов: 29
Просмотров: 1559
Последний ответ 13.06.2021, 17:18:25
от ShopES
Вопрос по product/view

Автор kik84

Ответов: 6
Просмотров: 668
Последний ответ 26.03.2020, 12:53:05
от kit2m2
Вопрос по поводу кодировки письма по умолчанию ($mailer->Encoding = 'base64';)

Автор spmash

Ответов: 1
Просмотров: 856
Последний ответ 16.01.2018, 20:22:31
от kern.USR
Вопрос с переключением языков в товаре

Автор burunduchok

Ответов: 27
Просмотров: 2869
Последний ответ 15.01.2018, 01:45:38
от burunduchok
Вопрос по сравнению товаров (JoomShopping Products Compare)

Автор onelawyer

Ответов: 5
Просмотров: 954
Последний ответ 08.09.2017, 18:40:23
от nevigen