Новости Joomla

Свои типы полей в Joomla.

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note" name="your_note_for_user" label="Заголовок примечания" title="Альтернативный способ для заголовка" description="Текст примечания" class="col-12 alert alert-info" heading="h1" close="true" />

heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён. Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле

<field type="systempluginstatus" name="systempluginstatus" addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>

-

type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:

<?php // namespace для атрибута addfieldprefix namespace Joomla\Module\Wtquicklinks\Site\Fields; // нельзя напрямую обращаться к этому файлу defined('_JEXEC') or die; // подключаем родительский класс для переопределения use Joomla\CMS\Form\Field\NoteField; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; // имя класса и имя файла точь-в-точь class SystempluginstatusField extends NoteField { protected $type = 'Systempluginstatus'; protected function getLabel() { // если плагин не включён if(PluginHelper::isEnabled('system','wtquicklinks')) { // меняем свойства родительского класса $this->class = 'alert alert-danger w-100'; $this->element['label'] = '⚠️ А-а-а-а!'; $this->element['description'] = 'Плагин не включён!!'; // и просто рендерим его с нашими свойствами return parent::getLabel(); } // А иначе всё хорошо, скрываем поле из виду. $this->parentclass = 'd-none'; return ''; } }

Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает. @webtolkru#joomla #php #webdev #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 82 Ответов
  • 13782 Просмотров
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
Создал две опции у независимого атрибута и добавил их к товару. При добавлении опций атрибутов выставил параметры цены для каждой соответственно: 1опция = 2250, 2опция = 4200.
Вопрос: Как сделать так чтобы при выборе одного из опций атрибута цена менялась, не только в корзине, но и на странице товара без перезагрузки страницы?
У меня отображается цена по первой опции атрибута, при выборе другой опции цена не меняется. JoomShopping 3.12.3 + Joomla 2.5.8
« Последнее редактирование: 21.01.2013, 13:11:40 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
FireBug Показывает ошибки?

Uncaught ReferenceError: setAttrValue is not defined
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Проверьте подключен ли файл http://сайт/components/com_jshopping/js/functions.js?
Потому что такое сообщение выдается если не найдена функция, а она находится именно там
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
Проверьте подключен ли файл http://сайт/components/com_jshopping/js/functions.js?
Потому что такое сообщение выдается если не найдена функция, а она находится именно там

Спасибо, подсказка помогла. Просто не стояла галочка "Загружать javascript" в "Настройках -> Другие параметры".
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Oleg24

  • Осваиваюсь на форуме
  • 45
  • 1 / 0
ребят, помогите найти в чем проблема...

не меняется цена в зависимости от атрибута...

вот ссылка http://klever-decor.ru/shop/dry_mix/dry_mix_primer_bergauf_primer

Joomla 2.5.9 JoomShopping 3.13.2

PS галочка "Загружать javascript" в "Настройках -> Другие параметры" стоит...

Причем точно помню, что все было нормально... но после чего перестало работать, не скажу...
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
Странно, но у вас в <head></head> ни одного скрипта не загружено, сама библиотека JQuery грузиться в модуле корзины ниже. А вы пишите что везде стоят галочки. Значит когда правили шаблон магазина удалили загрузку скриптов. Смотрите шаблон магазина, в нем причина.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
Не увидел сразу что у вас все скрипты перенесены в низ шаблона, может из-за этого не меряется цена - не успевает срабатывать скрипт.
И еще трижды грузиться библиотека JQuery - версии: 1.6.4 и 1.7.0 и 1.8.2 -попробуйте отключить две.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Oleg24

  • Осваиваюсь на форуме
  • 45
  • 1 / 0
причина все-таки в jQuery.

У меня стоит плагин JB Library.

Без него, на главной не загружается полностью фотографии, и накладываются друг на друга производители.

А с ним вот выбор атрибутов не работает:(

Меняю настройки, ничего не меняется:(

ЗЫ сейчас сделал загрузку jQuery локальную (в настройках, до этого была Google cdn или jQuery cdn)... вроде все стало нормально...
« Последнее редактирование: 18.04.2013, 05:12:07 от Oleg24 »
*

nikolazN84

  • Новичок
  • 1
  • 0 / 0
Доброе время суток уважаемые форумчане! у меня похожая проблема но в настройках все включено а цена по прежнему не меняется и сообщений не выдаёт об ошибках.
вот на примере http://www.optmarket.kz/index.php/ru/joomshopping/shokolad/yubilejnyj-100gr
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Внимательнее надо смотреть ошибки:
Цитировать
GET http://www.optmarket.kz/index.php/ru/joomshopping/product/ajax_attrib_select_and_price/1035?ajax=1&change_attr=5&qty=1&attr%5B5%5D=10 500 (Макет demofiles не найден)
А дальше воспользуйтесь поиском, так как эта ошибка уже обсуждалась.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

polkost

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Ребят, проблема с атрибутами.На локальном все было замечательно, менялась цена.Перенес, также работала, вводил изменения и потом заметил что атрибут уже цены не меняет. Дэбаг заинсталировал, но так и не понял что за ошибка и как все исправить.Большая просьба ткните, только по-возможности чтоб было понятно.
А то я уже все что можно вспоминал что менял...
вот например у этого товара не меняется цена:http://www.2store.eu/index.php?option=com_jshopping&controller=product&task=view&category_id=10&product_id=293&Itemid=148

Хотя в итоге,  в корзине оказывается товар именно с тем атрибутом который выбран.Т.е. просто браузер не воспринимает команды...ну я так понимаю.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
При изменении атрибута у вас приходит ответ от сервера
Код
{"id_1":"<select id=\"jshop_attr_id1\" name=\"jshop_attr_id[1]\" class = \"inputbox\" size = \"1\" onchange=\"setAttrValue('1', this.value);\"><option value=\"1\">10pcs</option><option value=\"2\" selected=\"selected\">100pcs</option></select><span class='prod_attr_img'><img id=\"prod_attr_img_1\" src=\"http://www.2store.eu/components/com_jshopping/images/blank.gif\" alt=\"\" /></span>","price":"9.99 EUR","pricefloat":"9.99","available":"1","ean":"300215-100","oldprice":"10.07 EUR","displaybuttons":"1"}<script type="text/javascript"><!--
document.writeln('<'+'scr'+'ipt type="text/javascript" src="http://home.hit.stat24.com/_'+(new Date()).getTime()+'/script.js?id=pzOV9Lce7YrgRQXWMlghcJZV.s5dXrtjajErVcMJhJj.A7"></'+'scr'+'ipt>');
//--></script>
Как видите к json прибавился еще и левый скрипт
Код
<script type="text/javascript"><!--
document.writeln('<'+'scr'+'ipt type="text/javascript" src="http://home.hit.stat24.com/_'+(new Date()).getTime()+'/script.js?id=pzOV9Lce7YrgRQXWMlghcJZV.s5dXrtjajErVcMJhJj.A7"></'+'scr'+'ipt>');
//--></script>
По этому json закосячился и не декодируется, уберите левый скрипт из ответа и, скорее всего, все заработает.
*

polkost

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
премного благодарю, видимо придется провайдеру звонить.Заходил-выключал эту статистику которая уже не раз ошибки Joomla давала, видимо не так выключаю.
*

sedoy02

  • Новичок
  • 8
  • 0 / 0
Решил написать и в этой теме про проблему изменения цены. Может кому поможет, потому что не всегда дело в конфликтах. Цитирую свой пост:

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

nengyryt

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Помогите пожалуйста. Перестала меняться цена. Не могу найти ошибку :( 
http://marimagnat.test-my-site.ru/derevyannye-doma/derevyannye-doma-maloj-ploshchadi-30-100-m2/derevyannyj-dom-d-101
*

dmitry_stas

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

nengyryt

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
смотрела. Выдает ошибку только TypeError: jQuery(...).tooltip is not a function. Я кстати не нашла  на просторах интернета как эту проблему решить. Хотя сомневаюсь что она имеет отношение к атрибутам. Раньше работало, цена обновлялась. К сожалению не знаю когда именно перестала. Но пробовала по-разному, вплоть до того что поотключала почти все плагины, модуль корзины, форму обратной связи (все что позже добавлялось) НИкакого эффекта...
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Эта ошибка обозначает, что либо скрипт тултипов не загружен, либо Jquery грузится позже тултипов, либо грузится второй раз Jquery.
*

nengyryt

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
пробовала убирать скрипты шаблона (оставались только те, что грузила Joomla) - это не дает эффекта
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Даст эффект только правильное расположение и присутствие скриптов, возможно мешают не шаблонные, а подгруженные из какого-нибудь расширения, возможно чего-то не хватает.
*

nengyryt

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Как я решила свою проблему (вдруг кому-то поможет):
1) Проверила базу данных - оказалось что при переносе сайта (компонент akeeba) таблицы продублировались с разными префиксами. Удалила ненужные
2) Поставила на локале чистый JoomShopping и заменила все файлы компонента на хостинге "чистыми".

Вуаля. Все работает.

P.S. нечего на Joomla пенять если ручки не из того места. сами копаемся, сами и расплачиваемся. Всем удачных реализаций проектов!
*

Gorizont

  • Новичок
  • 7
  • 1 / 0
причина все-таки в jQuery.
У меня стоит плагин JB Library.
ЗЫ сейчас сделал загрузку jQuery локальную (в настройках, до этого была Google cdn или jQuery cdn)... вроде все стало нормально...
Аналогично. Что только не менял - локальная спасла, спасибо. 
*

dieman

  • Захожу иногда
  • 136
  • 9 / 0
Такая же проблема, при смене jquery на 1.6.2 все прекрасно работает, но на сайте есть модули которые требуют минимум jquery 1.7, при включении данной библиотеки перестает работать пересчет цены. Причем если менять количество товара, то цена начинает меняться со скрипом. Есть решение данной проблемы? Уже всю голову сломал. Куда хоть смотреть то? Файрбаг не показывает ошибок.
*

dmitry_stas

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

dieman

  • Захожу иногда
  • 136
  • 9 / 0
вы добавляете еще одну библиотеку, или меняете версию jQuery в настройках ЖШ ?
Делаю и так и так. Нужна в принципе библиотека 1.8.2, если подключаю ее в настройках JShoping то перестают работать функции пересчета цены. При 1.6.2 все отлично, но блин на сайте есть скрипты которые не работают под 1.6.2.
*

nevigen

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

malicov

  • Новичок
  • 1
  • 0 / 0
Добрый день!
У меня в чем-то схожая проблема. При изменении атрибута цвета товара, меняется и изображение и цена товара. Но при добавлении товара, с измененным атрибутом, в корзину, в корзине отображается стандартная картинка и цвет, не то что я выбирал в карточке товара.
В чем может быть проблема?
*

dieman

  • Захожу иногда
  • 136
  • 9 / 0
Сайт на локалке, проблему решил при помощи easy jquery где надо оставил 1.6.2, где надо 1.8.2. Костыли конечно, но вроде проблема решена.
*

Roomico

  • Новичок
  • 8
  • 0 / 0
Здравствуйте! Прошу помощи, у меня похожая проблема. Не меняется цена при выборе атрибутов. В Google hrome и Mozilla всё работает нормально, но в internet explorer не меняется цена. FireBug ошибок не выдаёт. На локалке всё работает. Js файлы не менял, только CSS. Не могу найти проблему.
Ненавижу internet explorer!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Характеристики товара без всплывающей формы

Автор shop-user

Ответов: 2
Просмотров: 800
Последний ответ 04.04.2025, 21:40:09
от victorantoniak
Вывести описание атрибута

Автор Napst3r

Ответов: 2
Просмотров: 975
Последний ответ 31.07.2024, 12:24:00
от Napst3r
Вывести определённую характеристику отдельно от списка характеристик товара

Автор Silent_Breeze

Ответов: 52
Просмотров: 12001
Последний ответ 23.11.2023, 12:31:08
от YuryNew
Автоматическая генерация Кода товара

Автор geral

Ответов: 4
Просмотров: 2078
Последний ответ 17.03.2023, 13:21:43
от geral
Проверить, есть ли у товара хоть одна из характеристик. Как?

Автор goga_pgasovav

Ответов: 8
Просмотров: 2343
Последний ответ 09.01.2023, 14:47:41
от sivers