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

Sintes

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Здравствуйте, уважаемые Joomlaведы! у меня такой вопрос: можно ли сделать так, чтобы статью до ссылки "подробнее" видели все, а полный текст, т.е. после нажатия этой кнопки - только зарегистрированые. А если полную статью пытается открыть гость, то чтобы ему появлялось собщение: "для просмотра пожалуйста, авторизуйтесь"
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
можно сделать на уровне шаблона com_content через объект $user
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Sintes

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
можно сделать на уровне шаблона com_content через объект $user
а можно поконкретнее? буду очень очень благодарен! прост я с Joomla работаю всего неделю, еще не совсем освоился
*

Greycat

  • Захожу иногда
  • 298
  • 64 / 0
В каждом материале есть опция "Access Level", которая определяет уровень доступа к статье.
Что показать незарегистрированным только ссылки на вводную часть текста нужно настраивать опции пункта меню, ведущего на страницу, где отображаются превью материалов. Это параметр "Show Unauthorised Links".
Я.д.=41001239962471  |  WMR=R271925495206  |  WMZ=Z144922023512
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
там даже ссылка в блоге меняется выводится не подробнее... а что-то типа зарегистрируйтесь что бы читать дальше и кидает на страницу авторизации
Код
// Build the link and text of the readmore button
if (($item->params->get('show_readmore') && @ $item->readmore) || $item->params->get('link_titles'))
{
// checks if the item is a public or registered/special item
if ($item->access <= $user->get('aid', 0))
{
//$item->readmore_link = JRoute::_('index.php?view=article&catid='.$this->category->slug.'&id='.$item->slug);
$item->readmore_link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid));
$item->readmore_register = false;
}
else
{
$item->readmore_link = JRoute::_('index.php?option=com_user&view=login');
$returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid),false);
$fullURL = new JURI($item->readmore_link);
$fullURL->setVar('return', base64_encode($returnURL));
$item->readmore_link = $fullURL->toString();
$item->readmore_register = true;
}
}
*

Sintes

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
SmokerMan, скажи пожалуйста, куда этот код вставить? Мне именно эта опция нужна, что ты описал
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
SmokerMan, скажи пожалуйста, куда этот код вставить? Мне именно эта опция нужна, что ты описал
это был приведен кусок стандартного кода. Помоему, вида.
*

BMF

  • Захожу иногда
  • 87
  • 1 / 1
В каждом материале есть опция "Access Level", которая определяет уровень доступа к статье.
Что показать незарегистрированным только ссылки на вводную часть текста нужно настраивать опции пункта меню, ведущего на страницу, где отображаются превью материалов. Это параметр "Show Unauthorised Links".
все равно не понял как это делается, нужно чтобы при нажатии на ссылку "читать полностью" неавторизованного юзверя посылало на страницу авторизации. делал вкл/выкл параметра "Показывать ссылки неавторизованным" в единых настройках для всех статей - балалайка, читать полностью могут и те и те. если можно поподробнее объясните что и где включить или отключить, чтобы неавторизованный пользователь, то есть гость, не мог читать полную новость, а перебрасывался на страницу авторизации. это вообще можно сделать стандартными средствами?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
все равно не понял как это делается, нужно чтобы при нажатии на ссылку "читать полностью" неавторизованного юзверя посылало на страницу авторизации. делал вкл/выкл параметра "Показывать ссылки неавторизованным" в единых настройках для всех статей - балалайка, читать полностью могут и те и те. если можно поподробнее объясните что и где включить или отключить, чтобы неавторизованный пользователь, то есть гость, не мог читать полную новость, а перебрасывался на страницу авторизации. это вообще можно сделать стандартными средствами?
интересно, где вы нашли такой параметр "Показывать ссылки неавторизованным"? :)
При редактировании материала есть такой параметр как "доступ", вот его и нужно выставлять.
*

BMF

  • Захожу иногда
  • 87
  • 1 / 1
интересно, где вы нашли такой параметр "Показывать ссылки неавторизованным"? :)
При редактировании материала есть такой параметр как "доступ", вот его и нужно выставлять.
в общих настройках статей:

а "Доступ" не дает нужного эффекта, доступ ведь полностью скрывает материал от неавторизованного, а нужно чтобы гость читал начало статьи и
чтобы при нажатии на ссылку "читать полностью" неавторизованного юзверя посылало на страницу авторизации.
такое можно сделать стандартными средствами Joomla?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
А почитать внимательней никак нельзя!
При редактировании материала есть такой параметр как "доступ"
*

BMF

  • Захожу иногда
  • 87
  • 1 / 1
SmokerMan, да разобрался :)
или в настройках при наборе статей (твой скрин) или в пункте меню, выводящем эти стати в виде бога на главную нужно указать этот параметр на "зарегистрированный", а в общих настройках статей (мой скрин) параметр "Показывать ссылки незарегистрированным" поставить в значение "Да" (это чтобы каждый раз не настраивать каждую статью). тогда действительно все работает :) но
появляется текст "Зарегистрируйтесь для просмотра полной версии..." и ведет сюда "index.php?option=com_user&task=register", а нужно что бы вел сюда "index.php?option=com_comprofiler&task=registers" где это исправить не подскажите? пожалуйста :(
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
В виде блога категории или раздела, ч не знаю что у вас там заменить.
Пример для блога категории
components\com_content\views\category\view.html.php
Заменить соответственно ссылки
Код
$item->readmore_link = JRoute::_('index.php?option=com_user&view=login');
и
Код
$item->link = JRoute::_('index.php?option=com_user&task=register');
*

BMF

  • Захожу иногда
  • 87
  • 1 / 1
В виде блога категории или раздела, ч не знаю что у вас там заменить.
Пример для блога категории
components\com_content\views\category\view.html.php
Заменить соответственно ссылки
Код
$item->readmore_link = JRoute::_('index.php?option=com_user&view=login');
и
Код
$item->link = JRoute::_('index.php?option=com_user&task=register');
Спасибо! но пошел другим путем :) установлено просто Joomla 1.5.18 + CB + JComments. и я так понял что именно JComments формирует или переписывает стандартную ссылку на регистрацию (я в этом не силен к сожалению) в общем в файле plugins/content/jcomments.php строка 117 вместо
Код
$readmore_link = JRoute::_('index.php?option=com_user&task=register');
поставил
Код
$readmore_link = JRoute::_('index.php?option=com_comprofiler&task=registers');
или так
Код
$readmore_link = JRoute::_('index.php?option=com_comprofiler&task=login');
пусть пользователь сам выбирает войти ему (если он зарегистрирован) или зарегистрироваться.
варианты сработали нормально.
мне кажется так лучше, ведь если удалить компонент, то стандартные файлы Joomla останутся прежними и эта ссылка будет вести на стандартную форму регистрации, иначе придется опять править код на стандартный.
« Последнее редактирование: 16.06.2010, 13:40:54 от BMF »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Ну телепатов здесь вроде тоже не обитает. Откуда мне знать что там у вас установлено.
Я еще удивился почему ссылка ведет на регистрацию, а не на авторизацию, как это должно быть в стандартном компоненте.
Ну это уже заморочки Smarta :)
*

BMF

  • Захожу иногда
  • 87
  • 1 / 1
на счет телепатов , да :) моя ошибка.
я сам удивился немного по поводу текста ссылки "Зарегистрируйтесь для просмотра полной версии..." а если я зарегистрирован и хочу войти просто... :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

кэш, права доступа

Автор jomz

Ответов: 3
Просмотров: 1668
Последний ответ 14.03.2016, 16:18:50
от flyingspook
Права доступа в коде

Автор Vitalik36rus

Ответов: 2
Просмотров: 1607
Последний ответ 04.11.2014, 13:23:20
от Vitalik36rus
права доступа на хостинге

Автор Andrew1110

Ответов: 6
Просмотров: 2797
Последний ответ 28.09.2013, 03:28:24
от IceBerg
Нужно сделать слайдер с помощью скрипта. Нет доступа к файлам

Автор Viktoriia

Ответов: 4
Просмотров: 1626
Последний ответ 26.09.2013, 14:13:10
от kreker92
Как прописать позицию модуля в статье

Автор Silverstreet

Ответов: 16
Просмотров: 6034
Последний ответ 20.08.2013, 06:24:03
от Dmitriy M