2013-06-26 2 views
-3

Нужно настроить пару вещей без знания PHP на самом деле, программист вне досягаемости. В настоящее время все даты показаны как 2010, 2011, 2012, 2013. и сообщения показаны в 30/01/2013, 30/02/2013, 30/03/2013. Я бы хотел, чтобы в обоих случаях порядок был обратным.Обратный порядок размещения сообщений PHP

Что я должен изменить здесь. Спасибо.

<? 
//get last exhibition 
if($this->uri->segment(3)=="detail"){ 
$last = $this->News_model->getPostDetail($this->uri->segment(4)); 
}else{ 
$last = $this->News_model->getNewsLimit(1); 
} 
//print_r($last); 
$pictures = $this->News_model->getNewsImages($last[0]->id_news); 
?> 
<h2 class="fontface"><?php 
echo $last[0]->post_date; 
echo "<br/>"; 
echo $last[0]->news_title; ?><br/> 
<? 
if($last[0]->curator==""){ 

}else{ 
?> 
<?php echo $last[0]->curator; 
} 
?></h2> 
      <div class="grid_6 alpha"> 
      <?php 
      //print_r($last[0]); 

      echo $last[0]->news_text; 
      ?> 
      <a href="<?php echo $last[0]->external_link; ?>" target="_blank">Read text/Watch video</a> 
      </div> 

      <div class="grid_6 omega"> 
      <? 
      if(count($pictures)==1){ 
       ?> 
       <ul> 
       <? 
      }else{ 
      ?> 
      <ul id="news_slider"> 
      <? 
      } 
      ?> 

      <? 
      foreach($pictures as $img){ 
      $url = base_url()."news/".$last[0]->id_news."/".$img->file_name; 
      ?> 
      <li><img src="<?php echo $url; ?>" alt="<?php echo $last[0]->news_title; ?>" /></li> 
      <? 
      } 
      ?> 
      </ul> 
      </div> 
     <div class="clear"></div> 
<div> 

<? 
//$news = $this->News_model->getNews(); 
    if($this->uri->segment(3)=="y") 
    { 
     $y = $this->uri->segment(4); 
    }else{ 
     $y = "2013"; 
    } 
    //echo $y; 
    $total = $this->News_model->getTotalNews($y); 

    $page = 10; 
    $pages = ceil($total/$page); 
?> 

<h2 class="fontface">Previous news 
<!-- <span class="archive"><a href="<?php echo base_url('main/news/y/2012'); ?>">2012</a><a href="<?php echo base_url('main/news/y/2011'); ?>">2011</a><a href="<?php echo base_url('main/news/y/2012'); ?>">2010</a></span> --> 
<? 
$years = $this->News_model->getNewsYear(); 
foreach($years as $year) 
{ 
    ?> 
    <span class="archive"><a href="<?php echo site_url('main/news/y/'.$year->year); ?>"><?php echo $year->year; ?></a> 
    <? 
} 
?> 
</h2> 
     <ul id="full_news"> 
<? 

    for($i=1;$i<=$pages;$i++){ 
?> 
      <li> 
       <? 


       $limitstart = ($i-1)*$page; 

$news = $this->News_model->getNewsLimit_slider($limitstart,$page,$y); 


$c=0; 
foreach($news as $n){ 

       $image = $this->News_model->getNewsImagesOne($n->id_news); 

       if($image==0) 
       { 
        $url = base_url()."thumb.php?src=news/sample.png&w=300&h=99"; 
       }else{ 
        $url = base_url()."thumb.php?src=news/".$n->id_news."/".$image[0]->file_name."&w=300&h=99"; 
       } 

       switch($c) 
       { 
        case 0: 
         $class=" alpha"; 
        break; 
        case 1: 
         $class=""; 
        break; 
        case 2: 
         $class=" omega"; 
        break; 
       } 
       $name = strtolower(url_title($n->news_title,'underscore')); 
       $url_link = site_url('main/news/detail/'.$n->id_news.'/'.$name); 
       ?> 
       <div class="grid_4<?php echo $class; ?>" style="height:270px;"> 
       <img src="<?php echo $url; ?>" width="300" height="99" class="pix"/> 
       <span class="fontface"><?php echo $n->post_date; ?></span> 
       <h4 class="fontface"><?php echo $n->news_title; ?></h4> 
       <?php //echo word_limiter($n->news_text,10); ?><br/> 
       <a href="<?php echo $url_link; ?>">Read more ></a> 
       </div> 
       <? 

$c=$c+1; 
       if($c>2){ 
        $c=0; 

       } 
} 
       ?> 
      </li> 
<? 
     } 
     ?> 

      </ul> 
     <div class="clear"></div> 

</div> 
+0

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

+2

Я бы порекомендовал попробовать найти внештатного программиста, чтобы сделать это за вас. – Pitchinnate

+0

Я предполагаю, что это может быть просто проигнорировано вами. Джессика была в состоянии помочь мне. –

ответ

0

Цикл «foreach» не гарантирует никакого заказа коллекции. Вместо этого попробуйте использовать for-loop, и если порядок неправильный, измените направление. Вот как писать for-loops в PHP: PHP array printing using a loop

0

Для того, чтобы обратить вспять годы, вы можете просто добавить строку array_reverse.

$years = $this->News_model->getNewsYear(); 
$years = array_reverse($years); 
foreach($years as $year){ 

Для второй части трудно сказать, что вы хотите изменить.

+0

Спасибо! это сработало! годы теперь отменены. Вторая часть, я должен был опубликовать ссылку http://www.tkgaleria.com/index.php/main/news сообщения должны быть в обратном порядке, начиная с последней. Еще раз спасибо. –

+0

На самом деле, я попробовал добавить это по той же логике, хотя я и не знаю о PHP, и это сработало! Спасибо!!! $ news = array_reverse ($ news); –

+0

Теперь единственное, чего не хватало, это исправить слайд, который должен быть последним событием, а не самым старым. Благодарю вас, Джессика. –