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

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
В списке товаров путь к изображению выводит начиная /components/com_jshopping/files/img_products/thumb_elemental-1497350885.png .
если сделать var_dump($product) то в переменной показывает полный путь включая домент сайта, но на фронт-енд  домент обрезает под /components.

Мой код который выводит картинку в списке товара, он не чем не отл. от дефолтного шаблона.
Код
 <div class="image_block">
            <?php print $product->_tmp_var_image_block;?>
            <a href="<?php print $product->product_link?>">
                <img class="jshop_img" src="<?php print $product->image?>" alt="<?php print htmlspecialchars($product->name);?>" title="<?php print htmlspecialchars($product->name);?>"  />
            </a>
        </div>

Возможно что где то в админке вкл/выкл этот полный путь к изображению ?


Если посмотреть на сайте демо от шопинга http://demo.joomshopping.com/index.php/shop/cars
То в src к изображению прописан полный путь домент/.../.../.../ изображение

Есть у кого-то идеи как это исправить ? куда смотреть ?

Админку облазил уже всю.

P.S. ссылка на изображение то работает и так, но после использования AJAX фильтра от навигенов изображение проподает, а причина что обрезаеться первый слыш перед словом components/.  Навиген заверил что это не проблема фильтра и я не обсуждаю коммер. решение, А лишь сказал почему я так зацепился за полный путь к изображению.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну т.е. вы хотите сказать, что если сделать

Код
var_dump($product->image);

то выведет полный путь с адресом сайта. но тем не менее на фронте src изображения

Код
src="<?php print $product->image?>"

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

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
ну т.е. вы хотите сказать, что если сделать

Код
var_dump($product->image);

то выведет полный путь с адресом сайта. но тем не менее на фронте src изображения

Код
src="<?php print $product->image?>"

будет без адреса сайта, только /components/com_jshopping/... ?


Вы совершенно правы!

Вот это я и хочу выяснить чего так.

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

И вот как раз до переноса было все хорошо( проверил с доменном выводит), а после того как платные плагины поставились.. вот теперь без домена.

Обычно у меня такой процесс всегда, делается все, а когда плагина с привязкой домента то уже  на оф. домен сайта переношу готовую лошадку. Вот как бы этого никогда такого не было, косяка с путем. Пробовал отключить все плагины платные и что могли бы влиять на это, результата нету.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
в таком случае скорее всего это что-то, что работает с изображениями именно. например, может быть какая то отложенная (ленивая, lazy) загрузка изображений, или типа такого. то, что меняет непосредственно src. потому как вы сами видите, что выводится одна и та же переменная $product->image. но в случае когда это src - убран домен. значит надо искать то, что работает именно с src. для проверки можете сделать

Цитировать
<img class="jshop_img" src="<?php print $product->image?>" data-fake="<?php print $product->image?>" alt="<?php print htmlspecialchars($product->name);?>" title="<?php print htmlspecialchars($product->name);?>"  />

т.е. продублировать вывод $product->image в другом атрибуте. и посмотрите, что выведется в src и в data-fake
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
<img class="jshop_img" src="<?php print $product->image?>" data-fake="<?php print $product->image?>" alt="<?php print htmlspecialchars($product->name);?>" title="<?php print htmlspecialchars($product->name);?>"  />
С дата-фейк, вывелось с доменном.
Спасибо за идею как искать и что теперь искать. Найду причину отпишусь, думаю вам тоже интересно теперь)
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Причина не решилась еще, но расследование показало что у заказчики на сервере это происходит как то, так как на всем сайте обрезается путь к картинам.
Сайт был на другие хостинге перенесет дял тестов и везде все хорошо работало кроме сервера заказчика.
*

dmitry_stas

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

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
думаю в таком случае самое время прижать к стенке хостера :)
да, проблемы были у заказчика на сервере. Он там мутил тему какую-то
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Обрезает код товар по длине

Автор misteri27

Ответов: 2
Просмотров: 639
Последний ответ 05.04.2021, 12:22:21
от misteri27
передать параметры по ajax c JQ в php Полный вид товара

Автор pavel2950

Ответов: 3
Просмотров: 976
Последний ответ 18.08.2017, 14:40:16
от pavel2950
Как прописать правильный путь до файла?

Автор kit2m2

Ответов: 2
Просмотров: 1191
Последний ответ 25.08.2016, 17:04:32
от kit2m2
В базе данных не сохраняется путь к full_image

Автор denxio

Ответов: 2
Просмотров: 1150
Последний ответ 30.06.2016, 15:26:07
от denxio
Решено - Путь при открытии товара /product/view/2/2.html заменить на /productS/view/2/2.html

Автор Михаил Миклаев

Ответов: 7
Просмотров: 1334
Последний ответ 24.05.2014, 16:27:09
от Михаил Миклаев