Форум русской поддержки Joomla!® CMS
05.12.2016, 06:32:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Возможно ли держать скрипты счетчиков у себя

 (Прочитано 250 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« : 03.08.2016, 12:23:13 »

Вопрос сам в названии темы возможно ли держать скрипты счетчиков у себя.
Вот допустим Яндекс счетчик вот его кусок кода
Код:
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
Файл watch.js он постоянно подгружает https://mc.yandex.ru/metrika/watch.js и тот же pagespeed пишет что кэшируйте этот скрипт на 60 минут.
Вот вопрос втом что если я закачаю себе этот js будут ли счетчики правельно вести статистику.
 
Записан
Bright
Осваиваюсь на форуме
***

Репутация: +2/-2
Offline Offline

Пол: Мужской
Сообщений: 185


« Ответ #1 : 03.08.2016, 14:37:24 »

Вопрос сам в названии темы возможно ли держать скрипты счетчиков у себя.
Я б добавил к вопросу
- что вообще делать с этими счетчиками?
- сколько и какие из них реально нужны? (инфа в сети очень противоречивая)
- как их лучше оформлять, чтобы они меньше досаждали и тормозили?
У меня, кстати, Я.метрики нет, но вопросы те же...
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2279



« Ответ #2 : 03.08.2016, 16:06:36 »

По сабжу: да, можете скачать и исправить скрипт подключения этого файла. Этот файл статичен и должен работать. Сам не пробовал, поэтому отпишитесь, если подключите. Ну а если при вызове этого файла проверяется IP и эта запись где то регистрируется, а потом идет обращение скрипта к этой записи, то счетчик работать у вас не будет.
« Последнее редактирование: 03.08.2016, 16:10:36 от SeBun » Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #3 : 03.08.2016, 16:35:45 »

Так они вроде на прямую под
Яндекс
Показать текстовый блок
Маил
Показать текстовый блок
аналитика
Показать текстовый блок
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #4 : 04.08.2016, 08:13:14 »

Спросил у yandex про хранения скриптов у себя и вот что они ответели.
Цитировать
Такой способ улучшения скорости загрузки сайта может быть использован при условии, что Вы будете своевременно обновлять файл watch.js. Обновления происходят с примерной периодичностью раз в 2 недели (точнее этот срок описать не представляется возможным). В случае, если файл не будет обновлен своевременно на Вашей стороне, статистические данные будут собираться некорректно.
Так же подтормаживает скрипт https://www.google-analytics.com/analytics.js как насчет его не кто не ставил себе
« Последнее редактирование: 04.08.2016, 08:18:04 от Stasweb » Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #5 : 04.08.2016, 09:01:21 »

вот нашел такое решение
создаем файл для крона, я создал в /cli/cron.php
Код:
<?php
<?php
// CRON для автоматического обновления файлов стороних сервисов и счетчиков.
function downloadJs($file_url, $save_to)
{
    $content = file_get_contents($file_url);
    file_put_contents($save_to, $content);
}
// Указываем URL, затем папку от корня сайта и имя файла с расширением.
// Проверьте чтобы на папке были права на запись 777/755

// Метрика
downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath("./media/js"). '/watch.js');

// Google Analytics
downloadJs('https://www.google-analytics.com/analytics.js', realpath("./media/js"). '/analytics.js');

// Для скриптов без расширения
//downloadJs('http://code.jivosite.com/script/widget/NuT1gBLsC6', realpath("./media/js"). '/NuT1gBLsC6');
?>
пути для хранения скаченных файлов указал /media/js.
Перехожу в файл /cli/cron.php и получаю ошибку
Warning: file_put_contents(/watch.js): failed to open stream: Permission denied in /cli/cron.php on line 6
Warning: file_put_contents(/analytics.js): failed to open stream: Permission denied in /cli/cron.php on line 6
6-я строка у меня получается
Код:
file_put_contents($save_to, $content);
Получается он не может получить доступ в /cli/cron.php хотя прова стоят
/media/js 755 и /cli/cron.php 755
Подскажите как решить
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #6 : 04.08.2016, 10:38:47 »

Все в принцыпе вроде работает буду наблюдать.
Ошибка была в том что путь был не полный realpath("./media/js") надо так realpath("/var/............./media/js").
Было бы еще неплохо логировать записанные файлы в отдельный лог таким образом можно увидить как меняются файлы и на какое время оптимально выставлять крон задачу.
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #7 : 04.08.2016, 14:32:34 »

Вот так работает с записью логов
Показать текстовый блок
Может кто подскажет как сделать перенос строки после записи блока логов
« Последнее редактирование: 05.08.2016, 08:22:43 от Stasweb » Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #8 : 05.08.2016, 08:22:16 »

Вот готовый код с переносом блока строк для удобного чтения.
Код:
<?php
// CRON для автоматического обновления файлов стороних сервисов и счетчиков.
function downloadJs($file_url, $save_to, $end_block = false)
{
$content = file_get_contents($file_url);
file_put_contents($save_to, $content);
    if(file_put_contents($save_to, $content)){
        $file = basename($file_url);
        $size = filesize($save_to);
        $date = date('d/m/Y H:i:s');
        $eol = !$end_block ? PHP_EOL : PHP_EOL.PHP_EOL;
        $log = $date.' | '.$file.' | '.$size.$eol;
        file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);
    }
}
// Для скриптов без расширения
// downloadJs('http://code.jivosite.com/script/widget/NuT1gBLsC6', realpath($_SERVER['DOCUMENT_ROOT']./media/js'). '/NuT1gBLsC6');

// Метрика
downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/watch.js');
// Google Analytics
downloadJs('https://google-analytics.com/analytics.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/analytics.js');
downloadJs('https://google-analytics.com/ga.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/ga.js');
//mail.ru
downloadJs('https://top-fwz1.mail.ru/js/code.js', realpath($_SERVER['DOCUMENT_ROOT'].'/media/js').'/code.js', true);
?>
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet