Внимание! Форум временно закрыт. Все вопросы вы можете задать на странице MaxSite CMS в Github

Формирование галерей изображений по тегам у картинок

Вопросы по плагинам MaxSite CMS. Только вопросы и решения
Аватар пользователя
Sadovnik
Модератор
Сообщений: 793
Зарегистрирован: 26 июл 2009, 20:59

Формирование галерей изображений по тегам у картинок

Сообщение Sadovnik » 31 янв 2010, 01:32

Смысл такой: подразумеваем что в discription занесены метки, разделенные запятыми.
Есть функция taggallery_recalc() которая обходит все файлы с описаниями и строит массив меток и файлов.
Эта функция вызывается при нажатии кнопки "Сохранить" в админке плагина.
То-есть после загрузки новых изображений надо пересчитать массив.

Плагин подключает в заданный url галерею.

Вот как выглядит:
http://filsadovnik.ru/pictures/

Вот плагин:
http://www.filsadovnik.ru/files/taggallery.zip

В плагине не избавился от

Код: Выбрать все

global $MSO;
$gallery_url = $MSO->config['site_url'] . $gallery_slug . '/';

Теоретически надо заменить на $gallery_url = getinfo('site_url') . $gallery_slug . '/';

Плагин пока без проверок и красивостей.
Не знаю - правильную ли обработку данных выбрал.
Может использовать БД?

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: Формирование галерей изображений по тегам у картинок

Сообщение Wave » 31 янв 2010, 10:39

Неплохо.
Из «шашечек» можно добавить такую (или более навороченную) штуку: «метки, метки, метки | описание».
Я банерокрутилку аналогичным образом делал: «линк | описание».

Рекомендую пользоваться urlencode (и, возможно, urldecode), потому что в описаниях могут встречаться русские буквы, пробелы и так далее. См. пример хотя бы в плагине tagclouds.
Или пользуйся для ссылок функцией mso_slug, а для текста ссылок самими метками. Кстати, голосую за этот вариант.

Также засада — если файл — не картинка. Сделай, что ли, возможность его хотя бы просто показать ссылкой, чтобы можно было скачать. Как в админке для некартинок.
А также желательна возможность исключить показ меток и файлов некартинок.

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

И ещё два пожелания:
1. Чтоб можно было выборочно задавать каталоги, которые участвуют в показе. Например, я хочу, чтобы на сайт выводились каталоги funny, pics и calendar. Остальное чтоб было для внутреннего пользования. Кстати, та самая банерокрутилка, например.
2. Сделай страницу со своими плагинами. Чтобы там можно было увидеть список твоих плагинов, их актуальные версии и так далее.

Пока из пожеланий и замечаний это всё. Вёрстки не касаюсь, в код глубоко не влазил.

P.s. Запятые через пробел после меток в их списке — это пунктуационно неверно. Знаки препинания должны стоять сразу после слов. Исключения: тире, многоточие вместо слова, вроде бы всё.

P.p.s. Массив меток рекомендуется хранить не в опциях, а в плоских опциях.

Код: Выбрать все

   # получим список всех ушек
   $ushki = mso_get_float_option('ushki', 'ushki', array());

Код: Выбрать все

mso_add_float_option($key, $ushki, $type); // и в опции

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

Аватар пользователя
Sadovnik
Модератор
Сообщений: 793
Зарегистрирован: 26 июл 2009, 20:59

Re: Формирование галерей изображений по тегам у картинок

Сообщение Sadovnik » 31 янв 2010, 11:38

Спасибо за рекомендации.
Рекомендую пользоваться urlencode (и, возможно, urldecode), потому что в описаниях могут встречаться русские буквы, пробелы и так далее.

Даже если русские буквы и пробелы все работает.
Ссылки правда не красивые если дать где-то - но ведь в Википедии тоже так (что вообще-то напрягает).

Также засада — если файл — не картинка.

Планирую сделать опцию "Показывать ли не-картинки".

Также будет поле где задаются метки, исключенные из показа.
Или ввести понятие служебные теги, перед которыми ~
Например, хочу тегом ~1 задавать картинку - обложку галереи (сейчас случайная)

У меня уже для картинок, предназначенных для показа есть каталог Gallery, в котором уже много картинок (0,3Гб), которые там давно и на которые есть отовсюду ссылки.
Не знаю что с этим делать - думал задавать каталог, где галерея (не uploads) опционально.
Но как тогда править описания, если при помощи плагина "Загрузки" туда не залезть?
Чтоб можно было выборочно задавать каталоги, которые участвуют в показе.

Подразумевается много-уровневость каталогов Галерея->Цветы->Ромашка.
Как тогда быть? - разве что указать каталоги, исключаемые при обходе, независимо от уровня где они находятся.

Еще хочу чтобы на странице site/tag выводило сверху ссылку на галерею этой метки, если есть такая.
А после контента страницы тоже выдавало ссылки на галереи по меткам страницы.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Формирование галерей изображений по тегам у картинок

Сообщение MAX » 31 янв 2010, 11:42

Не вдаваясь в технические детали, объясните смысл плагина. Верно ли я понял, что метки - это само описание картинки? Нельзя задать и название, и метки?

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: Формирование галерей изображений по тегам у картинок

Сообщение Wave » 31 янв 2010, 12:47

Смысл плагина в (полу)автоматическом создании галереи в сайте на макссайте.
Причём, если сделать хук на изменения в загрузках (загрузку, редактирование меток, удаление), то после цепляния к этому хуку можно убрать приставку «полу».
Как имхо, это гораздо удобней (особенно в некоторых случаях), чем генерировать код галереи и вставлять в текст.

Нельзя задать и название, и метки?

Именно поэтому я предлагаю «метки, метки, метки | описание». Или наоборот. Можно ещё подумать. Ещё для этого же предлагаю произвольные каталоги задавать.

Даже если русские буквы и пробелы все работает.

Встречаются проблемы, например, при клике на такой ссылке в rss-читалке с вызовом браузера. И так далее. Просто на всякий случай, если urlencode — таких проблем не бывает.

Да, сюда же, пользуйся ещё функцией trim() — она убирает начальные и конечные пробелы строки.
if ( trim($tags[0]) ) //Значит, метка не состоит из одних только пробелов
{
echo trim($tags[0]);
}

Но я предлагаю вариант такой:
Допустим, метки в $tags[]. Метка «Ромашка», допустим, нулевая.
$tags[0] == 'Ромашка'

<a href="<?=mso_slug($tags[0])?>"><?=$tags[0]?></a>
<a href="romashka">Ромашка</a>

Конечно, понадобится переделать внутреннюю структуру данных, но не сильно. Зато транслитерация ссылок автоматом.

Или ввести понятие служебные теги, перед которыми ~

Тоже поддерживаю. Чем выше кастомизация, тем лучше.

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

Так тоже хороший вариант.

Еще хочу чтобы на странице site/tag выводило сверху ссылку на галерею этой метки, если есть такая.
А после контента страницы тоже выдавало ссылки на галереи по меткам страницы.

Тоже хорошая идея. Поддерживаю.
Только чтобы не трогать шаблон, это… Даже не знаю. К хуку пагинации разве что цепляться.
Или к хуку content, но при этом смотреть, что если is_type('tag') и это последняя заметка на текущей странице, тогда выводить.
is_type('page') — однозначно цепляться на контент и выводить после текста страницы.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Формирование галерей изображений по тегам у картинок

Сообщение MAX » 31 янв 2010, 13:03

Не уловил.

Код: Выбрать все

[php]

echo random_gal_widget_custom(array('gal'=>'uploads/', 'count'=>999), 0);

[/php]


Не то?

Аватар пользователя
Sadovnik
Модератор
Сообщений: 793
Зарегистрирован: 26 июл 2009, 20:59

Re: Формирование галерей изображений по тегам у картинок

Сообщение Sadovnik » 31 янв 2010, 13:26

Код: Выбрать все

echo random_gal_widget_custom(array('gal'=>'uploads/', 'count'=>999), 0);


Хотелось чтобы можно было управлять структурой галерей и быть отвязанным от создания поста.
Чтобы галереи сами делались.
То-есть, добавляем при помощи загрузчика картинки а они сами попадают в соответствующие галереи, которые мы указываем при загрузке.
И ничего кроме загрузить картинку и присвоить ей метку не надо было делать руками.

Нельзя задать и название, и метки?

Хорошо было бы в отдельном поле, конечно, задавать метки.
Тогда нужно будет делать свой файл _mso_i/_mso_tag.dat и организовывать его редактирование еще одним загрузчиком типа встроенного.

Наверное стоит сделать, чтобы метки, которые предназначены для построения галереи, начинались на задаваемый символ, например ~ - тогда исчезнет необходимость задавать каталоги и метки, исключаемые из выдачи.

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: Формирование галерей изображений по тегам у картинок

Сообщение Wave » 31 янв 2010, 14:30

admin писал(а):Не уловил.

Код: Выбрать все

[php]

echo random_gal_widget_custom(array('gal'=>'uploads/', 'count'=>999), 0);

[/php]


Не то?

Мало того, что на каждую такую папку нужно создавать страницы галереи вручную, так ещё и:
1. Выводятся все картинки папки (а бывает нужно не все, или всего несколько картинок из разных папок, или…)
2. Рандом_гал выводит рандомно. А бывает нужно в строгом порядке.
3. У обсуждаемого плагина, как уже сказано, в планах автоматом цепляться к страницам, имеющим такие же метки.

В любом случае, чем плохо появление дополнительного плагина?

Аватар пользователя
Sadovnik
Модератор
Сообщений: 793
Зарегистрирован: 26 июл 2009, 20:59

Re: Формирование галерей изображений по тегам у картинок

Сообщение Sadovnik » 31 янв 2010, 14:43

Подскажите пожалуйста: как заставить, например плагин от Groma, залезть в директорий не uploads а gallery?
А насчет того что повесить хук на загрузку картинки, чтобы пересчитывало массив галерей сразу после загрузки картинок - а насколько это займет ресурс времени: разве сложно нажать одну кнопку?

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Формирование галерей изображений по тегам у картинок

Сообщение MAX » 31 янв 2010, 14:53

Я как раз не против. :) Просто я хочу понять смысл. Вывод по меткам. Метки это что? В текущем варианте это просто описание. Еще метками могут быть название каталога. Если же нужно добавлять метки к каждой картинке, то разве это упрощение?

Думаю, что тут нужно каким-то образом решить, что метки должны быть в описании. Например в стиле твиттера (#). Тогда, действительно можно попробовать сделать аналогичный плагин, а еще лучше на уровне системы.

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


Вернуться в «Плагины»

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron