Forum

Thread tagged as: Problem, Runway

ul tags not appearing in Multiple Items

A first iteration of the code renders as expected. When a Multiple Item is added, the perch:before and perch:after <ul> tag is not rendered in 2nd and additional iterations.

diagnostics:

 PHP 5.6.28 is up to date
 MySQL 5.6.34 is up to date
 Image processing available
Summary information

Perch Runway: 3.0.2, PHP: 5.6.28, MySQL: mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $, with PDO
Server OS: Darwin, apache2handler
Installed apps: content (3.0.2), assets (3.0.2), categories (3.0.2), perch_blog (5.5.1), perch_forms (1.9), perch_gallery (2.8.9), perch_shop_orders (1.1), perch_shop_products (1.1), perch_shop (1.1), perch_members (1.6.1)
App runtimes: <?php $apps_list = array( 'content', 'categories', 'perch_blog', 'perch_forms', 'perch_gallery', 'perch_members', 'perch_shop' );
PERCH_LOGINPATH: /perch
PERCH_PATH: /Applications/MAMP/htdocs/jr_found/perch
PERCH_CORE: /Applications/MAMP/htdocs/jr_found/perch/core
PERCH_RESFILEPATH: /Applications/MAMP/htdocs/jr_found/perch/resources
Image manipulation: GD
PHP limits: Max upload 32M, Max POST 32M, Memory: 128M, Total max file upload: 32M
F1: 0c66c2e1f82f9e0b7617b2cb8270f2c7
Resource folder writeable: Yes
HTTP_HOST: jr.dev
DOCUMENT_ROOT: /Applications/MAMP/htdocs/jr_found
REQUEST_URI: /perch/core/settings/diagnostics/
SCRIPT_NAME: /perch/core/settings/diagnostics/index.php

template:

<div class="folio-wrapper">
    <perch:before>
        <ul>
    </perch:before>
        <perch:repeater id="flexi_images" label="Image" >
            <li>
                <img src="<perch:content type="image" id="flexi_image" label="Image" bucket="images" height="320" />" alt="<perch:content type="text" id="alt" label="Description" help="Add a simple description of the image" title="true" />" />
            </li>
        </perch:repeater>
    <perch:after>
        </ul>
    </perch:after>
</div><!-- End folio-wrapper -->

debug:


Debug Message - Perch Runway 3.0.2 [36] SELECT p.pagePath, pr.routePattern, pr.routeRegExp, p.pageTemplate, pr.routeOrder, s.settingValue AS siteOffline FROM perch2_pages p LEFT JOIN perch2_page_routes pr ON p.pageID=pr.pageID LEFT JOIN perch2_settings s ON s.settingID='siteOffline' UNION SELECT NULL AS pagePath, pr2.routePattern, pr2.routeRegExp, pr2.templatePath AS pageTemplate, pr2.routeOrder, NULL AS siteOffline FROM perch2_page_routes pr2 WHERE templateID!=0 ORDER BY routeOrder ASC, pagePath ASC Matched page: /flexfoliotest, so not using routes. Using master page: /templates/pages/component.php [1] SELECT * FROM perch2_pages WHERE pagePath='/flexfoliotest' LIMIT 1 [1] SELECT * FROM perch2_shop_cart WHERE cartID=16 [1] SELECT * FROM perch2_shop_cart WHERE cartID=16 [41] SELECT DISTINCT settingID, settingValue FROM perch2_settings WHERE userID=0 Using template: /templates/pages/attributes/default.html Using sub-template: /templates/pages/attributes/seo.html [3] SELECT regionKey, regionHTML FROM perch2_content_regions WHERE regionPage='/flexfoliotest' OR regionPage='*' ORDER BY regionPage DESC Request time: 0.1169 Process time: 0.1151 Memory: 5.9095
John Rose

John Rose 6 points

  • 4 years ago
Drew McLellan

Drew McLellan 2638 points
Perch Support

before and after render for the entire listing - that's their purpose. So before appears before the first item, and after appears after the last item.

If you want them to apply to your repeater and not the region, then they need to be placed inside the repeater.

I am only wanting to repeat the <li> items, wrapped in the <ul> and </ul> tags where they should appear in the region.

What seems strange is that a second iteration of the template, viewed in the Inspector, does not show the <ul> tags, only the initial <div> with the <li> items repeating.

I would expect that I have made a stupid mistake, but I have combed through this and I can't figure out where those <ul> tags go in the second iteration.

In simple terms, the Inspector shows the following:

<div class="folio-wrapper">
<ul>
<li>
</li>
<li>
</li>
</ul>
</div>
<div class="folio-wrapper">
<li>
</li>
<li>
</li>
</div>

Ah- got it. Skip the before and after tags and simply use the <ul> tags.

Sorry to bother you, but many thanks.