Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

RAmON10

  • Захожу иногда
  • 67
  • 2 / 0
Здравствуйте!
Прошу Вас помочь реализовать следующие функции на основе встроенного Mootools, т.к. не хочется утяжелять лишними скриптами и плагинами движок.

1) Открытие изображения в модальном окне - SqueezeBox
2) Раскрытие текста в div`е при нажатии на ссылку ("Читать подробнее..")

Заранее благодарен.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Применение встроенного Mootools
« Ответ #1 : 16.11.2010, 13:34:15 »
И в чем проблема.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
Re: Применение встроенного Mootools
« Ответ #2 : 16.11.2010, 13:40:48 »
используй jquery...
*

RAmON10

  • Захожу иногда
  • 67
  • 2 / 0
Re: Применение встроенного Mootools
« Ответ #3 : 16.11.2010, 13:56:50 »
идея в том чтобы использовать встроенные скрипты, чтобы не нагромождать их. Мутулс грузится в любом случае.
Проблема в том что я не специалист в этой области и прошу помощи.
« Последнее редактирование: 16.11.2010, 14:03:21 от RAmON10 »
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
Re: Применение встроенного Mootools
« Ответ #4 : 16.11.2010, 14:49:27 »
ну я тож не знаю мутулс...
хотя чем тебе не нравятся готовые варианты (плагины и модули)?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Применение встроенного Mootools
« Ответ #5 : 16.11.2010, 14:52:40 »
Мутулс грузится в любом случае.
его можно и отключить.
Проблема в том что я не специалист в этой области и прошу помощи.
ИМХО:
С такими проблемами в коммерческий раздел.
Здесь не клуб милосердия. Сейчас вы просите нахаляву придумать вам скрипт, завтра придете и скажите давайте мне делайте сайт бесплатно.
*

RAmON10

  • Захожу иногда
  • 67
  • 2 / 0
Re: Применение встроенного Mootools
« Ответ #6 : 16.11.2010, 14:53:25 »
сейчас стоит плагин, да и любой другой плагин вешает свой javascript, тем самым замедляет загрузку сайта, а как известно Google уже начал учитывать скорость загрузки сайта при ранжировании, скоро к этому придут другие ПС, да и для пользователей зачем тратить лишний траф?
если мутулс грузится стандартно в любой Joomla, зачем рядом с велосипедом изобретать еще один велосипед?))) тем более для таких простых задач)
*

RAmON10

  • Захожу иногда
  • 67
  • 2 / 0
Re: Применение встроенного Mootools
« Ответ #7 : 16.11.2010, 14:54:07 »
его можно и отключить.ИМХО:
С такими проблемами в коммерческий раздел.
Здесь не клуб милосердия. Сейчас вы просите нахаляву придумать вам скрипт, завтра придете и скажите давайте мне делайте сайт бесплатно.

какую-то фигню пишите, честное слово) мне скрипт придумывать не надо, он уже придуман до вас и до меня.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Применение встроенного Mootools
« Ответ #8 : 16.11.2010, 15:02:28 »
какую-то фигню пишите, честное слово) мне скрипт придумывать не надо, он уже придуман до вас и до меня.
я не фигню пишу, а по факту. Если скрипт придуман до меня и до вас, то к нему наверняка есть документация.
Вы для начала не пробовали ее поискать и разобраться в ней? Тем более там ничего заурядного нет.
А написать здесь что "я не специалист" и т.п. это проще всего, и сидеть ждать с моря погоды.
*

RAmON10

  • Захожу иногда
  • 67
  • 2 / 0
Re: Применение встроенного Mootools
« Ответ #9 : 16.11.2010, 15:04:34 »
Ваша помощь просто неоценима!
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
Re: Применение встроенного Mootools
« Ответ #10 : 16.11.2010, 15:06:05 »
идея в том чтобы использовать встроенные скрипты, чтобы не нагромождать их.

вот я этого не понимаю... по любому же надо писать скрипты...
 просто вынести их отдельно в файл...
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Применение встроенного Mootools
« Ответ #11 : 16.11.2010, 15:06:44 »
Ваша помощь просто неоценима!
рад стараться :)
Удачи в поисках решения.
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
Re: Применение встроенного Mootools
« Ответ #12 : 16.11.2010, 15:07:31 »
я просто не могу понять как ты хочешь задействовать mootools не использую скрипты. ведь по любому придется  что-то писать в коде
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
Re: Применение встроенного Mootools
« Ответ #13 : 16.11.2010, 15:08:30 »
написать пару функции и вынести их в отдельный файл, а там уже по id определять что едлать...
*

RAmON10

  • Захожу иногда
  • 67
  • 2 / 0
Re: Применение встроенного Mootools
« Ответ #14 : 16.11.2010, 15:08:56 »
верно, но это не прикреплять еще один файл с другим скриптом, т.к. в мутулс заложена эта функция. вопрос том, что писать в коде.
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
Re: Применение встроенного Mootools
« Ответ #15 : 16.11.2010, 15:13:25 »
блин, я понимаю, что mootools это набор библиотек...  ты просто вызываешь их... но чтоб была уже готова функция скрыть/закрыть или с картинками... ХЗ...
я могу дать ссылку с уроками Попова... может там найдешь http://ruseller.com/lessons.php?rub=33
я просто никогда так не парился... я использовал jq... благо уроки есть хорошие
*

RAmON10

  • Захожу иногда
  • 67
  • 2 / 0
Re: Применение встроенного Mootools
« Ответ #16 : 16.11.2010, 15:16:58 »
спасибо сейчас посмотрю, уже весь интернет перерыл, с jq проблем нет, но мутулс не так распространен. пока нашел рабочий вариант, но осталось его подсократить и прикрутить к шаблону:

Код
$this->initGallery($this->row->id);

$previousLabel = JText::_('Previous');
$nextLabel     = JText::_('Next');

$script=<<<EOB

// Override SqueezeBox.showContent()
SqueezeBox.showContent = function() {
this.window.setStyle('height', 'auto');
this.fx.content.start(1);
};

var addNavigation = function(content){

    var getButton = function(label, id, fromElement) {
        var button = null;
    if(fromElement) {
        button = new Element('a', {'href': '#'});
            button.addEvent('click', function(e){
                new Event(e).stop();
        SqueezeBox.fromElement(fromElement);
        });
        } else {
            button = new Element('span');
        }
        button.setProperty('id', id);
        button.appendText(label);
        return button;
    };

content.setStyle('background', '#000');

var imgSrc = content.getElement('img').src;
var previousElt = null;
var nextElt = null;
var imgLinks = $$('a.jea_modal');
var imgTitle = null;
var imgDescription = null;
imgLinks.each(function(el, count) {
if(el.href == imgSrc){
    imgTitle       = el.getElement('img').getProperty('alt');
    imgDescription = el.getElement('img').getProperty('title');
   
if(imgLinks[count-1]){
previousElt = imgLinks[count-1];
}
if(imgLinks[count+1]){
nextElt = imgLinks[count+1];
}
}
});

var navBlock = new Element('div', {'id': 'jea-squeezeBox-navblock'});
    var previousLink = getButton('< $previousLabel', 'jea-squeezeBox-prev', previousElt);
    var nextLink     = getButton('$nextLabel >', 'jea-squeezeBox-next', nextElt);
   
    if(imgTitle) {
    var blockTitle = new Element('div', {'id': 'jea-squeezeBox-title'});
    blockTitle.appendText(imgTitle);
    content.adopt(blockTitle);
    }
   
    if(imgDescription) {
    var blockDesc = new Element('div', {'id': 'jea-squeezeBox-description'});
    blockDesc.appendText(imgDescription);
    content.adopt(blockDesc);
    }
   
    navBlock.adopt([previousLink,nextLink]);
    content.adopt(navBlock);
}
EOB;

JHTML::_('behavior.modal', 'a.jea_modal', array('onUpdate' => '\addNavigation'));

$document=& JFactory::getDocument();
$document->addScriptDeclaration($script);
$document->addStyleDeclaration("
   
    #jea-squeezeBox-navblock {
    margin-top: 7px;
    text-align : center;
    }
   
    #jea-squeezeBox-title {
    margin-top: 0;
font-size: 11px;
    font-weight : bold;
    color : #fff;
    text-align : center;
    }
   
    #jea-squeezeBox-description {
    color : #ddd;
    font-size: 10px;
    text-align : center;
    }
   
#jea-squeezeBox-prev {
    margin-right: 10px;
    }
    #jea-squeezeBox-next {
    margin-left: 10px;
    }
a#jea-squeezeBox-prev, a#jea-squeezeBox-next {
    color : #fff;
    }
    span#jea-squeezeBox-prev, span#jea-squeezeBox-next {
    color : #555;
    }
");

?>
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
Re: Применение встроенного Mootools
« Ответ #17 : 16.11.2010, 15:22:53 »
ну эти библиотеки MooTools и ProtoType не так раскрученны к сожалению... но вещи тоже очень хорошие.... ну удачи тебе... если что, то выкладывай решение... может кому-то пригодиться
*

RAmON10

  • Захожу иногда
  • 67
  • 2 / 0
Re: Применение встроенного Mootools
« Ответ #18 : 16.11.2010, 15:24:21 »
ок, спасибо)
но это ведь не клуб милосердия))
*

ilma55

  • Захожу иногда
  • 198
  • 5 / 0
Re: Применение встроенного Mootools
« Ответ #19 : 16.11.2010, 15:26:46 »
я так не считаю... это клуб любителей Joomla и ее "приколов". все на твое усмотрение... я mootools не знаю... и не могу помочь с кодом... если токо готовое решение
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Re: Применение встроенного Mootools
« Ответ #20 : 14.03.2012, 23:46:09 »
Цитировать
1) Открытие изображения в модальном окне - SqueezeBox
Вот ссылка на документация, все подробно описано, примеров много: http://digitarald.de/project/squeezebox/1-1/showcase/images/

Цитировать
2) Раскрытие текста в div`е при нажатии на ссылку ("Читать подробнее..")
Честно говоря не понял что нужно, то ли грузить контент через AJAX, то ли просто тугл.
Вот русские доки по mootols: http://linux.ria.ua/docs/mootools/
По ajax: http://linux.ria.ua/docs/mootools/Request/Request
Тугл: http://linux.ria.ua/docs/mootools/Plugins/Fx.Slide

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

mootools только для админки

Автор baloon

Ответов: 10
Просмотров: 3090
Последний ответ 28.02.2015, 21:35:11
от flyingspook
как обновить Mootools 1.2.5?

Автор vip-leonid

Ответов: 12
Просмотров: 7386
Последний ответ 20.09.2013, 13:36:25
от zromualdo
Конфликт AJAX и mootools

Автор Alishi

Ответов: 3
Просмотров: 1772
Последний ответ 13.07.2012, 10:35:15
от SmokerMan
Криво работают модули с анимацией, jq и mootools

Автор Alishi

Ответов: 9
Просмотров: 2142
Последний ответ 30.06.2012, 16:35:13
от Tref_mast
[РЕШЕНИЕ] Вертикальный скролл (mootools 1.1)

Автор NightGuard

Ответов: 7
Просмотров: 4620
Последний ответ 14.04.2012, 01:28:32
от avex