Поскольку работаю в организации, ведающей собственной корпоративной сетью, в которой размещен корпоративный сайт, то приходится решать вопросы доступа сервера сайта к интернету через Proxy-сервер (чтобы меньше ручками обновлять). И в который раз пришлось решать проблему автоматической проверки версии и обновления расширений от известной команды разработчиков NoNumber! с использованием их NoNumber! Extension Manager.

 

Для работы NoNumber! Extension Manager через прокси-сервер необходимо внести следующие коррективы.

В файле administrator/components/com_nonumbermanager/models/model.php , отвечающем за скачивание обновлений, заменить:

CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true

на

CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_PROXY => 'Сетевой адрес прокси:Порт',
CURLOPT_PROXYUSERPWD => 'логин:пароль'

После:

 

// Write buffer to file
JFile::write( $target, $content );

 

Добавить:

 

if ( JFile::exists( JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helper.php' ) ) {
JFile::copy(JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helper.php', JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helper_.php');
}
if ( JFile::exists( JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helpers'.DS.'licenses.php' ) ) {
JFile::copy( JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helpers'.DS.'licenses.php', JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helpers'.DS.'licenses_.php');
}
JFile::copy( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_nonumbermanager'.DS.'models'.DS.'model.php', JPATH_ADMINISTRATOR.DS.'components'.DS.'com_nonumbermanager'.DS.'models'.DS.'model_.php');

 

А перед:

 

$mainframe->enqueueMessage( $msg );

 

Добавить:

 

// задержка на 20 секунд, файлы разблокируются, можно их копировать-перемещать
sleep(20);

JFile::move( JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helper_.php', JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helper.php');
JFile::move( JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helpers'.DS.'licenses_.php', JPATH_PLUGINS.DS.'system'.DS.'nonumberelements'.DS.'helpers'.DS.'licenses.php');
JFile::move( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_nonumbermanager'.DS.'models'.DS.'model_.php', JPATH_ADMINISTRATOR.DS.'components'.DS.'com_nonumbermanager'.DS.'models'.DS.'model.php');

 


Теперь переходим к файлу проверки версий plugins\system\nonumberelements\helper.php и меняем:

 

curl_setopt( $ch, CURLOPT_TIMEOUT, 3 );
curl_setopt( $ch, CURLOPT_USERAGENT, 'some crazy browser' );

на

 

curl_setopt( $ch, CURLOPT_TIMEOUT, 30 );
curl_setopt( $ch, CURLOPT_USERAGENT, 'some crazy browser' );
curl_setopt( $ch, CURLOPT_PROXY, 'сетевой адрес прокси:порт' );
curl_setopt( $ch, CURLOPT_PROXYUSERPWD, 'логин:пароль');

Ну и до кучи, так сказать, поправим файл plugins\system\nonumberelements\helpers\licenses.php (не знаю за что отвечающий, но полагаю, что нужный), а именно заменим:

 

CURLOPT_TIMEOUT => 3,
CURLOPT_USERAGENT => "some crazy browser"

на

 

CURLOPT_TIMEOUT => 30,
CURLOPT_USERAGENT => "some crazy browser",
CURLOPT_PROXY => 'сетевой адрес прокси:порт',
CURLOPT_PROXYUSERPWD => 'логин:пароль'

Comments   

+1 # Про работу через ПроксиEcolora 2011-04-01 00:30
К слову сказать, эта информация уже не так актуальна. Скорее для общего сведения. Непосредственно при моем участии и тестировании работы компонента через прокси-сервер, разработчики наконец-то внедрили настройки непосредственно в сам компонент и реализовали его работу.
Reply | Reply with quote | Quote | Report to administrator

Add comment


Security code
Refresh