CI (CodeIgniter 2.1) 框架下Layout / 翻页等功能的实现


新建测试用数据和数据表。表结构如下:
  1. SET FOREIGN_KEY_CHECKS=0;  
  2.   
  3. -- ----------------------------   
  4. -- Table structure for `posts`   
  5. -- ----------------------------   
  6. DROP TABLE IF EXISTS `posts`;  
  7. CREATE TABLE `posts` (  
  8.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  9.   `title` varchar(50) NOT NULL,  
  10.   `content` text NOT NULL,  
  11.   PRIMARY KEY (`id`)  
  12. ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;  
  13.   
  14. -- ----------------------------   
  15. -- Records of posts   
  16. -- ----------------------------   
  17. INSERT INTO `posts` VALUES ('1''aa''aaaaaaa');  
  18. INSERT INTO `posts` VALUES ('2''bb''bbbbbb');  
  19. INSERT INTO `posts` VALUES ('3''cc''cccccccc');  
  20. INSERT INTO `posts` VALUES ('4''dd''dddddd');  
application/libraries下新建Layout.php:
  1. <?php  
  2. if (!defined('BASEPATH')) exit('No direct script access allowed');  
  3.   
  4. class Layout  
  5. {  
  6.     var $obj;  
  7.     var $layout;  
  8.   
  9.     function Layout($params = array())  
  10.     {  
  11.         $this->obj =& get_instance();  
  12.         if (count($params) > 0)  
  13.         {  
  14.             $this->initialize($params);  
  15.         }  
  16.         else  
  17.         {  
  18.             $this->layout = 'layout';  
  19.         }  
  20.     }  
  21.   
  22.     function initialize($params = array())  
  23.     {  
  24.         if (count($params) > 0)  
  25.         {    
  26.             foreach ($params as $key => $val)  
  27.             {  
  28.                 $this->$key = $val;  
  29.             }          
  30.         }  
  31.     }  
  32.   
  33.     function view($view$data = null, $return = false)  
  34.     {  
  35.         $data['content_for_layout'] = $this->obj->load->view($view$data, true);  
  36.   
  37.         if($return)  
  38.         {  
  39.             $output = $this->obj->load->view($this->layout, $data, true);  
  40.             return $output;  
  41.         }  
  42.         else  
  43.         {  
  44.             $this->obj->load->view($this->layout, $data, false);  
  45.         }  
  46.     }  
  47. }  
  48. ?>  
application/views下新建layout.php:
  1. <html>  
  2. <head>  
  3. <title><?php echo $title_for_layout; ?></title>  
  4. <meta http-equiv="content-type" content="text/html;charset=utf-8" />  
  5. <link rel="stylesheet" href="<?php echo base_url(); ?>/assets/css/style.css" type="text/css" />  
  6. </head>  
  7. <body>  
  8.     <div id="pagewidth">  
  9.         <div id="header"><img src="<?php echo base_url(); ?>/assets/img/header.gif" width="728" height="90"></div>  
  10.         <div id="wrapper" class="clearfix">  
  11.             <div id="twocols" class="clearfix">  
  12.                   <?php echo $content_for_layout; ?>  
  13.             </div>  
  14.         </div>  
  15.         <div id="footer"><img src="<?php echo base_url(); ?>/assets/img/footer.gif" width="728" height="90"></div>  
  16.     </div>  
  17. </body>  
  18. </html>  
  • 1
  • 2
  • 下一页

相关内容