Announcement

Collapse
No announcement yet.

PR8 Update 4 MMUI Template Changes: Pagination, Category Sorting, Items Per Page

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    PR8 Update 4 MMUI Template Changes: Pagination, Category Sorting, Items Per Page

    Requirements for the following code changes: MMUI Store, PR8 Update 4

    Notes BEFORE you begin:
    1. You will need to turn on Sorting Options, Page Numbers, and the Items Per Page Filter on the following pages: CTGY, PROD, PLST, SRCH. The changes will be made to the Category Product List Layout, Related Product List Layout, Product List Layout, and Search Results Layout tabs of their respective pages.
    2. THIS POST WILL NOT FIT INTO A SINGLE POST, SO IT WILL BE SPREAD ACROSS 2 POSTS. BE SURE TO READ BOTH POSTS
    3. These changes apply to the default templates. Most of you will have custom sites. This means you may have to do some digging to find where in your template the changes should go.
    STEP 1:
    Insert the following code at the top of the template in the Category Product List Layout, Related Product List Layout, Product List Layout, and Search Results Layout tabs on pages CTGY, PROD, PLST, and SRCH. You should NOT be replacing any code, just inserting:

    Code:
    <table width="100%"><tr><mvt:if expr="l.settings:product_list:products_on_page_count GT 1">
            <td nowrap align="left" valign="middle">
            <form method="get" action="&mvte:global:sessionurl;">
                <input type="hidden" name="Screen" value="&mvte:global:Screen;" />
                <input type="hidden" name="Store_Code" value="&mvte:global:Store_Code;" />
                <input type="hidden" name="Category_Code" value="&mvte:global:Category_Code;" />
                <input type="hidden" name="Product_Code" value="&mvte:global:Product_Code;" />
                <input type="hidden" name="Search" value="&mvte:global:Search;" /> 
                <input type="hidden" name="Per_Page" value="&mvte:global:Per_Page;" />
                <label for="Sort_By">Sort By:</label>
                <select name="Sort_By" onchange="this.form.submit();">
                    <mvt:if expr="ISNULL g.Sort_By">
                        <option value="disp_order" selected="selected">Default</option>
                    <mvt:else>
                        <option value="disp_order">Default</option>
                    </mvt:if>
                    <mvt:if expr="g.Sort_By EQ 'name_asc'">
                        <option value="name_asc" selected="selected">Name Ascending</option>
                    <mvt:else>
                        <option value="name_asc">Name Ascending</option>
                    </mvt:if>
                    <mvt:if expr="g.Sort_By EQ 'name_desc'">
                        <option value="name_desc" selected="selected">Name Descending</option>
                    <mvt:else>
                        <option value="name_desc">Name Descending</option>
                    </mvt:if>
                    <mvt:if expr="g.Sort_By EQ 'code_asc'">
                        <option value="code_asc" selected="selected">Code Ascending</option>
                    <mvt:else>
                        <option value="code_asc">Code Ascending</option>
                    </mvt:if>
                    <mvt:if expr="g.Sort_By EQ 'code_desc'">
                        <option value="code_desc" selected="selected">Code Descending</option>
                    <mvt:else>
                        <option value="code_desc">Code Descending</option>
                    </mvt:if>
                    <mvt:if expr="g.Sort_By EQ 'bestsellers'">
                        <option value="bestsellers" selected="selected">Best Selling</option>
                    <mvt:else>
                        <option value="bestsellers">Best Selling</option>
                    </mvt:if>
                    <mvt:if expr="g.Sort_By EQ 'price_asc'">
                        <option value="price_asc" selected="selected">Lowest Price</option>
                    <mvt:else>
                        <option value="price_asc">Lowest Price</option>
                    </mvt:if>
                    <mvt:if expr="g.Sort_By EQ 'price_desc'">
                        <option value="price_desc" selected="selected">Highest Price</option>
                    <mvt:else>
                        <option value="price_desc">Highest Price</option>
                    </mvt:if>
                    <mvt:if expr="g.Sort_By EQ 'newest'">
                        <option value="newest" selected="selected">Newest Items</option>
                    <mvt:else>
                        <option value="newest">Newest Items</option>
                    </mvt:if>
                </select>
                <noscript><input type="submit" value="go"></noscript>
            </form>
            </td></mvt:if><mvt:if expr="l.settings:product_list:products_on_page_count GT 1">
            <td nowrap align="left" valign="middle">
            <form method="get" action="&mvte:global:sessionurl;">
                <input type="hidden" name="Screen" value="&mvte:global:Screen;" />
                <input type="hidden" name="Store_Code" value="&mvte:global:Store_Code;" />
                <input type="hidden" name="Category_Code" value="&mvte:global:Category_Code;" />
                <input type="hidden" name="Product_Code" value="&mvte:global:Product_Code;" />
                <input type="hidden" name="Search" value="&mvte:global:Search;" /> 
                <input type="hidden" name="Sort_By" value="&mvte:global:Sort_By;" />
                <label for="Per_Page">View:</label>
                <select name="Per_Page" onchange="this.form.submit();">
                    <mvt:if expr="g.Per_Page EQ 10">
                        <option value="10" selected="selected">10</option>
                    <mvt:else>
                        <option value="10">10</option>
                    </mvt:if>
                    <mvt:if expr="g.Per_Page EQ 20">
                        <option value="20" selected="selected">20</option>
                    <mvt:else>
                        <option value="20">20</option>
                    </mvt:if>
                    <mvt:if expr="g.Per_Page EQ 40">
                        <option value="40" selected="selected">40</option>
                    <mvt:else>
                        <option value="40">40</option>
                    </mvt:if>
                    <mvt:if expr="g.Per_Page EQ -1">
                        <option value="-1" selected="selected">All</option>
                    <mvt:else>
                        <option value="-1">All</option>
                    </mvt:if>
                </select>
                <noscript><input type="submit" value="go"></noscript>
            </form>
            </td></mvt:if><td width="100%" align="left" valign="middle">
            <mvt:if expr="l.settings:product_list:page_links:last_page GT 1">
                <table width="100%">
                    <tr>
                        <td width="100%" align="right">
                        <table>
                                <tr>
                                    <td valign="middle">
                                    Page(s):
                                    </td>
                                    <td valign="middle">
                                        <table cellpadding="8">
                                            <tr>
                                                <td valign="middle">
                                                    <mvt:if expr="l.settings:product_list:page_links:current_page NE 1">
                                                        <a href="&mvte:product_list:page_links:prev_link;">&lt;</a>
                                                    <mvt:else>
                                                        <font color="#999">&lt;</font>
                                                    </mvt:if>
                                                </td>
                                                <td valign="middle">
                                                    <mvt:if expr="NOT l.settings:product_list:page_links:contains_first">
                                                        <a href="&mvte:product_list:page_links:first_link;">1</a>&nbsp;...&nbsp;
                                                    </mvt:if>
                                                    <mvt:foreach iterator="pages" array="product_list:page_links:pages">
                                                        <mvt:if expr="l.settings:product_list:page_links:current_page EQ l.settings:pages:page_num">
                                                            <font color="#434343" style="border-bottom: 2px solid #434343; font-weight: bold;">&nbsp;&mvte:pages:page_num;&nbsp;</font>
                                                        <mvt:else>
                                                            <a href="&mvte:pages:link;">&nbsp;&mvte:pages:page_num;&nbsp;</a>
                                                        </mvt:if>
                                                    </mvt:foreach>
                                                    <mvt:if expr="NOT l.settings:product_list:page_links:contains_last">
                                                        &nbsp;...&nbsp;<a href="&mvte:product_list:page_links:last_link;">&mvte:product_list:page_links:last_page;</a>
                                                    </mvt:if>
                                                </td>
                                                <td valign="middle">
                                                    <mvt:if expr="l.settings:product_list:page_links:current_page NE l.settings:product_list:page_links:last_page">
                                                        <a href="&mvte:product_list:page_links:next_link;">&gt;</a>
                                                    <mvt:else>
                                                        <font color="#999">&gt;</font>
                                                    </mvt:if>
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
            </mvt:if>
            </td>
        </tr>
    </table>
    Ryan Guisewite
    Lead UI Developer / Miva, Inc.
    www.miva.com

    #2
    Re: PR8 Update 4 MMUI Template Changes: Pagination, Category Sorting, Items Per Page

    STEP 2:
    You will also need to change the following code in the Category Product List Layout, Related Product List Layout, Product List Layout, and Search Results Layout tabs on pages CTGY, PROD, PLST, and SRCH.

    Replace...
    Code:
    <mvt:if expr="g.Offset OR g.NextOffset">
    <br>
    <table border="0" width="90%" align="center">
    <tr>
    <mvt:if expr="g.Offset EQ 0">
    <td>&nbsp;</td>
    <mvt:else>
    <td align="left">
    <mvt:item name="fonts" param="body_font">
    <form method="post" action="&mvt:global:sessionurl;">
    <input type="hidden" name="Screen" value="&mvte:global:Screen;">
    <input type="hidden" name="Store_Code" value="&mvte:global:Store_Code;">
    <input type="hidden" name="Category_Code" value="&mvte:global:Category_Code;">
    <input type="hidden" name="Product_Code" value="&mvte:global:Product_Code;">
    <input type="hidden" name="Search" value="&mvte:global:Search;">
    <input type="hidden" name="Offset" value="&mvte:global:PrevOffset;">
    <mvt:item name="buttons" param="Previous" />
    </form>
    </mvt:item>
    </td>
    </mvt:if>
    <mvt:if expr="g.NextOffset EQ 0">
    <td>&nbsp;</td>
    <mvt:else>
    <td align="right">
    <mvt:item name="fonts" param="body_font">
    <form method="post" action="&mvt:global:sessionurl;">
    <input type="hidden" name="Screen" value="&mvte:global:Screen;">
    <input type="hidden" name="Store_Code" value="&mvte:global:Store_Code;">
    <input type="hidden" name="Category_Code" value="&mvte:global:Category_Code;">
    <input type="hidden" name="Product_Code" value="&mvte:global:Product_Code;">
    <input type="hidden" name="Search" value="&mvte:global:Search;">
    <input type="hidden" name="Offset" value="&mvte:global:NextOffset;">
    <mvt:item name="buttons" param="Next" />
    </form>
    </mvt:item>
    </td>
    </mvt:if>
    </tr>
    </table>
    </mvt:if>
    with...
    Code:
    <mvt:if expr="NOT l.settings:product_list:page_disp_count GT 0">
        <mvt:if expr="g.Offset OR g.NextOffset">
            <br>
            <table border="0" width="100%" align="center">
            <tr>
    
    
            <mvt:if expr="g.Offset EQ 0">
                <td>&nbsp;</td>
            <mvt:else>
                <td align="left">
                    <mvt:item name="fonts" param="body_font">
    
    
                    <form method="post" action="&mvt:global:sessionurl;">
                    <input type="hidden" name="Screen" value="&mvte:global:Screen;">
                    <input type="hidden" name="Store_Code" value="&mvte:global:Store_Code;">
                    <input type="hidden" name="Category_Code" value="&mvte:global:Category_Code;">
                    <input type="hidden" name="Product_Code" value="&mvte:global:Product_Code;">
                    <input type="hidden" name="Search" value="&mvte:global:Search;">
                    <input type="hidden" name="Offset" value="&mvte:global:PrevOffset;">
                    <input type="hidden" name="Per_Page" value="&mvte:global:Per_Page;" />
                    <input type="hidden" name="Sort_By" value="&mvte:global:Sort_By;" />
                    <mvt:item name="buttons" param="Previous" />
                    </form>
    
    
                    </mvt:item>
                </td>
            </mvt:if>
    
    
            <mvt:if expr="g.NextOffset EQ 0">
                <td>&nbsp;</td>
            <mvt:else>
                <td align="right">
                    <mvt:item name="fonts" param="body_font">
    
    
                    <form method="post" action="&mvt:global:sessionurl;">
                    <input type="hidden" name="Screen" value="&mvte:global:Screen;">
                    <input type="hidden" name="Store_Code" value="&mvte:global:Store_Code;">
                    <input type="hidden" name="Category_Code" value="&mvte:global:Category_Code;">
                    <input type="hidden" name="Product_Code" value="&mvte:global:Product_Code;">
                    <input type="hidden" name="Search" value="&mvte:global:Search;">
                    <input type="hidden" name="Offset" value="&mvte:global:NextOffset;">
                    <input type="hidden" name="Per_Page" value="&mvte:global:Per_Page;" />
                    <input type="hidden" name="Sort_By" value="&mvte:global:Sort_By;" />
                    <mvt:item name="buttons" param="Next" />
                    </form>
    
    
                    </mvt:item>
                </td>
            </mvt:if>
    
    
            </tr>
            </table>
        </mvt:if>
    </mvt:if>
    Ryan Guisewite
    Lead UI Developer / Miva, Inc.
    www.miva.com

    Comment

    Working...
    X