saeed-magicboy
Member
سلام خدمت همه.
من دارم سیستم سایتم یه تمپلیت انجین مینویسم که تقریبا تمومش کردم. اما یجاش به مشکل برخوردم. اونم اینه که برای نمایش پستهام باید طوری کلاس کار کنه قابلیت صفحه بندی هم داشته باشه. نمیدونم چطوری توضیح بدم. کدها را میذارم ببینید کجاشو باید تغییر بدم
کد کلاس اجرای لوپ:
اینم کد اجرای حلقه که در فایل tpl قرار میگیره:
اینم کدهای بوجود آورنده تگها:
این کد آخریه که قراره اطلاعات رو بگیره درست کار میکنه اما فقط برای بار اول. یعنی اگه تعداد پستهای هر صفحه را 4 تا مثل بالا مشخص کرده باشیم میاد 4 تای اخر رو میگیره و نمایش میده. اما فقط همین 4 تا را. یعنی اینکه من در اصل میخوام نحوه اتصال این حلقه for به ایجاد صفحات رو بدونم.
منتظرم/.
من دارم سیستم سایتم یه تمپلیت انجین مینویسم که تقریبا تمومش کردم. اما یجاش به مشکل برخوردم. اونم اینه که برای نمایش پستهام باید طوری کلاس کار کنه قابلیت صفحه بندی هم داشته باشه. نمیدونم چطوری توضیح بدم. کدها را میذارم ببینید کجاشو باید تغییر بدم
کد کلاس اجرای لوپ:
PHP:
function parse_loop_saeed($file_id, $array_name){
global $$array_name;
$loop_code = '';
$start_pos = strpos(strtolower($this->files[$file_id]), '{loop-infocms name="'.$array_name.'"}') + strlen('{loop-infocms name="'.$array_name.'"}');
$end_pos = strpos(strtolower($this->files[$file_id]), '{/loop-infocms name="'.$array_name.'"}');
$loop_code = substr($this->files[$file_id], $start_pos, $end_pos-$start_pos);
$start_tag = substr($this->files[$file_id], strpos(strtolower($this->files[$file_id]), '{loop-infocms name="'.$array_name.'"}'),strlen('{loop-infocms name="'.$array_name.'"}'));
$end_tag = substr($this->files[$file_id], strpos(strtolower($this->files[$file_id]), '{/loop-infocms name="'.$array_name.'"}'),strlen('{/loop-infocms name="'.$array_name.'"}'));
if($loop_code != ''){
$new_code = '';
for($i=0; $i<count($$array_name); $i++){
$temp_code = $loop_code;
while(list($key,) = each(${$array_name}[$i])){
$temp_code = str_replace($this->start.$key.$this->end,${$array_name}[$i][$key], $temp_code);
}
$new_code .= $temp_code;
}
$this->files[$file_id] = str_replace($start_tag.$loop_code.$end_tag, $new_code, $this->files[$file_id]);
}
}
PHP:
{loop-infocms name="post"}
تگهایی که قراره تکرا بشه.
{/loop-infocms name="post"}
PHP:
$PostPerPage = 4;
$sqlpost = "SELECT * from infocms_postdata Order BY post_id DESC limit 1";
$resultpost = $db->query($sqlpost);
$Rowpost = $resultpost->fetch();
$Rowpost= $Rowpost['post_id'];
$post = array();
$j = $Rowpost - $PostPerPage;
for( $i=$Rowpost; $i>$j; $i--){
$sqlpost = "SELECT * from infocms_postdata where post_id=".$i."";
$resultpost = $db->query($sqlpost);
$rowpost = $resultpost ->fetch();
if (!$rowpost) { $i = $i;} else
$post[] = array('PostID' => ''.$rowpost['post_id'].'',
'PostName' => ''.$rowpost['name'].'',
'PostCat' => ''.$rowpost['cat'].'',
'PostSubcat' => ''.$rowpost['subcat'].'',
'PostBuylink' => ''.$rowpost['Buy_link'].'',
'PostHit' => ''.$rowpost['Hits'].'',
'PostPicSmall' => ''.$rowpost['soft_pic'].'',
'PostPicBig' => ''.$rowpost['softpic_big'].'',
'PostShortDesc' => ''.$rowpost['short_desc'].'',
'PostFullDesc' => ''.$rowpost['full_desc'].'',
'PostDate' => ''.$rowpost['Date'].'',
'PostSize' => ''.$rowpost['size'].'',
'PostPrice' => ''.$rowpost['price'].'',
'PostOldPrice' => ''.$rowpost['old_price'].'',
);
}
این کد آخریه که قراره اطلاعات رو بگیره درست کار میکنه اما فقط برای بار اول. یعنی اگه تعداد پستهای هر صفحه را 4 تا مثل بالا مشخص کرده باشیم میاد 4 تای اخر رو میگیره و نمایش میده. اما فقط همین 4 تا را. یعنی اینکه من در اصل میخوام نحوه اتصال این حلقه for به ایجاد صفحات رو بدونم.
منتظرم/.