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

art-m1987

  • Захожу иногда
  • 124
  • 1 / 1
Ломается код
« : 15.05.2010, 12:33:06 »
Привет всем.
У меня уже долгое время не решается проблема:
суть в том, что когда я вставляю произвольный код, при нажатии применить в визуальном редакторе код отображается неккоректно, вот как пример рассылки смартреспондер:



И такая фигня выскакивает еще когда ставлю счетчик посещений (например, мэйл, рамблер)
Кэш чистил и на сайте и у себя на компе...Никто не знает в чем проблема может быть?
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Re: Ломается код
« Ответ #1 : 15.05.2010, 12:44:21 »
Для вставки произвольного кода необходимы соответствующие модули/плагины. Например:
Sourcerer - плагин для вставки кода в статьи;
Mod PHP - модуль для вставки кода
*

art-m1987

  • Захожу иногда
  • 124
  • 1 / 1
Re: Ломается код
« Ответ #2 : 15.05.2010, 12:58:05 »
Попробовал вставить через PHP модуль, то же самое

*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Re: Ломается код
« Ответ #3 : 15.05.2010, 13:05:50 »
Покажите здесь что Вы пытаетесь вставить.
*

art-m1987

  • Захожу иногда
  • 124
  • 1 / 1
Re: Ломается код
« Ответ #4 : 15.05.2010, 13:12:07 »
Вот этот код

Код
<!-- SmartResponder.ru subscribe form code (begin) --><script <!-- SmartResponder.ru subscribe form code (begin) --><script language="javascript" type="text/javascript">
function SR_IsListSelected(el)
{
  for (var i = 0; i < el.length; i ++)
    if (el[i].selected ||
      el[i].checked)
      return i;
  return -1;
}
function SR_trim(F)
{
  return f.toString().replace(/^[ ]+/, '').replace(/[ ]+$/, '');
}
function SR_submit(F)
{
  f["field_email"].value = SR_trim(f["field_email"].value);
  f["field_name_first"].value = SR_trim(f["field_name_first"].value);
  f["field_STRING0"].value = SR_trim(f["field_STRING0"].value);
  if ((SR_focus = f["field_email"]) && f["field_email"].value.replace(/^[ ]+/, '').replace(/[ ]+$/, '').length < 1 || (SR_focus = f["field_name_first"]) && f["field_name_first"].value.replace(/^[ ]+/, '').replace(/[ ]+$/, '').length < 1) { alert("Укажите значения всех обязательных для заполнения полей (помечены звездочкой)"); SR_focus.focus(); return false; }
  if (!f["field_email"].value.match("^[A-Za-z0-9][A-Za-z0-9\._-]*[A-Za-z0-9_]*@([A-Za-z0-9]+([A-Za-z0-9-]*[A-Za-z0-9]+)*\.)+[A-Za-z]+$")) { alert("Некорректный синтаксис email-адреса!"); f["field_email"].focus(); return false; }
  if (f["field_STRING0"].value.length) {
  if (f["field_STRING0"].value.length < 6) { f["field_STRING0"].focus(); alert("Минимальная длина строки \"должность\": 6"); return false; }
  if (f["field_STRING0"].value.length > 20) { f["field_STRING0"].focus(); alert("Максимальная длина строки \"должность\": 20"); return false; }
}return true;
}
</script>
<form style="margin: 0; padding: 0;" name="SR_form" target="_blank" action="http://smartresponder.ru/subscribe.html" method="post" onsubmit="return SR_submit(this)"><input type=hidden name=version value="1"><input type=hidden name=tid value="0"><input type=hidden name=uid value="67115"><input type=hidden name=charset value="windows-1251"><input type=hidden name=lang value="ru">
<table  width="240">
<tr><td style="padding: 5px; border: 1px solid #ff0000;background-color: #eeeeee;" align=center><table cellspacing=1 cellpadding=2 align=center>
<tr><td align=center><a target="_blank" href="http://smartresponder.ru" class=classic><b><font color="#0000ff">SmartResponder.ru</font></b></a></td></tr>
<tr><td><input type=hidden name="did[]" value="50938"></td></tr>
<tr><td style="font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;" align="center">Ваш e-mail: <font color="#ff0000"><b>*</b></font></td></tr>
<tr><td align="center"><input type=text size="20" style="font-family: Verdana; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_email" value=""></td></tr>
<tr><td style="font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;" align="center">Ваше имя: <font color="#ff0000"><b>*</b></font></td></tr>
<tr><td align="center"><input type=text size="20" style="font-family: Verdana; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_name_first" value=""></td></tr>
<tr><td style="font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;" align="center">должность:</td></tr>
<tr><td align="center"><input type=text size="20" style="font-family: Verdana; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_STRING0" value=""></td></tr>
<tr><td align="center"><input name="SR_submitButton" type=submit style="font-family: Verdana; font-size: 8pt; color: #000000; background-color: #f0f0c0; font-weight: bold;" value="Подписаться"></td></tr>
</table></td></tr></table></form><!-- SmartResponder.ru subscribe form code (end) -->language="javascript" type="text/javascript">
function SR_IsListSelected(el)
{
  for (var i = 0; i < el.length; i ++)
    if (el[i].selected ||
      el[i].checked)
      return i;
  return -1;
}
function SR_trim(F)
{
  return f.toString().replace(/^[ ]+/, '').replace(/[ ]+$/, '');
}
function SR_submit(F)
{
  f["field_email"].value = SR_trim(f["field_email"].value);
  f["field_name_first"].value = SR_trim(f["field_name_first"].value);
  f["field_STRING0"].value = SR_trim(f["field_STRING0"].value);
  if ((SR_focus = f["field_email"]) && f["field_email"].value.replace(/^[ ]+/, '').replace(/[ ]+$/, '').length < 1 || (SR_focus = f["field_name_first"]) && f["field_name_first"].value.replace(/^[ ]+/, '').replace(/[ ]+$/, '').length < 1) { alert("Укажите значения всех обязательных для заполнения полей (помечены звездочкой)"); SR_focus.focus(); return false; }
  if (!f["field_email"].value.match("^[A-Za-z0-9][A-Za-z0-9\._-]*[A-Za-z0-9_]*@([A-Za-z0-9]+([A-Za-z0-9-]*[A-Za-z0-9]+)*\.)+[A-Za-z]+$")) { alert("Некорректный синтаксис email-адреса!"); f["field_email"].focus(); return false; }
  if (f["field_STRING0"].value.length) {
  if (f["field_STRING0"].value.length < 6) { f["field_STRING0"].focus(); alert("Минимальная длина строки \"должность\": 6"); return false; }
  if (f["field_STRING0"].value.length > 20) { f["field_STRING0"].focus(); alert("Максимальная длина строки \"должность\": 20"); return false; }
}return true;
}
</script>
<form style="margin: 0; padding: 0;" name="SR_form" target="_blank" action="http://smartresponder.ru/subscribe.html" method="post" onsubmit="return SR_submit(this)"><input type=hidden name=version value="1"><input type=hidden name=tid value="0"><input type=hidden name=uid value="67115"><input type=hidden name=charset value="windows-1251"><input type=hidden name=lang value="ru">
<table  width="240">
<tr><td style="padding: 5px; border: 1px solid #ff0000;background-color: #eeeeee;" align=center><table cellspacing=1 cellpadding=2 align=center>
<tr><td align=center><a target="_blank" href="http://smartresponder.ru" class=classic><b><font color="#0000ff">SmartResponder.ru</font></b></a></td></tr>
<tr><td><input type=hidden name="did[]" value="50938"></td></tr>
<tr><td style="font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;" align="center">Ваш e-mail: <font color="#ff0000"><b>*</b></font></td></tr>
<tr><td align="center"><input type=text size="20" style="font-family: Verdana; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_email" value=""></td></tr>
<tr><td style="font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;" align="center">Ваше имя: <font color="#ff0000"><b>*</b></font></td></tr>
<tr><td align="center"><input type=text size="20" style="font-family: Verdana; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_name_first" value=""></td></tr>
<tr><td style="font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;" align="center">должность:</td></tr>
<tr><td align="center"><input type=text size="20" style="font-family: Verdana; font-size: 8pt; color: #000000; background-color: #ffffff; " name="field_STRING0" value=""></td></tr>
<tr><td align="center"><input name="SR_submitButton" type=submit style="font-family: Verdana; font-size: 8pt; color: #000000; background-color: #f0f0c0; font-weight: bold;" value="Подписаться"></td></tr>
</table></td></tr></table></form><!-- SmartResponder.ru subscribe form code (end) -->
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Re: Ломается код
« Ответ #5 : 15.05.2010, 13:14:37 »
уберите вот это
Код
<script <!-- SmartResponder.ru subscribe form code (begin) -->
*

art-m1987

  • Захожу иногда
  • 124
  • 1 / 1
Re: Ломается код
« Ответ #6 : 15.05.2010, 13:20:24 »
Убрал и все равно

*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Re: Ломается код
« Ответ #7 : 15.05.2010, 13:26:22 »
И вот это после формы
Код
<!-- SmartResponder.ru subscribe form code (end) -->
замените на
Код
<script 
*

art-m1987

  • Захожу иногда
  • 124
  • 1 / 1
Re: Ломается код
« Ответ #8 : 15.05.2010, 13:34:22 »
Убрал, все равно:(
Можете посмотреть в левом столбце сайта http://vygod-resh.ru/
*

valagoff

  • Давно я тут
  • 984
  • 110 / 0
Re: Ломается код
« Ответ #9 : 15.05.2010, 13:39:47 »
Ещё раз повторяю:
Код должен начинаться не с
Код
language="javascript" type="text/javascript"> 
а с
Код
<script language="javascript" type="text/javascript">

P.S. В приведенном выше коде у Вас две формы.
*

art-m1987

  • Захожу иногда
  • 124
  • 1 / 1
Re: Ломается код
« Ответ #10 : 15.05.2010, 13:46:53 »
Спасибо большое!Просто код мне скинул работодатель, и я не обратил внимание, что он двойной... :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ломается сайт при использовании пагинации

Автор Vitsss

Ответов: 1
Просмотров: 1361
Последний ответ 24.01.2013, 18:17:57
от robert