ایجاد چند بخشی کردن کلاس loop

سلام خدمت همه.

من دارم سیستم سایتم یه تمپلیت انجین مینویسم که تقریبا تمومش کردم. اما یجاش به مشکل برخوردم. اونم اینه که برای نمایش پستهام باید طوری کلاس کار کنه قابلیت صفحه بندی هم داشته باشه. نمیدونم چطوری توضیح بدم. کدها را میذارم ببینید کجاشو باید تغییر بدم :)

کد کلاس اجرای لوپ:

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]);
			}
		}
اینم کد اجرای حلقه که در فایل tpl قرار میگیره:

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 به ایجاد صفحات رو بدونم.:wink:

منتظرم/.
 

جدیدترین ارسال ها

بالا