- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть у меня на сайта последняя Джумла - плагин, пакующий в gz скрипты и css. Пару дне назад я перенес все сайты на новый ВПС.
Версия пхп фм, дебиана, nginx те же что и раньше. И вот только сегодня заметил что этот плагин перестал работать.
Если очистить папку с кешем то раньше тут же начинали создаваться новые файлы, а сейчас архивы не создаются и на сайте белая страница с надписью
Такое раньше я встречал только один раз когда права на папку с кешем для файлов плагина были не дающие ему писать.
Сейчас проверил - права на папку праивльные юзер www-data. Я даже 777 поставил - пофиг.
Пошел включил лог ошибок в пхп - обновил страницу, ничего (появились ошибки, но ничего близко к этому плагину нет).
Прописал вывод ошибок прям в сам плагин - ноль реакции.
Помогите советом?
код плагина:
// no direct access
defined('_JEXEC') or die('Restricted access');
jimport('joomla.plugin.plugin');
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
class plgSystemPacker extends JPlugin
{
var $debug = false;
function onBeforeCompileHead()
{
//return;
$app = JFactory::getApplication();
if($app->isSite())
{
$document = JFactory::getDocument();
$headData = $document->getHeadData();
// CSS
$hash = md5(serialize($headData['styleSheets']));
$filename = JPATH_ROOT.'/templates/packer/cache/'.$hash.'.css';
if(!file_exists($filename))
{
jimport('extra.CssUriRewriter');
jimport('extra.YUICompressor');
Minify_YUICompressor::$jarFile = JPATH_ROOT.'/plugins/system/packer/yuicompressor-2.4.8.jar';
Minify_YUICompressor::$tempDir = JPATH_ROOT.'/tmp';
$content = '';
foreach($headData['styleSheets'] as $index => $value)
{
$content .= $this->getCss($index);
}
$output = Minify_YUICompressor::minifyCss(
$content,
array(
'charset' => 'utf-8',
'line-break' => 1000,
'type' => 'css'
)
);
$this->save($filename, $output);
}
if(!empty($headData['styleSheets']))
{
$headData['styleSheets'] = array('/templates/packer/cache/'.$hash.'.css' => array(
//'rel' => 'stylesheet'
));
}
// JS
$www = array();
$data = array();
// Определяем
foreach($headData['scripts'] as $index => $value)
{
//echo "<!-- ".$index." -->\n";
if(preg_match('/http/', $index))
{
$www[$index] = $value;
}else{
$data[$index] = $value;
}
}
// Пакуем
$hash = md5(serialize($data));
$filename = JPATH_ROOT.'/templates/packer/cache/'.$hash.'.js';
if(!file_exists($filename))
{
jimport('extra.YUICompressor');
Minify_YUICompressor::$jarFile = JPATH_ROOT.'/plugins/system/packer/yuicompressor-2.4.8.jar';
Minify_YUICompressor::$tempDir = JPATH_ROOT.'/tmp';
$content = '';
foreach($data as $index => $value)
{
$content .= $this->getJs($index);
}
$output = Minify_YUICompressor::minifyJs(
$content,
array(
'charset' => 'utf-8',
'line-break' => 1000,
'type' => 'js',
'nomunge' => true,
'preserve-semi' => false,
'disable-optimizations' => false
)
);
$this->save($filename, $output);
}
// Подключаем
$headData['scripts'] = array_merge($www, array('/templates/packer/cache/'.$hash.'.js' => array(
'mime' => 'text/javascript',
'defer' => '',
'async' => false
)));
$document->setHeadData($headData);
}
}
function getCss($url)
{
$data = parse_url($url);
$content = file_get_contents(JPATH_ROOT.''.$data['path']);
$path = dirname($data['path']).'/';
return Minify_CSS_UriRewriter::prepend($content, $path);
}
function getJs($url)
{
$data = parse_url($url);
$content = file_get_contents(JPATH_ROOT.''.$data['path']);
return str_replace('/*!', '/*', $content);
}
function save($filename, $content)
{
file_put_contents($filename, $content);
$fp = gzopen($filename.'.gz', 'w9');
gzwrite($fp, $content);
gzclose($fp);
}
}
---------- Добавлено 21.03.2018 в 13:28 ----------
вопрос снят - помогло