Записки

Последние изменения: добавлена возможность выбора обложек и размера представления обложек. Добавлен виджет меток галерей

Пример галереи изображений, построенной плагином TagGallery.

Описание того, что реализовано в галерее.

Галерея изображений TagGallery - это плагин для MaxSite CMS. Плагин предполагает работу с метками, которые так или иначе присвоены картинкам. Метки хранятся вместе с описаниями картинок способом,принятым в MaxSite CMS - в dat файле каждого каталога. Формат определения меток такой: Описание | метка1, метка2, ... Миниатюры изображений хранятся в подкаталоге mini/ каталога картинок.

Метки галереям можно присвоить несколькисми способами.

Самый простой – это использовать плагин Мультимедиа архив.

Окно редактирования описаний фотографий этого мультимедиа-архива позволяет сразу без перегрузки страницы редактировать описания всех фотографий выбранного каталога.

Можно использовать встроенный в CMS файловый менеджер, но в нем нет табличного представления содержимого каталога и для каждой картинки нужно разворачивать описание, и осуществляется перезагрузка страницы после обновления каждого описания.

Также, встроенный файловый менеджер не умеет заходить глубже чем подкаталоги 1?го уровня каталога загрузок.

Обязательно нужно убедиться что каталоги где хранятся картинки имеют соответствующий уровень доступа для того, чтобы файловые менеджеры могли изменять файл discription.dat. Это актуально, если вы заливаете картинки через ftp.

Еще один способ присвоения описания и меток – задать в админке плагина описание и метки сразу всем файлам каталога в формате:

Ключ каталога = описание | метка1, метка2 , ...

При этом, если каким?то файлам каталога уже заданны индивидуальные описания – они изменяться на новое не будут, а метки: новые добавятяся к уже существующим.

Из заданных метками картинок, плагин формирует галереи изображений и строит соответствующие им страницы вида www.mysite/pictures/gallery_tag, где tag – метка после транслитерации. Сегмнт адреса pictures настраивается. Над галерей картинок отображается блок «Все имеющиеся галереи», который, при включенном плагине «spoiler», прячется и разворачивается.

Галерея встраивается в сайт.
На странице галереи выводятся блоки, улучшающие навигацию по сайту.
Сверху, если имеются посты с меткой, как у галереи - выводится блок "Статьи по теме галереи".
Под галереей выводится список альтернативных меток текущей галереи. Этот список содержит все другие метки всех картинок текущей галереи.
После контента всех постов в блоге выводится блок "Галереи изображений по теме", который содержит ссылки на все галереи, соответствующие меткам поста.

Также автомтически формируется стрница с адресом www.mysite/pictures, на которой представлен каталог всех галерей с картинками?обложками галерей и информацией о количестве картинок в галереях.

Картинку?обложку можно задать, добавив спереди к метке картинки (по которой картинка должна быть обложкой) «0_». При обработке эти два символа отбросятся, но картинка запомнится как обложка для соответствующей галереи. Пример задания таких меток виден на скриншотах.

Если обложка не задана – она выбирается автоматически из картинок галереи.

Также, галереи могут быть доступны из тела поста. вставка галереи осуществляется конструкцией [tag gallery=tag] (без пробела - в этом блоге включен плагин), которая будет заменена галереей картинок по заданному тегу.

Сущствует возможность задавать служебные теги, начинающиеся на «_». Для галерей, построенных по таким тегам, не будут автоматически создаваться страницы, но из тела поста такие галереи доступны будут. это существенно облегчает вставку картинок в пост и позволяет позже дополнить или отредактировать подборку изображений для конкретного поста.

Вся информация о галереях хранится в массиве и плагин не обходит каталоги каждый раз при вызове галереи по метке.

Для того, чтобы плагин получил информацию о существующих галереях, необходимо нажать кнопку «Сохранить» в админке плагина.

любые изменения в метках и фотографиях внесутся в массив только после сохранения изменений в админ?панели плагина.

Можно сделать и автоматически, или каждый раз при обновлении плагина запускать формирование массива картинок для конкретной метки, ? но так экономнее.

После прохода по каталогам, плагин выдаст информацию о сформированных галереях.

Кроме этого, если у нас есть страница типа static с сегментом вида taggallery_tag (tag после транслитерации метки галереи), то к галерее прицепится контент этой страницы и ветка обсуждения.

Галереи изображений можно обсуждать и добавлять к ним текст-описание.

Страницу можно привязать к галерее и принудительно, задав в соответствующем поле админки.

Кроме возможности привязки страниц к галереям и массового задания меток файлам определенных директорий, у плагина есть такие опции.

Плагин делался под свои нужды, но если надо – внесу изменения и дополнения.

Какие дальнейшие изменения будут в плагине.

Первым делом нужно переделать хранение информации о картинках в божеский вид. Получение всех галерей в одном массиве ни в какие ворота не лезет. Необходимо отделить информацию о файлах галереи от информации о галереях в отдельный массив.

Должен быть один массив галерей с ключом - тег галереи.

Другой массив - файлы с ключом - номер файла.

Ну и, напрашивается третий массив - связка, который будет содержать пары тег галереи - номер файла.

Еще, как вариант - хранить в отдельном поле галереи массив номеров картинок, ей принадлежащих. Такой вариант кажеться более простым но менее правильным.

Массив галереи может содержать:
('метка до транслитерации' , 'адрес обложки' , 'заголовок' , 'номера картинок' , 'дата' , 'хозяин' , 'рейтинг')
Информация в массиве файлов такая:
('dir' , 'имя' , 'mini/' , 'рейтинг' , 'дата' , 'хозяин' , 'размер миниатюры' , 'описание' , 'метки')

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

Нужны такие функции для работы с галереей

  • Получить массив адресов картинок по метке
  • Получить строку картинок к выдаче по метке и параметрам пагинации
  • Проинициализировать данные заново из файлов discriptions.dat
  • Получить облако галерей
  • Получить обложки всех галерей к выдаче
  • Изменить галерею, передав информацию о новом/изменяемом файле
  • Проверить соответствие галереи тому, что на диске

В MaxSite CMS пока нет встроенной возможности поставить в соответствие к конкретным сущностям графическое их представление - поэтому реализовал функцию,которая находит к странице подходящую картинку.

Как будет определена превьюшка?

Для этого имеется функция pages_images_get_pictures, возрвщающая адрес картинки.

В качестве аргументов можно передать необязательные параметры:

  1.  $arg = array(
  2.  'meta_name' => $options['meta_name'], // имя мета-поля, где может быть задана превьюшка
  3.  'page_id'=> $page['page_id'], // номер страницы в качестве ключа для поиска
  4.  'page_content' => $page['page_content'], // контент страницы для поиска картинки там
  5.  'page_slug' => $page['page_slug'], // slug страницы в качестве ключа для поиска
  6.  'dir' => $options['src_dir']); // каталог, где может найтись превьюшка по ключу

    Делаются последовательно попытки найти картинку:
  • В метаполе.
  • В файле (заданного каталога), имя которого содержит id или slug страницы.
  • Первую попавшуюся картинку в посте.

Если картинка не найдена, то возвращается custom.jpg из каталога плагина.

Можно еще приделать попытку найти по ключу в discription файла картинки ли в галерее, созданной плагином TagGallery.

Для того, чтобы у страницы появилось мета-поле "превьюшка" (по типу играет музыка), необходимо в файле шаблона meta.ini добавить
  1.  [Превьюшка]
  2.  options_key = prev
  3.  type = textfield
  4.  description = "Укажите адрес превьюшки"
  5.  default =

Можно же, в качестве мета-поля, указать уже существующее мета-поле, и хранить адрес картинки там, - метаполе "Настроение" все равно вряд ли использует кто-то.

Плагин содержит виджет, который выводит заданное колличество случайных страниц заданного типа: 'blog' , 'static' ... Если задать в поле размер картинки большим чем 0, то будет выведена превьюшка страницы, найденная при помощи вышеописанной функции.

Архив плагина:

Усовершенствовал плагин так, что он может теперь решать классическую задачу двухуровневой катологизации сущностей.

В админке указываем номер категории, которая будет родительской для двух уровней.

Например: Журнал -> Год -> Номер

Конечные сущности - статьи - будут заноситься в соответствующие рубрики.

Но я решал свою задачу: растения, которые могут одновременно находится в разных категориях.

Пример работы плагина: Каталог цветущих и декоративных растений.

Для получения такого представления достаточно создать рубрикатор:

Каталог растений -> Типы классификаций -> Растение по классификации

Статьи о растениях могут принадлежать уже любым классификациям

Плагину нужно скормить номер категории "Каталог растений".

Архив плагина:

Плагин следует рассматривать как очень экспериментальный - там ничего не кешируется и не проверяется.

Почему FasQu


FasQu представляет собой сервис закладок, который позиционирует себя как инструмент социального поиска.


Функции администрирования своих закладок гораздо шире чем у других подобных сервисов.К тому же, существуют возможности проверять закладки других экспертов и браковать их.Этот механизм, по крайней мере, обеспечивает отсутствие явного мусора.


На позицию закладки в выдаче влияет рейтинг эксперта, добавившего данное описание так и рейтинг самого описания.


Также имеется плагин добавления для браузера.


Регистрация на проекте: регистрация в FASQu.


Плагины для работы с сервисом закладок FasQu


Плагин FasQu_draft.


Служит для добавления вновь создаваемой страницы в закладки этого сервиса в свой аккаунт. Для успешного добавления необходимо, чтобы все поля : title, description, meta - были заданы.



Плагин FasQu_links.


Для вывода в теле поста результата запроса по меткам. Для осуществления вывода необходимо задать в тексте [fasqu_tag=нужная+метка]. Можно выводить как только свои результаты, так и все публичные.


Архив плагина:

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

Также добавил пагинацию.

Кроме того, можно при смене директория и пути галереи менять и MSO->uploads_dir, MSO->uploads_url.

Если установлена соответствующая опция, то происходит по хуку init замена дефолтных велечин на установленные.

Перед заливкой новых файлов необходимо деинсталлировать старую версию.