2017-03-21 48 views
0
之上添加標題文字

我收到了包含Facebook帖子的網格。我想創建一個人們點擊按鈕時可以打開的檔案。點擊時,會顯示30天以前的facebook帖子,這需要使用ajax完成,但這是另一次。首先,我需要知道如何在我的foreach循環中分離數據。檢查結果是否超過30天,並在

當循環達到30天或更早的第一篇文章時,我想在它上面顯示一個標題文本:'archive'。

所以這樣的:

post 
post 
post 
post 

archive 
post(30days or older) 
post(30days or older) 
post(30days or older) 
post(30days or older) 

我怎樣才能做到這一點?我已經知道如何發帖,請參閱我的代碼:

foreach ($feedarray->data as $key => $feed_data) 
    { 
    if($feed_data->full_picture != ''){ 
     $fbimage = $feed_data->full_picture; 
    }else{ 
     $fbimage = 'images/placeholder/placeholder.png'; 
    } 

    $shortstrfb = substr($feed_data->message, 0, 70) . '...'; 
    if($feed_data->message != ''){ 
     $f++; 
    } 


    $date1 = date("y-m-d"); 
    $date2 = date("y-m-d",strtotime($feed_data->updated_time)); 


    $datetime1 = date_create($date1); 
    $datetime2 = date_create($date2); 
    $interval = date_diff($datetime1, $datetime2); 
    $result = $interval->format('%R%a days'); 



    // if($f > 5){ 
    // break; 
    // } 

    if($feed_data->message != '' && $feed_data->from->name == 'FB page name'){ 

     if($result > -30){ 
     $dagen = 'more than 30'; 
     }else{ 
     $dagen = 'less than 30'; 
     } 

     $facebookfeed .= ' 
      <div class="col-md-4 col-sm-6 col-xs-12 item"> 
       <div class="vk-project vk-project-grid-item"> 
        <div class="vk-img-frame"> 
        <span class="datecorner">'.date("d-m-Y",strtotime($feed_data->updated_time)).''.$dagen.'</span> 
         <a href="'.$feed_data->permalink_url.'" class="vk-img"> 
          <img style="width:370px;height:270px;object-fit:cover;" src="'.$fbimage.'" alt=""> 
         </a> 
        </div> 
        <div class="content-hidden"> 
         <p class="inbeeldtext"><a href="'.$feed_data->permalink_url.'">'.$shortstrfb.'</a></p> 
        </div> 
       </div> 
      </div>'; 
    } 
    } 
    echo $facebookfeed; 

這怎麼辦?

回答

1

您可以在循環外部放置一個變量,並在達到時間限制後將其設置爲true

通過檢查此變量的狀態,可以防止'歸檔'標題出現多次。

$reachedArchive = false; 

foreach(...) { 

    $postUpdated = strtotime($feed_data->updated_time); 

    if (!$reachedArchive && $postUpdated <= strtotime('-30 days')) { 
     $reachedArchive = true; 
     echo '<h2>Archive</h2>'; 
    } 

} 
+0

有時,如果您在移動設備上進行響應,這很難。 ;-)我更新了我的答案。謝謝! – Mary

+0

謝謝我理解你的答案背後的邏輯,但不知何故歸檔被多次循環。我不能在循環html中添加if語句。那麼我在哪裏放? – twan