Всем привет.
Есть такой простой, но достаточно интересный модуль "Datso Gallery Preview". В частности я использую его для вывода новинок из галереи на главную страницу.
Да вот незадача — фотографии-то в галерее бывают "горизонтальные" и "вертикальные". Если выводить их одним горизонтальным рядом (например 5 штук), то результат получается, мягко говоря, некрасивым.
Возникла идея модифицировать модуль для решения следующей конкретной задачи: выводить N только горизонтальных фотографий из самой новой категории, причем выбирать их (фотографии) случайным образом.
В настройках модуля (в админке) д.б. "Type of display" → Banner, "Ordering" → Latest pix.
Открываем mod_datso_preview.php (предварительно сделаем его бэкап!).
[spoiler title=Ищем старое и приводим к виду:]
...
switch($ordering) {
case "latest":
$query = "SELECT DISTINCT *, c.access FROM #__datsogallery as p"
. "\n left join #__datsogallery_catg as c on c.cid=p.catid"
. "\n WHERE p.catid = (SELECT MAX(p.catid) FROM #__datsogallery AS p) AND p.published = '1' and p.approved=1 and c.access <= $my->gid"
. "\n ORDER BY RAND()";
break;
...
[/spoiler]
[spoiler title=+ перепишем в самом низу]
...
default:
$counter = 0;
$arr_horiz = array();
foreach($rows as $row) {
$img_size = getimagesize($thumbnailpath.$row->imgthumbname);
$width = $img_size[0];
$height = $img_size[1];
if ($width > $height) { // т.е. фотка горизонтальная
$arr_horiz[$counter] = array('id' => $row->id, 'name' => $row->imgthumbname, 'title' => $row->imgtitle);
$counter++;
}
}
for ( $i = 0; $i<$nbPix; $i++ ) {
echo "<a href=\"". sefRelToAbs("index.php?option=com_datsogallery&Itemid=$Itemid&func=detail&id=".$arr_horiz[$i]['id']."") ."\"><img src=\"{$thumbnailpath}{$arr_horiz[$i]['name']}\" title=\"{$arr_horiz[$i]['title']}\" alt=\"{$arr_horiz[$i]['title']}\"></a>";
}
break;
}
?>[/spoiler]
Всё.