Новости Joomla

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

Вы уверенно чувствуете себя перед камерой, динамичны, обаятельны и всегда улыбаетесь? Чувствуете себя искателем приключений, готовым поделиться своими исследованиями CMS Joomla!, взять интервью у видных деятелей сообщества, пообщаться лично или по видеосвязи с волонтерами Joomla или отправиться на поиски новых идей?

Joomla ищет одного или нескольких волонтеров, готовых вдохнуть новую жизнь в обсуждение Joomla, ее CMS, пользователей, сообщества и многого другого.

Возможны самые разные форматы и темы: шортсы, интервью, аналитика и разборы в режиме реального времени, быстрые советы и рекомендации, знакомство с миром Joomla, изучение открытого исходного кода... Нет никаких ограничений!

Joomla! уже активно представлена ​​во многих социальных сетях:
- 155K подписчиков на Facebook,
- 55K подписчиков на X (ранее Twitter),
- 16K подписчиков на YouTube,
- 14K подписчиков на LinkedIn,
- 5,7K подписчиков в Instagram
а так же другие площадки ждут вас. Аккаунты Threads и Bluesky относительно новые, но их популярность только растёт!

А если хватит энергии, можно рассмотреть и TikTok!

❓ Итак, вы готовы?
👉 Свяжитесь с отделом маркетинга по адресу: marketing@community.joomla.org

Подробности в статье в Joomla Community Magazine.

@joomlafeed

SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам создания кастомных схем данных для сервера обновлений.

v.2.6.1. Что нового?

  • Правки наследования схем серверов обновлений. Улучшена логика наследования схем серверов обновлений для проектов компонент - категория - проект.
  • Не стабильные релизы в сервере обновлений. Теперь в данные сервера обновлений попадают все версии (alpha, beta и т.д.), а не только stable.
  • Косметические изменения. В шаблоне по умолчанию сделаны замены некоторых CSS-классов, уточнено присвоение атрибутов loading=lazy и fetchpriority.
  • Рефакторинг и правки кода. Текущее обновление кодовой базы.
  • Исправление ошибок.

Больше спасибо за помощь в тестировании участникам нашего сообщества Александру Новикову (@pro_portal) и Александру Судьбинову (@alexrevo).

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

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Re: Модуль обратной связи AJAX
« Ответ #30 : 28.08.2014, 03:39:12 »
Спойлер
[свернуть]
Работает AJAX? У вас форма по клику по кнопке должна отправляться на action. Отмените действие по умолчанию.

Код: javascript
jQuery(function($) {
    $('#cu-submit').on('click', function (event) {
        event.preventDefault();
        $.ajax({
  type: 'POST',
  url: $('#contact-us').attr('action'),
  data: $('#contact-us').serialize(),
  success: function(server){
      console.log(server);
  },
  error: function(obj, err, excl){
      console.log('Error:  ' + err + ' ' + excl);
  }
        });
    });
});
Веб-разработка: заказ. Только новая разработка.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #31 : 28.08.2014, 13:25:52 »
А в jQuery.ajax({ }) есть параметр аналогичный success, только для выполнения чего-либо до выполнения getAjax()?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Модуль обратной связи AJAX
« Ответ #32 : 28.08.2014, 14:14:33 »
beforeSend ?

Кстати
Цитировать
Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are deprecated as of jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #33 : 28.08.2014, 14:42:36 »
Да, спс, сам нашел уже, здесь: http://jquery.page2page.ru/index.php5/Ajax-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81

Теперь другой вопрос.
В success показываю сообщение (аналогичное JFactory::getApplication()->enqueueMessage(), просто заранее подготовленный скрытый блок. который делаю видимый), в сообщении button "Закрыть", по нажатии на на которую надо очистить все поля и скрыть форму.
Вся форма - в виде раскрывающегося меню, внутри .open > .dropdown-menu, т.е. по нажатии "Закрыть" надо убрать у итема-родителя (id заранее неизвестен).open.
Есть мысли, как?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Модуль обратной связи AJAX
« Ответ #34 : 28.08.2014, 14:46:52 »
А id дочернего элемента известен? Тогда можно было бы через parent(). Может спецы по JS еще что-то подскажут.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #35 : 28.08.2014, 15:01:40 »
Структура примерно следующая:

<li class="item-116 dropdown open">
    <a data-toggle="dropdown" href="#"></a>
    <ul class="dropdown-menu dropdown-right">
        <form id="contact-us" class="form-vertival" enctype="multipart/form-data" method="post" action="/"></form>
        <script type="text/javascript"></script>

    </ul>
</li>

Выделенное - это сам модуль, нужно по нажатии в модуле кнопки убрать open у li и очистить поля формы.
jquery("#contact-us").parent().parent().removeClass("open"); ?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Модуль обратной связи AJAX
« Ответ #36 : 28.08.2014, 15:21:41 »
или так:
jQuery("#contact-us").parents(".open").removeClass("open");
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #37 : 28.08.2014, 15:27:20 »
Спс
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Re: Модуль обратной связи AJAX
« Ответ #38 : 28.08.2014, 16:27:41 »
быстрее:  jQuery("#contact-us").closest("li").removeClass("open");
Веб-разработка: заказ. Только новая разработка.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #39 : 28.08.2014, 21:20:32 »
быстрее:  jQuery("#contact-us").closest("li").removeClass("open");
Сделал, работает. Не нашел, что возвращает эта функция: closest()

upd
Нашел:
Цитировать
Получает набор, содержащий ближайшие родительские элементы, которые удовлетворяют указанному селектору, включая начальный элемент.
Сначала, сlosest  смотрит на текущий элемент: удовлетворяет-ли он указанному выражению, если да, то просто возвращается непосредственно сам элемент. Если не удовлетворяет, то будет далее продолжаться просмотр документа, родитель за родителем, до тех пор, пока не будет найден соответствующий указанному выражению элемент. В случае, если ни одного элемента не найдено, то ничего не будет возвращено.
« Последнее редактирование: 28.08.2014, 21:34:55 от AlekVolsk »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Модуль обратной связи AJAX
« Ответ #40 : 28.08.2014, 21:47:12 »
closest банально перемещается от элемента который вызывается по дереву вверх.. пока не найдет тот элемент который указали closest
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #41 : 28.08.2014, 22:09:23 »
А как прикрутить внутри beforeSend валидацию полей, причем только тех, что в форме выведены (в зависимости от параметров модуля)? Смотрю в сторону jquery.validate.js, но не знаю, как его с аяксом подружить.
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Re: Модуль обратной связи AJAX
« Ответ #42 : 28.08.2014, 22:32:53 »
А как прикрутить внутри beforeSend валидацию полей, причем только тех, что в форме выведены (в зависимости от параметров модуля)? Смотрю в сторону jquery.validate.js, но не знаю, как его с аяксом подружить.
А зачем с ним дружить? И beforeSend не надо тут.
Как один из вариантов, вставьте до этого - $.ajax({...
Код
if( !myFunctionValidate() ) {
  return false;
}

и отдельно свою валидацию:
Код
myFunctionValidate() {
  var valid = true;
  // ваш код валидации // если что-то не валидно, то   valid = false;
  return valid;
}
Веб-разработка: заказ. Только новая разработка.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #43 : 03.09.2014, 23:43:28 »
Решено. Вопрос валидации решен отдельным топиком.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #44 : 06.09.2014, 01:56:01 »
Отдельный вопрос, связанный с этим же модулем:
В хелпере в getAjax() не работает JText::_() и JText::sprintf(), что-то не подключил?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #45 : 06.09.2014, 02:25:29 »
Код: php
    $body = JText::sprintf('MOD_ORDER_PRESENT_BODY_MSG', $msg).
      "\n\n".JText::sprintf('MOD_ORDER_PRESENT_BODY_ORGTYPE', $orgtype).
      "\n".JText::sprintf('MOD_ORDER_PRESENT_BODY_USERNAME', $username);
    if ((bool)$is_email and ($useremail != '')) $body .= "\n".JText::sprintf('MOD_ORDER_PRESENT_BODY_EMAIL', $useremail);
    if ((bool)$is_skype and ($userskype != '')) $body .= "\n".JText::sprintf('MOD_ORDER_PRESENT_BODY_SKYPE', $userskype);
    if ((bool)$is_phone and ($userphone != '')) $body .= "\n".JText::sprintf('MOD_ORDER_PRESENT_BODY_PHONE', $userphone);
По факту в $body попадает только содержимое $msg. Как исправить?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Модуль обратной связи AJAX
« Ответ #46 : 06.09.2014, 02:28:52 »
Попробуйте загрузить языки нужные
$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, 'en-GB', true);
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, null, true);
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #47 : 06.09.2014, 02:32:18 »
JPATH_ADMINISTRATOR - загрузка файлов из админки? а если с фронт-части нужны?
Что означает null 3 параметром - язык по умолчанию?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Модуль обратной связи AJAX
« Ответ #48 : 06.09.2014, 03:03:42 »
JPATH_SITE из пользовательской части
null - по умолчанию язык будет!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #49 : 06.09.2014, 03:12:00 »
Код: php
    $language = JFactory::getLanguage();
    $language->load('mod_order_present', JPATH_BASE, null, true);
Язык подключился!

Код: php
    $msg = JText::sprintf('MOD_ORDER_PRESENT_BODY_MSG', $input->getString('msg'));
    $orgtype = JText::sprintf('MOD_ORDER_PRESENT_BODY_ORGTYPE', $input->getString('orgtype'));
    $username = JText::sprintf('MOD_ORDER_PRESENT_BODY_USERNAME', $input->getString('username'));
    if ((bool)$is_email) $useremail = JText::sprintf('MOD_ORDER_PRESENT_BODY_EMAIL', $input->getString('email'));
    if ((bool)$is_skype) $userskype = JText::sprintf('MOD_ORDER_PRESENT_BODY_SKYPE', $input->getString('skype'));
    if ((bool)$is_phone) $userphone = JText::sprintf('MOD_ORDER_PRESENT_BODY_PHONE', $input->getString('phone'));

    $body = $msg."\n\n".$orgtype."\n".$username;
    if ((bool)$is_email) $body .= "\n".$useremail;
    if ((bool)$is_skype) $body .= "\n".$userskype;
    if ((bool)$is_phone) $body .= "\n".$userphone;
в $body попадает только $msg
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Модуль обратной связи AJAX
« Ответ #50 : 06.09.2014, 03:16:25 »
что у вас в строке MOD_ORDER_PRESENT_BODY_MSG ?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #51 : 06.09.2014, 03:18:02 »
$body = $msg."\n\n".$orgtype."\n".$username; => $body = $msg."\n \n".$orgtype."\n".$username;
поставил пробел между \n после $msg - все ок.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #52 : 06.09.2014, 03:18:59 »
что у вас в строке MOD_ORDER_PRESENT_BODY_MSG ?
Код: ini
MOD_ORDER_PRESENT_SUBJECT="Заказ презентации"
MOD_ORDER_PRESENT_BODY_MSG="Интересующий функционал: %s"
MOD_ORDER_PRESENT_BODY_ORGTYPE="Вид организации: %s"
MOD_ORDER_PRESENT_BODY_USERNAME="Контактное лицо: %s"
MOD_ORDER_PRESENT_BODY_EMAIL="Email: %s"
MOD_ORDER_PRESENT_BODY_SKYPE="Skype: %s"
MOD_ORDER_PRESENT_BODY_PHONE="Телефон: %s"
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #53 : 06.09.2014, 03:22:30 »
А еще var_dump(JFactory::getConfig()->get('config.fromname')); возвращает null, хотя поле "Отправитель письма" заполнено
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #54 : 06.09.2014, 09:02:29 »
Нашел косяк: JFactory::getConfig()->get('config.fromname')ж - это для J1.5, для 2.5 и 3.х JFactory::getConfig()->get('fromname');
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #55 : 07.09.2014, 10:12:40 »
Почему внутри getAjax() не работает var_dump() или print_r()?

Делаю еще один модуль:
Спойлер
[свернуть]
$mail->send(); возвращает false, не пойму, почему; хотя на соседней странице похожий код отрабатывает отлично, сообщение уходит
js отрабатывает нормально.
« Последнее редактирование: 07.09.2014, 10:17:44 от AlekVolsk »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Модуль обратной связи AJAX
« Ответ #56 : 07.09.2014, 11:26:43 »
Почему внутри getAjax() не работает var_dump() или print_r()?
Отлично они там работают.. только не известно как вы получаете данные AJAX

$mail->send(); возвращает false, не пойму, почему; хотя на соседней странице похожий код отрабатывает отлично, сообщение уходит
js отрабатывает нормально.
надо смотреть какие ошибки в print_r($mail)
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #57 : 07.09.2014, 12:53:09 »
    $send = $mail->send();
    print_r($mail);
Ничего не выводит.
Что показать?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Модуль обратной связи AJAX
« Ответ #58 : 07.09.2014, 12:56:02 »
Попробуйте так:
Код: php
$file = fopen( JPATH_SITE . '/log.txt', 'w' );
fwrite( $file, print_r( $mail, true ) );
flush();
fclose( $file );
В корне сайта должен появится файл log.txt смотрите что в нем..
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль обратной связи AJAX
« Ответ #59 : 07.09.2014, 13:04:12 »
В одном из модулей такое было, когда при копировании файлов из модуля в модуль забыл имя класса переименовать, но сейчас вроде все ок: mod_calc_nfo => class ModCalcNfoHelper

Лог появился, в логе есть строчка:
[ErrorInfo] => Необходимо указать хотя бы одного получателя электронной почты.
Код: php
$workemail = $params->get('email');
$mail->addRecipient($workemail);
Походу, либо не считался параметр, либо переменная не записалась. Параметр в модуле заполнен корректно, проверил.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как создать модуль с использованием php?

Автор nartan

Ответов: 23
Просмотров: 4382
Последний ответ 11.08.2017, 10:54:08
от Никoлaй
СЕСИЯ при AJAX запросе к php файлу

Автор avantyrist

Ответов: 15
Просмотров: 3133
Последний ответ 20.12.2015, 14:13:43
от robert
[Решено] Русский язык в AJAX.php

Автор Hishchnik

Ответов: 15
Просмотров: 2344
Последний ответ 10.06.2014, 19:03:34
от Hishchnik
Погода по IP посетителя сайта. Модуль для Joomla 1.5, 2.5, 3.*, 4, 5 и так далее

Автор rishard

Ответов: 11
Просмотров: 4831
Последний ответ 02.05.2014, 20:07:58
от era
AJAX + Joomla

Автор scripter

Ответов: 3
Просмотров: 1405
Последний ответ 28.04.2014, 16:52:57
от Shustry