Модификация Фотоальбома в новости

1192
Для версии 1.5.2

Этот мод позволяет две вещи:
1)Внедряет новый модуль Последние фотоальбомы. Выглядит это так:
/blogs/0/116/post444.html#c
2)Лёгким движением руки превращает компоненту Фотогалерея в новости с анонсами. Получается так:

Одно без другого мне не интересно было.

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

Модуль последние фотоальбомы устанавливается стандартным образом.
Копируем архив на сайт и выполняем запрос в базу данных из файла module.sql
Затем настраиваем модуль в админке.


Модификация компоненты Фотогалерея состоит из следующих шагов:

I)Ищем в MySQL таблице  cms_photo_albums
изменяем тип description на text

II)Редактируем файл components/photos/frontend.php или переписываем из этого архива

Модификация Фотогалереи рассчитана на то, что вы вставите для красоты в описание альбома сначала html тег фотки из этого альбома (как вариант).
Например:

Код PHP:
<img src=/images/photos/small/2ab693b820b8a81cccf4c59a0ac56858.jpg align=left hspace=8 vspace=8>
Вы продолжите описывать альбом словно новость, которая будет анонсироваться в новом модуле и в списке альбомов.

1)Ищем в тексте
Код PHP:
echo '<div><a href="/photos/'.$menuid.'/'.$cat['id'].'">'.$cat['title'].'</a> ('.$cat['content_count'].$subtext.')</div>';
Замещаем на
Код PHP:
// *** Название альбома крупно
echo '<div><a href="/photos/'.$menuid.'/'.$cat['id'].'"><h3>'.$cat['title'].'</h3></a> </div>';
2)Ищем ниже
Код PHP:
if ($cat['description']) { echo '<div>'.$cat['description'].'</div>'; }
Замещаем на:

Код PHP:
// *** сокращённое описание альбома
if ($cat['description']) { 
echo '<u>'.$cat['pubdate'].'</u>';
$description = substr($cat['description'], 0, (400))."...";
echo '<div>'.$description.'</div><br clear=all>';
echo ' ('.$cat['content_count'].$subtext.') <img src="/images/markers/photo.png" border="0" /> <a href="/photos/'.$menuid.'/'.$cat['id'].'"> Смотреть далее... </a> 

';
 }
3)Ищем в разделе //SQL BUILD строку
Код PHP:
LEFT JOIN cms_ratings r ON r.item_id=f.id 
вставляем после неё
Код PHP:
LEFT JOIN cms_photo_albums a ON f.album_id = a.id
3)Ищем ниже раздел
//ORDERING

Перед ним вставляем

Код PHP:
//*** Описание альбома перед тумбами фоток (в sql добавлена строка LEFT JOIN cms_photo_albums a ON f.album_id = a.id)
echo '<u>'.$album['pubdate'].'</u>';
echo '<div>'.$album['description'].'</div>';
echo '<br clear=all><hr>';
Вот и вся премудрость.
Описание есть и внутри архива.

Скачать
/users/files/download267.html

Добавлено в InstantWiki
http://instantcms.ru/wiki/doku.php/дополнения:компоненты
Модуль - Последний фотоальбом | Новости мастерской
Теги: модули
Комментарии (10)
Светлана Кондратьева 8 декабря 2009 в 22:28 0
Действительно, здорово! Какой ты умница!
0 8 декабря 2009 в 22:36 0
Продолжаю развлекаться.
0 8 декабря 2009 в 22:43 0
Интересное решение.
Димитриус 8 декабря 2009 в 23:14 0
А может это красивое чудо делать без модификации кода? Ядра
Светлана Кондратьева 9 декабря 2009 в 05:03 0
Ядро здесь ни причем, и его не трогают. Речь идет о небольшой модификации фронтэнда компонента "фотогалерея".

Яшоматинандан, ты действительно молодец. Я код почитала и восхищаюсь твоими решениями!
Яшоматинандан 9 декабря 2009 в 17:43 0
InstantCMS Guest
Спасиб, о Feba!
Олег с клещами 27 декабря 2009 в 07:45 0
Отличное решение! Только надо срочно доработать вставку случайного фото из альбома в шапку - и будет всем счастье! То есть, чтобы просто в админке выделить этот пункт.
0 27 декабря 2009 в 12:41 0
Идея хорошая. Подумаю, если Бог мозгов даст. stuk
imprint 27 января 2010 в 20:40 0
в 1.5.3 версии не работает?
Greener 30 марта 2011 в 08:45 0
Скажите, кто-нибудь встречал что-то подобное для 1.7 версии?