Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

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

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Доброго дня.

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

Есть мысль о плохом интернете и нетерпимости нажать на кнопку пользователем.
Может ли быть такое что, форма отправляется дважды по кнопке сохранить, если успеть нажать на нее 2 раза?
« Последнее редактирование: 12.02.2021, 11:25:38 от platonische »
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Дублирование при создании
« Ответ #1 : 12.02.2021, 10:00:59 »
Отвечу сам - можно!

Если кто делал ограничения - киньте логику решения.
Пока думается повесить js и по клику отключать действие кнопки.
*

sivers

  • Живу я здесь
  • 2610
  • 363 / 0
Re: Дублирование при создании
« Ответ #2 : 12.02.2021, 10:11:18 »
1. Дисаблить или скрывать кнопку js-ом. Сгодится, если отправка идет аяксом.
2. Если отправка не аяксом, а методом гет/пост, то п.1 не поможет - нетерпеливый юзер нажмет (несколько раз) F5 и продублирует отправку за счет перезагрузки запроса отправки. В этом случае желательно сразу после приема данных на стороне сервера делать редирект страницы (к примеру, на сообщение результата отправки).
3. В обоих случаях желательно перед сохранением данных проверять не были ли они уже сохранены ранее. По точному совпадению, можно с учетом времени еще. Например, вычисляйте контрольную сумму пришедших данных и сохраняте ее в бд. Перед сохранением новой записи проверяйте нет ли уже такой суммы.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Дублирование при создании
« Ответ #3 : 12.02.2021, 10:34:34 »
Вот что я нагенерил вопервых по js, кто-то может чуть сократить или расширить под себя. Мне пока этого хватит
Код
jQuery( document ).ready(function($) {
    let tb = $('#toolbar');
    let apply = tb.find('#toolbar-apply').find('button');
    apply.on('click',function () {
        $(this).prop('disabled',true);
    });
});

1. Дисаблить или скрывать кнопку js-ом. Сгодится, если отправка идет аяксом.
2. Если отправка не аяксом, а методом гет/пост, то п.1 не поможет - нетерпеливый юзер нажмет (несколько раз) F5 и продублирует отправку за счет перезагрузки запроса отправки. В этом случае желательно сразу после приема данных на стороне сервера делать редирект страницы (к примеру, на сообщение результата отправки).
3. В обоих случаях желательно перед сохранением данных проверять не были ли они уже сохранены ранее. По точному совпадению, можно с учетом времени еще. Например, вычисляйте контрольную сумму пришедших данных и сохраняте ее в бд. Перед сохранением новой записи проверяйте нет ли уже такой суммы.
1. Да его пока применил, будем смотреть.
2.,3. Тут я наверное не договорил: это форма админки и пользователи работники предприятия.
А данные на самом деле настолько идентичны вообще, что бывают одинаковые сохранения и они действительно не дубли. Пример: детский билет на сеанс. Раз продали, два продали, три продали - все одинаково. И это не дубли. Дата единственное отличие. У дублей же дата отличается максимум на 1 секунду.

Буду благодарен если все-таки натолкнете на логику со стороны (php) сервера.
*

sivers

  • Живу я здесь
  • 2610
  • 363 / 0
Re: Дублирование при создании
« Ответ #4 : 12.02.2021, 11:06:20 »
У дублей же дата отличается максимум на 1 секунду.
Так добавьте метку времени (можно в микросекундах) в скрытое поле формы. И сравнивайте потом с ним. Если не поменялось - дубль.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Дублирование при создании
« Ответ #5 : 12.02.2021, 11:15:04 »
Так добавьте метку времени (можно в микросекундах) в скрытое поле формы. И сравнивайте потом с ним. Если не поменялось - дубль.

Я никак не пойму как она мне поможет. Создать поле и загенерить туда - не проблема.
Данные приходят с id=0 в функцию save. Как эта метка должна фигурировать.
Или JS должен метку создать и при отправке в save фигурирует эта метка, а save надо поднять записи БД по этой метке и узнать есть ли такая. Такая логика?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Дублирование при создании
« Ответ #6 : 12.02.2021, 11:19:03 »
а save надо поднять записи БД по этой метке и узнать есть ли такая. Такая логика?

Да
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Дублирование при создании
« Ответ #7 : 12.02.2021, 11:24:26 »
Хорошо, логика улеглась в голове.
Наверное только заполнять поле надо не через js, а при открытии формы (через php в getForm или loadFormData), чтоб уж она одинаковая была.

Всем спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[РЕШЕНО] onChange в админке на field modal

Автор platonische

Ответов: 1
Просмотров: 856
Последний ответ 30.01.2021, 16:40:45
от platonische
[РЕШЕНО] Сохранение значений полей добавленных динамически элементу

Автор platonische

Ответов: 30
Просмотров: 4050
Последний ответ 10.11.2019, 15:42:33
от platonische
[РЕШЕНО] Присвоить значения динамическому полю SimpleXMLElement

Автор platonische

Ответов: 4
Просмотров: 1473
Последний ответ 08.11.2019, 11:13:27
от platonische
[РЕШЕНО] curl-файл Joomla $model->save($data) подключение модели администратора

Автор platonische

Ответов: 31
Просмотров: 2135
Последний ответ 30.05.2019, 16:10:57
от sivers
[РЕШЕНО] Создать переменные для сессии в админке

Автор platonische

Ответов: 6
Просмотров: 978
Последний ответ 24.04.2019, 16:15:09
от platonische