2014-05-11 5 views
0

질문이 있는데 아직 해결책을 찾지 못했습니다. 나는처럼 보이는 내 블로그에 아카이브가 :CodeIgniter에서 기사 보관을 표시하는 방법은 무엇입니까?

May[2014] 
    -Title 1 article 
May[2014] 
    -Title 2 article 
April[2014] 
    -Title 3 article 

을하지만이 같은 보여 같은 달에 하나 이상의 기사 publishees이있는 경우 내가 원하는 :

May[2014] 
-Title 1 article 
-Title 2 article 
May[2014] 
Title 3 article 

내 코드 :

<?php if ($archive): $_month = '0000-00'; ?> 
       <?php foreach($archive as $a):?> 
        <div class="archive"> 
         <div class="month"> 
         <?php if (date('Y-m', strtotime($a['date'])) !== $_month) :?> 
          + <?php echo date('M',strtotime($a['date']))?> [<?php echo date("Y",strtotime($a['date']))?>] 
           <div class="month-article last-article-content"> 
            <span class="most-popular-articles"><img src="<?php echo config_item('base_url');?>assets/images/arrow.png">&nbsp&nbsp<a href="<?php echo base_url('materials/'.$a['id'].'/'.make_permalink($a['title'])).'.html'; ?>"><?php echo ($a['title']) ?></a></span> 
           </div> 
         <?php endif; ?> 
         <?php $_month = date('Y-m',strtotime($a['date'])) ?> 
         </div> 
        </div> 
       <?php endforeach; ?> 
      <?php endif; ?> 
+0

해결책이 있습니까? – user3613935

답변

0

$a['date']+1은 상상할 수있는대로 작동하지 않습니다.

기사가 날짜순으로 정렬되었다고 가정하면 이전 날짜를 포함하는 변수를 만들어야합니다.

<?php 
$_month = '0000-00'; 
foreach ($articles as $a) : 

    if (date('Y-m', strtotime($a['date'])) !== $_month) { 
     echo date('M',strtotime($a['date'])); 
    } 
    ... 

    $_month = date('Y-m', strtotime($a['date'])); 

endforeach; 
?> 
+0

$ _month = '0000-00';;을 (를) 이해할 수 없습니다. – user3613935

+0

변수를 초기화하고 첫 번째 줄에 월을 표시하려고하지만 빈 문자열을 만들 수 있기 때문에. –

+0

나는 편집 된 질문이지만 단 하나의 기사 만 표시합니다. – user3613935