подключение дубликата папки albums в режиме RO
mount —bind /var/www/zenphoto/albums /var/www/zptest/albums #в fstab сделана соотв. запись
mount -o remount,ro /var/www/zptest/albums # не нашел способа запустить автоматически через fstab
Запрос SQL на теги в альбомах второго уровня выполняется в движке гораздо медленнее, чем в webmin.Включил в my.cnf log_slow_queries = ON для протоколирования медленных запросов.
Для ускорения выполнения запросов создал индексы для таблицы zp_admin_to_object
-
adminid-adm — для поля adminid (тип default)
- objectid-adm — для поля objectid (тип default)
Сделал плагин masbiAccessChanger. Он регистрирует фильтр isMyItemToView и не позволяет получить доступ к странице неопубликованной фотографии без включенного управления альбомом у посетителя.
Плагин themeSwitcher
zp-core/class-album.php:1323, функция getImages()
(исправлено и не актуально с 1.4.7, применяем оригинальный)
Для корректного отображения превьюшек фото и подсчета страниц при наличии в альбоме подальбомов поменял с return parent::getImages($page);на return parent::getImages($page, $firstPageCount);
zp-core/zp-extensions/downloadList.php
(исправлено и не актуально с 1.4.10, применяем оригинальный)
для нормального отображения кириллицы менял стр 576
вместо $query[‘download’] = pathurlencode($albumobj->name);вставил $query[‘download’] = $albumobj->name;
lib-zipStream.php Для кириллических папок в скачанных zip-архивах стр. 255 после function add_file_from_path($name, $path, $opt = array()) {добавил: $name = iconv(‘UTF-8’, ‘cp866’, $name);
2015-05-05 В global-definitions.php добавил маркер пиплтега:
define(‘PEOPLETAG_PREFIX’, ‘zpPeopleTag’);
zp-core/zp-extensions/tag_extras.php
Для вывода фоток только текущего альбома при клике на тег в альбоме в функции printAllTagsFromAlbum() стр. 226: printAllTags($tags, $mode, $separator, $class, $showcounter, $tagcloud, $size_min, $size_max, $count_min, $count_max, $albumname); вместо// printAllTags($tags, $mode, $separator, $class, $showcounter, $tagcloud, $size_min, $size_max, $count_min, $count_max);
- стр. 248: добавил аргумент , $albumname = » функции printAllTags
-
стр. 284: добавил
if ( ! empty($albumname) ) {
$albumlist = explode(‘,’, $albumname);
echo "<li><a class=\"tagLink\" href=\"" . html_encode(getSearchURL($tname, », ‘tags’, 0, array(‘albums’ => $albumlist) )) . "\"" . $style . " rel=\"nofollow\">" . $tname . $counter . "</a>" . $separator . "</li>\n";
} else
-
В functions.php
-
функция getNotViewableImages заменил AND на OR (в версии 1.4.7 отказался)
- стр 1129:
В функции getAllTagsCount заменил if(zp_loggedin( ALL_ALBUMS_RIGHTS вместо /* VIEW_ALL_RIGHTS */ ))
***** Запутался! в 1.4.7 у меня применено VIEW_ALL_RIGHTS
Скорее всего версию 1.4.7 я использовал без изменения
****
В class-search.php:
-
searchFieldsAndTags() стр 1062: сделал для пиплтегов шаблон для поиска "=" вместо "LIKE %%"
if ( substr($singlesearchstring, 0, strlen(PEOPLETAG_PREFIX)) == PEOPLETAG_PREFIX ) $tagPattern = array(‘type’ => ‘=’, ‘open’ => », ‘close’ => »);
-
class-search.php для проверки доступа к подальбомам по правам доступа к родительскому альбому
строку 1574
if ($mine || is_null($mine) && ($album->isMyItem(LIST_RIGHTS) || checkAlbumPassword($albumname) && ( $album->getShow() || $viewUnpublished))) {
заменил на
if ($mine || is_null($mine) && (/* Bogachev */($uralbum->isMyItem(LIST_RIGHTS) && /* /Bogachev */$album->isMyItem(LIST_RIGHTS)/*Bogachev */)/* /Bogachev */ || checkAlbumPassword($albumname) && (/*Bogachev */($uralbum->getShow() &&/* /Bogachev */ $album->getShow()/* Bogachev */)/* /Bogachev */ || $viewUnpublished))) {
-
строка 1884: Для того чтобы поиск по тегам в пределах альбома кешировался только для этого альбома вставил return array(‘item’ => $table, ‘fields’ => implode(‘, ‘, $this->fieldList), ‘search’ => $search, ‘sort’ => $sort, ‘user’ => $user, ‘albums’ => $this->getAlbumList());вместо
// return array(‘item’ => $table, ‘fields’ => implode(‘, ‘, $this->fieldList), ‘search’ => $search, ‘sort’ => $sort, ‘user’ => $user);
2015-05-12 Для извлечения пиплтегов переработал полностью плагин xmpMetadata.php. К нему добавился каталог xmpMetadata. Главное отличие — функция ->extract() плагина заменена на функцию из файла xmpMetadata/xmpfaces.php
2015-10-17 в xmpMetadata.php и xmpfaces внесены изменения для поддержки тега Microsoft:rating Percent
2015-05-15 в class-gallery.php:
- стр 660: garbageCollect() закомментировал строки
$imageobj->updateMetaData(); // prime the EXIF/IPTC fields $imageobj->updateDimensions(); // update the width/height & account for rotation
т.к. эти функции вызываются в функции newImage(), вызываемой двумя строками выше
-
в строке 650 define(‘RECORD_LIMIT’, 5); заменил ‘5’ на ’10’
2015-09-03 в template-functions.php
стр 85 adminToolbox(): getUser() заменил на getName() <?php echo $_zp_current_admin_obj->getName(); /* User(); */ ?> чтобы выводить имя а не логин юзера
2015-09-04 в lib-auth.php:890 в printLoginForm() закомментировал класс fade-message чтобы не исчезало сообщение об ошибке
zp-core/class-image.php Для удаления ошибочно прикрепившихся к изображению тегов добавил в строке 333 query(‘DELETE FROM ‘ .prefix(‘obj_to_tag’) . " WHERE `type`=’images’ AND `objectid`=" . $this->id );
2015-10-15 zp-core/zp-extensions/class-video.php несколько изменений касаются разрешения видео и добавлено расширение файла .mp4
class-album.php:461
Для того чтобы не зависало на формировании страницы галереи со списком альбомов, один из которых содержит только видео
Вместо while (count($thumbs) > 0) { Поставил if (count($thumbs) > 0) {