| « Search Thumbs Add-on - Скриншоты сайтов в поисковиках | Javascript - Всплывающие тамбшоты » |
Этот скрипт позволяет показывать скриншоты сайтов без раскрытия персонального ключа пользователя. Кроме того скрипт кеширует скриншоты на вашем сервере, значительно снижая число обращений с сервису и ускоряя загрузку страниц вашего сайта.
Скрипт состоит из двух файлов:
index.php - файл вызова скриншотов, задает параметры показа и кеширования;
_thumbshots.class.php - универсальный PHP5 класс для работы с сервисом;
Hастройка
В файле index.php достаточно комментариев, вы можете изменять любые предустановленные параметры класса $Thumbshot. Для работы скрипта обязательно введите ваш персональный ключ, полученный после регистрации в системе.
Универсальный PHP5 класс _thumbshots.class.php доступен для скачивания только зарегистрированным пользователям. В этом скрипте используется тот же класс что и в плагинах для блогов и CMS.
if( !empty($_GET['url']) )
{
$w = 320; // ширина
$h = 240; // высота
// При необходимости берем размер скриншота из запроса
// if( !empty($_GET['w']) ) $w = $_GET['w'];
// if( !empty($_GET['h']) ) $h = $_GET['h'];
// Показываем JPEG картинку и выходим
echo get_image( $_GET['url'], $w, $h );
}
function get_image( $url, $w = false, $h = false )
{
global $Thumbshot;
if( empty($url) ) return;
if( empty($Thumbshot) )
{ // Initialize Thumbshot class and set defaults
define('THUMBSHOT_INIT', true);
require_once dirname(__FILE__).'/_thumbshots.class.php';
$Thumbshot = new Thumbshot();
// Без этого работать не будет!
$Thumbshot->return_binary_image = true;
// Персональный ключ пользователя
$Thumbshot->access_key = 'ABABABABABABABABABABABABABABABABABA';
// Размер скриншота, запрашиваемого с сервера (согласно вашему тарифу)
$Thumbshot->original_image_size = 'L'; // 320x240
// $Thumbshot->original_image_w = 640;
// $Thumbshot->original_image_h = 480;
// Полезно при тестировании и отладке
$Thumbshot->debug = 0;
$Thumbshot->debug_IP = 'ВАШ IP';
$ReqHost = '';
if( !empty($_SERVER['HTTP_HOST']) )
{ // Пытаемся автоматически определить хост
$ReqHost = ((isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] != 'off')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'];
}
// URL и путь к папке с кешем (меняем на собственные при необходимости)
$Thumbshot->thumbnails_url = $ReqHost.'/thumbs/cache/';
$Thumbshot->thumbnails_path = dirname(__FILE__).'/cache/';
// Сколько дней хранить кеш скриншотов
$Thumbshot->cache_days = 7; // статус: OK
$Thumbshot->err_cache_days = 2; // статус: Ошибка
$Thumbshot->queued_cache_days = 0; // статус: Добавлен в очередь
// Добавляем параметры запроса
// $Thumbshot->args = array( 'v' => 1, 'lang' => 'en' );
// Используем собственные заглушки
/*
$Thumbshot->service_images = array(
'all' => 'URL адрес картинки-заглушки, только JPEG!',
'0x0' => 'http://domain.tld/image-queued.jpg', // Добавлен в очередь
);
*/
$GLOBALS['Thumbshot'] = $Thumbshot;
}
$Thumbshot->url = $url;
if( $w > 0 ) $Thumbshot->width = $w;
if( $h >= 0 ) $Thumbshot->height = $h;
// Получаем тамбшот
return $Thumbshot->get();
}
?>
Примеры использования
Загузите папку "thumbs" на ваш сервер, например, в корневую директорию сайта. Предположим что адрес вашего сайта mywebsite.ru , таким образом, для показа скриншота сайта thumbshots.ru используйте следующий тег.<img src="http://mywebsite.ru/thumbs/index.php?url=thumbshots.ru" alt="Сайт" />
Вы можете сократить адрес вызова скриншота убрав index.php
<img src="http://mywebsite.ru/thumbs/?url=thumbshots.ru" alt="Сайт" />
При первом запросе скрипт создаст директорию для хранения скриншотов (по умолчанию /cache). Вы можете задать различное время кеширования для успешных скриншотов, добавленных в очередь скриншотов и технических сообщений.
Что делать если что-то не работает...
Если вы считаете что скрипт работает не корректно, включите режим отладки. В таком случае по ходу запроса будет выводиться техническая информация, которая позволит определить что идет не так. Режим отладки можно включить двумя с пособами:
- [для всех]: сообщения показываются для всех запросов
- [для конкретного IP адреса]: сообщения показываются только если запрос выполнен с указанного IP адреса
$Thumbshot->debug = 1;
Для конкретного IP адреса
$Thumbshot->debug_IP = '123.123.123.123'; 