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

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
Версия Joomla 3.3.6
Столкнулся с проблемой, которая соответствует названию темы. Создал структуру компонента Model-View-Controller, вроде всё работает. Список материалов выводить получалось, а вот сделать рабочую форму добавления через JSON так и не вышло. Ниже я опишу структуру добавления, как понимаю как должна работать, и, возможно, вы поможете разобраться. Может ошибка в коде или чего-то не хватает, в может в недопонимании концепции.
По ходу, может вы поможете решить дополнительные вопросы.

Начну, пожалуй с точки входа компонента, в котором подключается таблица, и выглядит это так
Код: php
JTable::addIncludePath( JPATH_COMPONENT . '/tables' );

Далее сам файл таблицы tables\creations.php и структура таблицы
Спойлер
[свернуть]

Теперь перейдем к форме - view\creation\tmpl\add.php. Модель формы - models\creation.php
Форма добавления находится по адресу index.php?option=com_sporepedia&view=creation&layout=add
Спойлер
[свернуть]

Теперь сам скрипт, в котором описывается функция addCreation() от элемента button в форме с отправкой данных в формате JSON
Спойлер
[свернуть]

Собственно, я не понимаю, что должно происходить дальше? Вижу, что JSON обращается к контроллеру с методом add. Как я понял из других примеров, контроллер сообщает модели что делать дальше, т.е. примерно это выглядит так
Код: php
<?php
defined('_JEXEC') or die;

class SporepediaController extends JControllerLegacy
{
function add() {
$app = JFactory::getApplication();

$modelName = 'creation';
$model = $this->getModel( $modelName );

$row = $model->addCreation();

die(json_encode(array('All O.K.')));
}
}

Окей, идем в саму модель model\creation.php
Код: php
<?php
defined('_JEXEC') or die;
 
class SporepediaModelCreation extends JModelLegacy
{
public function addCreation( $data = null ) {
// здесь должно происходить чтение JSON и запись в БД
// читал, что в последних версиях Joomla всё это можно сделать при помощи JInput и подключенной таблицы JTable, но что здесь должно быть, так и не разобрался
// название нужной таблицы есть в форме в скрытом поле table
}
}
?>

Заранее спасибо тем, кто уделит внимание!
« Последнее редактирование: 12.11.2014, 18:02:34 от oleg22ij »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Теперь сам JSON скрипт,
это что то новенькое)
JSON  - это формат вобще-то


Цитировать
   jQuery( '#creationForm *[name]' ).each( function( idx, ele ) {
      creationInfo[ jQuery( ele ).attr( 'name' ) ] = jQuery( ele ).val();
   });
это тоже шедевр)
в jQuery есть метод serialize() для этого

собственно js скрипт будет таким

Код
function addCreation() {
jQuery.ajax({
url: "index.php?option=com_sporepedia&task=add",
type: "POST",
data: jQuery( '#creationForm').serialize(),
dataType: 'JSON', // Здесь указывается что ответ будет в формате JSON
success: function (data, status) {
console.log(data); // т.е. тут data будет в JSON
}
});
}
}

в методе контроллера чего-то делаем и отдаем JSON
Код
<?php
defined('_JEXEC') or die;
 
class SporepediaController extends JControllerLegacy
{
function add() {
$app = JFactory::getApplication();
 
$modelName = 'creation';
$model = $this->getModel( $modelName );
 
$row = $model->addCreation();
       
        die(json_encode(array('чего-то там'))); // тут возвращаем данные
}
}

*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
это что то новенькое)
JSON  - это формат вобще-то
Да, самому смешно стало. Поправил.

это тоже шедевр)
Я старался :) Зато работает. Исправил на ваш.

Теперь как мне обработать отправленные данные из формы в модели? Т.е. да, контроллер говорит модели сделать то-то то-то, и возвращает что-то другое тоже в формате JSON, например, это может выглядеть так:
Код: php
if ($row = $model->addCreation()) {
 die(json_encode(array('Access')))
} else {
 die(json_encode(array('Failed')))
}

Обработать отправленные JSON'ом данные и записать их в БД - действие модели
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Омг.. у меня взорвался мозг!
1. JSON это формат данных! У вас ничего JSON не отправляет! Так как формат данных может только читаться и записываться, делать формат ничего не может!
У вас с помощью AJAX отправляются данные! Эти данные передаются на сервер, обрабатываются PHP скриптом и этот скрипт отдаст для AJAX какие то результаты выполнения всего этого в формате JSON!
2. Вы вообще поиском пытались воспользоваться? тут уже столько раз обсуждалось как работать с AJAX в Joomla! Вот из последнего что я отвечал: http://joomlaforum.ru/index.php/topic,302675.msg1502772.html#msg1502772 расписано по шагово как реализовать AJAX в компоненте Joomla!

*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
Да я понимаю, что JSON - это формат данных, а AJAX их отправляет, но меня интересует вот этот момент
обрабатываются PHP скриптом

Ведь запись в БД этих, полученных php-скриптом, JSON данных, отправленных AJAX'ом, считается за "обработку php-скриптом"?

Вот, в форме 4 переменные (title, descr, table и user_id), AJAX их берет вот здесь
Код: javascript
data: jQuery( '#creationForm').serialize() // или не берёт, опять же: как проверить?

и посылает контроллеру сюда
Код: javascript
url: "index.php?option=com_sporepedia&task=add"

а контроллер говорит модели выполнить такой-то метод
Код: php
$app = JFactory::getApplication();
 
$modelName = 'creation';
$model = $this->getModel( $modelName );
 
$row = $model->addCreation();

только как ей [модели] сообщить, чтобы он выполнила метод с теми данными JSON, которые получил контроллер?
Контроллер: "Модель, смотри, я получил данные в формате JSON. Возьми, и запиши эти данные в БД"

P.S. Да, пользовался поиском, и, либо я плохо искал, либо не нашёл то, что искал. В вашем же примере вы поступили своим методом, создав целую модель для AJAX, но меня, например, такой ход не устраивает, даже если он проще того, что пытаюсь собрать я, да и использовали другую функцию ($.getJSON). Каждому своё.
« Последнее редактирование: 12.11.2014, 18:03:19 от oleg22ij »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ведь запись в БД этих, полученных php-скриптом, JSON данных, отправленных AJAX'ом, считается за "обработку php-скриптом"?
Ещё раз! JavaScript с помощью технологии AJAX (асинхронный JS и XML) отправляет данные на сервер в определенный скрип, скрипт получает эти POST или GET данные! (можете считать что вы перешли по ссылке в браузере  index,php?option=com_test&task=getAjax&action=sendForm&title=lalal&taxt=blablabla&id=10), скрипт обрабатывает по вашемо хотению данные, и выводи эти данные в стандартный поток ввода вывода (то что вы видите на странице при например echo 'lalala') после этого ваш AJAX скрипт получает результат ответа сервера, в формате который вы ему указали (JSON) и уже вы работает с этими JSON данными в вашем скрипте!)


только как ей [модели] сообщить, чтобы он выполнила метод с теми данными JSON, которые получил контроллер?
Контроллер: "Модель, смотри, я получил данные в формате JSON. Возьми, и запиши эти данные в БД"
Не получает ваш контроллер никаких JSON данных! Получает обычные данные которые валяются в $_REQUEST!

P.S. Да, пользовался поиском, и, либо я плохо искал, либо не нашёл то, что искал. В вашем же примере вы поступили своим методом, создав целую модель для AJAX, но меня, например, такой ход не устраивает, даже если он проще того, что пытаюсь собрать я, да и использовали другую функцию ($.getJSON). Каждому своё.
Целая модель для AJAX данных банально для удобства, и что бы не загромождать целевые методы кусками кода, и что бы не создавать отделью задачу в контроллере под каждый новый AJAX запрос! Например я создаю в файле AJAX.php метод getForm который мне возвращает форму и запрос веду: index.php?option=com_test&task=getAjax&action=geForm, а потом мне нужно отправить форму методом sendForm и я в AJAX.php создам метод и вызову его index.php?option=com_test&task=getAjax&action=sendForm
Что вам не подходит? Вам не подходит один раз написать подобное? Вам удобнее в контроллере написать 100500 задач на каждый AJAX запрос?!
И этот метод универсален! Я этим методом и шлю формы! И какая разница? $.getJSON это просто другой метод для получаения AJAX который более коротки и служит для другого! Слать можно хоть через $.ajax, хоть через $.post хоть через $.get!
*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
Не получает ваш контроллер никаких JSON данных! Получает обычные данные которые валяются в $_REQUEST!

Вот же! Эти данные валяются в $_REQUEST и доступны только контроллеру, или еще и модели, или ей их передать как-то надо?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Вот же! Эти данные валяются в $_REQUEST и доступны только контроллеру, или еще и модели, или ей их передать как-то надо?
Ужас ) Вы же основ не знаете! $_REQUEST глобальная переменная которая доступна везде, и в контроллере и в модели и в виде и в шаблоне!  ВЕЗДЕ!
*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
Ужас ) Вы же основ не знаете! $_REQUEST глобальная переменная которая доступна везде, и в контроллере и в модели и в виде и в шаблоне!  ВЕЗДЕ!

Ну, я знал что она глобальная, но не представлял, что настолько.
Ну да, всё приходит с опытом. Конкретно в этом деле (PHP и Joomla) я впервые.
Спасибо за пояснения! Буду далее экспериментировать.

Добавлено позже...
Получилось! Еще раз спасибо за помощь (плюсик добавить не могу, не нашёл где)! И ведь, блин, всё было в недопонимания границ глобальных переменных :laugh:
« Последнее редактирование: 12.11.2014, 20:05:47 от oleg22ij »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
А какая разница между кучей методов в контроллере и кучей методов в модели? В контроллере можно вобщем-то тоже все аяксы в одном методе обрабатывать..
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Получилось! Еще раз спасибо за помощь (плюсик добавить не могу, не нашёл где)!
После 10 постов будет возможность менять карму!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
А какая разница между кучей методов в контроллере и кучей методов в модели? В контроллере можно вобщем-то тоже все аяксы в одном методе обрабатывать..
Пример где в одном методе все аяксы обрабатываются можно?) (и желательно что бы это можно было прочитать нормаль, а то у меня тут есть сайтик в котором AJAX методов на 2000 строк )
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
ну вот в примере например на запросы:
index.php?option=com_test&task=getAjax&action=getForm
index.php?option=com_test&task=getAjax&action=sendForm
Код: php
function getAjax() 
{
    $action = JFactory::getApplication()->input->getCmd('action', 'getform');
    if ($action == 'getform')
    //отдаем форму
    elseif ($action == 'sendform')
    //принимаем форму
}

Ну вобщем то так же как и в модели все наверное...
интернет-блог: http://websiteprog.ru
*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
ну вот в примере например запрос  на запросы:
index.php?option=com_test&task=getAjax&action=getForm
index.php?option=com_test&task=getAjax&action=sendForm
Код: php
function getAjax() 
{
    $action = JFactory::getApplication()->input->getCmd('action', 'getform');
    if ($action == 'getform')
    //отдаем форму
    elseif ($action == 'sendform')
    //принимаем форму
}

Ну вобщем то так же как и в модели все наверное...


Ну тут случай простой, когда метода всего два для одной модели, а если их больше? Что, весь код так составлять через elseif?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Ну тут случай простой, когда метода всего два для одной модели, а если их больше? Что, весь код так составлять через elseif?

Ну а в модели то как? Те же самые условия проверяются. Ну я вобщем -то и конструкцией switch не брезгую. Конечно если там операций много то надо отдельный метод под это дело.. так же и в модели.

Вобще я вижу смысл в модели для аякса если там много операций с данными или выборка каких то данных из БД а если это просто допустим какой нибудь html/json отдает Форму там какую нибудь буферизует или вид какой нибудь отрисовывает то можно наверное и в контроллере, полет фантазий вобщемто неограничен
« Последнее редактирование: 12.11.2014, 21:02:45 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ну вобщем то так же как и в модели все наверное...
Вот я представляю как такой код будет читаться на 2000 строк )) О как удобно будет )

Ну а в модели то как? Те же самые условия проверяются. Ну я вобщем -то и конструкцией switch не брезгую. Конечно если там операций много то надо отдельный метод под это дело.. так же и в модели.
У меня в модели ничего не проверяется, просто создается нужный метод и он вызывается ...&task=getAjax&action=метод_который_вызывать
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Ну так же можно вызывать методы и из контроллера. В чем проблема ? Что слишком жирный контроллер получается? Ну если он уж слишком жирный то это не гуд.. хотя может и пофик если он чисто под аяксы..

вобще я видел контроллеры в "компонентах" где выборка данных и еще отрисовка шаблона идет на 5000 с лишним строк. Вот это да жесть конечно..
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ну так же можно вызывать методы и из контроллера. В чем проблема ? Что слишком жирный контроллер получается? Ну если он уж слишком жирный то это не гуд.. хотя может и пофик если он чисто под аяксы..
Можно! Но это создать таск, дернуть нужную модель, вызвать нужную задача! А так я просто создаю нужный мне метод! В контроллере всего один метод, а не толпа, и если вдруг что изменить надо то надо будет лезть только в модель!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Можно! Но это создать таск, дернуть нужную модель, вызвать нужную задача!

Ну просто далеко не всегда требуются модели. У меня есть к примеру контроллер который просто виды отрисовывает на основе данных из реквеста. через ob_get_contents или просто php файл инкулдит. Даже если допустим один какой-то метод из модели используется для получения данных его можно вызвать в конструкторе один раз и все. дальше на основе этих данных отдавать виды какие то..
интернет-блог: http://websiteprog.ru
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Прошу прощения за оффтоп, но мне кажется, что все относительно. Серверу по фиг, как вы пишете: все равно и модель, и контроллер, и вью подключаются в один большой скрипт. Все в основном для удобного чтения кода (чужими). Поправьте, если я не прав.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Рефакторинг не только чужим но и самому полезен. Что проще поправить что то в одном методе или в десяти? Если весь код нагромоздить в одном месте то потом сам не разберешь где там что у тебя. Особенно если постоянно наращиваешь функционал.

В бистриксе кстатии вроде нету разделения на контроллеры-модели-вью. Вся внутренняя логика реализована в шаблонах. Неужели с ним удобно работать?
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Прошу прощения за оффтоп, но мне кажется, что все относительно. Серверу по фиг, как вы пишете: все равно и модель, и контроллер, и вью подключаются в один большой скрипт. Все в основном для удобного чтения кода (чужими). Поправьте, если я не прав.
Вы абсолютно правы! Речь не идет про скорость и оптимизацию, речь идет про удобочитаемость!
*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
Ммм... а как же скорость обработки сервером? Чем сложнее код, тем дольше...? Да, там в миллисекундах дело, но всё же.
« Последнее редактирование: 13.11.2014, 01:06:13 от oleg22ij »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Я часто организую аякс-контроллер (в другой CMS) с таким кодом:
Код

$function = Core_Array::get($_REQUEST, 'function', '');
$classname = "ajaxLoader";
$error = '';
if (empty($function)) {
    $error = 'Название функции не передано.';
} else if (!method_exists('ajaxLoader', $function)) {
    $error = 'Функции ' . $function . ' не существует в классе ajaxLoader.';
} else {
    echo call_user_func(array($classname, $function));
    die();
}
if (!empty($error)) {
    echo json_encode(array('content' => $error, 'error' => 1));
    die();
}



class ajaxLoader
{

    public static function loadMap()
    {......

То есть без свитчей и условий вызываю определенную функцию контроллера аякс-запросом. Это-же можно переделать под Joomla и под модель. Тогда контроллер вообще трогать не придется.
*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
Arkadiy, тоже интересный вариант
*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
Дошёл до поля для файла. Пытаюсь добиться банального пока что, чтобы модель возвращала имя файла на компьютере пользователя, и выбило это в alert.
Форме добавил enctype="multipart/form-data". В функции перед AJAX добавил var formData = new FormData("#fileform").
В самом AJAX
Код: javascript
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (data) {
    alert(data);
    console.log(data);
}
В php модели банальное return $_FILES['userfile']['name'].
Алерт выбивает null. Где туплю?

P.S. Или сначала нужно по-любому писать php загрузки файла на сервер в такую-то папку с таким-то именем и т.д., а потом только можно будет возвращать имя?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Алерт выбивает null. Где туплю?
В том месте где вы подумали что с помощью AJAX можно скачать или загрузить файл )
*

oleg22ij

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
  • Козерожег
Так что, только через action в форме и через AJAX вообще никак? Ибо я видел в интернете кучу примеров, их не пробовал правда, но если таковые имеются, может как-то всё таки можно.
« Последнее редактирование: 01.12.2014, 21:11:04 от oleg22ij »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Я как-то давно делал загрузку файла без перезагрузки страницы, помнится даже какой-то jquery плагин был для этого. Но там не AJAX, по моему ифрейм.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отправка файлов через ajax в модуль Joomla

Автор hemicide

Ответов: 19
Просмотров: 2108
Последний ответ 11.04.2022, 08:44:33
от sivers
Применение ajax (Аякс) в модуле Joomla

Автор tm2010

Ответов: 34
Просмотров: 5220
Последний ответ 26.09.2020, 09:38:35
от b2z
ajax проверку на вход. В стандартном модуле входа?

Автор Dolphin4ik_1

Ответов: 4
Просмотров: 733
Последний ответ 23.07.2020, 15:03:57
от sivers
Обработка AJAX в компоненте Joomla!3

Автор balancer

Ответов: 33
Просмотров: 11758
Последний ответ 23.07.2020, 07:45:53
от Dolphin4ik_1
Модуль обратной связи. Как использовать свойство context в ajax запросе

Автор ushangi

Ответов: 0
Просмотров: 682
Последний ответ 15.02.2020, 22:08:12
от ushangi