<?php
session_start();
//Автоматическая загрузка классов
function __autoload($class_name){
require_once("../../core/".$class_name.".php");
}
//Сообщаем о том, в какой кодировке ответ
header('content-type:text/html; charset=utf-8');
//Инициируем обработчик ошибок
$err = new error_class("err_overwork");
//Инициируем работу кэша
$cache = new cache("../../cache/");
//Инициируем систему сообщений
$status = new status_message();
//Если мы загрузили фотогрфию, то нам следует вывести пользователю ссылки на них
if(($photo_id = $status->get("ID свежезагруженной фотографии"))!==false){
//Удаляем сообщение
$status->remove("ID свежезагруженной фотографии");
//Создаем и аутентифицируем пользователя Яндекс.Фоток
$photo = new yandex_fotki("MojoElephant");
//Получили коллекцию фотографий пользователя
$photo->user()->add_photo_collection("Слонофотки");
//Получаем свежезагруженную фотографию по ее id
$new_photo = $photo->user()->photo_collection("Слонофотки")->get_photo_by_id($photo_id);
if(!$new_photo){
throw new Exception("Не удалось найти загруженную фотографию.",E_ERROR);
}
//Создаем блок, который будет показан пользователю и содержит ссылки на фотографии в разном размере
$link_block = new template_class("Ссылки","../../templates/link_block.html");
$link_block->point("Точки ввода");
$link_block->plug("Точки ввода","Оригинальная","Ссылка",$new_photo->get_orig());
$link_block->plug("Точки ввода","XL","Ссылка",$new_photo->get_XL());
$link_block->plug("Точки ввода","L","Ссылка",$new_photo->get_L());
$link_block->plug("Точки ввода","M","Ссылка",$new_photo->get_M());
$link_block->plug("Точки ввода","S","Ссылка",$new_photo->get_S());
$link_block->plug("Точки ввода","XS","Ссылка",$new_photo->get_XS());
$link_block->plug("Точки ввода","XXS","Ссылка",$new_photo->get_XXS());
$link_block->plug("Точки ввода","XXXS","Ссылка",$new_photo->get_XXXS());
}
//Если галерея кэширована, то берем из кеша. Зачем нам задержка, которая образуется при обмене сообщений с Яндексом? Если нет, то получаем данные от Яндекса
try{
$page = $cache->get("Галерея");
}catch(DataNotFoundError $error){
if(!isset($photo)){
//Создаем и аутентифицируем пользователя Яндекс.Фоток
$photo = new yandex_fotki("MojoElephant");
//Получили коллекцию фотографий пользователя
$photo->user()->add_photo_collection("Слонофотки");
}
//Получили коллекцию фотографий пользователя ограниченную 25
$photo->user()->photo_collection("Слонофотки")->se(array("limit"=>25));
//Формируем галерею из 25 последних загруженных фотографий
$gallery = new template_class("Галерея","../../templates/gallery.html");
$gallery->point("Точки ввода");
foreach($photo->user()->photo_collection("Слонофотки")->photo_list(0) as $index=>$photo_element){
$photo_block = new template_class("Фото","../../templates/photo.html");
$photo_block->point("Точки ввода");
$photo_block->plug("Точки ввода","Увеличенное","Увеличенное",$photo_element->get_L());
$photo_block->plug("Точки ввода","Предпросмотр","Предпросмотр",$photo_element->get_XXS());
$gallery->plug("Точки ввода","Фотография",$index,$photo_block->render());
}
$template_controller = new template_class("Пример","../../templates/example.html");
$template_controller->point("Точки ввода");
if(isset($link_block)){
$template_controller->plug("Точки ввода","Ссылки на изображения","Ссылки на изображения",$link_block->render());
}
$template_controller->plug("Точки ввода","Галерея","Галерея",$gallery->render());
$page = $template_controller->render();
if(!isset($link_block)){
$cache->set("Галерея",$page,array("gallery"),60*60*12);
}
}
die($page);
function err_overwork($error){
$template_controller = new template_class("Ошибка","../../templates/error.html");
$template_controller->point("Точки ввода");
$template_controller->plug("Точки ввода","Имя файла","Имя файла",$error->getFile());
$template_controller->plug("Точки ввода","Строка","Строка",$error->getLine());
$template_controller->plug("Точки ввода","Текст ошибки","Текст ошибки",htmlspecialchars($error->getMessage(),ENT_COMPAT,"UTF-8"));
die($template_controller->render());
}
?>