При створенні одного зі своїх сайтів мені знадобилася веб-галерея, куди можна було б викладати в суспільне надбання тематичні набори фотографій, старовинних листівок та інших зображень. Вимоги до движку галереї я сформулював наступним чином: gt; Можливість для відвідувача вибору дозволу перегляду і доступність оригіналів зображень. Такий функціональністю володіє, наприклад, сайт Яндекс.Фотки. gt; Можливість завантажити вибрані зображення у вигляді ZIP-архіву замість того, щоб завантажувати картинки, клацаючи і зберігаючи їх по одній. gt; Створення вкладених альбомів. Це стає особливо актуальним в разі появи великого числа альбомів. Підтримка вкладених альбомів дозволяє структурувати їх, складаючи тематичні ієрархії. gt; Потужна підсистема тегів. Без неї знайти потрібну картинку буде довго і важко. gt; Живе співтовариство розробників і користувачів. Можна, звичайно, створити галерею на основі якого-небудь старого покинутого движка, але, маючи на увазі довге і щасливе життя створюваної галереї, хочеться покласти в її основу движок, який активно розвивається, активно використовується (що сприяє виявленню та виправленню помилок) і породжує своєрідну субкультуру , в благодатному грунті якої з`являються численні плагіни, що розширюють можливості движка. gt; Простота установки і роботи. В мої критерії «системних вимог» входять PHP + СУБД на кшталт MySQL.
Я скачав близько дюжини движків галерей і почав їх встановлювати і відчувати. Одні мені не сподобалися інтерфейсом, інші - своїми можливостями. У підсумку «випробувань» я зупинився на Piwigo (piwiqo.org), якому і присвячена ця стаття.
Щоб встановити програму і завантаження зображень
Piwigo - «класичне» PHP-додаток, для роботи якого треба створити базу даних MySQL. Самі фотографії зберігаються на диску у вигляді файлів, але MySQL використовується для зберігання змінних, тегів та іншої допоміжної інформації. Для установки Piwigo потрібно розпакувати вміст дистрибутива в каталог, де буде «проживати» галерея, призначити вмісту каталогу достатні для веб-сервера права доступу і зайти в нього через браузер. Запуститься нехитра процедура установки: введення логіна і пароля, ім`я бази даних і т.п. У разі успішного проведення цих операцій галерея буде готова до використання. Перед додаванням фотографії в галерею скажу, що альбоми в Piwigo діляться на «віртуальні» і «фізичні»: gt; Фотографії віртуальних альбомів зберігаються в загальному каталозі, куди Piwigo зберігає завантажені файли. gt; Фотографії фізичних альбомів зберігаються в підкаталогах директорії / galleries і завантажуються туди по FTP або SSH.
Галерея в Piwigo
Обидва види альбомів виглядають однаково для користувача. А ось для адміністратора використання обох типів альбомів може стати головним болем в плані упорядкування. Тому краще відразу вибрати щось одне. Фізичні альбоми хороші, якщо у вас вже є упорядкована по каталогам колекція фотографій. Припустимо, є величезна колекція, де збудована ієрархія вкладених директорій, і ви не хочете при завантаженні цієї колекції заново відтворювати всю структуру - вам потрібно закачати колекцію цілком «як є», а в Piwigo тільки потім що-небудь виправити.
За умови, що і подальші поповнення колекції будуть здійснюватися тим же способом, тобто копіюванням нового каталогу з фотографіями по SSH або FTP. Віртуальні альбоми будуть зручні, якщо ви завантажуєте фотографії через веб-інтерфейс і мобільні клієнти.
Технічно частина альбомів можна тримати віртуальними, а частина - фізичними. Мінуси такого підходу в тому, що віртуальні альбоми не можуть бути вкладеними в фізичні і навпаки. Це означає, що якщо у вас в галереях є рубрики-альбоми (припустимо, «Твер», «Вологда», «Чугуїв»), то всередині кожної з цих рубрик ви не зможете тримати обидва типи альбомів: якщо «Твер» - фізичний альбом , то всередині нього можуть бути тільки фізичні альбоми-подкаталогі- якщо «Чугуїв» - віртуальний, всередині - тільки віртуальні.
Отже, є кілька способів завантаження фотографії в Piwigo. По-перше, веб-інтерфейс. Він підходить для віртуальних альбомів і знаходиться в меню «Фотографії ;" Додати ". На вибір пропонується два завантажувача фотографій: на основі Flash і на основі javascript / HTML. Перший дозволяє вибирати безліч файлів за один захід, другий - те ж саме, але менш зручно: для кожного нового файлу треба натискати на кнопку, що додає поле, і в це поле поміщати шлях до файлу (звичайно, вибравши його в діалоговому вікні). Для завантаження великих файлів і великих (за кількістю) наборів файлів, можливо, доведеться вносити зміни в налаштування PHP в php.ini (з подальшою перезавантаженням сервера) або в файл .htaccess. В останньому випадку PHP-змінні управляються командами php_flag для логічних значень і php_value - для строкових і числових значень-наприклад:
php_flag mybool On php_value myint 777 php_value mystring "hello world"
Ці директиви працюють, якщо в Apache для конкретного сайту / локації включені AllowOverride Options або AllowOverride All.
Розглянемо основні змінні в PHP, що відповідають за завантаження файлів. Включення цієї функції робиться так:
file_uploads = On
Максимальний розмір одного завантажується на сервер файлу (у прикладі - 256 мегабайт):
upload_max_filesize = 256M
Кількість переданих за один раз (тобто за один запит) файлів:
max_file_uploads = 777
Друга важлива настройка - post_max_size. Файли відправляються на сервер через POST-запит у форматі multipart / form-data, а в post_max_size вказується максимальний розмір для всіх переданих через POST даних. Таким чином, значення цього поля - сума розмірів переданих файлів, полів і MIME-заголовків. Тому значення post_max_ size має бути більше, ніж max_file_uploads. Якщо PHP в інфраструктурі вашого сервера задіяний ще і в завантаженні відео, то розміри закачується файлу і супутні змінні варто збільшити в рази.
По-друге, завантажувати картинки в Piwigo можна через протоколи FTP / SSH. Для цього потрібно створити в каталозі / galleries вкладену директорію і помістити туди фотографії, потім перейти в «Панель адміністрування» і на її сторінці (не заглиблюючись в меню) натиснути на кнопку «Швидка синхронізація». З`явиться сторінка з параметрами додавання нового альбому, після редагування якої залишається натиснути «Відправити» внизу сторінки. Новий альбом займає те місце в ієрархії альбомів, яке визначено самою ієрархією каталогів в файлової системі. Якщо альбом знаходиться в корені, то і з`явиться в корені галереї, а якщо вкладений - буде вкладеним. Кириличні імена в назвах каталогів не дозволені. Назва альбому за замовчуванням дорівнює назвою каталогу. Перейменувати альбом російською можна через веб-інтерфейс (ім`я каталогу залишиться колишнім).
Третій спосіб завантаження картинок - плагін Piwigo зі складу KDE-плагінів KIPI. Він доступний, наприклад, в смотрелки картинок Gwenview, в меню «Модулі -gt; Експорт ». Треба вибрати експортовані файли і задіяти цей пункт меню. Виникне вікно, де треба ввести шлях до галереї (включаючи http: //), логін і пароль.
Якщо все пройде успішно, з`явиться ще одне вікно зі списком існуючих альбомів, де вибираємо, куди закачувати фотографію, і натискаємо кнопку «Почати публікацію». Шкода, що не можна створювати прямо з цього вікна новий альбом, що істотно знижує корисність плагіна. Плагін також доступний в інших подібних програмах (наприклад, в digiKam). Зазначу також, що «гномовскій» переглядач картинок gThumb не має функцій експорту в Piwigo, але такі є в інший смотрелки для GNOME - Shotwell.
Нарешті, існують окремі додатки експорту в Piwigo для платформ Android і iOS, і систем Linux, Mac OS і Windows (https://piwigo.org/ext/index.php?cid=11).