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

seleckiy

  • Новичок
  • 5
  • 0 / 0
Не устанавливается 1.5.14
« : 28.03.2010, 18:42:22 »
Закачал файлы на фтп, захожу на сайт, перебрасывает на /installation/index.php
И вот что я вижу вместо установки: Fatal error: Class 'JView' not found in /home/je1.ru/wowserv/sites/www/installation/installer/views/install/view.php on line 25

Прилагаю файл view.php в котором 25 строка с ошибкой
Код: php
<?php
/**
 * @version $Id: view.php 10381 2008-06-01 03:35:53Z pasamio $
 * @package Joomla
 * @subpackage Installation
 * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
 * @license GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

/**
 * @package Joomla
 * @subpackage Installation
 */

jimport('joomla.application.component.view');

class JInstallationView extends JView
{
/**
* The installation steps
*
* @var array
* @access protected
* @since 1.5
*/
var $_steps = null;

/**
* The templabe object
*
* @var object
* @access protected
* @since 1.5
*/
var $_template = null;

/**
* Language page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function chooseLanguage()
{
$steps =& $this->getSteps();

$model =& $this->getModel();
$lists =& $model->getData('lists');

$tmpl =& $this->getTemplate( 'language.html' );

$steps['lang'] = 'on';

$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addRows( 'lang-options', $lists['langs'] );

return $this->display();
}

/**
* Create a template object
*
* @return boolean True if successful
* @access private
* @since 1.5
*/
function _createTemplate( $bodyHtml = null, $mainHtml = 'page.html' )
{

jimport('joomla.template.template');

$this->_template = new JTemplate();
$this->_template->applyInputFilter('ShortModifiers');

// load the wrapper and common templates
$this->_template->setRoot( JPATH_BASE . DS . 'template' . DS. 'tmpl' );
$this->_template->readTemplatesFromFile( $mainHtml );

if ($bodyHtml) {
$this->_template->setAttribute( 'body', 'src', $bodyHtml );
}
}

/**
* The DB Config page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function dbConfig()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$lists =& $model->getData('lists');
$tmpl =& $this->getTemplate( 'dbconfig.html' );

$steps['dbconfig'] = 'on';

$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addRows( 'dbtype-options', $lists['dbTypes'] );

return $this->display();
}

/**
* Display the template
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function display()
{
$model =& $this->getModel();
$tmpl =& $this->getTemplate();
$lang =& JFactory::getLanguage();
$vars =& $model->getVars();

$tmpl->addVar( 'buttons', 'direction', $lang->isRTL()? 'rtl' : 'ltr');
$tmpl->addVar( 'body', 'lang', $lang->getTag() );
$tmpl->addVars( 'body', $vars, 'var_' );

echo $tmpl->fetch( 'page' );

return true;
}

/**
* Report an error to the user
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function error()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$vars =& $model->getVars();
$tmpl =& $this->getTemplate( 'error.html' );

$msg = $model->getError();
$back = $model->getData('back');
$xmsg = $model->getData('errors');

$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addVar( 'messages', 'message', $msg );

if ($xmsg) {
$tmpl->addVar( 'xmessages', 'xmessage', $xmsg );
}

$tmpl->addVar( 'buttons', 'back', $back );
$tmpl->addVars( 'body', $vars, 'var_' );

return $this->display();
}

/**
* The the final page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function finish()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$vars =& $model->getVars();
$tmpl =& $this->getTemplate( 'finish.html' );

$buffer = $model->getData('buffer');

$steps['finish'] = 'on';

$tmpl->addVars( 'stepbar', $steps, 'step_' );

if ($buffer) {
$tmpl->addVar( 'configuration-error', 'buffer', $buffer );
}

return $this->display();
}

/**
* Show the FTP config page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function ftpConfig()
{
$steps =& $this->getSteps();
$model =& $this->getModel();

$tmpl =& $this->getTemplate( 'ftpconfig.html' );

$steps['ftpconfig'] = 'on';

$tmpl->addVars( 'stepbar', $steps, 'step_' );

return $this->display();
}

/**
* Get the installation steps
*
* @return array
* @access protected
* @since 1.5
*/
function & getSteps()
{
if ( is_null($this->_steps) )
{
$this->_steps = array(
'lang' => 'off',
'preinstall' => 'off',
'license' => 'off',
'dbconfig' => 'off',
'ftpconfig' => 'off',
'mainconfig' => 'off',
'finish' => 'off'
);
}

return $this->_steps;
}

/**
* Get the template object
*
* @param string The name of the body HTML file
* @return patTemplate
* @access protected
* @since 1.5
*/
function & getTemplate( $bodyHtml = null )
{
static $current;

$change = false;

// Record the current template body
if ( is_null($current) && $bodyHtml)
{
$current = $bodyHtml;
$change = true;
}

// Check if we need to create the body, possibly anew
if ( is_null( $this->_template) || $change )
{
$this->_createTemplate($bodyHtml);
}

return $this->_template;
}

/**
* The license page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function license()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$tmpl =& $this->getTemplate( 'license.html' );

$steps['license'] = 'on';

$tmpl->addVars( 'stepbar', $steps, 'step_' );

return $this->display();
}

/**
* The main configuration page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function mainConfig()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$tmpl =& $this->getTemplate( 'mainconfig.html' );

$steps['mainconfig'] = 'on';

$tmpl->addVars( 'stepbar', $steps, 'step_' );

$tmpl->addVar( 'buttons', 'previous', 'ftpconfig');
// $tmpl->addRows( 'folder-perms', $lists['folderPerms'] );

/*
* prepare migration encoding selection
*/
$encodings = array( 'iso-8859-1','iso-8859-2','iso-8859-3','iso-8859-4','iso-8859-5','iso-8859-6','iso-8859-7','iso-8859-8','iso-8859-9','iso-8859-10','iso-8859-13','iso-8859-14','iso-8859-15','cp874','windows-1250','windows-1251','windows-1252','windows-1253','windows-1254','windows-1255','windows-1256','windows-1257','windows-1258','utf-8','big5','euc-jp','euc-kr','euc-tw','iso-2022-cn','iso-2022-jp-2','iso-2022-jp','iso-2022-kr','iso-10646-ucs-2','iso-10646-ucs-4','koi8-r','koi8-ru','ucs2-internal','ucs4-internal','unicode-1-1-utf-7','us-ascii','utf-16' );
$tmpl->addVar( 'encoding_options', 'value', $encodings );
$max_upload_size = min(JInstallationHelper::let_to_num(ini_get('post_max_size')), JInstallationHelper::let_to_num(ini_get('upload_max_filesize')));
$tmpl->addVar( 'uploadsize', 'maxupload', JText::sprintf('UPLOADFILESIZE',(number_format($max_upload_size/(1024*1024), 2))."MB."));
return $this->display();
}

/**
* The the pre-install info page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function preInstall()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$lists =& $model->getData('lists');

$version = new JVersion();
$tmpl =& $this->getTemplate( 'preinstall.html' );

$steps['preinstall'] = 'on';

$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addVar( 'body', 'version', $version->getLongVersion() );

$tmpl->addRows( 'php-options', $lists['phpOptions'] );
$tmpl->addRows( 'php-settings', $lists['phpSettings'] );

return $this->display();
}

/**
* Remove directory messages
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function removedir()
{
$model =& $this->getModel();

$this->_createTemplate('', 'removedir.html');
$tmpl = $this->_template;

#$tmpl =& $this->getTemplate( 'removedir.html' );
return $this->display();
}


function migrateScreen() {
$steps =& $this->getSteps();
$model =& $this->getModel();

$tmpl =& $this->getTemplate( 'migration.html' );
$scriptpath =& $model->getData('scriptpath');
$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addVar( 'migration', 'migration', JRequest::getVar( 'migration', 0, 'post', 'bool' ));
$tmpl->addVar( 'buttons', 'previous', 'mainconfig');
return $this->display();
}
}

?>
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Не устанавливается 1.5.14
« Ответ #1 : 28.03.2010, 19:04:39 »
Какая версия PHP на хостинге?
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

seleckiy

  • Новичок
  • 5
  • 0 / 0
Re: Не устанавливается 1.5.14
« Ответ #2 : 28.03.2010, 19:11:30 »
php5, до этого уже ставил Joomla но версии 1.0.13 и все было отлично, сразу же установилась.. Снес ее полностью и залил эту..
Если нужно точно, то php5.3
« Последнее редактирование: 28.03.2010, 19:23:02 от seleckiy »
*

seleckiy

  • Новичок
  • 5
  • 0 / 0
Re: Не устанавливается 1.5.14
« Ответ #3 : 28.03.2010, 19:53:13 »
Помогите.. я уже 2 часа об стенку бьюсь не могу понять в чем дело..
*

THE KILLERS

  • Давно я тут
  • 932
  • 28 / 0
Re: Не устанавливается 1.5.14
« Ответ #4 : 28.03.2010, 20:19:38 »
а дистриб откуда качал? может дистриб битый?
*

seleckiy

  • Новичок
  • 5
  • 0 / 0
Re: Не устанавливается 1.5.14
« Ответ #5 : 28.03.2010, 20:42:04 »
Отсюда и качал.. щас снова удаляю и скачал новую, с joomla.ru
Весь день убил сегодня..
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не устанавливается Akeeba Backup

Автор Andru

Ответов: 3
Просмотров: 4107
Последний ответ 11.12.2012, 14:57:08
от Sliapy
ри редактировании материала не устанавливается ПОДРОБНЕЕ.

Автор lena.x27

Ответов: 1
Просмотров: 916
Последний ответ 05.02.2012, 19:52:15
от io77
Не устанавливается компонент

Автор gru

Ответов: 2
Просмотров: 1325
Последний ответ 18.11.2010, 12:42:00
от shima
Не устанавливается Joomlapack

Автор afina2009

Ответов: 1
Просмотров: 1896
Последний ответ 29.09.2010, 22:22:19
от Aleks_El_Dia
где устанавливается и-мейл, для стандартной джумловской формы контактов?

Автор auto-master

Ответов: 2
Просмотров: 1333
Последний ответ 16.06.2010, 01:52:15
от valagoff