Немного неудобно устроена Галерея изображений, так как нет возможности переходить к следующему или предыдущему изображению. Можно, конечно, поставить что-то более функциональное, но зачем, если модуль Галереи изображений, меня, можно сказать, во всём устраивает? В нём присутвует достаточно достоинств, чтобы попытаться его улучшить, а не удалять.
Хотя, подобная функциональность (на мой взгляд) уже давно могла бы быть включена опционально в код модуля, также как это присутствует в модуле форумов или подшивок. ещё лучше, если бы показывалось несколько изображений, по которым можно было бы переходить, тогда юзабилити было бы вообще на высоте, но, что имеем, то имеем...
Итак, находим решение для версии Друпала 5.6 (модуль Image 5.x-1.x):
-
<?php
-
/**
-
* Custom theme function for displaying an image node.
-
* Implements previous and next buttons for images grouped in a gallery.
-
*/
-
function название-темы_image_body($node, $size) {
-
//find out term id the node is tagged with (gallery tid)
-
$result = db_query("SELECT t.tid FROM {term_node} t WHERE t.nid = %d",$node->nid);
-
$tid = db_result($result);
-
-
//print out image
-
$output = image_display($node, $size);
-
-
//get all images with same tid (same gallery)
-
$result = db_query("SELECT n.nid FROM {term_node} t INNER JOIN {node} n ON t.nid=n.nid WHERE n.status=1 AND n.type='image' AND t.tid=%d ORDER BY n.sticky DESC, n.created DESC",$tid);
-
-
//compose array we need for finding out prev and next
-
while ($imageNode = db_fetch_object($result)) {
-
$images[] = $imageNode->nid;
-
}
-
-
//get array key for current node
-
-
//if there is a key before this node's key, render prev
-
$output .= '<ul class="image_nav">'."\n";
-
$output .= ' <li>'.l(t('First'),'node/'.$images[0])."</li>\n";
-
$output .= ' <li>'.l(t('Previous'),'node/'.$images[$key-1])."</li>\n";
-
$output .= "</ul>\n";
-
-
}
-
//if there is a key after this node's key, render next
-
$output .= '<ul class="image_nav">'."\n";
-
$output .= ' <li>'.l(t('Next'),'node/'.$images[$key+1])."</li>\n";
-
$output .= "</ul>\n";
-
}
-
-
return $output;
-
}
-
?>
Впишите название темы и вставьте данный код в template.php вашей темы, вот собственно и все изменения. В документах, которые находятся вашей галерее изображений появится строка с ссылками на изображения, для удобства навигации. Посмотреть как это выглядит можно, например, здесь...