Дальнейшие изменения
В адресе страницы с одиночной картинкой идентификатор картинки перекочевал из 2-го в 3-й сегмент, а место 2-го сегмента заняла метка альбома из которого произошел переход к картинке. Если одиночная картинка выводится на своей странице, внизу (в ленте картинок) теперь будут не все картинки, а только из той же галереи что и выводимая. Таким образом ссылка одиночной картинки будет вида pictures/tag/picture.
Значит, добавил автоматически создаваемую метку _all_data_sorting. Альбом, получаемый по этой галерее, содержит все страницы отсортированные по дате добавления. То-есть, у каждой галереи будет свой альбом, содержащий все картинки галереи уже отсортированные по дате добавления файла.
Кроме того, добавил параметры функции получения страниц, которые позволяют задавать сортировку и ее порядок по-дате, по-рейтингу или по имени файла, а также ограничивать колличество получаемых страниц.
Добавил виджет вывода страниц. Можно выбирать метку альбома, количество картинок, поле сортировки и порядок сортировки. Если же выбрать в качестве метки альбома _all_data_sorting то можно получить последние страницы. также, добавил соответствующий модуль.
Вынес вывод в шаблон и добавил возможность шаблонизации. Шаблоны находятся в каталоге templates. Пока есть один шаблон simple.
- Шаблон simple состоит из файлов:
- index.php - диспетчер, загружающий опции и передающий управление
- alboms.php - содержит вывод всех имеющихся альбомов по меткам
- gallerys.php - содержит вывод всех картинок альбома
- picture.php - содержит вывод конкретной картинки
- options.php - задаются опции шаблона
Шаблон можно выбирать в настройках из существующих в каталоге templates.
Возможность ставить в соответствие картинке запись уже была реализована. Теперь добавил возможность включения автоматического создания соответствующих страниц, как для альбомов, так и для отдельных картинок. Это позволить комментировать картинки и альбомы, а также задавать им текст и название. Соответствие будет задаваться по слугу. К идентификатору картинки будет добавляться префикс и, таким образом, будет получаться 3-й сегмент адреса страницы картинки. Для получения страницы, соответствующей альбому, префикс будет добавляться к метке альбома и полученная строка заноситься во 2-й сегмент.
Теперь осталось придумать безопасный способ удаления автоматически созданных страниц. Думаю, добавить в админке страницу, где в таблице будут все автоматически добавленные страницы (у них предусмотрен свой тип), возле которых будут чекбоксы. Отмечаем те которые надо удалить и жмем удалить.
Еще развел функции, получающие массивы альбомов или картинок и функции, осуществляющие построение вывода по разным файлам.
Кроме того, пришлось изменить плагин taggallery_rater в связи с тем, что идентификатор картинки перекочевал в 3-й сегмент.
Да, сопряженные страницы картинок и альбомов создаются не зараниее сразу все а только в момент посещения страницы. Вначале происходит попытка получить страницу по соответствующему слугу. И в случае неудачи создается страница.
Плагин «Модули» входит в стандартный набор поставки MaxSite и его описание здесь: плагин «Модули».
Плагин обеспечивает гораздо более простое управление содержимым страниц и для его использования я решил изготовить специальный шаблон Phoeniks.
Стандартно модули можно определять либо в шаблоне либо в плагине «Модули». Также предполагается что в шаблоне определены места под модули. Затем, в админке плагина осуществляется управление: в каких местах какие модули выводить.
Однако мне нужно чтобы модули могли определять также и любые плагины и для этого пришлось несколько переделать плагин «Модули». Теперь в плагинах можно определять любое количество файлов - модулей таким же макаром, как и раньше.
То-есть мы в папке modules любого плагина создаем подключаемые файлы-модули а в папке modules/options инициализируем одноименные настройки. Все это делаем по образу и подобию как и модуль test.
Плагину осталось только прокричать про то что у него есть модули, достойные для показа. Делает он это в процедуре plugin-name_autoload так:
- global $module_in_plugin;
- $module_in_plugin['taggallery1'] = array('plugin_name' => 'taggallery' ,'file_name' => 'navigator.php', 'module_name' => 'taggallery_navigator');
Теперь осталось оснастить плагины модулями для вывода. Файл плагина:
Модуль с таким же именем, как и родной потому что я заменяю им родной.
Переделал плагин как советовали в ветке обсуждения на форуме поддержки MaxSite.
Архив плагина:
Для того чтобы навигатор выводился на одиночных страницах заданного для каталога типа, необходимо в файле page.php после if ($pages) вставить следующее:
- // вставка для вывода abc-навигатора на одиночной странице
- $options = mso_get_option('abc_catalog', 'plugins', array());
- if ( !isset($options['type']) ) $options['type'] = 'blog';
- if (isset($pages[0]['page_type_name']) and ($pages[0]['page_type_name'] == $options['type'])) echo abc_navigator();
- // конец вставки для вывода abc-навигатора на одиночной странице
Теперь в админке можно задать произвольные диапазоны символов, каждый диапазон в новой строчке. Формат задания: Первый символ диапазона , последний символ. 0 не хавается.
Предыдущий плагин выкинул и сделал заново, учитывая размышления в предыдущем посте, и не только.
Пример работы можно посмотреть в этом блоге в Галерее изображений
Для голосования за картинки посетителями нужно установить плагин Taggallery-rater
Далее...Перед внесением дальнейших изменений в плагин галереи изображений TagGallery, чтобы потом самому можно было разобраться что к чему (проблемы с этим уже есть) придумаем модель.
Далее...









