Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Help with basic table - managed via modelAdmin - with display limit & multiple page results

Go to End

2 Posts   854 Views


Community Member, 218 Posts

26 August 2010 at 3:36am


fairly new to SS, but loving it so far.
working on a site with a table of products.
simple table, that can be managed via modelAdmin.

i want the products to then be listed in a table on the frontend, with 25 per page, with next, previous links etc. then add a search box that searches ONLY the table of products. each product will not have its own page though, just sit in the table with a link to email/enquire about that product.

so far, i have this:

to get to where i am, i created the following:

in mysite>code>myCatalgueAdmin.php

class MyCatalogAdmin extends ModelAdmin {

public static $managed_models = array( //since 2.3.2

static $url_segment = 'products'; // will be linked as /admin/products
static $menu_title = 'Catalogue Admin';


in mysite>code>Product.php:

class Product extends DataObject {

static $db = array(
'Title' => 'Varchar',
'PartNumber' => 'Varchar',
'SerialNumber' => 'Varchar',
'AircraftRegistration' => 'Varchar',
'Type' => 'Varchar',
'AircraftSerial' => 'Varchar',
'Quantity' => 'Varchar',
'Price' => 'Currency'

static $summary_fields = array(

static $searchable_fields = array(


in mysite>code>Page.php:

function ProductList ($limit = 25){
$list = DataObject::get('Product', '', '', '', $limit);
return $list;

then in themes>template>

<table id="ProductList" width="100%" border="0">
<th width="">Title</th>
<th width="">Part Number</th>
<th width="">Serial Number</th>
<th width="">Aircraft <br>
<th width="">Type</th>
<th width="">Aircraft <br>
<th width="">Quantity </th>
<th width="">Email us</th>
<% if ProductList %>

<% control ProductList %>
<tr height="20px">
<td>$Quantity </td>
<td><a href="mailto:[email protected]?subject=$Title">Email us</a> </td>

<% end_control %>
<a href="$ProductList.NextLink">Next</a>
<a href="$ProductList.PrevLink">Previous</a>
<% end_if %>



i cant figure out the following:
A) am i even on the right track??
B) how do i get the next and previous links to work? currently they just change append the URL with ?start=25 but the list doesn't change
C) the search box searches the whole site (and seems to skip this table of products all together)

if anybody can help with this i will be eternally grateful!

thank you!!


Forum Moderator, 1848 Posts

31 August 2010 at 12:21am

This gives a nice overview...
This gives a way of chaning the results to add your data object (note it is not nescacarily the best way)