Hi. Is any simple method table view shows row number (# 1, 2, 3, ....) in table as first column? I not found that field type or view type for View module. THX. Alek.

Comments

Well, hope that this is simple enough

There may be a simpler method, but this is what works for me.

1. Create a new custom module (I just call it custom.module)
2. Put the code below in it

<?php
function theme_views_view_table_addrownumber($view, $nodes) {
 
// Insert a No Header Column
 
array_unshift(
   
$view->table_header,
    array(
'data' => 'No', 'class' => 'view-cell-header view-field-row-number'));
       
 
// Get All Fields
 
$fields = _views_get_fields();

 
// Build Rows
 
$count = 0;
  foreach (
$nodes as $node) {   
   
$row = array();
   
// First Column is Row Numbering
   
$count += 1;
   
$cell['data']  = $count + $_GET['page'] * $view->nodes_per_page;
   
$cell['class'] = 'view-field ' . 'view-field-row-number';
   
$row[] = $cell;
   
// Loop the rest of fields
   
foreach ($view->field as $field) {
      if (
$fields[$field['id']]['visible'] !== FALSE) {
       
$cell['data'] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
       
$cell['class'] = "view-field ". views_css_safe('view-field-'. $field['queryname']);
       
$row[] = $cell;
      }
    }
   
$rows[] = $row;
  }
 
  return
theme('table', $view->table_header, $rows); 
}
?>

3. For every views that u want to add row numbering, simply add this code

<?php
 
function theme_views_view_table_<YOUR_VIEW_NAME>($view, $nodes) {
    return
theme_views_view_table_addrownumber($view, $nodes);
?>

-=- Jhon -=-

EtradingGallery

-=- Jhon -=-

For Views 2 on Drupal 6

In Views 2 this has been made so simple :P

This is a simple modification from the default views theme tpl

Just put this views-view-table.tpl.php into your theme folder.

<table class="<?php print $class; ?>">
  <?php if (!empty($title)) : ?>
    <caption><?php print $title; ?></caption>
  <?php endif; ?>
  <thead>
    <tr>
      <th>No</th>
      <?php foreach ($header as $field => $label): ?>
        <th class="views-field views-field-<?php print $fields[$field]; ?>">
          <?php print $label; ?>
        </th>
      <?php endforeach; ?>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($rows as $count => $row): ?>
      <tr class="<?php print ($count % 2 == 0) ? 'even' : 'odd';?>">
        <td><?php print $count+1+($view->pager['current_page']*$view->pager['items_per_page']); ?></td>
        <?php foreach ($row as $field => $content): ?>
          <td class="views-field views-field-<?php print $fields[$field]; ?>">
            <?php print $content; ?>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
  </tbody>
</table>

PS: Remember to clear drupal cache

EtradingGallery

-=- Jhon -=-

EtradingGallery

-=- Jhon -=-

don't get it

sorry, but I don't get it. put the above code for views2 into views-view-table.tpl.php substiting "print $rows" part but get "Invalid argument supplied for foreach()" for the two foreach() used in php.

Well, then try to put the

Well, then try to put the original file from views/theme/views-view.table.tpl.php into your theme folder.
And then remember to clear views cache. See if it still fail on the foreach.

If it works, then the above code should work, but then I haven't got time to check it againts recent views2.

EtradingGallery

-=- Jhon -=-

Thanks Jhon, this just

Thanks Jhon, this just helped my out a great bunch!

http://www.kvaes.be - http://www.artistiku.com

nice tip… simply adding it

nice tip…
simply adding it to the template.php of your theme works also

The Views Custom Field module

The Views Custom Field module does that. :)

Really simple to use.
You can set rownumber field everywhere you need it.

Excellent, now why don't I

Excellent, now why don't I see that before ?

There's whole lots of small useful module out there hiding somewhere ;)

EtradingGallery

-=- Jhon -=-

Hi Wuf, exactly! lol there is

Hi Wuf, exactly! lol there is a lot of useless module too! lol

Simple way to dispaly row no. in views 2

Add a field called 'view result counter' (under 'global' in the selection list) and move it to top position using sort.

nobody click here