Jump to:

23375 Posts in 18175 Topics by 2866 members

General Questions

SilverStripe Forums » General Questions » Help with basic table - managed via modelAdmin - with display limit & multiple page results

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

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

Page: 1
Go to End
Author Topic: 692 Views
  • CHD
    Avatar
    Community Member
    218 Posts

    Help with basic table - managed via modelAdmin - with display limit & multiple page results Link to this post

    Hi,

    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:
    http://www.worldaircraftsolutions.com.sg/catalogue/

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

    in mysite>code>myCatalgueAdmin.php

    <?php
    class MyCatalogAdmin extends ModelAdmin {

    public static $managed_models = array( //since 2.3.2
    'Product'
    );

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

    }
    ?>

    in mysite>code>Product.php:

    <?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(
          'Title',
       'PartNumber',
           'SerialNumber'
       );

    static $searchable_fields = array(
    'Title',
    'PartNumber',
        'SerialNumber'
    );

    }
    ?>

    in mysite>code>Page.php:

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

    then in themes>template>catalogue.ss

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

    <!--$ProductList.sort(Title)-->
    <% control ProductList %>
    <tr height="20px">
    <td>$Title</td>
    <td>$PartNumber</td>
       <td>$SerialNumber</td>
       <td>$AircraftRegistration</td>
       <td>$Type</td>
       <td>$AircraftSerial</td>
    <td>$Quantity </td>
    <td><a href="mailto:test@test.com?subject=$Title">Email us</a> </td>
    </tr>

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

    </table>

    $SearchForm

    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!!

  • swaiba
    Avatar
    Forum Moderator
    1785 Posts

    Re: Help with basic table - managed via modelAdmin - with display limit & multiple page results Link to this post

    This gives a nice overview...
    http://doc.silverstripe.org/tutorial:4-site-search
    This gives a way of chaning the results to add your data object (note it is not nescacarily the best way)
    http://silverstripe.org/customising-the-cms/show/288544?start=0#post288644

    692 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.