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

Biss

  • Давно я тут
  • 995
  • 101 / 0
Разметка для товара (Recipe)
« : 26.07.2016, 17:45:35 »
Решил попробовать разметку для товаров в стиле рецепта  ^-^, не думал что прохавает Google. В сниппетах для продуктов не показывает фото, но показывает в разметке для рецептов. Рецепты не поддерживают цен, но в моем случае их не надо так как это каталог. Не знаю как отнесётся поисковик в будущем к таким манипуляциям, но то что есть сейчас мне нравится.  Скрин того что получилось
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Разметка для товара (Recipe)
« Ответ #1 : 26.07.2016, 22:08:47 »
неплохо. знать бы наверняка что не забанят в будущем... :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #2 : 27.07.2016, 12:08:02 »
Вопрос. Как в файле карточки товара выделить  itemprop="image" только главное фото. Если у товара несколько фото. то они все размечаются itemprop а нужно только первое. Думаю надо условие и в нем уже прописать
Код
<meta itemprop="image" content="<?php print $this->image_product_path?>/<?php print $image->image_full?>" />
сейчас получается что поисковик выбирает фото которое нравится ему.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Разметка для товара (Recipe)
« Ответ #3 : 27.07.2016, 14:33:45 »
ну можно подсунуть же первое изображение. принудительно (даже не показывая его.)
считать, назначить первое из массива и определить его как итемпроп-имдж
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #4 : 27.07.2016, 19:26:40 »
Цитировать
считать, назначить первое из массива и определить его как итемпроп-имдж
спасибо, направление понял, но массив не напишу как бы этого не хотел  :(. Найду время подумаю позже...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Разметка для товара (Recipe)
« Ответ #5 : 27.07.2016, 21:16:39 »
там даже писать ничего не надо, в цикле и так сделана проверка - остальным изображениям, которые не главные, задается display:none
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #6 : 28.07.2016, 16:20:04 »
Так они display:none , но всё равно все цепляют итемпроп

Код
<?php foreach($this->images as $k=>$image){?>
                <a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?> title="<?php print htmlspecialchars($image->_title)?>">
                    <img itemprop="image" id = "main_image_<?php print $image->image_id?>" class="main_image" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
                    <div class="text_zoom">
                        <i class="icon-search"></i> <?php print _JSHOP_ZOOM_IMAGE?>
                   
</div>
                </a>
                <?php }?>
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Разметка для товара (Recipe)
« Ответ #7 : 28.07.2016, 16:30:59 »
ну так для них не прописывать итемпроп :) условие то есть уже. осталось добавить else, и только в else прописать итемпроп
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #8 : 28.07.2016, 18:05:53 »
Код
<?php foreach($this->images as $k=>$image){?>
<a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>"
<?php if ($k!=0){?>style="display:none"<?php } else {?>>
<meta itemprop="image" content="<?php print $this->image_product_path?>/<?php print $image->image_full?>"
<?php }?> title="<?php print htmlspecialchars($image->_title)?>">
<img id = "main_image_<?php print $image->image_id?>" class="main_image" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
<div class="text_zoom">
<i class="icon-search"></i> <?php print _JSHOP_ZOOM_IMAGE?>
</div>
</a>
<?php }?>

Правильно ?
« Последнее редактирование: 28.07.2016, 18:44:40 от Biss »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Разметка для товара (Recipe)
« Ответ #9 : 28.07.2016, 19:15:56 »
нет. во-первых у вас в
Код
<?php } else {?>>
последняя скобка лишняя. а во-вторых вы пытаетесь вставить полностью тег <meta> внутрь атрибутов тега <a>. оно ж так не работает. не добавляйте тег мета, вставляйте только
Цитировать
itemprop="image" content="<?php print $this->image_product_path?>/<?php print $image->image_full?>"
для <a>.

либо если хочется именно meta, то возьмите условие целиком как оно было, измените в нем != на ==, вставьте его внутрь тега <a>, и вместо
Код
style="display:none"
уже впишите туда полностью <meta... />
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #10 : 28.07.2016, 19:34:33 »
Да по ходу неправильно, но работает.  ^-^
Сначала было без скобки и в просмотре кода кусок с картинкой выделялся красным, после я решил её поставить и всьо стало валидно.
Наверно попробую второй предложенный вариант, так как у меня чуйка  ;D, что именно при наличии meta картинка подхватывается.
В принципе фото подхватывается потому что оно уже есть в индексе (это так, тоже предположение)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Разметка для товара (Recipe)
« Ответ #11 : 28.07.2016, 21:05:38 »
ну в самом поисковике отследить правильно или нет трудно, это ж надо ждать пока индекс обновится. но наверняка ж есть от поисковиков какой нибудь сервис для проверки структурированных данных?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #12 : 29.07.2016, 12:39:08 »
Код
<?php foreach($this->images as $k=>$image){?>
<a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?> title="<?php print htmlspecialchars($image->_title)?>">
<img id = "main_image_<?php print $image->image_id?>" class="main_image" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
<div class="text_zoom">
<i class="icon-search"></i> <?php print _JSHOP_ZOOM_IMAGE?>
</div>
<?php if ($k==0){?>
<meta itemprop="image" content="<?php print $this->image_product_path?>/<?php print $image->image_full?>" />
<?php }?>
</a>
<?php }?>

вроде бы так если правильно понял

-------------------
уже успел проверить, - работает правильно
« Последнее редактирование: 29.07.2016, 13:09:52 от Biss »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Разметка для товара (Recipe)
« Ответ #13 : 29.07.2016, 13:13:55 »
да, по крайней мере условие правильно
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

buto

  • Давно я тут
  • 570
  • 1 / 0
Re: Разметка для товара (Recipe)
« Ответ #14 : 29.07.2016, 19:55:28 »
Круто смотрится, реально. Но это стопроцентный бан, если кто-то пожалуется Google (обратился к эксперту в СЕО). Хотя сколько я уже сайтов видео с грехами, и 2-3 года ничего им не сделалось( до сих пор)
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #15 : 29.07.2016, 22:01:55 »
Я даже знаю кто первым пожалуется - конкурент.
Думаю сразу не будет бана, может хотя бы предупреждение сначала. В таком случае спорить не буду однозначно.
А может гуглам понравится и вдруг решат внедрить это в product  ^-^
« Последнее редактирование: 30.07.2016, 13:07:26 от Biss »
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #16 : 23.10.2016, 12:03:45 »
Цитировать
Не знаю как отнесётся поисковик в будущем
Не долго музыка играла... ^-^
Или я что-то с шаблоном намутил (маловероятно), или Google поумнел (скорее всего)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Разметка для товара (Recipe)
« Ответ #17 : 23.10.2016, 12:06:35 »
просто пропала разметка в выдаче? или что похуже?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Re: Разметка для товара (Recipe)
« Ответ #18 : 23.10.2016, 12:10:24 »
просто пропала разметка в выдаче? или что похуже?
Просто пропала, в инструментах никаких предупреждений не было
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Разметка для товара (Recipe)
« Ответ #19 : 23.10.2016, 15:32:15 »
ясно. ну хоть так :) а то мало ли, что им в голову прийти могло :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT On fly image handler изображения товара JoomShopping в webp на лету

Автор sergeytolkachyov

Ответов: 13
Просмотров: 4378
Последний ответ 29.01.2025, 20:38:38
от sergeytolkachyov
Видео с Youtube вместо картинки на карточке товара

Автор ksena

Ответов: 35
Просмотров: 10217
Последний ответ 08.10.2024, 04:26:36
от kit2m2
Условие для кол-ва товара больше нуля

Автор kik84

Ответов: 3
Просмотров: 1336
Последний ответ 16.02.2024, 13:33:24
от kit2m2
Убрать модуль в карточке товара JoomShopping

Автор alexkraym

Ответов: 35
Просмотров: 5780
Последний ответ 21.08.2023, 07:17:53
от delchev
Проблема с фото в карточке товара

Автор astapon

Ответов: 18
Просмотров: 2177
Последний ответ 24.04.2023, 12:37:50
от kit2m2