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

warryag

  • Захожу иногда
  • 59
  • 0 / 0
собственно вопрос в том, есть ли какое-то решение, позволяющее сделать так, чтобы при клике на любое изображение всплывал Lightbox, а не менялось изображение в миниатюре слева, после чего на него можно нажать.
Т.е. ест ьв товаре 7 изображение - жмем на любое получаем увеличенное изображение в Lightbox.
п.с. надеюсь написал понятно :) гуглоиск приводит лишь к результату плагина зумирования миниатюры.
Спасибо за ответы.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
шаблон переделать так, чтобы клик на миниатюре был = клику на серднем, т.е. с лайтбоксом
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

warryag

  • Захожу иногда
  • 59
  • 0 / 0
эмммм. Ну если можно, подсказать подробнее-
вот я так понял кода кусок отвечает за это : (файл product_default.php)
<?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 }?>>
                <img id = "main_image_<?php print $image->image_id?>" 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">
                    <img src="<?php print $this->path_to_image?>search.png" alt="zoom" /> <?php print _JSHOP_ZOOM_IMAGE?>
                </div>
            </a>
            <?php }?>
*

dmitry_stas

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

warryag

  • Захожу иногда
  • 59
  • 0 / 0
Если бы не мои примитивные знания PHP , я б и не парил вас, а вам я увере на 100% раз плюнуть поправить код. Вот второй кусок я нашел
  <?php foreach($this->images as $k=>$image){?>
                    <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>)" />
                <?php }?>
            <?php }?>
Я вижу где onclick, и т.д., но мои примитивные манипуляции приводят либо к удалению доп картинок, либо к еще одно надписи "увеличить изображение".
*

warryag

  • Захожу иногда
  • 59
  • 0 / 0
*

nevigen

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

dmitry_stas

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

warryag

  • Захожу иногда
  • 59
  • 0 / 0
Я сюда написал в надежде, что есть уже решение. По поиску на форуме я нашел как убрать ссылку увеличить изображение. А еще бывает так, что люди просто сходу вставляют код в ответе, с исправлениями, так как знают что поправить ил уже правили - вот на это и рассчитывал.
. Я понимаю где приблизительно капать, но есть другие задачи, более важные чем эта, но и ее хотелось бы разрешить.
Поэтому ПОЖАЛУЙСТА, если есть свободная минута - напишите исправленный код (думаю это не единичный случай, подобное решение помогает меньше пользователю напрягать суставы при просмотре контента)
если трудно или нет времени или не охота или ..., - то я не увидел, где на форуме есть ком. раздел. -только с готовыми решениями ии их обсуждением, разве что.

*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

warryag

  • Захожу иногда
  • 59
  • 0 / 0
Ребята, спасибо, но хоть убей - не получается. Если есть лишнее время - в долгу не останусь, напишите на почту свое предложение shop гав-гав splavitsa***com, кто реально знает как полечить.
п.с. В коммерческом разделе беседуют о платных расширениях - я думаю там буду не кстати.
По скриншоту выше, я все равно не смог сделать. Комбинациями максимум чего добивался - клик на любой миниатюре и Lightbox появляется, но без картинки (показывает просто загрузку, как при плохом соединении).
 ! !
« Последнее редактирование: 30.01.2014, 22:37:49 от warryag »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Код

<a class="lightbox " href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" title="<?php print htmlspecialchars($image->_title)?>" >
<img class="jshop_img_thumb uk-thumbnail" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
</a>
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

warryag

  • Захожу иногда
  • 59
  • 0 / 0
Я примного благодарен. Плюсиков наставил. Все заработало! СПАСИБО! *DRINK*
*

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Доброго времени суток!
Тоже столкнулась с проблемой привязки Lightbox-a в JoomShopping. В настройках Lightbox-a в widgetkit-e он "enable".
Но не действует даже на главную картинку товара. Не говоря уже о дополнительных.
Помогите пожалуйста разобраться?
Код
 <span id='list_product_image_middle'>
            <?php if(!count($this->images)){?>
                <img id = "main_image" src = "<?php print $this->image_product_path?>/<?php print $this->noimage?>" alt = "<?php print htmlspecialchars($this->product->name)?>" />
            <?php }?>
<?php foreach($this->images as $k=>$image){?>
            <a class="lightbox " href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" title="<?php print htmlspecialchars($image->_title)?>" >
<img class="jshop_img_thumb uk-thumbnail" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
</a>
            </a>
я так понимаю - это кусочек кода с отображением главного изображения товара? img id = "main_image" .
как мне привязать к главной картинке Lightbox? в классе прописано- Lightbox, но он не работает. все также открывает изображение в новой вкладке.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
В настройках Lightbox-a в widgetkit-e он "enable".
а что задано в Selector ?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну так а причем тут тогда
Цитировать
в классе прописано- Lightbox
? :) либо селектор измените на класс lightbox, либо в <a href... > пропишите data-lightbox
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
*

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
*

dmitry_stas

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

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
http://prntscr.com/2o6byb
в общем, вот. очень странно, что lightbox не "захватывает" картинку, а находится под ней.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не увидел ничего особо странного :)

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

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
и a[lightbox] пробовала и без а - [lightbox] и просто lightbox. ни один из вариантов не работает.
я прямо себя ущербной чувствую, что совсем не могу разобраться =\
*

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
кстати, про ошибки:
Uncaught TypeError: Object [object Object] has no method 'on' gzip.php?widgetkit-8223b1b0-a8ff321a.js:2
Uncaught TypeError: Object [object Object] has no method 'lightBox' 1034:212
event.returnValue is deprecated. Please use the standard event.preventDefault() instead.
Uncaught TypeError: Object [object Object] has no method 'on'

Это получается метода нету О_О
И не потому ли это, что я скачать фришку?
« Последнее редактирование: 31.01.2014, 14:30:30 от matrioshka »
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
кстати, про ошибки:
Это получается несколько раз JQuery грузится....

А Lightbox, чере widgetkit подключается так (пример из How to use):
Если прописано в настройках a[data-lightbox], то вызывается следующим образом:
<a data-lightbox="on" href="image_lb.jpg"><img src="image.jpg" width="180" height="120" alt="" /></a>
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
и a[lightbox] пробовала
и каким образом jQuery должна понять, что это класс? http://jquery.page2page.ru/index.php5/Селекторы - Базовые. И кавычки там не лишние

но лучше не менять селектор, а сделать так как говорит Brooksus

Цитировать
Это получается метода нету О_О
jQuery версия слабовата. минимум 1.7 надо для этого метода.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
спасибо большое, попытаюсь поправить всё =)
*

matrioshka

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Это получается несколько раз JQuery грузится....

А Lightbox, чере widgetkit подключается так (пример из How to use):
Если прописано в настройках a[data-lightbox], то вызывается следующим образом:
<a data-lightbox="on" href="image_lb.jpg"><img src="image.jpg" width="180" height="120" alt="" /></a>

Буду очень признательна, если подскажешь - вместо чего эту строку впихнуть надо, а то у самой ничего не получается.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35705
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
WT On fly image handler изображения товара JoomShopping в webp на лету

Автор sergeytolkachyov

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

Автор ksena

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

Автор kik84

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

Автор alexkraym

Ответов: 35
Просмотров: 5778
Последний ответ 21.08.2023, 07:17:53
от delchev