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

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Тут будут выкладываться правки, которые необходимо сделать для апгрейда версий, либо тонкости работы с ЖШ.

JoomShopping 3.8.0

Важные изменения в шаблонах
добавьте строки
Код
<?php print $this->checkout_navigator?>
<?php print $this->small_cart?>

в файлах
templates/default/checkout/payments.php
templates/default/checkout/adress.php
templates/default/checkout/previewfinish.php
templates/default/checkout/shippings.php
« Последнее редактирование: 14.06.2025, 13:04:30 от victorantoniak »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Для сторонних разработчиков
« Ответ #1 : 21.08.2012, 18:03:43 »
3.9 изменения в шаблоне.

Добавлен файл
site\templates\default\product\demofiles.php


В файле
site\templates\default\product\product_default.php

Код
if (count ($this->demofiles)){?>
<div class="list_product_demo">
<table>
    <?php foreach($this->demofiles as $demo){?>
    <tr>
        <td class="descr"><?php print $demo->demo_descr?></td>            
        <?php if ($this->config->demo_type == 1) { ?>
            <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>" onClick="popupWin = window.open('<?php print SEFLink("index.php?option=com_jshopping&controller=product&task=showmedia&media_id=".$demo->id);?>', 'video', 'width=<?php print $this->config->video_product_width;?>,height=<?php print $this->config->video_product_height;?>,top=0,resizable=no,location=no'); popupWin.focus(); return false;"><img src = "<?php print $this->config->live_path.'images/play.gif'; ?>" alt = "play" title = "play"/></a></td>
        <?php } else { ?>
            <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>"><?php print _JSHOP_DOWNLOAD;?></a></td>
        <?php }?>
    </tr>
    <?php }?>
</table>
</div>
<?php } ?>

изменен на

Код
<?php print $this->_tmp_product_html_before_demofiles; ?>
<div id="list_product_demofiles"><?php include(dirname(__FILE__)."/demofiles.php");?></div>


В файле
site\templates\default\user\editaccount.php

добавлено

Код
<?php if ($config_fields['password']['display']){?>
        <tr>
          <td class="name">
            <?php print _JSHOP_PASSWORD ?> <?php if ($config_fields['password']['require']){?><span>*</span><?php } ?>
          </td>
          <td>
            <input type = "password" name = "password" id = "password" value = "" class = "inputbox" />
          </td>
        </tr>
        <?php } ?>
        <?php if ($config_fields['password_2']['display']){?>
        <tr>
          <td class="name">
            <?php print _JSHOP_PASSWORD_2 ?> <?php if ($config_fields['password_2']['require']){?><span>*</span><?php } ?>
          </td>
          <td>
            <input type = "password" name = "password_2" id = "password_2" value = "" class = "inputbox" />
          </td>
        </tr>
        <?php } ?>
        <?php echo $this->_tmpl_editaccount_html_4_1?>
« Последнее редактирование: 21.08.2012, 18:59:54 от victorantoniak »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #2 : 16.09.2012, 20:44:21 »
JoomShopping 3.11.0

Изменения в шаблоне

templates/default/product/load.js.php
Добавлено строку
Код
var translate_zoom_image = "<?php print addslashes(_JSHOP_ZOOM_IMAGE)?>";

Изменения в обработке мультивыбора характеристик:
Создано дополнительное поле `multilist` в таблице `#__jshopping_products_extra_fields` по которому определяется принадлежность поля к Множественному списку.

Другие изменения
http://www.webdesigner-profi.de/joomla-webdesign/components/com_forum/uploads/joomshopping_3.11.0_patch.zip
« Последнее редактирование: 22.09.2012, 22:20:54 от victorantoniak »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #3 : 22.09.2012, 17:56:48 »
JoomShopping 3.11.1

Изменения в CSS
добавлено
Код
.fielderror{
    background-color: #FDC055;
}

Платежные системы - Удалено поле Тип.
(Поле тип должно быть задано в инсталяторе платежной системы)
« Последнее редактирование: 25.09.2012, 23:32:21 от victorantoniak »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #4 : 13.10.2012, 01:37:57 »
JoomShopping 3.11.4

Изменен шаблон
checkout\finish.php

Код
<?php if (!empty($this->text)){?>
<?php echo $this->text;?>
<?php }else{?>
<p><?php print _JSHOP_THANK_YOU_ORDER?></p>
<?php }?>

Другие изменения
http://www.webdesigner-profi.de/joomla-webdesign/components/com_forum/uploads/joomshopping_3.11.4.patch
« Последнее редактирование: 13.10.2012, 01:45:46 от victorantoniak »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #5 : 13.10.2012, 15:44:40 »
JoomShopping 4.0.0

Для названий фотографий ипользуется 1 поле
jshopping_products - image (product_thumb_image, product_full_image - удалены)
jshopping_products_images - image_name (image_thumb, image_full - удалены)

удалено поле product_availability с таблицы jshopping_products
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #6 : 24.11.2012, 20:14:56 »
JoomShopping 3.12.0

Изменения шаблона
http://www.webdesigner-profi.de/joomla-webdesign/components/com_forum/uploads/joomshopping_3.12.0_template.patch

Изменения
http://www.webdesigner-profi.de/joomla-webdesign/components/com_forum/uploads/joomshopping_3.12.0.patch

Изменения в расширениях доставок. Добавлено getPrices для расширений version=2 (Пример. /shippings/sm_standart_weight/sm_standart_weight.php в JoomShopping 3.12.0)
« Последнее редактирование: 24.11.2012, 20:23:07 от victorantoniak »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #8 : 20.03.2013, 00:37:17 »
JoomShopping 3.14.0 (4.2.0)

Изменения шаблона
http://www.webdesigner-profi.de/joomla-webdesign/components/com_forum/uploads/joomshopping_3.14.0_template.patch

Аддоны с ключами должи быть установлены с usekey=1
Пример
$addon = JTable::getInstance('addon', 'jshop');
$addon->loadAlias('addonalias');
$addon->set('name','name');
$addon->set('version','1.0.0');
$addon->set('usekey', '1');
$addon->set('uninstall','/components/.../uninstal.php');
$addon->store();
« Последнее редактирование: 20.03.2013, 00:46:18 от victorantoniak »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #9 : 15.04.2013, 17:31:05 »
JoomShopping 3.14.2 (4.2.1)

Изменения шаблона:
В каждом фале шаблона добавлено

<?php defined( '_JEXEC' ) or die(); ?>
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
« Последнее редактирование: 26.08.2013, 11:23:46 от victorantoniak »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
« Последнее редактирование: 14.06.2014, 17:01:07 от victorantoniak »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #12 : 20.09.2014, 11:39:04 »
Joomshopping 3.19.0

Изменения в шаблоне
http://www.webdesigner-profi.de/joomla-webdesign/components/com_forum/uploads/template_changes_3.18.5_3.19.0.patch
Для шаблонов старых версий нужно добатить (минимум) 1 файл templates/default/content/content.php

Гостю задается usergroup_id = 0 (раньше была default значение групы)

Пример файла configupdate.php (Файл для проверка версий при инсталации аддона)

Код
<?php 
$configupdate = array(
    'version'=>array(
        '3'=>array('min'=>'3.19.3', 'max'=>'3.99'),
        '4'=>array('min'=>'4.7.3', 'max'=>'7.99'),
    ),
    'MASSAGE_COMPLETED' => "Installed addon finished"
);
?>



3.19.2
Изменения шаблона
http://www.webdesigner-profi.de/joomla-webdesign/components/com_forum/uploads/joomshopping_template_changes_3.19.2.patch
« Последнее редактирование: 14.01.2015, 12:43:12 от victorantoniak »
*

masterbos

  • Осваиваюсь на форуме
  • 37
  • 1 / 2
  • Ты уверен?
« Последнее редактирование: 12.01.2015, 10:10:49 от victorantoniak »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #15 : 22.06.2018, 09:07:42 »
3.19.0 (4.7.0)

Ваши шаблоны должны быть обновлены
Скопировать
templates/default/content/content.php
в
templates/{yourtemplate}/content/content.php
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Для сторонних разработчиков
« Ответ #16 : 22.06.2018, 09:09:30 »
4.17.1

Ваши шаблоны должны быть обновлены
Скопировать

components\com_jshopping\templates\default\user\activationmail.php
components\com_jshopping\templates\default\user\activationmailadmin.php
components\com_jshopping\templates\default\user\registermail.php
components\com_jshopping\templates\default\user\registermailadmin.php

в

components\com_jshopping\templates\{yourtemplate}\user\activationmail.php
components\com_jshopping\templates\{yourtemplate}\user\activationmailadmin.php
components\com_jshopping\templates\{yourtemplate}\user\registermail.php
components\com_jshopping\templates\{yourtemplate}\user\registermailadmin.php
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавление сторонних комментариев в табы в карточке [Решено]

Автор AlexB

Ответов: 9
Просмотров: 843
Последний ответ 29.06.2020, 12:13:30
от AlexB
Обновления: тема для Сторонних Разработчиков

Автор avantyrist

Ответов: 2
Просмотров: 1194
Последний ответ 10.06.2014, 13:12:18
от avantyrist