データベースからすべての投稿を取得するページがあり、codeigniter のページネーション クラスを使用します。
しかし、私はより多くの投稿のために Facebook テクニカルを使用する必要があります。
私のコントローラー:-
public function index($page=1) {
$options = new Option();
$options->get();
$oppArray = array();
foreach($options as $opt){
$oppArray[$opt->name]= $opt->value;
}
$this->data['options'] = $oppArray;
//if($this->session->userdata('id'))
if(isset($_SESSION['user_id']) || !empty($_SESSION['user_id']))
{
$this->template->set_layout('default');
$this->template->build('home_view',$this->data);
}
else{
$this->template->set_layout('reg');
$data['title']= 'الرئيسية || تسجيل الدخول او تسجيل جديد بالموقع';
$this->template->build('registration_view',$this->data);
}
/************************************** Post *******************************************************************/
$this->load->model('blog');
if(isset($_POST['post']) && (!empty($_POST['post']) || strlen($_FILES['inputUpProfile']['name']) > 0) ){
if(strlen($_FILES['inputUpProfile']['name']) > 0)
{
$pic = $this->do_upload('inputUpProfile');
if ($this->input->post('post') == ''){$type="image";} else {$type="image-with-text";}
}
else {$pic = ""; $type = "text"; }
$result = $this->blog->addPost($_SESSION['user_id'], $type , $this->input->post('post'),$pic);
}
if(isset($_SESSION['user_id']) || !empty($_SESSION['user_id'])){
$config['base_url'] = site_url("./home/index");
$config['total_rows'] = $this->blog->countPosts($_SESSION['user_id']);
$config['per_page'] = 10;
$config['uri_segment'] = 3;
$config['num_links'] = 1;
$config['use_page_numbers']= True;
$config['display_pages'] = True;
$this->pagination->initialize($config);
$this->data['blog'] = $this->blog->getPosts($_SESSION['user_id'], $config['per_page'] , ($page-1)*$config['per_page']);
$this->template->build("home_view" , $this->data);
}
else
{
$this->template->build('registration_view',$this->data);
}
}
ビューは次のとおりです。
<div id="inner-page-home">
<div class="boxx" id="doctor">
<div id="doc-title">
<h1>مـــاذا تعمل الان</h1>
<a href="#">عرض الكل</a>
</div>
<div id="massge" style="float:right">
<form method="post" action="<?php echo site_url('home')?>" enctype="multipart/form-data">
<div class="upimgstatus">
</div>
<div class="textstatus">
<input id="inputUpProfile" name="inputUpProfile" class="inputUpProfile hidefile" type="file" />
<input type="button" id="PicUpProfile" class="sentpic" value="اضافة صورة">
<input name="post" type="text" id="text" placeholder="اكتب رسالتك هنا ...">
<input type="submit" id="sent" value="إرسال">
</div>
</form>
</div>
<div style="clear: both"></div>
<ol class="timeline clear">
<li class="spine">
</li>
<?php
$counter=0;
foreach ($blog as $row) {
if($counter % 2 == 0){$class= "right";} else $class="left";
?>
<!-- li class="<? //$class ?>" -->
<li class="right" id="post_row<?php echo $row->ev_id; ?>">
<i class="pointer"></i>
<div class="unit">
<!-- Story -->
<div class="storyUnit">
<div class="imageUnit">
<? if (empty($row->pic)) { ?>
<a href="#"><img width="32" height="32" alt="" src="images/nopic.png"></a>
<? } else { ?>
<a href="#"><img width="32" height="32" alt="" src="uploads/<?php echo $row->pic; ?>"></a>
<? } ?>
<? if ($row->ev_user_id == $_SESSION['user_id']){ ?>
<div id="delpost" style="float:left"><a href="#" id="deletepost" onClick="delete_post('<?=$row->ev_id;?>'); return false;">X</a></div>
<? } ?>
<div class="imageUnit-content">
<h4><a href="./myaccount/profile/<?php echo $row->id; ?>"><?php echo $row->fullname; ?></a></h4>
<p><?php echo $row->ev_date ?></p>
</div>
</div>
<p><?php echo $row->ev_text; ?></p>
<? if (!empty($row->ev_pic)) { ?>
<p><img src="uploads/<?php echo $row->ev_pic ?>" width="250" height="250"</p>
<? } ?>
</div>
<!-- / Story -->
<!-- Units -->
<ol class="storyActions" id="storyActions<?php echo $row->ev_id; ?>">
<?
$selectComment = mysql_query("select * from comment,users where
comment.co_postid = '".$row->ev_id."'
and comment.co_userid = users.id order by co_date ");
while($rows=mysql_fetch_array($selectComment)){
?>
<div id="resultcomment<?php echo $row->ev_id; ?>"></div>
<div id="resultcomment" style="border-top:1px solid #fff;">
<a href="./myaccount/profile/<?php echo $rows['id']; ?>">
<img src="uploads/<?=$rows["pic"];?>" width="32" height="32" class="rightc" />
</a>
<b><a href="./myaccount/profile/<?php echo $rows['id']; ?>"><?=$rows["fullname"]; ?></a></b>
<span> </span>
<span><?=$rows["co_comment"]; ?></span>
<br />
<span class="commentdate"><?=$rows["co_date"]; ?></span></br></div>
<? } ?>
<form action="" method="post" accept-charset="utf-8">
<input type="text" class="commentwall" id="comment<?php echo $row->ev_id; ?>" name="comment<?php echo $row->ev_id; ?>" size="41" />
<input type="hidden" id="postid<?php echo $row->ev_id; ?>" name="postid<?php echo $row->ev_id; ?>" size="41" value="<?php echo $row->ev_id; ?>" />
<button type="button" id="submit" onclick="add_comment_wall(<?php echo $row->ev_id; ?>)">ارسل</button>
</form>
</ol>
<!-- / Units -->
</div>
</li>
<?php $counter++; } ?>
<div class="clear"></div>
<div class="paginate">
<ul>
<?=$this->pagination->create_links(); ?>
</ul>
<div class="clear"></div>
</div>
<div class="clear"></div>
</ol>
</div>
</div>
<script type="text/javascript">
function add_comment_wall($id) {
//get input data as a array
var post_data = {
'comment': $("#comment"+$id+"").val(),
'postid': $("#postid"+$id+"").val()
};
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>home/insertCommentWall",
data: post_data,
success: function(comment) {
// return success message to the id='result' position
$("#storyActions"+$id+"").append(comment);
$("#comment"+$id+"").val("");
}
});
}
</script>
したがって、このビューを開くと 10 レコードが表示され、ブラウザを下にスクロールしても 10 から 20 レコードを開く必要はありません