diff -ur database_o/database.mysql database/database.mysql
--- database_o/database.mysql	2005-08-23 04:36:40.865710400 +0000
+++ database/database.mysql	2005-08-23 06:06:56.505396800 +0000
@@ -404,7 +404,7 @@
   teaser longtext NOT NULL,
   body longtext NOT NULL,
   revisions longtext NOT NULL,
-  sticky int(2) NOT NULL default '0',
+  weight smallint NOT NULL default '0',
   format int(4) NOT NULL default '0',
   PRIMARY KEY (nid),
   KEY node_type (type(4)),
diff -ur database_o/database.pgsql database/database.pgsql
--- database_o/database.pgsql	2005-08-23 04:36:40.875724800 +0000
+++ database/database.pgsql	2005-08-23 06:06:56.515411200 +0000
@@ -404,7 +404,7 @@
   teaser text NOT NULL default '',
   body text NOT NULL default '',
   revisions text NOT NULL default '',
-  sticky integer NOT NULL default '0',
+  weight smallint NOT NULL default '0',
   format smallint NOT NULL default '0',
   PRIMARY KEY  (nid)
 );
diff -ur database_o/updates.inc database/updates.inc
--- database_o/updates.inc	2005-08-23 04:36:40.875724800 +0000
+++ database/updates.inc	2005-08-23 06:06:56.525425600 +0000
@@ -107,7 +107,8 @@
   "2005-03-21" => "update_128",
   "2005-04-14" => "update_129",
   "2005-05-06" => "update_130",
-  "2005-05-07" => "update_131"
+  "2005-05-07" => "update_131",
+  "2005-05-??" => "update_132",
 );
 
 function update_32() {
@@ -2393,6 +2394,14 @@
   return $ret;
 }
 
+function update_132() {
+  $ret = array();
+  $ret[] = update_sql("ALTER TABLE {node} ADD weight tinyint(1) NOT NULL DEFAULT '0'");
+  $ret[] = update_sql("UPDATE {node} SET weight = -10 WHERE sticky = 1");
+  $ret[] = update_sql("ALTER TABLE {node} DROP sticky");
+  return $ret;
+}
+
 function update_sql($sql) {
   $edit = $_POST["edit"];
   $result = db_query($sql);
diff -ur includes_o/pager.inc includes/pager.inc
--- includes_o/pager.inc	2005-08-23 04:36:51.380830400 +0000
+++ includes/pager.inc	2005-08-23 06:06:56.535440000 +0000
@@ -15,8 +15,8 @@
  * by the query to compute the number of pages (the number of records / records
  * per page). This is done by inserting "COUNT(*)" in the original query. For
  * example, the query "SELECT nid, type FROM node WHERE status = '1' ORDER BY
- * sticky DESC, created DESC" would be rewritten to read "SELECT COUNT(*) FROM
- * node WHERE status = '1' ORDER BY sticky DESC, created DESC". Rewriting the
+ * weight ASC, created DESC" would be rewritten to read "SELECT COUNT(*) FROM
+ * node WHERE status = '1' ORDER BY weight ASC, created DESC". Rewriting the
  * query is accomplished using a regular expression.
  *
  * Unfortunately, the rewrite rule does not always work as intended for queries
diff -ur modules_o/blog.module modules/blog.module
--- modules_o/blog.module	2005-08-23 04:36:33.274795200 +0000
+++ modules/blog.module	2005-08-23 06:06:56.545454400 +0000
@@ -141,8 +141,8 @@
       $output = '';
     }
 
-    $result = pager_query(db_rewrite_sql("SELECT n.nid, n.sticky, n.created FROM {node} n WHERE type = 'blog' AND n.uid = %d AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC"), variable_get('default_nodes_main', 10), 0, NULL, $account->uid);
-    while ($node = db_fetch_object($result)) {
+    $result = pager_query(db_rewrite_sql("SELECT n.nid, n.weight, n.created FROM {node} n WHERE type = 'blog' AND n.uid = %d AND n.status = 1 ORDER BY n.weight ASC, n.created DESC"), variable_get('default_nodes_main', 10), 0, NULL, $account->uid);
+	while ($node = db_fetch_object($result)) {
       $output .= node_view(node_load(array('nid' => $node->nid)), 1);
     }
     $output .= theme('pager', NULL, variable_get('default_nodes_main', 10));
diff -ur modules_o/forum.module modules/forum.module
--- modules_o/forum.module	2005-08-23 04:36:33.294824000 +0000
+++ modules/forum.module	2005-08-23 06:06:56.555468800 +0000
@@ -371,7 +371,7 @@
   if (!$main && $type == 'node' && $node->type == 'forum') {
     // get previous and next topic
 
-    $sql = "SELECT n.nid, n.title, n.sticky, l.comment_count, l.last_comment_timestamp FROM {node} n INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {term_node} r ON n.nid = r.nid AND r.tid = %d WHERE n.status = 1 AND n.type = 'forum' ORDER BY n.sticky DESC, ". _forum_get_topic_order_sql(variable_get('forum_order', 1));
+    $sql = "SELECT n.nid, n.title, n.weight, l.comment_count, l.last_comment_timestamp FROM {node} n INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {term_node} r ON n.nid = r.nid AND r.tid = %d WHERE n.status = 1 AND n.type = 'forum' ORDER BY n.weight ASC, ". _forum_get_topic_order_sql(variable_get('forum_order', 1));
     $sql = db_rewrite_sql($sql);
     $result = db_query($sql, $node->tid);
 
@@ -669,8 +669,8 @@
 
   $term = taxonomy_get_term($tid);
 
-  $sql = db_rewrite_sql("SELECT n.nid, f.tid, n.title, n.sticky, u.name, u.uid, n.created AS timestamp, n.comment AS comment_mode, l.last_comment_timestamp, IF(l.last_comment_uid, cu.name, l.last_comment_name) AS last_comment_name, l.last_comment_uid, l.comment_count AS num_comments FROM {node} n, {node_comment_statistics} l, {users} cu, {term_node} r, {users} u, {forum} f WHERE n.status = 1 AND l.last_comment_uid = cu.uid AND n.nid = l.nid AND n.nid = r.nid AND r.tid = %d AND n.uid = u.uid AND n.nid = f.nid");
-  $sql .= tablesort_sql($forum_topic_list_header, 'n.sticky DESC,');
+  $sql = db_rewrite_sql("SELECT n.nid, f.tid, n.title, n.weight, u.name, u.uid, n.created AS timestamp, n.comment AS comment_mode, l.last_comment_timestamp, IF(l.last_comment_uid, cu.name, l.last_comment_name) AS last_comment_name, l.last_comment_uid, l.comment_count AS num_comments FROM {node} n, {node_comment_statistics} l, {users} cu, {term_node} r, {users} u, {forum} f WHERE n.status = 1 AND l.last_comment_uid = cu.uid AND n.nid = l.nid AND n.nid = r.nid AND r.tid = %d AND n.uid = u.uid AND n.nid = f.nid");
+  $sql .= tablesort_sql($forum_topic_list_header, 'n.weight ASC,');
 
   $sql_count = db_rewrite_sql("SELECT COUNT(n.nid) FROM {node} n INNER JOIN {term_node} r ON n.nid = r.nid AND r.tid = %d WHERE n.status = 1 AND n.type = 'forum'");
 
@@ -892,14 +892,14 @@
       // folder is new if topic is new or there are new comments since last visit
       if ($topic->tid != $tid) {
         $rows[] = array(
-          array('data' => _forum_icon($topic->new, $topic->num_comments, $topic->comment_mode, $topic->sticky), 'class' => 'icon'),
+          array('data' => _forum_icon($topic->new, $topic->num_comments, $topic->comment_mode, $topic->weight), 'class' => 'icon'),
           array('data' => check_plain($topic->title), 'class' => 'title'),
           array('data' => l(t('This topic has been moved'), "forum/$topic->tid"), 'colspan' => '3')
         );
       }
       else {
         $rows[] = array(
-          array('data' => _forum_icon($topic->new, $topic->num_comments, $topic->comment_mode, $topic->sticky), 'class' => 'icon'),
+          array('data' => _forum_icon($topic->new, $topic->num_comments, $topic->comment_mode, $topic->weight), 'class' => 'icon'),
           array('data' => l($topic->title, "node/$topic->nid"), 'class' => 'topic'),
           array('data' => $topic->num_comments . ($topic->new_replies ? '<br />'. l(t('%a new', array('%a' => $topic->new_replies)), "node/$topic->nid", NULL, NULL, 'new') : ''), 'class' => 'replies'),
           array('data' => _forum_format($topic), 'class' => 'created'),
@@ -918,7 +918,7 @@
   return $output;
 }
 
-function _forum_icon($new_posts, $num_posts = 0, $comment_mode = 0, $sticky = 0) {
+function _forum_icon($new_posts, $num_posts = 0, $comment_mode = 0, $weight = 0) {
 
   $base_path = variable_get('forum_icon_path', '');
   if ($base_path) {
@@ -933,7 +933,7 @@
       $icon = 'closed';
     }
 
-    if ($sticky == 1) {
+    if ($weight == -10) {
       $icon = 'sticky';
     }
 
diff -ur modules_o/node.module modules/node.module
--- modules_o/node.module	2005-08-23 04:36:33.304838400 +0000
+++ modules/node.module	2005-08-23 06:10:07.880580800 +0000
@@ -25,7 +25,7 @@
       <dt>An Author</dt><dd>The author's name. It will either be \"anonymous\" or a valid user. You <em>cannot</em> set it to an arbitrary value.</dd>
       <dt>Authored on</dt><dd>The date the node was written.</dd>
       <dt>Changed</dt><dd>The last time this node was changed.</dd>
-      <dt>Sticky at top of lists</dt><dd>In listings such as the frontpage or a taxonomy overview the teasers of a selected amount of nodes is displayed. If you want to force a node to appear on the top of such a listing, you must set it to 'sticky'. This way it will float to the top of a listing, and it will not be pushed down by newer content.
+      <dt>Display weight</dt><dd>Nodes can be assigned a weight, which allows you to override the default sort order in node lists. Lighter nodes (smaller weight) \"float up\" towards the top of listings, while heavier ones \"sink down\" towards the bottom. Within each numerical weight, nodes are sorted by other means (typically chronologically).</dd>
       <dt>Allow user comments</dt><dd>A node can have comments. These comments can be written by other users (Read-write), or only by admins (Read-only).</dd>
       <dt>Revisions</dt><dd>Drupal has a revision system so that you can \"roll back\" to an older version of a post if the new version is not what you want.</dd>
       <dt>Promote to front page</dt><dd>To get people to look at the new stuff on your site you can choose to move it to the front page. The front page is configured to show the teasers from only a few of the total nodes you have on your site (To configure how many teasers <a href=\"%teaser\">click here</a>).</dd>
@@ -93,6 +93,13 @@
 }
 
 /**
+ * Return the weight control for the content admin page
+ */
+function theme_node_weight_control($nid, $weight = 0) {
+  return "$weight<br /><input type=\"image\" border=\"0\" src=\"". theme('image', 'arrow-asc.gif'). "\" alt=\"".t('Down Arrow')."\" name=\"edit[weight_down]\" value=\"$nid\" title=\"".t('Move this node downward in the listing.')."\"/><input type=\"image\" border=\"0\" src=\"". theme('image', 'arrow-desc.gif'). "\" alt=\"".t('Up Arrow')."\" name=\"edit[weight_up]\" value=\"$nid\" title=\"".t('Move this node upward in the listing.')."\"/>";
+}
+
+/**
  * Update the 'last viewed' timestamp of the specified node for current user.
  */
 function node_tag_new($nid) {
@@ -733,7 +740,6 @@
   $operations = array(
     'approve' =>   array(t('Approve the selected posts'), 'UPDATE {node} SET status = 1, moderate = 0 WHERE nid = %d'),
     'promote' =>   array(t('Promote the selected posts'), 'UPDATE {node} SET status = 1, promote = 1 WHERE nid = %d'),
-    'sticky' =>    array(t('Make the selected posts sticky'), 'UPDATE {node} SET status = 1, sticky = 1 WHERE nid = %d'),
     'demote' =>    array(t('Demote the selected posts'), 'UPDATE {node} SET promote = 0 WHERE nid = %d'),
     'unpublish' => array(t('Unpublish the selected posts'), 'UPDATE {node} SET status = 0 WHERE nid = %d'),
     'delete' =>    array(t('Delete the selected posts'), '')
@@ -743,6 +749,12 @@
   $op = $_POST['op'];
 
   $edit = $_POST['edit'];
+  if (isset($edit['weight_up'])) {
+    node_add_weight($edit['weight_up'], 1);
+  }
+  else if (isset($edit['weight_down'])) {
+    node_add_weight($edit['weight_down'], -1);
+  }
   if (($op == t('Update') || $op == t('Delete all')) && isset($edit['operation']) && isset($edit['nodes'])) {
     $edit['nodes'] = array_diff($edit['nodes'], array(0));
     if (count($edit['nodes']) == 0) {
@@ -751,9 +763,9 @@
     else {
       if ($operations[$edit['operation']][1]) {
         // Flag changes
-       $operation = $operations[$edit['operation']][1];
+        $operation = $operations[$edit['operation']][1];
         foreach ($edit['nodes'] as $nid => $value) {
-          if ($value) {
+        if ($value) {
             db_query($operation, $nid);
           }
         }
@@ -803,10 +815,11 @@
     'status'   => array('title' => t('status'),
                         'options' => array('status-1'   => t('published'),     'status-0' => t('not published'),
                                            'moderate-1' => t('in moderation'), 'moderate-0' => t('not in moderation'),
-                                           'promote-1'  => t('promoted'),      'promote-0' => t('not promoted'),
-                                           'sticky-1'   => t('sticky'),        'sticky-0' => t('not sticky'))),
+                                           'promote-1'  => t('promoted'),      'promote-0' => t('not promoted'))),
     'type'     => array('title' => t('type'), 'where' => "n.type = '%s'",
-                        'options' => $node_types));
+                        'options' => $node_types),
+    'weight'   => array('title' => t('order'), 'orderby' => 'n.weight ASC, n.created DESC',
+	                    'options' => array('front-page ordering')));
   // Merge all vocabularies into one for retrieving $value below
   if ($taxonomy = module_invoke('taxonomy', 'form_all')) {
     $terms = array();
@@ -883,7 +896,7 @@
   $output .= form_group(t('Show only items where'), $form);
 
   // Build query
-  $where = $args = array();
+  $where = $args = $orderby = array();
   $join = '';
   foreach ($session as $filter) {
     list($key, $value) = $filter;
@@ -893,13 +906,18 @@
       $where[] = 'n.'. $key .' = %d';
     }
     else {
-      $where[] = $filters[$key]['where'];
+	  if (!empty($filters[$key]['where']))
+        $where[] = $filters[$key]['where'];
     }
     $args[] = $value;
     $join .= $filters[$key]['join'];
+    if (!empty($filters[$key]['orderby']))
+      $orderby[] = $filters[$key]['orderby'];
   }
+  $orderby[] = 'n.changed DESC';
   $where = count($where) ? 'WHERE '. implode(' AND ', $where) : '';
-  $result = pager_query('SELECT n.*, u.name, u.uid FROM {node} n '. $join .' INNER JOIN {users} u ON n.uid = u.uid '. $where .' ORDER BY n.changed DESC', 50, 0, NULL, $args);
+  $orderby = count($orderby) ? ' ORDER BY '. implode(', ', $orderby) : '';
+  $result = pager_query('SELECT n.*, u.name, u.uid FROM {node} n '. $join .' INNER JOIN {users} u ON n.uid = u.uid '. $where . $orderby, 50, 0, NULL, $args);
 
   // Make sure the update controls are disabled if we don't have any rows to select from.
   $disabled = !db_num_rows($result);
@@ -916,7 +934,7 @@
   $output .= '</div>';
 
   // Overview table:
-  $header = array(NULL, t('Title'), t('Type'), t('Author'), t('Status'), t('Operations'));
+  $header = array(NULL, t('Title'), t('Type'), t('Author'), t('Status'), t('Operations'), t('Weight'));
 
   $destination = drupal_get_destination();
   while ($node = db_fetch_object($result)) {
@@ -925,11 +943,12 @@
                     node_invoke($node, 'node_name'),
                     format_name($node),
                     ($node->status ? t('published') : t('not published')),
-                    l(t('edit'), 'node/'. $node->nid .'/edit', array(), $destination));
+                    l(t('edit'), 'node/'. $node->nid .'/edit', array(), $destination),
+                    theme('node_weight_control', $node->nid, $node->weight));
   }
 
   if ($pager = theme('pager', NULL, 50, 0)) {
-    $rows[] = array(array('data' => $pager, 'colspan' => '7'));
+    $rows[] = array(array('data' => $pager, 'colspan' => '8'));
   }
 
   if (!$rows) {
@@ -1249,7 +1268,7 @@
     $node->status = in_array('status', $node_options);
     $node->moderate = in_array('moderate', $node_options);
     $node->promote = in_array('promote', $node_options);
-    $node->sticky = in_array('sticky', $node_options);
+    $node->weight = 0;
     $node->revision = in_array('revision', $node_options);
     unset($node->created);
   }
@@ -1314,7 +1333,7 @@
     $options .= form_checkbox(t('Published'), 'status', 1, isset($edit->status) ? $edit->status : in_array('status', $node_options));
     $options .= form_checkbox(t('In moderation queue'), 'moderate', 1, isset($edit->moderate) ? $edit->moderate : in_array('moderate', $node_options));
     $options .= form_checkbox(t('Promoted to front page'), 'promote', 1, isset($edit->promote) ? $edit->promote : in_array('promote', $node_options));
-    $options .= form_checkbox(t('Sticky at top of lists'), 'sticky', 1, isset($edit->sticky) ? $edit->sticky : in_array('sticky', $node_options));
+    $options .= form_weight(t('Display weight'), 'weight', isset($edit->weight) ? $edit->weight : 0);
     $options .= form_checkbox(t('Create new revision'), 'revision', 1, isset($edit->revision) ? $edit->revision : in_array('revision', $node_options));
 
     $output .= '<div class="options">';
@@ -1614,7 +1633,7 @@
  * Generate a listing of promoted nodes.
  */
 function node_page_default() {
-  $result = pager_query(db_rewrite_sql('SELECT n.nid, n.sticky, n.created FROM {node} n WHERE n.promote = 1 AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC'), variable_get('default_nodes_main', 10));
+  $result = pager_query(db_rewrite_sql('SELECT n.nid, n.weight, n.created FROM {node} n WHERE n.promote = 1 AND n.status = 1 ORDER BY n.weight ASC, n.created DESC'), variable_get('default_nodes_main', 10));
 
   if (db_num_rows($result)) {
     drupal_add_link(array('rel' => 'alternate',
@@ -1777,13 +1796,17 @@
   switch ($op) {
     case 'settings':
       // $node contains the type name in this operation
-      return form_checkboxes(t('Default options'), 'node_options_'. $node->type, variable_get('node_options_'. $node->type, array('status', 'promote')), array('status' => t('Published'), 'moderate' => t('In moderation queue'), 'promote' => t('Promoted to front page'), 'sticky' => t('Sticky at top of lists'), 'revision' => t('Create new revision')), t('Users with the <em>administer nodes</em> permission will be able to override these options.'));
+      return form_checkboxes(t('Default options'), 'node_options_'. $node->type, variable_get('node_options_'. $node->type, array('status', 'promote')), array('status' => t('Published'), 'moderate' => t('In moderation queue'), 'promote' => t('Promoted to front page'), 'revision' => t('Create new revision')), t('Users with the <em>administer nodes</em> permission will be able to override these options.'));
 
     case 'fields':
-      return array('nid', 'uid', 'type', 'title', 'teaser', 'body', 'revisions', 'status', 'promote', 'moderate', 'sticky', 'created', 'changed', 'format');
+      return array('nid', 'uid', 'type', 'title', 'teaser', 'body', 'revisions', 'status', 'promote', 'moderate', 'weight', 'created', 'changed', 'format');
   }
 }
 
+function node_add_weight($nid, $weight = 1) {
+  db_query('UPDATE {node} SET weight = weight + %d WHERE nid = %d', $weight, $nid);
+}
+
 /**
  * @defgroup node_access Node access rights
  * @{
diff -ur modules_o/taxonomy.module modules/taxonomy.module
--- modules_o/taxonomy.module	2005-08-23 04:36:33.324867200 +0000
+++ modules/taxonomy.module	2005-08-23 06:06:56.585512000 +0000
@@ -836,7 +836,7 @@
 
     if ($operator == 'or') {
       $str_tids = implode(',', call_user_func_array('array_merge', $descendant_tids));
-      $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $str_tids .') AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC';
+      $sql = 'SELECT DISTINCT(n.nid), n.weight, n.title, n.created FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $str_tids .') AND n.status = 1 ORDER BY n.weight ASC, n.created DESC';
       $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $str_tids .') AND n.status = 1';
     }
     else {
@@ -846,7 +846,7 @@
         $joins .= ' INNER JOIN {term_node} tn'. $index .' ON n.nid = tn'. $index .'.nid';
         $wheres .= ' AND tn'. $index .'.tid IN ('. implode(',', $tids) .')';
       }
-      $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres .' ORDER BY n.sticky DESC, n.created DESC';
+      $sql = 'SELECT DISTINCT(n.nid), n.weight, n.title, n.created FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres .' ORDER BY n.weight ASC, n.created DESC';
       $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n '. $joins .' WHERE n.status = 1 ' . $wheres;
     }
     $sql = db_rewrite_sql($sql);
diff -ur themes_o/bluemarine/style.css themes/bluemarine/style.css
--- themes_o/bluemarine/style.css	2005-08-23 04:36:55.827224000 +0000
+++ themes/bluemarine/style.css	2005-08-23 06:06:56.595526400 +0000
@@ -229,7 +229,7 @@
 .node {
   margin: .5em 0 2em 0;
 }
-.sticky {
+.node-weight--10 {
   padding: .5em;
   background-color: #eee;
   border: solid 1px #ddd;
diff -ur themes_o/bluemarine/xtemplate.xtmpl themes/bluemarine/xtemplate.xtmpl
--- themes_o/bluemarine/xtemplate.xtmpl	2005-08-23 04:36:55.827224000 +0000
+++ themes/bluemarine/xtemplate.xtmpl	2005-08-23 06:06:56.595526400 +0000
@@ -70,7 +70,7 @@
 <!-- END: header -->
 
 <!-- BEGIN: node -->
-  <div class="node {sticky}">
+  <div class="node node-weight-{weight}">
     <!-- BEGIN: picture -->
     {picture}
     <!-- END: picture -->
diff -ur themes_o/engines/xtemplate/xtemplate.engine themes/engines/xtemplate/xtemplate.engine
--- themes_o/engines/xtemplate/xtemplate.engine	2005-08-23 04:36:55.847252800 +0000
+++ themes/engines/xtemplate/xtemplate.engine	2005-08-23 06:06:56.605540800 +0000
@@ -48,7 +48,7 @@
         "title"     => check_plain($node->title),
         "author"    => format_name($node),
         "date"      => format_date($node->created),
-        "sticky"    => ($main && $node->sticky) ? 'sticky' : '',
+        "weight"    => $node->weight,
         "content"   => ($main && $node->teaser) ? $node->teaser : $node->body));
 
   if ($page == 0) {
diff -ur themes_o/pushbutton/xtemplate.xtmpl themes/pushbutton/xtemplate.xtmpl
--- themes_o/pushbutton/xtemplate.xtmpl	2005-08-23 04:36:55.897324800 +0000
+++ themes/pushbutton/xtemplate.xtmpl	2005-08-23 06:06:56.615555200 +0000
@@ -88,7 +88,7 @@
 <!-- END: header -->
 
 <!-- BEGIN: node -->
-  <div class="node {sticky}">
+  <div class="node node-weight-{weight}">
     <!-- BEGIN: picture -->
     {picture}
     <!-- END: picture -->
