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

AndyTitan

  • Новичок
  • 3
  • 0 / 0
Проблема с Customization Page Url
« : 17.02.2014, 09:28:41 »
Доброе время суток господа разработчики, есть сайтец, на сайте установлен компонент управляющий контентом.

проблема: в компоненте есть возможность присвоить материалу альянсную ссылку (Details Page Url) (Customization Page Url) но при попытке сменить название ссылки, объект становиться недоступным - 404 ошибка, (заметил полную чихарду в htaccess 301 редирект)

Так же на сайте есть еще работка, с ооп Joomla не работал, прошу помощи, бюджет минимум от 100$ в зависимости от объема работы за который вы будете готовы взяться, готов всячески содействовать (по желанию).

skype: rhythm50
*

quake3

  • Захожу иногда
  • 131
  • 3 / 0
Re: Проблема с Customization Page Url
« Ответ #1 : 17.02.2014, 09:48:43 »
А случаем какой-нибудь SEF компонент не установлен??
*

AndyTitan

  • Новичок
  • 3
  • 0 / 0
Re: Проблема с Customization Page Url
« Ответ #2 : 17.02.2014, 10:04:46 »
Да нет вроде, чистая Joomla, и даже верстали сам стандартный шаблон. Мне кажется в самом компоненте не дописана или криво прописана присвоение альянсной ссылки. У меня к сожалению мало времени для того чтобы читать документацию по Joomla... в основном с чистым PHP работаю, поэтому и обратился на ваш форум.
*

AndyTitan

  • Новичок
  • 3
  • 0 / 0
Re: Проблема с Customization Page Url
« Ответ #3 : 17.02.2014, 10:27:22 »
нащел js скрипт который формирует менюшку в админке, удивительно но в самом контролере компонента не слово об этом скрипте...

в общем нужен специалист по Joomla...
Код
Joomla.submitbutton = function(task)
{
if(task == 'cardetail.cancel')
{
Joomla.submitform(task, document.getElementById('adminForm'));
return true;
}

if(task == 'cardetail.save')
{
var carname = document.getElementById('jform_car').value;
var carmodel = document.getElementById('jform_carmodel').value;
var carstyle = document.getElementById('jform_carstyle').value;
var carreleasedate = document.getElementById('jform_carrelease_date').value;


if(carname=="0")
{
alert( "Select Car..!");
document.getElementById('jform_car').focus();
return false;
}

if(carmodel=="0")
{
alert( "Select Car Model..!");
document.getElementById('jform_carmodel').focus();
return false;
}

if(carstyle=="0")
{
alert( "Select Car Style..!");
document.getElementById('jform_carstyle').focus();
return false;
}

if(carreleasedate=="")
{
alert( "Enter Car Release Date..!");
document.getElementById('jform_carrelease_date').focus();
return false;
}

if(document.getElementById('jform_carimage').value.search(/\S/)!= -1)
{
var imageName = document.getElementById('jform_carimage').value.toUpperCase();
var pos1 = imageName.indexOf(".JPG");
var pos2 = imageName.indexOf(".JPEG");
var pos3 = imageName.indexOf(".GIF");
var pos4 = imageName.indexOf(".PNG");

if(pos1==-1 && pos2==-1 && pos3==-1 && pos4==-1)
{
alert( "Invalid Car Image Type. Please use JPG or JPEG or GIF or PNG..!");
document.getElementById('jform_carimage').value="";
return false;
}
}

var url_detail=document.getElementById('jform_url_detail').value;
var url_customization=document.getElementById('jform_url_customization').value;
var carid=document.getElementById('cardetailid').value;
if( (url_detail!='') || (url_customization !="") )
{
var url='index.php?option=com_cardetail&task=ajax_check_url';
var data ='url_detail='+url_detail+'&url_customization='+url_customization+'&carid='+carid;
var request = new Request({
url: url,
method:'post',
data: data,
async: true,
onSuccess: function(responseText){

if(responseText=="URLDETAILERROR")
{
alert("Car Details Page Url Is Required");
document.getElementById('jform_url_detail').focus();
return false;
}
else if(responseText=="URLCUSTOMIZEERROR")
{
alert("Car Customization Page Url Is Required");
document.getElementById('jform_url_customization').focus();
return false;
}
else if(responseText=="URLDETAILEXIST")
{
alert("Car Details Page Url Is Already Exist");
document.getElementById('jform_url_detail').focus();
return false;
}
else if(responseText=="URLCUSTOMIZEEXIST")
{
alert("Car Customization Page Url Is Already Exist");
document.getElementById('jform_url_customization').focus();
return false;
}
else if(responseText=="SUCCESS")
{
Joomla.submitform(task, document.getElementById('adminForm'));
return true;
}
}
}).send();
}
else
{
Joomla.submitform(task, document.getElementById('adminForm'));
return true;
}
}
}



function showhide(showhideid,showhideid1,showhideid2,showhideid3,showhideid4,showhideid5,showhideid6)
{
if(showhideid=='showdetail')
{
document.getElementById(''+showhideid+'1input').style.display="";
document.getElementById(''+showhideid+'1level').style.display="";
document.getElementById(''+showhideid+'2input').style.display="";
document.getElementById(''+showhideid+'2level').style.display="";
document.getElementById(''+showhideid+'3input').style.display="";
document.getElementById(''+showhideid+'3level').style.display="";
document.getElementById(''+showhideid+'4input').style.display="";
document.getElementById(''+showhideid+'4level').style.display="";
document.getElementById(''+showhideid+'5input').style.display="";
document.getElementById(''+showhideid+'5level').style.display="";
document.getElementById(''+showhideid+'6input').style.display="";
document.getElementById(''+showhideid+'6level').style.display="";

document.getElementById(''+showhideid+'7input').style.display="";
document.getElementById(''+showhideid+'7level').style.display="";
document.getElementById(''+showhideid+'8input').style.display="";
document.getElementById(''+showhideid+'8level').style.display="";
document.getElementById(''+showhideid+'9input').style.display="";
document.getElementById(''+showhideid+'9level').style.display="";
document.getElementById(''+showhideid+'10input').style.display="";
document.getElementById(''+showhideid+'10level').style.display="";
document.getElementById(''+showhideid+'11input').style.display="";
document.getElementById(''+showhideid+'11level').style.display="";
document.getElementById(''+showhideid+'12input').style.display="";
document.getElementById(''+showhideid+'12level').style.display="";
document.getElementById(''+showhideid+'13input').style.display="";
document.getElementById(''+showhideid+'13level').style.display="";
document.getElementById(''+showhideid+'14input').style.display="";
document.getElementById(''+showhideid+'14level').style.display="";
document.getElementById(''+showhideid+'15input').style.display="";
document.getElementById(''+showhideid+'15level').style.display="";
document.getElementById(''+showhideid+'16input').style.display="";
document.getElementById(''+showhideid+'16level').style.display="";
document.getElementById(''+showhideid+'17input').style.display="";
document.getElementById(''+showhideid+'17level').style.display="";
document.getElementById(''+showhideid+'18input').style.display="";
document.getElementById(''+showhideid+'18level').style.display="";
document.getElementById(''+showhideid+'19input').style.display="";
document.getElementById(''+showhideid+'19level').style.display="";
document.getElementById(''+showhideid+'20input').style.display="";
document.getElementById(''+showhideid+'20level').style.display="";

document.getElementById(''+showhideid+'21input').style.display="";
document.getElementById(''+showhideid+'21level').style.display="";
document.getElementById(''+showhideid+'22input').style.display="";
document.getElementById(''+showhideid+'22level').style.display="";
document.getElementById(''+showhideid+'23input').style.display="";
document.getElementById(''+showhideid+'23level').style.display="";
document.getElementById(''+showhideid+'24input').style.display="";
document.getElementById(''+showhideid+'24level').style.display="";
document.getElementById(''+showhideid+'25input').style.display="";
document.getElementById(''+showhideid+'25level').style.display="";
document.getElementById(''+showhideid+'26input').style.display="";
document.getElementById(''+showhideid+'26level').style.display="";
document.getElementById(''+showhideid+'27input').style.display="";
document.getElementById(''+showhideid+'27level').style.display="";

}
else
{
document.getElementById(''+showhideid1+'1input').style.display="none";
document.getElementById(''+showhideid1+'1level').style.display="none";
document.getElementById(''+showhideid1+'2input').style.display="none";
document.getElementById(''+showhideid1+'2level').style.display="none";
document.getElementById(''+showhideid1+'3input').style.display="none";
document.getElementById(''+showhideid1+'3level').style.display="none";
document.getElementById(''+showhideid1+'4input').style.display="none";
document.getElementById(''+showhideid1+'4level').style.display="none";
document.getElementById(''+showhideid1+'5input').style.display="none";
document.getElementById(''+showhideid1+'5level').style.display="none";
document.getElementById(''+showhideid1+'6input').style.display="none";
document.getElementById(''+showhideid1+'6level').style.display="none";

document.getElementById(''+showhideid1+'7input').style.display="none";
document.getElementById(''+showhideid1+'7level').style.display="none";
document.getElementById(''+showhideid1+'8input').style.display="none";
document.getElementById(''+showhideid1+'8level').style.display="none";
document.getElementById(''+showhideid1+'9input').style.display="none";
document.getElementById(''+showhideid1+'9level').style.display="none";
document.getElementById(''+showhideid1+'10input').style.display="none";
document.getElementById(''+showhideid1+'10level').style.display="none";
document.getElementById(''+showhideid1+'11input').style.display="none";
document.getElementById(''+showhideid1+'11level').style.display="none";
document.getElementById(''+showhideid1+'12input').style.display="none";
document.getElementById(''+showhideid1+'12level').style.display="none";
document.getElementById(''+showhideid1+'13input').style.display="none";
document.getElementById(''+showhideid1+'13level').style.display="none";
document.getElementById(''+showhideid1+'14input').style.display="none";
document.getElementById(''+showhideid1+'14level').style.display="none";
document.getElementById(''+showhideid1+'15input').style.display="none";
document.getElementById(''+showhideid1+'15level').style.display="none";
document.getElementById(''+showhideid1+'16input').style.display="none";
document.getElementById(''+showhideid1+'16level').style.display="none";
document.getElementById(''+showhideid1+'17input').style.display="none";
document.getElementById(''+showhideid1+'17level').style.display="none";
document.getElementById(''+showhideid1+'18input').style.display="none";
document.getElementById(''+showhideid1+'18level').style.display="none";
document.getElementById(''+showhideid1+'19input').style.display="none";
document.getElementById(''+showhideid1+'19level').style.display="none";
document.getElementById(''+showhideid1+'20input').style.display="none";
document.getElementById(''+showhideid1+'20level').style.display="none";

document.getElementById(''+showhideid1+'21input')…
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с логином на сайт через Iphone

Автор AdmiralSFF

Ответов: 4
Просмотров: 2620
Последний ответ 13.08.2022, 13:19:41
от AdmiralSFF
Проблема с переносом Joomla сайта с хостинга на денвер

Автор 62411

Ответов: 4
Просмотров: 2147
Последний ответ 21.02.2022, 20:22:11
от arma
Проблема Adobe Flash Player

Автор MamontFirst

Ответов: 5
Просмотров: 1551
Последний ответ 23.01.2021, 21:25:23
от MamontFirst
Проблема с редактированием материалов

Автор olesya

Ответов: 15
Просмотров: 3341
Последний ответ 12.07.2020, 12:46:06
от NataliS
Проблема со страницей "Общие настройки" - Joomla 2.5

Автор sultan7

Ответов: 20
Просмотров: 2869
Последний ответ 20.10.2019, 18:24:21
от sultan7