Problem z wyświetlaniem komentarzy na stronie

0

Witam prowadzę serwis o tematyce sportowej oparty na cmsie wxsport. Mam pewien. Otóż pod wiadomościami można dodawać komentarze, które wyświetlają się w kolejności od najnowszego do najstarszego, a chciałbym żeby było odwrotnie. Jak to zrobić? Z góry dziękuję za pomoc. Kod wygląda tak:

<?php if(count($comments)): ?>
                    <h4 style="background:url(img/headerNews.jpg)" >Komentarze</h4>                    

<?php foreach ($comments as $c): ?>

                    <div class="komentarz"  id="comment-id-<?php echo $c->id ?>">
                        <div class="about"><?php echo $c->user->link() ?> <?php echo wrex::date(wrex::DATE_SHORT, $c->created_at) ?> </div>
                        <div class="avatar"><?php if($c->user->avatar): ?>
        <img src="<?php echo url::base() ?>upload/avatars/<?php echo $c->user->avatar ?>" alt="" style="border:solid 3px #D8D8D8" />
        <?php else: ?>
        <img src="http://fcparma.com.pl/upload/avatars/nofoto.jpg" alt="" style="border:solid 3px #D8D8D8" />
        <?php endif; ?></div>
                        <div class="tresckom"> <?php echo $c->content_parsed ?>
                                        <?php if(isset($wrex_roles['root']) OR isset($wrex_roles['mod_comment'])): ?>  </div><br><br>
                <div id="about">
                    <a onclick="deleteComment(<?php echo $c->id ?>)" title="Usuń"><img src="acp_images/icons/delete.png" alt="Usuń" /></a>
                    <a href="comments/moderate/<?php echo $c->id ?>" title="Ukryj / pokaż"><img src="acp_images/icons/hide.png" alt="Ukryj / pokaż" /></a>
                    <a href="comments/edit/<?php echo $c->id ?>" title="Edytuj"><img src="acp_images/icons/edit.png" alt="Edytuj" /></a>

                <?php endif; ?>
        </div>        
                    
</div>     
<?php endforeach; ?>

    
<?php else: ?>

    <h4 style="background:url(img/headerNews.jpg)">
    <?php echo Kohana::lang('news.no_comments') ?>
    </h4>
</div>

0

Użyj funkcji na array_reverse na zmiennej $comments - przed pętlą foreach. Powinno wystarczyć, ale nie wiem czy to będzie w pełni dobre rozwiazanie. Trzeba byłoby się zagłębić bardziej w kod. No ale to co proponuję - powinno pomóc.

<?php 
$comments = array_reverse($comments);
foreach ($comments as $c): ?>
0

Wyskoczył mi taki błąd:

array_reverse() [function.array-reverse]: The argument should be an array [ APPPATH/views/comments/list.php, line 6 ]

Ostrzeżenie (2): Invalid argument supplied for foreach() [ APPPATH/views/comments/list.php, line 7 ]

0

Prześledź w kodzie gdzie ustawiana jest zmienna $comments - następnie prześledź kod do miejsca w którym generowana jest ta lista komentarzy. Tam prawdopodobnie będziesz miał zapytanie do bazy danych (nie wiem jak to działa w tym w CMS'ie i Kohanie) ale najszybsze będzie odwrócenie kolejności wyników pobranych z bazy (coś w stylu ORDER BY date_created DESC).

0

Bardzo ostatecznie (jak będą problemy z dojściem do bazy) można zawsze przepętlować to coś do tablicy z autoindexem i wtedy odwrócić ```
array_reverse


coś na zasadzie:
```php
$tmp=array();
foreach($comments as $c) { $tmp[]=$c; }
$comments=array_reverse($tmp);

Trzeba tylko uważać czy zmienna ```
$comments

0

Zadziałało! Dziękuję bardzo za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1