У меня такой вопрс:
Возможно в модуле image для 6 drupal сделать что бы когда открывали изображения их можно было листать по очереди, например
« первая‹ предыдущая следующая ›последняя »
Заранее спасибо!
В папке с темой создаешь копию файла node.tpl.php и переименовываешь эту копию в node-image.tpl.php, затем в нужном месте этого шаблона ставишь код типа:
$r = db_fetch_object(db_query("SELECT vid FROM {vocabulary} WHERE module = 'image_gallery' LIMIT 0,1"));
$vid = $r->vid;
$r = db_fetch_object(db_query("SELECT n.tid FROM {term_node} n INNER JOIN {term_data} h ON n.tid = h.tid WHERE n.nid = %d AND h.vid = %d", $node->nid, $vid));
$tid = $r->tid;
$arr = array();
$q = db_query("SELECT nid FROM {term_node} WHERE tid = %d", $tid);
while($r = db_fetch_object($q)){
$arr[] = $r->nid;
}
for($i = 0; $i <= count($arr) - 1; $i++){
if($arr[$i] == $node->nid){
$current = $i;
break;
}
}
if($current != 0){
$r = db_fetch_object(db_query("SELECT f.filepath, n.title, n.nid FROM {files} f INNER JOIN {node} n ON n.nid = f.nid WHERE f.filename = 'thumbnail' AND n.nid = %d LIMIT 0,1", $arr[$current-1]));
$path = "node/" . $r->nid;
$path = drupal_get_path_alias($path);
$prev = "filepath . " alt='Prev photo: " . $r->title . "'>\n";
} else $prev = "";
if($current != count($arr) - 1){
$r = db_fetch_object(db_query("SELECT f.filepath, n.title, n.nid FROM {files} f INNER JOIN {node} n ON n.nid = f.nid WHERE f.filename = 'thumbnail' AND n.nid = %d LIMIT 0,1", $arr[$current+1]));
$path = "node/" . $r->nid;
$path = drupal_get_path_alias($path);
$next = "filepath . " alt='Next photo: " . $r->title . "'>\n";
} else $next = "";
$r = db_fetch_object(db_query("SELECT f.filepath, n.title, n.nid FROM {files} f INNER JOIN {node} n ON n.nid = f.nid WHERE f.filename = 'thumbnail' AND n.nid = %d LIMIT 0,1", $arr[$current]));
$path = "image/tid/" . $tid;
$path = drupal_get_path_alias($path);
$curr = "filepath . " alt='Current photo: " . $r->title . ":: ::go to gallery'>\n";
Комментарии
Да, это возможно.
А как если не секрет
Вот тут: http://drupal.org/node/215837 я приводил рабочий пример, там же еще есть ссылки на пару других работающих вариантов.
чего то у меня не получается. а можно по подробнее.
где какой код взять и куда его вставить.
заранее спасибо!
у меня посмотри
http://ua-tiles.com/image/tid/6
если так годится, то движок сам делает такое листание.
В папке с темой создаешь копию файла node.tpl.php и переименовываешь эту копию в node-image.tpl.php, затем в нужном месте этого шаблона ставишь код типа:
$r = db_fetch_object(db_query("SELECT vid FROM {vocabulary} WHERE module = 'image_gallery' LIMIT 0,1"));
$vid = $r->vid;
$r = db_fetch_object(db_query("SELECT n.tid FROM {term_node} n INNER JOIN {term_data} h ON n.tid = h.tid WHERE n.nid = %d AND h.vid = %d", $node->nid, $vid));
$tid = $r->tid;
$arr = array();
$q = db_query("SELECT nid FROM {term_node} WHERE tid = %d", $tid);
while($r = db_fetch_object($q)){
$arr[] = $r->nid;
}
for($i = 0; $i <= count($arr) - 1; $i++){
if($arr[$i] == $node->nid){
$current = $i;
break;
}
}
if($current != 0){
$r = db_fetch_object(db_query("SELECT f.filepath, n.title, n.nid FROM {files} f INNER JOIN {node} n ON n.nid = f.nid WHERE f.filename = 'thumbnail' AND n.nid = %d LIMIT 0,1", $arr[$current-1]));
$path = "node/" . $r->nid;
$path = drupal_get_path_alias($path);
$prev = "filepath . " alt='Prev photo: " . $r->title . "'>\n";
} else $prev = "";
if($current != count($arr) - 1){
$r = db_fetch_object(db_query("SELECT f.filepath, n.title, n.nid FROM {files} f INNER JOIN {node} n ON n.nid = f.nid WHERE f.filename = 'thumbnail' AND n.nid = %d LIMIT 0,1", $arr[$current+1]));
$path = "node/" . $r->nid;
$path = drupal_get_path_alias($path);
$next = "filepath . " alt='Next photo: " . $r->title . "'>\n";
} else $next = "";
$r = db_fetch_object(db_query("SELECT f.filepath, n.title, n.nid FROM {files} f INNER JOIN {node} n ON n.nid = f.nid WHERE f.filename = 'thumbnail' AND n.nid = %d LIMIT 0,1", $arr[$current]));
$path = "image/tid/" . $tid;
$path = drupal_get_path_alias($path);
$curr = "filepath . " alt='Current photo: " . $r->title . ":: ::go to gallery'>\n";
}
print "
" . $prev . $curr . $next . "";
?>
У кого-то заработало? у меня ссылки на следующий и предыдущий не формируются.
У меня тоже!
http://drupal.ru/node/22043