Элементарно, Ватсон
Файл sub_viewspecial.php, находим
case 'owner':
...
break; и заменяем все что там на следующий код:
case 'owner':
$database->setQuery("select username from #__users where id = '$op'");
$imgowner = $database->loadResult();
//чтение значений параметров
$limit = intval( mosGetParam( $_REQUEST, 'limit', $ad_toplist ) );
$limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) );
//считаем общее количество
$database->setQuery("select count(*) from #__datsogallery where owner = '$imgowner'");
$total = $database->loadResult();
//подключаем файл pageNavigation.php
require_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/pageNavigation.php' );
$pageNav = new mosPageNav( $total, $limitstart, $limit );
//запрос в БД и добавляем
$database->setQuery("select * "
. " from #__datsogallery as a, #__datsogallery_catg "
. " as ca where a.catid=ca.cid "
. " and a.published=1 and a.owner = '$imgowner' and a.approved=1 and ca.published=1 and ca.access<=$gid "
. " order by a.id desc limit $limitstart, $limit");
$tl_title = " $ad_toplist " ._DG_NEW_PIC." "._DG_FROM_USER." $imgowner";
$pw_title = " $ad_toplist " ._DG_NEW_PIC." "._DG_FROM_USER." $imgowner";
$link = "index.php?option=com_datsogallery&func=special&sorting=owner&op=$op";
echo $pageNav->writePagesLinks( $link );
break;
Количество выводимых картинок лежит в $ad_toplist, что выставляется в админке, вкладка ВИД -> "Топ-список на страницу:"
Аналогично постраничную разбивку можно добавить с любую другую опцию из панели (лучше, популярные, комменты)
P.S. только что заметил еще одну глупость кода - в таблице #__datsogallery идентификатором пользователя (владельца фотографии) служит почему то username, вместо его ID - как следствие лишние запросы и прочие неудобства
Хотя давайте оптимизируем еще немного код для очистки совести:
case 'owner':
//чтение значений параметров
$limit = intval( mosGetParam( $_REQUEST, 'limit', $ad_toplist ) );
$limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) );
//считаем общее количество и сразу же имя автора
$database->setQuery("select count(*) AS count, d.owner as owner from #__datsogallery as d
JOIN #__users as u on u.username = d.owner where u.id = '$op' GROUP BY d.owner ");
$database->LoadObject($row);
$total = $row->count;
$imgowner = $row->owner;
//подключаем файл pageNavigation.php
require_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/pageNavigation.php' );
$pageNav = new mosPageNav( $total, $limitstart, $limit );
//запрос в БД и добавляем
$database->setQuery("select a.*, ca.* from #__datsogallery as a "
. " JOIN #__datsogallery_catg as ca ON a.catid=ca.cid "
. " JOIN #__users AS u ON u.id = '$op' "
. " WHERE a.published=1 and a.approved=1 and ca.published=1 and ca.access<=$gid "
. " order by a.id desc limit $limitstart, $limit");
$tl_title = " $ad_toplist " ._DG_NEW_PIC." "._DG_FROM_USER." $imgowner";
$pw_title = " $ad_toplist " ._DG_NEW_PIC." "._DG_FROM_USER." $imgowner";
$link = "index.php?option=com_datsogallery&func=special&sorting=owner&op=$op";
echo $pageNav->writePagesLinks( $link );
break;
На мой взгляд второй вариант будет правильней