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

denxio

  • Захожу иногда
  • 170
  • 4 / 0
Возможно, кто-то сталкивался с ситуацией? Есть несколько поставщиков, у каждого свой прайс. В целом, прайсы хоть и отличаются в некоторых деталях, но похожи друг на друга. Можно ли как-то эти прайсы загружать, чтобы автоматически обновлялось наличие товара и цена? Например, если какого-то товара нет в загружаемых прайсах, то его количество автоматичнески устанавливается в ноль. Ну а на новый или уже существующий товар менялись только, к примеру, цены.
Хочется как-то максимально автоматизировать процесс.
Возможно уже существует решение платное или нет? Рассмотрю все варианты.
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
.....Например, если какого-то товара нет в загружаемых прайсах, то его количество автоматичнески устанавливается в ноль. Ну а на новый или уже существующий товар менялись только, к примеру, цены.........
как это ?
1 прайс от 1 поставщика прогнали... изменилось 30 товаров. остальные в 0
2 прайс от второго поставщика прогнали изменилось 10 товаров, остальные в 0 и те которые были импортированы до того тоже (их ведь нет в прайсе).

логика ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

denxio

  • Захожу иногда
  • 170
  • 4 / 0
А если все прайсы сливать в один файл?
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
Цитировать
прайсы хоть и отличаются в некоторых деталях, но похожи друг на друга
и что ? сделать ИИ ? (ИИ - Искуственный Интелект)
пусть решает телепатические задачи относительно того, что вы хотели ?
а если уже все в 1 файле сливаете, то приведите все к единому виду и используйте это

а так чтобы бац и все.... то для только здесь решение многих проблем
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

denxio

  • Захожу иногда
  • 170
  • 4 / 0
и что ? сделать ИИ ? (ИИ - Искуственный Интелект)
пусть решает телепатические задачи относительно того, что вы хотели ?
а если уже все в 1 файле сливаете, то приведите все к единому виду и используйте это

а так чтобы бац и все.... то для только здесь решение многих проблем

Зря язвите. Я видел такое. Был написан собственный компонент, который позволял импортировать несколько прайсов разных поставщиков. Но, к сожалению, с теми разработчиками контакт утерян. Потому и спрашиваю, возможно кто-то сталкивался с таким.
*

dmitry_stas

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

denxio

  • Захожу иногда
  • 170
  • 4 / 0
заранее известного формата?
Да.
*

buto

  • Давно я тут
  • 570
  • 1 / 0
Не знаю, посмотрите, может что-то из этой темы  http://joomlaforum.ru/index.php/topic,320143.msg1604967.html#msg1604967 вам приглядится, просто не совсем задача ясная, даже облачная. У меня на одном магазине 17 поставщиков, все со своими кривыми прайсами и артикулами. Реально толковых только 4, остальное ручной шлак. Может у вас другие поставщики, но это сугубо индивидуальная разработка должна быть. Именно поэтому и софт на это дорогой (300-500-1000 usd) задают. Потому что индивидуально .  Если 1-3 однотипных прайса-то все номрально у вас будет и с http://joomlaforum.ru/index.php/topic,224419.0.html (сам пользуюсь) работает отлично.
*

denxio

  • Захожу иногда
  • 170
  • 4 / 0
Не знаю, посмотрите, может что-то из этой темы  http://joomlaforum.ru/index.php/topic,320143.msg1604967.html#msg1604967 вам приглядится, просто не совсем задача ясная, даже облачная. У меня на одном магазине 17 поставщиков, все со своими кривыми прайсами и артикулами. Реально толковых только 4, остальное ручной шлак. Может у вас другие поставщики, но это сугубо индивидуальная разработка должна быть. Именно поэтому и софт на это дорогой (300-500-1000 usd) задают. Потому что индивидуально .  Если 1-3 однотипных прайса-то все номрально у вас будет и с http://joomlaforum.ru/index.php/topic,224419.0.html (сам пользуюсь) работает отлично.
Спасибо. Полезная информация.
*

Intexchange

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Есть несколько поставщиков, у каждого свой прайс. В целом, прайсы хоть и отличаются в некоторых деталях, но похожи друг на друга. Можно ли как-то эти прайсы загружать, чтобы автоматически обновлялось наличие товара и цена? Например, если какого-то товара нет в загружаемых прайсах, то его количество автоматичнески устанавливается в ноль. Ну а на новый или уже существующий товар менялись только, к примеру, цены.
Полностью аналогичная ситуация. Нашли решение?
*

katrey

  • Захожу иногда
  • 116
  • 7 / 1
Возможно, кто-то сталкивался с ситуацией? Есть несколько поставщиков, у каждого свой прайс. В целом, прайсы хоть и отличаются в некоторых деталях, но похожи друг на друга. Можно ли как-то эти прайсы загружать, чтобы автоматически обновлялось наличие товара и цена? Например, если какого-то товара нет в загружаемых прайсах, то его количество автоматичнески устанавливается в ноль. Ну а на новый или уже существующий товар менялись только, к примеру, цены.
Хочется как-то максимально автоматизировать процесс.
Возможно уже существует решение платное или нет? Рассмотрю все варианты.
Возможно, мой компонент (Excel2JS) справится с такой задачей, если назначать товарам одного поставщика определенные категории и не загружать в эти категории товары других поставщиков. В моем компоненте можно под прайс каждого поставщика создать свой профиль настроек, в котором указать в каких категориях обнулить количество товаров перед импортом. А в процессе импорта товарам, которые есть в прайсе, будут назначены количество и цена из прайса. А у тех товаров, которых в прайсе нет, останется количество - 0. Т.о. обнуление будет затрагивать только категории данного поставщика, и не влиять на товары в других категориях. Такой прием же можно сделать и со статусом публикации.

Если такой вариант все равно не подходит, то теоретически при импорте можно записывать название прайса в заранее добавленное поле в базе данных, т.о. у каждого товара будет "метка" прайса. Перед началом импорта прайса обнулять количество у товаров с данной меткой. Такой механизм в моем компоненте еще не реализован, но я могу его добавить, если Вы все еще нуждаетесь в решении данной задачи.
*

Battlefield

  • Новичок
  • 4
  • 1 / 0
Есть несколько поставщиков, у каждого свой прайс. В целом, прайсы хоть и отличаются в некоторых деталях, но похожи друг на друга. Можно ли как-то эти прайсы загружать, чтобы автоматически обновлялось наличие товара и цена? Например, если какого-то товара нет в загружаемых прайсах, то его количество автоматичнески устанавливается в ноль. Ну а на новый или уже существующий товар менялись только, к примеру, цены.

Ни один из существующих скриптов по импорту-экспорту прайсов такую задачу по объединению одинаковых товаров в разных прайс-листах поставщиков не решает. Я такое встречал в оффлайн программах. Тоесть в программу закачиваются разные прайсы а из нее выгружается один общий прайс с нужным наличием товаров и нужными ценами. В программе Инетшоп поиск одинаковых товаров работает вот так в полуавтоматическом режиме:



Или в ручном режиме:




В итоге получается что-то вроде вот такого каталога:


Если кто-то нагуглит более подходящие фотки, тоже бросьте сюда для примера.

Хочется как-то максимально автоматизировать процесс.

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

В моем компоненте можно под прайс каждого поставщика создать свой профиль настроек, в котором указать в каких категориях обнулить количество товаров перед импортом. А в процессе импорта товарам, которые есть в прайсе, будут назначены количество и цена из прайса. А у тех товаров, которых в прайсе нет, останется количество - 0.

У меня в большинстве прайсов идет сразу множество категорий, т.е. в общем случае в произвольном прайс-листе может быть произвольное количество категорий товаров. И по условию задачи - товары могут дублироваться в разных прайсах.
*

Ferax

  • Новичок
  • 3
  • 0 / 0
У меня в большинстве прайсов идет сразу множество категорий, т.е. в общем случае в произвольном прайс-листе может быть произвольное количество категорий товаров. И по условию задачи - товары могут дублироваться в разных прайсах.
Программа сложная, сразу наскоком ее не осилишь. Я так понимаю, можно легко совместить ее с любым модулем импорта CSV или XLS файла с товарами. То есть в ней готовим сводный прайс со всех поставщиков, экспортируем его из этой программы и закачиваем нужные цены и товары в магазин.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Сбросить счётчик ID товаров JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 781
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav
Плагин обновления цен и остатков товаров JoomShopping из CSV

Автор sergeytolkachyov

Ответов: 0
Просмотров: 1019
Последний ответ 24.12.2024, 14:50:42
от sergeytolkachyov
Сортировка товаров в админке

Автор Emotion

Ответов: 26
Просмотров: 6163
Последний ответ 15.08.2024, 08:00:20
от kit2m2
[JoomShopping 5] вывод товаров из дочерних категорий

Автор v42bis

Ответов: 15
Просмотров: 2364
Последний ответ 14.06.2024, 11:43:28
от denistischenko
Фильтр товаров для JoomShopping 5

Автор Lemonez

Ответов: 14
Просмотров: 2247
Последний ответ 25.04.2024, 14:11:25
от dron