Новости Joomla

Перевод и публикация интервью на греческом портале Joomla Утро, просматриваешь входящие письма и...

Перевод и публикация интервью на греческом портале Joomla 🇬🇷Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции.Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью. Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент. 🇬🇷 Интервью на греческом портале (joomla.gr)🌐 Оригинальное интервью (на английском)Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

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

Helikonst

  • Новичок
  • 2
  • 0 / 0
Уважаемые мэтры, помогите чайнику!

VM3, в корзине добавлено поле номера телефона phone_1 (в силу веских причин телефон в карточке покупателя хранить не могу, он должен заполняться при каждом заказе). Соответственно, в момент нажатия кнопки оформления заказа мне нужно произвести минимальную валидацию этого поля, проверить, что длина введенного значения составляет 11 знаков. Поле указано как обязательное, поэтому если оно пустое, VM выдает сообщение, что поле телефона не заполнено. Моя задача сделать так, чтобы такое же сообщение выдавалось и в случае, если введенное значение не содержит 11 знаков.

В файле /administrator/components/com_virtuemart/models/user.php отыскал следующий код, предполагаю, что валидацию нужно ставить где-то здесь:

if($field->required ){
            $required++;
            if(empty($data[$field->name])){
               if($lang->hasKey('COM_VIRTUEMART_MISSING_'.$field->name)){
                  $missingFields[] = vmText::_('COM_VIRTUEMART_MISSING_'.$field->name);
               } else {
                  $missingFields[] = vmText::sprintf('COM_VIRTUEMART_MISSING_VALUE_FOR_FIELD',$field->title );
               }

               $i++;
               $return = false;
            }
            else if($data[$field->name] == $field->default){
               $i++;
            } else {
               //vmdebug('Not filled by default '.$field->name,$field->default,$data[$field->name]);
               $filledNotByDefault++;
            }
         }

Но как именно выловить и проконтролировать поле номера телефона не знаю в силу  собственной безграмотности.

Может я вообще не туда копаю и все можно сделать как-то проще?
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
попробуйте маску
был плагин
индивидуальная помощь: @SetAlexx
*

Helikonst

  • Новичок
  • 2
  • 0 / 0
попробуйте маску
был плагин

Да, плагин для маски пробовал, конечно. Но дело в том, что заказ осуществляется на тачскрин-мониторе. Вместо клавиатуры используется плагин всплывающей клавиатуры, который привязан к этому же полю. Маска отлично работает при наборе с клавиатуры, но сбрасывается при нажатии любой клавиши экранного модуля. Подружить плагин маски и модуль экранной клавиатуры у меня тоже знаний не хватает.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart -- создание заказа

Автор mindguru

Ответов: 3
Просмотров: 2132
Последний ответ 02.11.2023, 13:59:05
от mindguru
Скачать - Плагин заказа на 1 странице

Автор gartes

Ответов: 171
Просмотров: 29892
Последний ответ 17.05.2023, 15:06:22
от mansonfaust
Отключить подтверждение заказа

Автор Nikoz

Ответов: 13
Просмотров: 11719
Последний ответ 20.01.2023, 13:48:07
от smls
Обязательные поля в плагине One Page Checkout

Автор sergspb

Ответов: 0
Просмотров: 2612
Последний ответ 18.11.2021, 13:59:59
от sergspb
Плагин отправки SMS - смена статусов заказа

Автор artlux

Ответов: 43
Просмотров: 13054
Последний ответ 20.03.2021, 14:03:13
от nnnata