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

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Помогите пожалуйста, смысл вопроса таков, делаю сайт для определённой категории людей... Там есть возможность создать встречу в определённом месте, для тренировок, где зарегестрировавшийся пользователь вбив данные о времени, месте встречи, и т.д. заносит эти данные в БД. Так вот вопрос, на другой странице все эти встечи видны в виде таблицы, тоесть:

$dbo = JFactory::getDbo();
$query1 = $dbo->getQuery(true);
$query1->select(array('a.date_run', 'a.time_run', 'a.starting_place', 'a.distance_run', 'a.speed_run', 'b.firstname', 'b.lastname', 'a.call_me', 'a.age_run', 'a.gender', 'a.id_run', '(SELECT COUNT('id_training') FROM '#__narod' WHERE '#__training.id_run'='#__narod.id_training') As Ludi' 'count(c.id_training As Ludi')))
(SELECT COUNT(*) FROM `page` WHERE page.category_id = category.id) as `count`
->from('#__training As a')
->join('INNER', '#__comprofiler AS b ON (a.id_user = b.user_id)')
->join('INNER', '#__narod AS b ON (a.id_run = c.id_training)');
$dbo->setQuery($query1);
$result = $dbo->loadAssocList();
echo '<table border="1" style="font-size:.8em">';
echo '<thead>';
echo '<tr>';
echo '<th>Дата тренировки</th>';
echo '<th>Время тренировки</th>';
echo '<th>Место тренировки</th>';
echo '<th>Дистанция</th>';
echo '<th>Скорость</th>';
echo '<th>Организатор</th>';
echo '<th>Фамилия</th>';
echo '<th>Связь</th>';
echo '<th>Возраст участников</th>';
echo '<th>Пол участников</th>';
echo '<th>Хотели бы вы присоединиться к тренировке?</th>';     // ?   ВОПРОС ИМЕННО ПО ЭТОМУ ПОЛЮ...
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach($result as $data)
{
echo '<tr>';
echo '<td>' . $data['date_run'] . '</td>';
echo '<td>' . $data['time_run'] . '</td>';
echo '<td>' . $data['starting_place'] . '</td>';
echo '<td>' . $data['distance_run'] . '</td>';
echo '<td>' . $data['speed_run'] . '</td>';
echo '<td>' . $data['firstname'] . '</td>';
echo '<td>' . $data['lastname'] . '</td>';
echo '<td>' . $data['call_me'] . '</td>';
echo '<td>' . $data['age_run'] . '</td>';
echo '<td>' . $data['gender'] . '</td>';
echo '<td> <a href=index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>">Присоединиться</a></td>';  //? Хотел сделать в виде $_POST но ничего не выходит с присвоением переменной!
echo '</tr>';
}
echo '</tbody>';
echo '</table>';

Так вот если посмотреть на последний столбец таблицы, там как раз и есть ссылка на то, что бы присоединиться к этой тренировке, к примеру там несколько разных тренировок, может 10, а может и больше, так вот как сделать так что пользователь в зависимости от того какую тренировку выбрал (на какой строке нажал кнопку ПРИСОЕДИНИТЬСЯ) к такой именно тренировке и присоединился, конкретнее записалась запись в таблицу с его id и с id той тренировке, которую он выбрал?! Помогите разобраться, если нужно подробнее описать суть проблемы, напишите мне на почту deonisich@gmail.com, буду надеяться что кто-нибудь откликнется...
« Последнее редактирование: 09.10.2014, 15:06:24 от Deonisich »
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Ребята, ну что, не ужели не кто не знает, как мне запомнить в переменной выбранный id строки из таблицы? Откликнитесь пожалуйста...
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Deonisich перестаем гомнокодить и вместо повторяющегося echo пишем
Код: php-brief
$html = 'a';
$html .= 'b';
$html .= 'c';
echo $html;
переход по ссылке это GET, а не POST
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Да прошу прощения, про POST, у меня там так и было $id_r = $_GET['id_run'];
а в таблице echo '<td> <a href=index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>">Редакт</a></td>';
но ничего не происходит...

А за лишний код спасибо за замечания, просто я только осваиваю, поэтому мне как то проще подробно всё расписывать...
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
href=index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>" - кавычку забыли поставить, href="index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>" - по идее
« Последнее редактирование: 10.10.2014, 22:45:47 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
href=index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>" - кавычку забыли поставить, href="index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>" - по идее
Ну это я копировал с блокнота, в коде у меня вот так echo '<td> <a href="index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>">Редакт</a></td>';
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
ну и как вы потом эту переменную получаете? $_GET['id_run'] выводит что нибудь? Версия php какая ? short-tags директива включена в настройках php?
echo '<td> <a href="index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>">Редакт</a></td>' -вобще неправильный синтаксис:
вот так правильно:
echo '<td> <a href="index.php?option=com_content&view=article&id=61&id_run='. $id_r .'">Редакт</a></td>'
интернет-блог: http://websiteprog.ru
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Версия 5.5, я пытался хотябы просто вывести на эту же страницу id выбранной тренировки, но без успешно (((
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
может быть в $data['id_run'] нужная вам переменная?
попробуйте:
echo '<td> <a href="index.php?option=com_content&view=article&id=61&id_run='.$data['id_run'].'">Присоединиться</a></td>';
« Последнее редактирование: 10.10.2014, 23:03:15 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Так в том то и дело она не появляется, по идеи я так и думал, что она должна зафиксироваться в переменной...
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
$dbo = JFactory::getDbo();
$query1 = $dbo->getQuery(true);
$query1->select(array('a.date_run', 'a.time_run', 'a.starting_place', 'a.distance_run', 'a.speed_run', 'b.firstname', 'b.lastname', 'a.call_me', 'a.age_run', 'a.gender', 'a.id_run', '(SELECT COUNT('id_training') FROM '#__narod' WHERE '#__training.id_run'='#__narod.id_training') As Ludi' 'count(c.id_training As Ludi')))
(SELECT COUNT(*) FROM `page` WHERE page.category_id = category.id) as `count`
->from('#__training As a')
->join('INNER', '#__comprofiler AS b ON (a.id_user = b.user_id)')
->join('INNER', '#__narod AS b ON (a.id_run = c.id_training)');
$dbo->setQuery($query1);
$result = $dbo->loadAssocList();

я не понимаю че Вы мучаетесь!
используй простой запрос к БД, который будет понятен не только тебе, но и системе...

К примеру!
Код
$db = JFactory::getDBO;
$query = "запрос к БД";
$db->setQuery($query);
$result = $db->loadAssocList();

далее

Код
foreach($result as $data)
{
формирование строки в таблице
}

...
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Не вижу особой разницы, запрос с двумя джоинами и двумя подзапросами, не такой уж и сложный для чтения..
интернет-блог: http://websiteprog.ru
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Тоесть если даже просто наводить на любую из строк таблице по ссылке  echo '<td> <a href="index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>">ПРИСОЕДИНИТЬСЯ</a></td>'; то переход не осуществляется, внизу название ссылки выглядит следующем образом: www.site.ru/index.php/feature/joomla-overview/test?id_run=              ?- и всё пусто (((
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
я не понимаю че Вы мучаетесь!
используй простой запрос к БД, который будет понятен не только тебе, но и системе...

К примеру!
Код
$db = JFactory::getDBO;
$query = "запрос к БД";
$db->setQuery($query);
$result = $db->loadAssocList();

далее

Код
foreach($result as $data)
{
формирование строки в таблице
}



Да это то всё давно сформировано и показывается, просто к каждой строке у меня прикреплена ссылка на то что бы пользователь мог присоединится, по другому добавится в БД его id и id выбранной им тренировки, вот с выводом id тренировки у меня и проблема (((
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
вы пробовали то что я выше написал? Да у вас ошибок тут немерянно:
->join('INNER', '#__comprofiler AS b ON (a.id_user = b.user_id)')
->join('INNER', '#__narod AS b ON (a.id_run = c.id_training)');
что за странные джоины? может в первой джоине
->join('INNER', '#__comprofiler AS с ON (a.id_user = с.user_id)')
интернет-блог: http://websiteprog.ru
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
т.е. $id_r судя по коду из топика - вообще не определена
и если включить показ ошибок (например, error_reporting(E_ALL), вначале кода), то видимо можно увидеть сообщение об этом
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Не вижу особой разницы, запрос с двумя джоинами и двумя подзапросами, не такой уж и сложный для чтения..

но все равно понятнее,  что и где делается!

<a href="index.php?option=com_content&view=article&id=61&id_run=<?= $id_r ?>">ПРИСОЕДИНИТЬСЯ</a>

я думаю что у тебя все равно не получиться, потому что компонент не знает что ты от него хочешь... и какие данные ты ему даешь... и что и где выводить...
...
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
вы пробовали то что я выше написал? Да у вас ошибок тут немерянно:
->join('INNER', '#__comprofiler AS b ON (a.id_user = b.user_id)')
->join('INNER', '#__narod AS b ON (a.id_run = c.id_training)');
что за странные джоины? может в первой джоине
->join('INNER', '#__comprofiler AS с ON (a.id_user = с.user_id)')

Да эти обьединения, в частности последнее нужно, что бы в таблице выводилось количество присоединенных пользователей к данной тренировки, тут ошибки нет ни какой... Это обьединение показывает 'count(c.id_training) As ludi' счётчик, про который я как раз и говорю, что когда пользователь нажимает на ссылку, то его id и id тренировки записывается вот в эту таблицу '#__narod' !
« Последнее редактирование: 10.10.2014, 23:22:31 от Deonisich »
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
SELECT COUNT('id_training') FROM '#__narod' WHERE '#__training.id_run'='#__narod.id_training'

этот же запрос выводит количество пользователей, а не записывает их...
...
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
этот же запрос выводит количество пользователей, а не записывает их...
правильно, а дальше как раз в следующем столбце и идёт ссылка на присоединение echo '<td> <a href="index.php?option=com_content&view=article&id=61&id_run='.$data['id_run'].'">Присоединиться</a></td>';
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Как у вас этот запрос вобще работает я честно говоря непонимаю, тут такие ляпы.. А что в $result, распечатать пробовали?
интернет-блог: http://websiteprog.ru
*

Deonisich

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
да мне $result ничего не даст, кроме как того что находится в $data (тоесть в БД), а какие там ляпы, помойму всё в запросе логично, связь по ID в каждой таблице, всего три таблицы, это таблица с тренировками, ну там время место скорость и т.д. Дальше таблица с зареганами пользователями от куда имена, эл.почта и так далее, ну и третья это связующая таблица между этими двумя...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать сохранение товара в корзине? И как убрать или зафиксировать мини изображение?

Автор salikh

Ответов: 2
Просмотров: 1183
Последний ответ 24.11.2016, 12:59:36
от salikh
Как зафиксировать фон сайта относительно макета?

Автор qclub

Ответов: 6
Просмотров: 3187
Последний ответ 13.06.2016, 18:03:14
от ramm32
Как загрузить плагин, если нет строки - менеджер расширений?

Автор rairakku

Ответов: 1
Просмотров: 1589
Последний ответ 28.11.2015, 10:58:42
от Ilhom666
Не выводятся новости для выбранной категории

Автор worldmen

Ответов: 2
Просмотров: 865
Последний ответ 23.04.2014, 12:53:38
от worldmen
Удаление строки таблицы в контроллере

Автор digitalheart

Ответов: 2
Просмотров: 948
Последний ответ 25.02.2014, 09:00:47
от digitalheart