
Дано:
• Есть фотографии, которые хотелось бы добавлять в фотоальбом, минуя веб-интерфейсы и прочие «сложные» схемы.
• Минимальный хостинг с 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 вручную. Но, я уверен, что хабровчане могут и тут помочь. Я буду очень благодарен, всем кто поможет чайнику советом. Заранее благодарю!