簡體   English   中英

構建新聞概述

[英]Structuring news overview

我需要有關此問題的一些幫助,我已經完全停電,無法弄清楚我在做什么錯。

我使用TemplatePower作為模板引擎。 我想像這樣顯示我的新聞檔案:

23-09-2013
> Update nieuwssectie
21-09-2013
> Nog toe te voegen
20-09-2013
> Nieuwe functie nieuws
> Eerste nieuwsbericht

但這就是我得到的

23-09-2013
21-09-2013
20-09-2013
> Update nieuwssectie
> Nog toe te voegen
> Nieuwe functie nieuws
> Eerste nieuwsbericht

這是模板:

<!-- START BLOCK : newsArchiv -->
<h6 class="newsItem">Ons nieuwsarchief:</h6>
<ul class="newsArchiv">
    <!-- START BLOCK : newsArchivDateRow -->
    <li class="newsArchivRow"><span>{date}</span></li>
    <!-- END BLOCK : newsArchivDateRow -->
    <!-- START BLOCK : newsArchivItemRow -->
    <li><a href="pagina/nieuws/{url}/">{title}</a></li>
    <!-- END BLOCK : newsArchivItemRow -->
</ul>
<!-- END BLOCK : newsArchiv -->

和PHP

<?
$tpl2->newBlock( 'newsArchiv');
$item_sql = $sql->query( "SELECT * FROM news ORDER BY id DESC" );
if( $sql->num( $item_sql ) > 0 )
{
    $date1 = "";
    while( $item = $sql->fetch( $item_sql ) )
    {
        $date2 = date( "d-m-Y", $item['date'] );
        if( $date2 != $date1 )
        {
            $tpl2->newBlock( 'newsArchivDateRow');
            $tpl2->assign( "date", $date2 );
            $date1 = $date2;
        }
        $tpl2->newBlock( 'newsArchivItemRow');
        $tpl2->assign( array(
            "url" => $item['url'],
            "title" => $item['title']
        ));
    }
}
?>

我只知道有一個邏輯解決方案,我看不到它,需要向正確的方向推進。

[編輯]

根據Bart的回答,我構建了這樣的代碼並解決了問題。

模板:

<!-- START BLOCK : newsArchiv -->
<h6 class="newsItem">Ons nieuwsarchief:</h6>
<ul class="newsArchiv">
    <!-- START BLOCK : newsArchivRow -->
    <li class="newsArchivRow"><span>{date}</span></li>
    <!-- START BLOCK : newsArchivItemRow -->
    <li><a href="pagina/nieuws/{url}/">{title}</a></li>
    <!-- END BLOCK : newsArchivItemRow -->
    <!-- END BLOCK : newsArchivRow -->
</ul>
<!-- END BLOCK : newsArchiv -->

PHP:

<?php
$tpl2->newBlock( 'newsArchiv');
$item_sql = $sql->query( "SELECT * FROM news ORDER BY id DESC" );
if( $sql->num( $item_sql ) > 0 )
{
    $itemsArr = array();
    while( $itemdata = $sql->fetch( $item_sql ) )
        $itemsArr[ date( "d-m-Y", $itemdata['date'] ) ][] = array( "url"=> $itemdata['url'], "title" => $itemdata['url'] );

    foreach( $itemsArr as $date => $items )
    {
        $tpl2->newBlock( 'newsArchivRow');
        $tpl2->assign( "date", $date );
        foreach( $items as $item )
        {
            $tpl2->newBlock( 'newsArchivItemRow');
            $tpl2->assign( array(
                "url" => $item['url'],
                "title" => $item['title']
                ));
        }
    }
}
?>

我一點都不了解TemplatePower,但看起來模板引擎會立即獲取具有給定名稱的所有塊並進行渲染。 如果是這樣,您可能需要在一個區塊中構建某個日期的完整檔案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM