การใช้งาน Layout Zend Framework

หมวดสำหรับแบ่งบันความ รู้ต่างๆ จะมีหมวดย่อยๆ ในหมวดนี้ เช่น php, SQL, XML, CSS

Moderator: mindphp, ผู้ดูแลกระดาน

zend_framework
PHP Full Member
PHP Full Member
โพสต์: 39
ลงทะเบียนเมื่อ: 08/03/2011 11:22 pm

การใช้งาน Layout Zend Framework

โพสต์โดย zend_framework » 17/04/2011 5:14 pm

การใช้งาน Layout Zend Framework

แบบที่ 1 ใช้ layout เดี่ยวทั้งเวป(Layout default)

1.1. ให้เพิ่มโค็ดด้านล่างในไฟล์ index.php //Layout $layout = Zend_Layout::startMvc(array('layoutPath' => ROOT_DIR.'/application/views/layouts'));

โค้ด: เลือกทั้งหมด


<?php
define
('ROOT_DIR'dirname(dirname(__FILE__)));

//Error Reporting
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors''on');

//Declare PATH Type1
//Modify include PATH
ini_set('include_path'ini_get('include_path')
        . 
PATH_SEPARATOR '../application/models' 
        
PATH_SEPARATOR '../library');


// Zend Framework Include for ZF 1.7.3 or below
//require_once "Zend/Loader.php";
//Zend_Loader::registerAutoload();
//Zend_Loader::loadClass('Zend_Controller_Front');

// Zend Framework Include for ZF 1.8.0 or above
//see more info : http://framework.zend.com/manual/en/zend.loader.autoloader.html
require_once 'Zend/Loader/Autoloader.php';
$loader Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
$loader->suppressNotFoundWarnings(false);
Zend_Loader::loadClass('Zend_Controller_Front');

#Enable Layout
$layout Zend_Layout::startMvc(array('layoutPath' => ROOT_DIR.'/application/views/layouts'));


//get the front contorller instance
$front Zend_Controller_front::getInstance();
$front->throwExceptions(true);
$front->setControllerDirectory('../application/controllers');

//Go Go Go
$front->dispatch();

?>


1.2. สร้างไฟล์ layouts/layout.phtml ดังนี้

โค้ด: เลือกทั้งหมด

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=tis-620" />
    <title><?php echo $this->title ;?></title>
</head>
<body>
<h1>Default Layout </h1>

<?php echo $this->layout()->content ?>

</body>
</html>


แบบที่ 2 ใช้ layout เฉพาะของแต่ละหน้า

2.1 ให้เพิ่มโค็ดด้านล่างลงใน Controller ของ method แต่ละหน้า

โค้ด: เลือกทั้งหมด

    public function page2Action()
    {
        $this->_helper->layout->setLayout('page2_layout');
    }



2.2 ไฟล์ layouts/page2_layout.phtml

โค้ด: เลือกทั้งหมด

<title>Stage & Screen - theatre and film reviews</title>
<meta http-equiv="content-type"
    content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="/css/2col.css" />
</head>
<body>

    <?php echo $this->layout()->content ?>


</body>
</html>

2.3 ไฟล์ views/scripts/index/page2.phtml

โค้ด: เลือกทั้งหมด

<div id="header">
   <img src="stage-logo.gif" width="187" height="29" alt="Stage & Screen" class="logo" />
   <span class="strapline">theatre and film reviews</span>
</div>
<div id="content">
   <h1>Welcome to Stage & Screen</h1>
   <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin non mi in urna hendrerit tincidunt. Maecenas eleifend erat et lacus. Sed tempor. Sed venenatis consequat neque. Sed massa. Donec quis orci sed lacus ullamcorper venenatis. Nam et sapien. Sed id dolor in tortor eleifend aliquam. Mauris vulputate. Nulla nec diam et pede faucibus ornare.</p>
   <p>Sed nec erat sed sem molestie congue. Cras lacus sapien, ultrices ac, mattis quis, lobortis eu, turpis. Aliquam egestas arcu a massa. In hendrerit odio eget lectus. Nullam iaculis ultricies ipsum. Nullam id felis. Phasellus at metus sed velit luctus semper. Cras wisi diam, pharetra sed, pharetra ac, sodales in, quam. Nullam facilisis. Aliquam rhoncus sapien ac dui. Donec mattis ipsum. Nulla a nunc id orci mollis semper. Vestibulum porta quam a dolor.</p>
   <p>Vestibulum dictum massa at odio. In dignissim ante id dui. Morbi rhoncus elit ac ipsum. Curabitur a elit. Phasellus in lorem quis turpis imperdiet accumsan. Suspendisse potenti. Curabitur a enim sed lacus tempor venenatis. Mauris sed ipsum sit amet leo dictum scelerisque. Suspendisse a lectus. Aliquam nec felis at erat sagittis pretium. Nunc id augue pharetra augue commodo tincidunt. Praesent placerat, diam quis porttitor lobortis, orci arcu nonummy sapien, at venenatis ipsum wisi non wisi. Sed bibendum nunc at justo. Vestibulum leo lacus, lobortis vel, interdum ac, varius non, augue. Nam rhoncus dictum libero. Donec porttitor porta lectus. Vivamus consectetuer feugiat wisi. Morbi sit amet nibh eget nibh feugiat porttitor.</p>
</div>
<div id="nav">
   <ul>
      <li><a href="#">Play Reviews</a></li>
      <li><a href="#">Film Reviews</a></li>
      <li><a href="#">Post a Review</a></li>
      <li><a href="#">About this site</a></li>
      <li><a href="#">Contact Us</a></li>
   </ul>
   <h2>Latest Reviews</h2>
   <ul>
      <li><a href="#">The Passion of The Christ</a></li>
      <li><a href="#">Finding Nemo</a></li>
      <li><a href="#">Stomp</a></li>
      <li><a href="#">The Lion King 3</a></li>
   </ul>
</div>


2.4 ไฟล์ public/css/2col/css

โค้ด: เลือกทั้งหมด

body {
   margin: 0;
   padding: 0;
   background-color: #FFFFFF;
   color: #000000;
   font-family: Arial, Helvetica, sans-serif;
   border-top: 2px solid #2A4F6F;
}
#header {
   border-top: 1px solid #778899;
   border-bottom: 1px dotted #B2BCC6;
   height:3em;
}
#header .strapline {
   font: 120% Georgia, "Times New Roman", Times, serif;
   color: #778899;
   background-color: transparent;
   float: right;
    width: 300px;
    text-align:right;
   margin-right: 2em;
   margin-top: 0.5em;
}
#header .logo {
   float: left;
    width: 187px;
   margin-left: 1.5em;
   margin-top: 0.5em;
}
#nav {
   position: absolute;
   top: 5em;
   left: 1em;
   width: 14em;
}
#nav ul {
   list-style: none;
   margin-left: 1em;
   padding-left: 0;
}
#nav li {
   font-size: 80%;
   border-bottom: 1px dotted #B2BCC6;
   margin-bottom: 0.3em;
}
#nav a:link, #nav a:visited {
   text-decoration: none;
   color: #2A4F6F;
   background-color: transparent;
}
#nav a:hover {
   color: #778899;
}
#nav h2 {
   font: 110% Georgia, "Times New Roman", Times, serif;
   color: #2A4F6F;
   background-color: transparent;
   border-bottom: 1px dotted #cccccc;
}
#content {
   margin-left: 16em;
   margin-right: 2em;
}
h1 {
   font: 150% Georgia, "Times New Roman", Times, serif;
}
#content p {
   font-size: 80%;
   line-height: 1.6em;
   padding-left: 1.2em;
}

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 9 และ บุคคลทั่วไป 0 ท่าน