Вставка фотоальбома через bbcode в блогах и т.д.

+16
2.32K
Делал для того что бы иметь возможность вставлять фотоальбом в пост блога, типа "мультизагрузка фото в пост блога заход с боку", но в принципе будет работать как обычный бб код везде где используетя бб коды.

Имеются ввиду альбомы из публичной галереи компонента /photos

В качестве демо вставил альбом к себе на стену

Иллюстрация




Иллюстрация


0. Делаем копии изменяемых файлов для того, что бы откатить, если что то пошло не так как вы ожидали.
1. В файле /includes/bbcode/bbcode.lib.php

где то после
  1.  
  2. 'img' => array(
  3. 'handler' => 'img_2html',
  4. 'is_close' => false,
  5. 'lbr' => 0,
  6. 'rbr' => 0,
  7. 'ends' => array(),
  8. 'permission_top_level' => true,
  9. 'children' => array()
  10. ),
вставляем

  1.  
  2. 'photoalbum' => array(
  3. 'handler' => 'photoalbum_2html',
  4. 'is_close' => false,
  5. 'lbr' => 0,
  6. 'rbr' => 0,
  7. 'ends' => array(),
  8. 'permission_top_level' => true,
  9. 'children' => array()
  10. ),
в этом же файле, например перед

  1. // Функция - обработчик тега [img]
  2. function img_2html($elem) {
вставляем

  1. function photoalbum_2html($elem) {
  2. $eelem = $this -> get_html($elem['val']);
  3. $inDB = cmsDatabase::getInstance();
  4. $bbcode_album_photo = '<div class="bb_album" align="center">';
  5. $sql = "SELECT id, file, title
  6. FROM `cms_photo_files`
  7. WHERE
  8. album_id = '$eelem'
  9. ORDER BY id DESC
  10. LIMIT 200";
  11. $rs = $inDB->query($sql);
  12. if(!$inDB->num_rows($rs)){ return false; }
  13. while ($item = $inDB->fetch_assoc($rs)){
  14. $bbcode_album_photo .= '<a target="_blank" class="lightbox-enabled" rel="lightbox-galery" title="'.$item['title'].'" href="/images/photos/medium/'.$item['file'].'"><img alt="'.$item['file'].'" src="/images/photos/small/'.$item['file'].'"/></a>';
  15. }
  16. $bbcode_album_photo .= '</div><div style="clear:both;"></div>';
  17. return $bbcode_album_photo;
  18. }
в файле styles.css задаем стили для альбома и фоток в нем, в конце файла вставляем
  1.  
  2. .bb_album{
  3. display:block; padding:10px; border:5px #E7EFF5 solid; outline:1px solid silver; border-radius:5px;
  4. }
  5. .bb_album img{
  6. margin:3px; border:5px solid #fff; outline:1px solid silver;
  7. }
или свои стили

Теперь в пост блога где нужно вывести альбом вставляем

  1. [photoalbum]111[/photoalbum]

111 номер фотоальбома из компонента photos или из клубов. Номер альбома виден на странице альбома в адресной строке.
Выводится до 200 фотографий из этого альбома от последней к более ранним. При добавлений фотографии в альбом в посте ничего не изменится пока не пересохраните пост. Количество фотографий можно регулировать в запросе выше где LIMIT 200
+2
Однако@ Однако@ 7 лет назад #
Интересно +. Благодаря вашему блогу прям захотелось сделать что-нибудь на первой ветке smile
+3
Нил™ Нил™ 7 лет назад #
О, ну я тогда пожалуй ещё что нибудь опубликую)
0
Bubble Gumoff Bubble Gumoff 7 лет назад #
Спасибо! Наконец можно улучшить единичку бесплатно.
Это как я понял только для комментов (бб-код)
а где еще он есть scratch
0
Нил™ Нил™ 7 лет назад #
нет, ббкоды и этот в том числе работают в комментах, в блогах, на форуме, на стене пользователя или клуба
0
Нил™ Нил™ 7 лет назад #
а, еще в личных сообщениях. Но я в основном делал это для блога, что бы можно было вставлять много фоток в виде галереи в посты блога, это скорее для случаев, когда делаешь сайт со статьями на блогах, не для массового пользователя, я так думаю.
0
Bubble Gumoff Bubble Gumoff 7 лет назад #
Но если каталог например, нужно чтоб фильтры были подключены правильно?
Без фильтров ведь работать не будет?
0
Нил™ Нил™ 7 лет назад #
Через фильтры НЕ будет работать. Это bbcode тег, не фильтр. В ниуверсальном каталоге бб коды не работают
0
Bubble Gumoff Bubble Gumoff 7 лет назад #
Жаль, а что нужно сделать чтобы подключить ббкод к каталогу?
Надо чтобы его редактор (FCKeditor) использовал ббкод ?
0
Яков Соломон Яков Соломон 7 лет назад #
Круто.Такое бы для двойки и цены не было бы

Еще от автора

Капча на сайт или разделы сайта
Если нужно, закрыть весь сайт или некоторые его разделы каптчей.
Пинг поисковых систем для первой ветки
Небольшая интеграция инструментов для пингования, чтобы сделать его чуть удобнее
Генератор карты сайта в формате txt на лету без крона
Вообще то где то тут уже есть вполне рабочие генераторы карты для первой ветки, но этот вариант тоже имеет право быть.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.