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

stalkervp

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
AJAX проверка логина и email
« : 17.04.2013, 22:58:50 »
В общем прошу сильно не пинать гуру java, ajax`a  и т.п. (потому как сам несколько валенок в этом, и буду благодарен за критику).
Готового решения не нашел и поэтому как говорится "я его слепила из того что было" (а было это - http://joomla-book.ru/development/creating-component/ajax-login-check-registration). Итак:
1. Добавляем скрипт в два файла (у меня они в шаблоне)
    а)   \templates\ххххххх\html\com_virtuemart\user\edit.php   (примерно в строку 50 стразу за тегом </script>)
    б)   \templates\ххххххх\html\com_virtuemart\user\edit_address.php (примерно в строку 70 стразу за тегом </script>)

Код
<script type="text/javascript">
<!--
window.addEvent("domready", function(){

// id проверяемого поля
document.id("username_field").addEvent("blur", function(){
//проверка на корректность заполнения поля
//стандартная валидация добавляет class invalid,
//если поле заполнено неправильно.
var regex=/invalid/g;
if (regex.test(this.get('class')) || this.value.length < 2) return;

//удаляем элемент в котором выводится результат если установлен
if(this.getNext('div')) this.getNext('div').destroy();

//создаем новый элемент для вывода сообщения результата проверки
var myElement = new Element('div');
myElement.inject(this, 'after');
myElement.addClass('login_response_txt');

 
//создаем AJAX запрос для проверки логина
var myRequest = new Request({
   url: 'index.php?option=com_users&task=check.name&format=raw',
   method: 'get',
   onRequest: function(){
       myElement.set('text', 'проверка');
   },
   onSuccess: function(responseText){
       myElement.set('text', responseText);
myElement.addClass('ok');
       if (responseText == 'занят') {
myElement.addClass('notok');
myElement.getPrevious('input').addClass('invalid');
       }
   },
   onFailure: function(){
       myElement.set('text', 'ошибка');
   }
});
//посылаем запрос с данными
myRequest.send('name='+this.value)
})

// id проверяемого поля
document.id("email_field").addEvent("blur", function(){
//проверка на корректность заполнения поля
//стандартная валидация добавляет class invalid,
//если поле заполнено неправильно.
var regex=/invalid/g;
if (regex.test(this.get('class')) || this.value.length < 2) return;
 
//удаляем элемент в котором выводится результат если установлен
if(this.getNext('div')) this.getNext('div').destroy();

//создаем новый элемент для вывода сообщения результата проверки
var myElement = new Element('div');
myElement.inject(this, 'after');
myElement.addClass('email_response_txt');
 
//создаем AJAX запрос для проверки email
var myRequest = new Request({
   url: 'index.php?option=com_users&task=check.email&format=raw',
   method: 'get',
   onRequest: function(){
       myElement.set('text', 'проверка');
       myElement.addClass('ajax-loader');
   },
   onSuccess: function(responseText){
       myElement.set('text', responseText);
myElement.addClass('ok');
       if (responseText == 'занят') {
myElement.addClass('notok');
myElement.getPrevious('input').addClass('invalid');
       }
   },
   onFailure: function(){
       myElement.set('text', 'ошибка');
   }
});
//посылаем запрос с данными
myRequest.send('email='+this.value)
})

})
//-->
</script>


2. создаем файл с именем check.raw.php в папке \components\com_users\controllers  (вот тут странно, пытался создать этот файл в контроллере VirtueMart, url перенаправлял на компонент VirtueMart, но почему то не заработало). Код:


Код
<?php
 
defined('_JEXEC') or die('Restricted access');
 
jimport('joomla.application.component.controller');
 
class UsersControllerCheck extends JController
{
/**
* Метод проверки имени пользователя
*/
public function name()
{
 
$name = JRequest::getVar('name', null, 'GET');
 
if ($name) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id');
$query->from('#__users');
$query->where('username = '. $db->quote($name));
$db->setQuery($query);
if ($db->loadResult()) {
die('занят');
} else {
die('свободен');
}
 
}
}

public function email()
{
 
$email = JRequest::getVar('email', null, 'GET');
 
if ($email) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id');
$query->from('#__users');
$query->where('email = '. $db->quote($email));
$db->setQuery($query);
if ($db->loadResult()) {
die('занят');
} else {
die('свободен');
}
 
}
}

}


3. Добавляем стили (у меня это \templates\хххххххх\css\template.css)

Мой пример стилей:

Код
.login_response_txt
{
font-size: 10px;
right: 55px;
top: 3px;
float: right;
position: relative;
width: 10px;
font-style:italic;
}

.email_response_txt
{
font-size: 10px;
right: 55px;
top: 3px;
float: right;
position: relative;
width: 10px;
font-style:italic;
}

.login_response_txt.ok,
.email_response_txt.ok
{
color: #090;
right: 55px;
}

.login_response_txt.notok,
.email_response_txt.notok
{
color: #F00;
right: 35px;
}

#username_field.invalid,
#email_field.invalid
{
border-color:#FF0000 !important;
}

*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: AJAX проверка логина и email
« Ответ #1 : 25.04.2013, 17:38:32 »
вы бы понятнее написали, проверку на что вы осуществляете?  ^-^
*

bodr1982

  • Осваиваюсь на форуме
  • 23
  • 3 / 0
Re: AJAX проверка логина и email
« Ответ #2 : 13.05.2016, 21:16:49 »
На Joomla 3.5.1 не работает (500 ошибка). Я так понимаю надо править check.raw.php в контроллере под 3-ю Joomla. Может кто подскажет что подправить надо?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: AJAX проверка логина и email
« Ответ #3 : 14.05.2016, 00:37:22 »
странно, пытался создать этот файл в контроллере VirtueMart, url перенаправлял на компонент VirtueMart, но почему то не заработало
url: 'index.php?option=com_users&task=check.email&format=raw',

На Joomla 3.5.1 не работает (500 ошибка). Я так понимаю надо править check.raw.php в контроллере под 3-ю Joomla. Может кто подскажет что подправить надо?
class UsersControllerCheck extends JControllerLegacy
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

ajax Scroll - пагинация товаров в категории VirtueMart 3

Автор VollanddZAFT

Ответов: 1
Просмотров: 1545
Последний ответ 15.08.2018, 21:12:08
от fsv
VirtueMart + JComments + ajax

Автор limon142

Ответов: 3
Просмотров: 1384
Последний ответ 08.08.2018, 15:57:28
от limon142
GENIUS VM AJAX SEARCH регистронезавизимый поиск

Автор lustoff

Ответов: 16
Просмотров: 3747
Последний ответ 09.04.2017, 23:13:44
от ArchibaldIron
Universal AJAX Live Search + VM3

Автор One

Ответов: 4
Просмотров: 1312
Последний ответ 27.10.2016, 12:58:35
от gartes
AJAX пагинация категории и кнопка в корзину

Автор stydent

Ответов: 3
Просмотров: 1786
Последний ответ 21.09.2015, 15:11:56
от stydent