Pull to refresh

Делаем бабушко-обновляемую веб-галерею на любом хостинге

image
Дано:

• Есть фотографии, которые хотелось бы добавлять в фотоальбом, минуя веб-интерфейсы и прочие «сложные» схемы.
• Минимальный хостинг с php довольно старой версии. (В моем случае версия оказалась аж 5.2.3)
• Желание сделать максимально простую и удобную веб-галерею.

Процесс:

С самого начала, появилась идея использовать Яндекс.Диск, Google Drive или Dropbox – как хранилище для фотографий. Во-первых, довольно просто объяснить «бабушке», что для добавления фотографии на сайт, нужно ее положить «вот-в-эту-папку-на-рабочем-столе». Во-вторых, есть возможность нескольким людям с разных устройств добавлять фотографии в альбом, что тоже иногда бывает удобно.
Сказано-сделано.

Выбираем сервис.

Часть 1. Яндекс.Диск

Из плюсов: 1) Сразу дают много места – 10Gb. 2) Это патриотично! 3) Документация на русском языке – мелочь, а приятно.
Но, как оказалось, мой бюджетный хостинг не поддерживает oAuth, так что начались поиски в сторону WebDav. В процессе этих поисков была обнаружена заметка Арутра Хуснутдинова, в которой он рассказывает о работе с Яндекс.Диском через php-клиент WebDav Client 1.0 и патч, за авторством Артура. Но «добрый хостер» и тут положил грабли, для того, чтобы эта схема работала, должен быть подключен модуль php_openssl, который, как оказалось, «подключить нет никакой возможности». На этом мои мытарства с Яндексом были прекращены, и я решил посмотреть в сторону других сервисов.

Часть 2. Google Drive. Короткая история.

Для использования Google Drive из PHP существует приложение DrEdit PHP, но оно требует пресловутый oAuth. Поэтому я решил отложить поиски и перешел к третьему варианту. Если у кого из хабровчан есть опыт по работе с Google Drive из PHP – делитесь, информации по этой теме пока не очень много.

Часть 3. Dropbox.

Для дропбокса мне довольно быстро удалось найти два родственных проекта:

github.com/phpmasterdotcom/AccessDropboxUsingPHP
github.com/BenTheDesigner/Dropbox

Насколько я понимаю Ben первоисточник, а phpmaster немного допилил уже существующий скрипт. Однако, в требованиях стояло горькое PHP >= 5.3.1 и php cURL. Были бы у меня эти php 5.3.1 и cURL стал бы я так долго мучиться?

Я уже почти было отчаялся, как вдруг меня осенило. Ведь можно придумать какой-нибудь костыль, использую еще какой-нибудь онлайн сервис позаковыристее. И тут я вспомнил про ifttt.com. Его обзор когда-то проскакивал на Хабре, но, как мне показалось широкой известности этот сервис не получил, пока что. Вкратце, этот сервис позволяет установить связи между различными веб-сервисами. Например: поставили вы лайк под фоточкой в фейсбуке, а она уже лежит в специально отведенной папочке вашего дропбокса. Или сохранили статью на хабре в Pocket, а пдфка с этой статьей уже у вас на Gogle.Drive, а ссылка на нее красуется в вашем твиттере. Как известно, голь на выдумки хитра – и я решил попробовать использовать этот сервис не совсем по назначению. Идея была в том, что раз уж я не могу получить доступ к папке дропбокса и запросить оттуда список файлов, почему бы мне не создать этот список на стороне.
3 клика мышкой и вуаля.

1. Выбираем в качестве «if» Dropbox.
2. Триггером пусть будет добавление новой фотографии в нужную нам папку. (Возможно выбрать не только фотографию, но и любой файл.)
3. При срабатывании триггера добавляем в Google Spreadsheet строчку с датой добавления, адресом картинки и превьюшкой, чтобы в случае необходимости проще было удалить или поменять местами картинки в галерее.
4. Profit!



Ну а дальше дело техники, у нас есть «база» в google spreadsheet, которую можно Publish to the web… в виде наибанальнейшего csv, распарсить который сможет даже цель нашего рассказа – «бабуля».



Теперь когда мы имеем список фотографий в нашем дропбоксе, осталось только придумать как их показать. Тут у меня сомнений не возникло! Лучшей галереи, чем Fotorama – я не знаю. Артем Поликарпов сделал великолепную галерею, которая замечательно смотрится на любом устройстве, в любом браузере. Если вы пропустили, он ее презентовал и на Хабре. Скачиваем ее, jquery и теперь осталось только обернуть наши фотографии в . Наша галерея готова.


Напоследок..Вишенки на торте.

Осталась еще одна задача, которую хотелось бы решить. Поставить в уголок фотографии олд-скульные циферки с датой когда сделан снимок.

Вроде бы все для этого есть: фоторама умеет показывать комментарии, которые указаны в поле alt, в exif файла удачным образом есть дата создания картинки. Но… хостинг. exif_read_data() – не работает. Imagick – только через perl. Поставить какое-либо расширение не представляется возможным. Попробовал копать в сторону jquery – нашел плагин exifjquery, но он отказывается показывать exif файлов расположенных на удаленных серверах.

На данный момент, я вижу только один способ добавить дату, это внести ее в нашу «базу» в Google spreadsheet вручную. Но, я уверен, что хабровчане могут и тут помочь. Я буду очень благодарен, всем кто поможет чайнику советом. Заранее благодарю!
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.