Index: image.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/image/image.module,v retrieving revision 1.196 diff -u -r1.196 image.module --- image.module 20 Apr 2006 07:20:54 -0000 1.196 +++ image.module 23 Apr 2006 09:53:35 -0000 @@ -77,6 +77,7 @@ $form['gallery'] = array('#type' => 'fieldset', '#title' => t('Gallery settings')); $form['gallery']['image_images_per_page'] = array('#type' => 'textfield', '#title' => t('Images per page'), '#default_value' => variable_get('image_images_per_page', 6), '#size' => 3, '#description' => t('Sets the number of images to be displayed in a gallery page.')); + $form['gallery']['image_order'] = array('#type' => 'radios', '#title' => t('Sort order'), '#default_value' => variable_get('image_order', 'desc'), '#options' => array('desc' => t('Most recent to least recent'), 'asc' => t('Least recent to most recent')), '#description' => t('Defines how images are sorted in a gallery page.')); return $form; } @@ -419,18 +420,25 @@ * Image gallery callback, displays an image gallery */ function image_page($type = NULL, $tid = 0) { + if (variable_get('image_order', 'desc') == 'asc') { + $order = 'n.created ASC, n.nid ASC'; + } + else { + $order = 'n.created DESC, n.nid DESC'; + } + $galleries = taxonomy_get_tree(_image_get_vid(), $tid, -1, 1); for ($i=0; $i < count($galleries); $i++) { $galleries[$i]->count = taxonomy_term_count_nodes($galleries[$i]->tid, 'image'); $tree = taxonomy_get_tree(_image_get_vid(), $galleries[$i]->tid, -1); $descendant_tids = array_merge(array($galleries[$i]->tid), array_map('_taxonomy_get_tid_from_term', $tree)); - $last = db_fetch_object(db_query_range(db_rewrite_sql('SELECT n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN (%s) AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC'), implode(',', $descendant_tids), 0, 1)); + $last = db_fetch_object(db_query_range(db_rewrite_sql("SELECT n.nid FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN (%s) AND n.status = 1 ORDER BY n.sticky DESC, $order"), implode(',', $descendant_tids), 0, 1)); $galleries[$i]->latest = node_load(array('nid' => $last->nid)); } $images = array(); if ($tid) { - $result = pager_query(db_rewrite_sql("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"), variable_get('image_images_per_page', 6), 0, NULL, $tid); + $result = pager_query(db_rewrite_sql("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, $order"), variable_get('image_images_per_page', 6), 0, NULL, $tid); while ($node = db_fetch_object($result)) { $images[] = node_load(array('nid' => $node->nid)); }