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

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Прошу помощи!
Код: php
defined( '_JEXEC' ) or die( 'Restricted access' );

$db =& JFactory::getDBO();
$user =& JFactory::getUser();

$usname = $user->username;
$id = $user->id;

$params = new JParameter($user->params);
$value = $params->get('someParam');
if($value==''){
$db->setQuery("INSERT INTO #__users (params) VALUES('lastLevels=0\r\n') WHERE id = '$id' ");
$db->query();
echo $db->stderr();
}
Задачка простая: Если в "params" не записаны нужные мне параметры, то нужно их записать.
Но получаю:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = '63'' at line 1 SQL=INSERT IGNORE INTO jos_users (params) VALUES('lastLevels=0 ') WHERE id = '63' "
Где я не прав?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #1 : 04.03.2010, 20:31:43 »
Код: sql
INSERT INTO #__users params VALUES('lastLevels=0\r\n') WHERE id = '$id'
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #2 : 04.03.2010, 21:48:47 »
Нет, к сожалению, результат тот же :(
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #3 : 04.03.2010, 21:53:09 »
Так минуту, что то я невнимательно посмотрел.
Вы делаете INSERT INTO и вставляете только значение поля params, а так делать нельзя.
Насколько позволяют мои скромные знания вам нужно писать что-то вроде
Код: php
$db->setQuery("UPDATE #__users SET params = 'lastLevels=0\r\n' WHERE id = '$id' ");
То есть проводить обновление записи для строки $id.
Ну и если я правильно понял фразу "Если в "params" не записаны нужные мне параметры, то нужно их записать" необходимо добавить проверку на пустоту поля как то так :)
Код: php
$db->setQuery("UPDATE #__users SET params = 'lastLevels=0\r\n' WHERE params <> '' AND  id = '$id' ");

В итоге окончательный вариант мне видится таким (для обновления существующих данных)
Код: php
$db->setQuery("UPDATE #__users SET params = params+'lastLevels=0\r\n' WHERE params <> '' AND  id = '$id' ");
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #4 : 04.03.2010, 22:59:03 »
там вроде о проверке параметров ничего не было :) и изначально он тупо запихивал туда значение lastLevels=0.
а ошибка идет из-за синтакса, Т.к. намудрил с кавычками. Так что надо либо писать нормально, либо пытаться экранировать.
Код
$query = 'INSERT INTO #__users (params) VALUES ("lastLevels=0\r\n") WHERE id =' . (int) $id;
$db->setQuery($query);
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #5 : 04.03.2010, 23:00:46 »
Так он изначально пытается построить неправильный запрос по своей сути, ну нельзя так делать (либо я чего то не знаю)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #6 : 04.03.2010, 23:07:58 »
Так он изначально пытается построить неправильный запрос по своей сути, ну нельзя так делать (либо я чего то не знаю)
да действительно неправильно.
Чего-то я уже туплю :) забыл про SET.
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #7 : 04.03.2010, 23:08:18 »
Все варианты хороши. Получил : "DB function reports no errors"
Но в базе запись не появилась. ?
beliyadm: именно эта мысль у меня и крутиться, но а как надо?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #8 : 04.03.2010, 23:09:52 »
сделайте запрос отдельной переменной, сделайте ее эхо, посмотрите на содержание, попробуйте его руками исполнить в пхпмайадмин..
в общем надо вникать, я дал правильное направление, дальше изучайте
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #9 : 04.03.2010, 23:15:10 »
Да кстати новой записи у вас и не должно появиться, потому что судя по первому посту мы говорим про обновление существующих записей в таблице, хотите добавлять новую (нового пользователя) - так пишите полностью INSERT, при этом надо иметь в виду что данные пользователя хранятся в нескольких таблицах http://joomlaportal.ru/content/view/1381/68/
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #10 : 04.03.2010, 23:20:54 »
Так,где-то я рядом. Пробую
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #11 : 04.03.2010, 23:28:11 »
Ага. В качестве обновления запрос вида:
Код
$db->setQuery("UPDATE #__users SET params = params+'lastLevels=0\r\n' WHERE params <> '' AND  id = '$id' ");
сработал.Правда стер все вписанные параметры и оставил только '0' даже без имени.
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #12 : 04.03.2010, 23:37:13 »
Вобщем-то мне и не нужно добавлять пользователя.Нужно только обновлять данные.
Без опыта с синтаксисом можно играться бесконечно. Так что прошу помощи у спецов.
В базу проходит только "0", независимо от значения, которое я даю.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #13 : 04.03.2010, 23:39:47 »
скорей всего проблема в синтаксисе (кавычки), можно еще работать с функцией concat для объединения текущей строки и существующей
Но а если же для данной записи уже есть какое либо значение lastLevels - придется еще исхитряться и работать через replace и регулярные выражения
Самый примитивный вариант - заранее сделать SELECT этого поля, найти соответствия, заменить при необходимости (на PHP естессно) и после вставлять через UPDATE всю строку
Цитировать
Без опыта с синтаксисом можно играться бесконечно. Так что прошу помощи у спецов.
а как вы хотели получить опыт :)
Могу пригласить на форум http://sql.ru/forum/actualforum.aspx - вот там монстры баз данных обитают, сам частенько заглядываю
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #14 : 04.03.2010, 23:49:29 »
Насчет опыта - вы абсолютно правы.
Я из с-программистов. Там опыта предостаточно. Путь через SELECT очень сишный. Я просто наивно надеялся что в этой задаче есть путь покороче.
Тут проблемка видна сразу. Чтоба я не вписывал на месте параметр=значение , в базе стирается все и появляется "0".
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #15 : 04.03.2010, 23:53:11 »
Тут проблемка видна сразу. Чтоба я не вписывал на месте параметр=значение , в базе стирается все и появляется "0".
а если тупо?
Код: sql
$db->setQuery("UPDATE #__users SET params = 'какая-то тупая строка просто для примера'  WHERE id = '$id' "); 
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #16 : 04.03.2010, 23:57:56 »
Почему же тупо! Да вы гений.Огромнейшая благодарность!
Запись зашла!
Буду развивать в эту сторону.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #17 : 04.03.2010, 23:59:36 »
Почему же тупо! Да вы гений.Огромнейшая благодарность!
Запись зашла!
Буду развивать в эту сторону.
значит как и говорил проблема в кавычках, строку же надо экранировать
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #18 : 05.03.2010, 00:01:47 »
Я вам там карму изменил в благодарность. Надеюсь в правильную сторону :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Почему статья не отображается

Автор bazabaza

Ответов: 8
Просмотров: 13207
Последний ответ 14.05.2025, 10:52:43
от antivampoed
Не могу распаковать jpa архив сайта Akeeba backup. ajax error

Автор smadkz

Ответов: 4
Просмотров: 1906
Последний ответ 26.12.2020, 15:15:15
от stendapuss
Fatal error: Class 'JDocument' not found

Автор gabiboi

Ответов: 2
Просмотров: 2415
Последний ответ 04.09.2020, 14:39:07
от svetka_777
simpleform2 ошибка ajax error в Google chrome

Автор safronoff343

Ответов: 1
Просмотров: 1256
Последний ответ 05.06.2020, 20:36:42
от safronoff343
Ошибка Fatal error: Allowed memory size of 73400320 bytes exhausted

Автор Andre109

Ответов: 1
Просмотров: 2170
Последний ответ 03.12.2018, 01:29:56
от voland