В общем сделал. На локалке вроде работает. Но надо проверить на реальном сервере. Есть одно не очень веселое условие - код будет работать, если сайт и форум стоят в одной базе данных. В принципе можете переделать под себя, если у вас это не так, у меня не получилось.
Форум установил в папку forum, т.е. адрес такой -
http://site.ru/forum/ - соответственно и способы подключения у меня такие же.
Собственно и сам код:
<?php
if (!defined('SMF'))
die('Hacking attempt...');
// Сервер, юзер, пароль для базы данных
global $db_server, $db_user, $db_passwd, $db_name, $db;
if (
// Подключение к базе данных
$db = mysql_connect($db_server,$db_user,$db_passwd))
{
//Имя базы данных где стоит фотогалерея JoomGallery
mysql_select_db($db_name);
/*Опции для вывода фотографий. Для выбора нужной опции расскомментируйте нужный блок и закомментируйте предыдущий*/
//Случайные фотографии из галереи
$orderby = "rand()";
//Последние фотографии из галереи
//$orderby = "imgdate DESC";
//Самые популярные фотографии из галереи
//$orderby = "hits DESC";
//Самые рейтинговые фотографии из галереи
//$orderby = "imgvotes DESC";
/*Конец опции*/
//Количество выводимых фотографий
$max = 5;
//Производим выборку данных из базы
$query = "SELECT id, imgtitle, imgdate, imgthumbname, catid, imgvotes, hits FROM jos_joomgallery WHERE approved = 1 ORDER BY ".$orderby." LIMIT ".$max." ";
$img = mysql_query($query);
echo '<div align="center"><h4>Фотографии из нашей галереи</h4></div>';
echo '<table width="100%" border="0" cellspacing="0" cellpadding="5" align="center">';
//Каждую запись считываем в массив и выводим в браузер
echo '<tr>';
while($image=mysql_fetch_assoc($img)) {
//Ссылка на фотографию JoomGallery
$patch_gallery = $image['id'];
//Itemid вашей фотогалереи. Можно узнать в админке Joomla - Пункты меню:
$itemid = 100004;
echo '<td width="150" height="150" align="center" valign="top"><a href=../index.php?view=detail&id='.$patch_gallery.'&option=com_joomgallery&Itemid='.$itemid.'>';
echo '<img align="center" style="border:1px #ccc solid; padding:5px; background-color:#fff;" src="../components/com_joomgallery/img_thumbnails/'. $image['catid'] . '/' .$image["imgthumbname"].'"/></a>';
echo '<br /><b>'.$image['imgtitle'].'</b>';
echo '<br />Просмотров:'.$image['hits'];
echo '</td>';
}
echo '</tr></table>';
//Закрываем соединение
mysql_close($db);
}
else {
echo "Не удалось установить подключение к базе данных";
}
?>
Что он делает? Умеет выводить произвольное число фотографий из JoomGallery по разным критериям на форум SMF. Случайные фотографии, Последние фотографии, Самые популярные, Самые рейтинговые. По умолчанию стоит первый критерий - он же кажется самый удобный. ))
Под фотографиями выводятся названия фото и количество его просмотров. Клик на фото ведет в галерею и открывает это фото в детальном режиме. В принципе опять же можете переделать под себя.
Обязательно не забудьте указать в коде Itemid вашей галереи, иначе ссылки будут неверными. Я указал в коде свой, вам надо поменять его на свой. Если включен SEF, он все равно выведет в галерею на это фото, при дальнейшем просмотре других фото - ссылки будут уже SEF.
Тестировал на JoomGallery 1.5.5.2 и SMF 1.1.11
К SMF код удобно подключать через вышеуказанный
Ad Management mod. Вставив в этот мод код подключения:
include_once('../forum/Themes/default/random.php');
Зато потом можно его выводить как угодно. Или только на главной или по выбору, в общем разберетесь - удобно. Опять же можно через него выводить баннеры и т.д. Умеет работать с php и HTML кодом.
Файл я назвал
random.php и положил его в папку шаблона.
И главное, если у вас форум в utf - не забудьте сохранить файл в кодировке UTF-8, иначе будут кракозябры. Оформление уже делаете под себя.))
В общем все.
Файл прикрепил.
[вложение удалено Администратором]