Новости 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

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Проблемы с формой
« : 16.04.2018, 22:38:32 »
Всем привет!
Есть такая форма в Яндекс Кассах:
<form action="https://money.yandex.ru/eshop.xml" method="post">
    <input name="shopId" value="1234" type="hidden"/>
    <input name="scid" value="4321" type="hidden"/>
    <input name="sum" value="746.47" type="hidden">
    <input name="customerNumber" value="abc000" type="hidden"/>
    <input name="paymentType" value="AC" type="hidden"/>
    <input name="orderNumber" value="abc1111111" type="hidden"/>
    <input name="cps_phone" value="+79123456543" type="text"/>
    <input name="cps_email" value="user@domain.com" type="hidden"/>
    <input name="ym_merchant_receipt" value='{"customerContact": "+79001231212","taxSystem": 1, "items":[{"quantity": 1.154, "price": {"amount": 300.23},  "tax": 3,"text": "Зеленый чай \"Юн Ву\", кг"},{"quantity": 2,     "price": {"amount": 200.00},  "tax": 3,"text": "Кружка для чая, шт., скидка 10%"},{"quantity": 0.3,   "price": {"amount": 1000.00}, "tax": 3,"text": "Предоплата 30%, настольная игра \"Tea Time\""}]}'
type="hidden"/>
    <input type="submit" value="Заплатить"/>
</form>

Как в поле "ym_merchant_receipt" в значение "customerContact" сделать добавления содержимого из поля "cps_phone" ? То есть, человек ввел в поле "cps_phone" свой телефон +79009999999 , и в поле  "ym_merchant_receipt" получилось customerContact: +79009999999.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Проблемы с формой
« Ответ #1 : 17.04.2018, 03:00:18 »
del
« Последнее редактирование: 04.05.2018, 22:02:06 от Aleks.Denezh »
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Проблемы с формой
« Ответ #2 : 17.04.2018, 07:30:26 »
очень легко пример:
Код
 <input type="text" value='{"customerContact":"test"}' id="testVal">
    <script>
    jQuery(document).ready(function ($) {
            var data = JSON.parse($('#testVal').val());
            data.customerContact = 'лала';
            $('#testVal').val(JSON.stringify(data));
    });
    </script>
Все бы хорошо, но как теперь сделать тоже самое для нескольких параметров?
Вот готовая форма:
<div class="oplata2">
<div class="sppb-row-container">
<form action="https://money.yandex.ru/eshop.xml" method="post" target="_blank">
<div class="sppb-col-md-3 pull-left" style="padding-bottom:2%;padding-left:0;">
Тип взноса (<font color="red">*</font>):<br>
<select style="width:98%;" name="sum" >
<option value="1350">Марафон 1 350 руб.</option>
<option value="1080">Полумарафон 1 080 руб.</option>
</select>
  </div>
<div class="sppb-col-md-3 pull-left"style="padding-bottom:2%;padding-left:0;">
    Ваш номер телефона (<font color="red">*</font>):<br>
     <input  style="width:98%;height: 34px;" required name="cps_phone" value="" placeholder="   Укажите мобильный телефон..." id="tel" size="64"/>
<script>
   window.addEventListener("DOMContentLoaded", function() {
   function setCursorPosition(pos, elem) {
       elem.focus();
       if (elem.setSelectionRange) elem.setSelectionRange(pos, pos);
       else if (elem.createTextRange) {
           var range = elem.createTextRange();
           range.collapse(true);
           range.moveEnd("character", pos);
           range.moveStart("character", pos);
           range.select()
       }
   }
   function mask(event) {
       var matrix = "+7 (___) ___ ____",
           i = 0,
           def = matrix.replace(/\D/g, ""),
           val = this.value.replace(/\D/g, "");
       if (def.length >= val.length) val = def;
       this.value = matrix.replace(/./g, function(a) {
           return /[_\d]/.test(a) && i < val.length ? val.charAt(i++) : i >= val.length ? "" : a
       });
       if (event.type == "blur") {
           if (this.value.length == 2) this.value = ""
       } else setCursorPosition(this.value.length, this)
   };
       var input = document.querySelector("#tel");
       input.addEventListener("input", mask, false);
       input.addEventListener("focus", mask, false);
       input.addEventListener("blur", mask, false);
   });
     </script>
  </div>
<div class="sppb-col-md-3 pull-left" style="padding-bottom:2%;padding-left:0;">                  
     Ф.И.О. участника (<font color="red">*</font>):<br>   
     <input  style="width:98%;height: 34px;" required name="custName" placeholder="   Укажите Ф.И.О. ..." value="" size="64"/>
 </div>
<div class="sppb-col-md-3 pull-left" style="padding-bottom:2%;padding-left:0;">                  
     Ваш e-mail (<font color="red">*</font>):<br>   
     <input  style="width:98%;height: 34px;" required name="cps_email" placeholder="   Ваш e-mail ..." value="" size="64"/>
 </div>
</div>
<div style="padding-bottom:2%;text-align:center;display: inline-block;width:100%;"><input type="checkbox" disabled checked>  Разрешаю обработку персональной информации в соответствии с Федеральным законом РФ от 27.07.2006 N 152-ФЗ "О персональных данных"</div>
<input name="ym_merchant_receipt" value='{"customerContact": ,"taxSystem": 1, "items":[{"quantity": 1, "price": {"amount": 300.23},  "tax": 4,"text": "Оплата за участие в марафоне"}]}'
type="hidden"/>
<div style="text-align:center;">                 
<button class="btn2" type="submit">ОПЛАТИТЬ ВЗНОС</button>
</div>
     </form>
</div>

В ym_merchant_receipt надо чтобы в после  "customerContact": вставлялись данные, которые ввели в поле cps_phone т.е. номер телефона, а дальше сложнее:
в примере видно что отправляется информация о товарах, цене, скидке - надо чтобы товары (их 2 всего : <option value="1350">Марафон 1 350 руб.</option> и <option value="1080">Полумарафон 1 080 руб.</option>) взависимости от выбранного тоже автоматом проставлялись в ym_merchant_receipt
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Проблемы с формой
« Ответ #3 : 17.04.2018, 08:02:27 »
Или может можно проще поступить:
нам надо отправить в ЯндексКассу параметр следующего содержания <input name="ym_merchant_receipt" value='{"customerContact": "Эл.почта" ,"taxSystem": 1, "items":[{"quantity": 1, "price": {"amount": 1},  "tax": 4,"text": "Оплата взноса за участие в марафоне"}]}'
type="hidden"/>
как добавить в этот же параметр поле для ввода эл.почты, которое видимо и соответственно, что ввели в это поле, то и отправилось в ym_merchant_receipt ?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Проблемы с формой
« Ответ #4 : 17.04.2018, 10:29:37 »
del
« Последнее редактирование: 04.05.2018, 22:02:02 от Aleks.Denezh »
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Проблемы с формой
« Ответ #5 : 17.04.2018, 16:12:13 »
простите, но вам дали уже готовый пример, если вы не знаете основ программирования то лучше обратитесь в коммерческий раздел, и там напишут весь код за вас!
То что дали, не работает + непонятно как применить к существующей форме
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Проблемы с формой
« Ответ #6 : 17.04.2018, 16:20:28 »
del
« Последнее редактирование: 04.05.2018, 22:01:57 от Aleks.Denezh »
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Проблемы с формой
« Ответ #7 : 17.04.2018, 16:28:16 »
то что я дал прекрасно работает, я не даю непроверенный код!
Если не понятно как применять, то я хочу Вас огорчить, тут форум помощи, а не напишите за меня коммерческое приложения, а я буду бабки собирать...
Написал Вам в скайп, очень жду ответа...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблемы с пагинацией, не выводит Вперед и Назад

Автор onniby

Ответов: 12
Просмотров: 1008
Последний ответ 04.05.2022, 15:29:22
от marksetter
Проблемы с Шорткодами (Shortcode Designer)

Автор polezniy

Ответов: 7
Просмотров: 1058
Последний ответ 20.10.2021, 16:17:56
от polezniy
Как разместить текст над формой обратной связи?

Автор ALEXRAW

Ответов: 7
Просмотров: 693
Последний ответ 13.12.2020, 11:05:14
от ALEXRAW
Проблемы с пунктом меню типа - Метки/Список элементов

Автор ryocka

Ответов: 1
Просмотров: 964
Последний ответ 28.08.2020, 00:40:14
от Kon Dou
Проблемы с новым роутером

Автор d0ublezer0

Ответов: 1
Просмотров: 700
Последний ответ 21.08.2020, 10:27:34
от d0ublezer0