2014-09-30 18 views
1

Я попытался изменить позиции loadObjectList(). Но это не работает. может ли кто-нибудь помочь мне решить эту проблему?Как изменить позиции позиции loadObjectList()?

Это код, который я использовал.

$catID = 8; 
//echo $catID; 
$doc = JFactory::getDocument(); 
$page_title = $doc->getTitle(); 
$db = JFactory::getDBO(); 
$db->setQuery("SELECT title,alias FROM #__content WHERE catid = ".$catID); 
$articles = $db->loadObjectList(); ?> 
    <div> 
    <?php foreach($articles as $article){ 
    $title = $article->title; 
     if($title == $page_title){?> 
      <h4><?php echo $article->title; ?></h4> 
    <?php 
     }else{ ?> 
     <a href="<?php echo $article->alias;?>"><h4><?php echo $article->title; ?></h4></a> 
     <?php } 
    } 
    ?> 
    </div> 

что я хочу сделать, я хочу отобразить заголовок страницы в качестве первого элемента списка. Это означает, что сначала должен отображаться элемент состояния.

Может ли кто-нибудь мне помочь?

+0

Какая ошибка возникает из-за вышеуказанного кода? – emmanuel

+0

никаких ошибок. я не могу его заказать. @emmanuel вы можете помочь мне заказать этот список? – anuruddhika

ответ

2

Быстрое сухое решение состоит в том, чтобы добавить 2 петли foreach и сначала отобразить значение, если условие соответствует, и после остальных значений.

<?php 
    foreach($articles as $article){ 
     $title = $article->title; 
     if($title == $page_title){ 
      echo '<h4>'. $article->title .'</h4>'; 
     } 
    } 
    foreach($articles as $rest_articles){ 
     $title = $rest_articles->title; 
     if($title != $page_title){ 
      echo '<a href="'. $rest_articles->alias. '"><h4>'. $rest_articles->title .'</h4></a>'; 
     } 
    } 
?> 

Лучшее решение для хранения значений в новом массиве и последующего отображения их.

Надеюсь, что это поможет

+0

Этот кронштейн правильный ?. в любом случае спасибо @emmanuel, я получил от этого идею. – anuruddhika

+0

Это может сработать. Для лучшего результата вы можете сортировать значения сначала в массиве temp и отображать их впоследствии. – emmanuel

+0

Я закрыл первый foreach, а затем начал отдыхать один. – anuruddhika

0

Просто у нас был двойной прием. Можно использовать несколько циклов foreach, однако они не требуются. Попробуйте следующее:

<?php 
    foreach($articles as $article) { 
     $title = $article->title; 
     $alias = $article->alias; 

     if($title == $page_title) { 
      echo '<h4>'. $title .'</h4>'; 
     } 
     else { 
      echo '<a href="'. $alias. '"><h4>'. $title .'</h4></a>'; 
     } 
    } 
?> 
Смежные вопросы