SlideShare a Scribd company logo
1 of 5
Download to read offline
Nhúng template vào ứng dung Zend Framework 2 (P3)
Xem 'Bài 7 - Nhúng template vào ứng dung ZF2 (P2)' trước khi thực hành bài này
D. Thay đổi thư mục chứa Template trong Zend Framework 2
- Trong các phần trên chúng ta thấy LAYOUT và các thư mục /css, /javascript và /images nằm ở 2 thư
mục khác nhau. Điều này làm mỗi lần chúng ta chỉnh sửa rất tốn thời gian tìm kiếm. Trong phần này
chúng ta sẽ gom LAYOUT và các thư mục css, javascript, images vào chung cùng một thư mục. Chúng ta
sẽ thực hiện như sau:
- Tạo thư mục /templates trong thư mục /public
- Tạo thư mục /hairstyle trong thư mục /public/templates
- Mở tập tin /public/define.php thêm vào đoạn mã để định nghĩa đường dẫn URL chứa template như
sau:
define('PUBLIC_PATH' , realpath(APPLICATION_PATH . '/public'));
define('TEMPLATE_PATH' , realpath(PUBLIC_PATH . '/templates'));
- Vậy tập tin /public/define.php có nội dung như sau:
<?php
//Đường dẫn đến thư mục chứa thư mục hiện thời
chdir(dirname(__DIR__));
//Hằng số lưu đường dẫn thư mục ứng dụng
//Hằng số lưu thông tin đường dẫn thư mục
define('APPLICATION_PATH', realpath(dirname(__DIR__)));
//Hằng số lưu đường dẫn thư mục chứa thư viên ZF2
define('LIBRARY_PATH', realpath(APPLICATION_PATH . '/library/'));
define('PUBLIC_PATH' , realpath(APPLICATION_PATH . '/public'));
define('TEMPLATE_PATH' , realpath(PUBLIC_PATH . '/templates'));
- Di chuyển các thư mục
/public/css
/public/fonts
/public/images
- Vào thư mục /public/templates/hairstyle
- Di chuyển tất cả các tập tin trong thư mục /module/Template/view/layout vào thư
mục /public/templates/hairstyle chúng ta sẽ được cấu trúc thư mục như sau:
- Bây giờ chúng ta sẽ chạy thử localhost:8000/zf2basic/public/template/
- Chúng ta thấy lỗi xảy ra vì vậy chúng ta cần phải thay đổi cấu hình để LAYOUT có thể hiển thị.
- Mở tập tin /module/Template/config/module.config.php tìm đoạn mã:
'view_manager' => array(
'template_map' => array(
'layout/home' => __DIR__ . '/../view/layout/index.phtml',
'layout/about' => __DIR__ . '/../view/layout/about.phtml',
'layout/news' => __DIR__ . '/../view/layout/news.phtml',
'layout/hairstyle' => __DIR__ . '/../view/layout/hairstyle.phtml',
'layout/contact' => __DIR__ . '/../view/layout/contact.phtml',
),
- Sửa lại như sau:
'view_manager' => array(
'template_map' => array(
'layout/home' => TEMPLATE_PATH . '/hairstyle/index.phtml'
),
- Mở tập tin /public/templates/hairstyle/index.phtml thêm vào đoạn mã sau vào đầu trang:
<?php
$templateURL = $this->basePath('/templates/hairstyle/');
?>
Tìm đoạn mã:
<link rel="stylesheet" href="<?php echo $this->basePath();?>/css/style.css" type="text/css">
Sửa lại thành:
<link rel="stylesheet" href="<?php echo $templateURL;?>css/style.css" type="text/css">
Tìm đoạn mã:
<?php echo $this->render("layout/menu.php");?>
Sửa lại thành:
<?php require_once 'menu.php';?>
Tìm đoạn mã:
<?php
if($this->layout()->getChildren()[0]->getTemplate() == 'template/index/index'){
echo $this->render("layout/banner.php");
}
?>
Sửa lại thành:
<?php
if($this->layout()->getChildren()[0]->getTemplate() == 'template/index/index'){
require_once 'banner.php';
}
?>
- Bây giờ chúng ta sẽ chạy thử localhost:8000/zf2basic/public/template/
- Chúng ta đã thấy giao diện đã hiển thị nhưng không load được hình chúng ta sẽ chỉnh lại đường dẫn.
- Mở tập tin /public/templates/hairstyle/banner.php sửa nội dung lại thành
<div class="article">
<img src="<?php echo $templateURL;?>images/great-hairstyle.jpg" alt="">
<h1>Great hairstyle comes from the experts.</h1>
</div>
- Mở tập tin /module/Template/view/template/index/index.phtml thêm dòng lệnh vào đầu tập tin:
<?php
$templateURL = $this->basePath('/templates/hairstyle/');
?>
Tìm các đoạn mã
<?php echo $this->basePath();?>
Sửa thành:
<?php echo $templateURL;?>
- Thực hiện điều này tương tự cho các tập tin VIEW:
/module/Template/view/template/index/about.phtml
/module/Template/view/template/index/contact.phtml
/module/Template/view/template/index/hairstyle.phtml
/module/Template/view/template/index/news.phtml
- Sau đó chúng ta chạy thử các URL sau:
localhost:8000/zf2basic/public/template/
localhost:8000/zf2basic/public/template/index/about
localhost:8000/zf2basic/public/template/index/contact
localhost:8000/zf2basic/public/template/index/hairstyle
localhost:8000/zf2basic/public/template/index/news
Download source here: http://www.zend.vn/download/pictures/zend-framework-2/04-nhung-templates-
vao-zf2/04-Nhung-templates-03.zip
Để tìm hiểu kỹ hơn các bạn hãy truy cập:
Website: www.zend.vn
Facebook: facebook.com/zendvngroup
Youtube: youtube.com/user/luutruonghailan

More Related Content

What's hot

The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupKhanhPham
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
Bài 5 Chức năng gửi email cho website - Xây dựng ứng dụng web
Bài 5 Chức năng gửi email cho website - Xây dựng ứng dụng webBài 5 Chức năng gửi email cho website - Xây dựng ứng dụng web
Bài 5 Chức năng gửi email cho website - Xây dựng ứng dụng webMasterCode.vn
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPelearninglabvn
 
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao KhanhPham
 
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webBài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webMasterCode.vn
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressKhanhPham
 
All zend
All zendAll zend
All zendkuetli
 
Cấu hình Hibernate
Cấu hình HibernateCấu hình Hibernate
Cấu hình HibernateMinh Quang
 
Hiberbate Framework
Hiberbate FrameworkHiberbate Framework
Hiberbate FrameworkPhuoc Nguyen
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5dvms
 

What's hot (20)

Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Joo
JooJoo
Joo
 
Web301 slide 2
Web301   slide 2Web301   slide 2
Web301 slide 2
 
Web301 slide 4
Web301   slide 4Web301   slide 4
Web301 slide 4
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
Web301 slide 3
Web301   slide 3Web301   slide 3
Web301 slide 3
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
 
Bài 5 Chức năng gửi email cho website - Xây dựng ứng dụng web
Bài 5 Chức năng gửi email cho website - Xây dựng ứng dụng webBài 5 Chức năng gửi email cho website - Xây dựng ứng dụng web
Bài 5 Chức năng gửi email cho website - Xây dựng ứng dụng web
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
Web201 slide 6
Web201   slide 6Web201   slide 6
Web201 slide 6
 
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
 
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webBài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
 
Web301 slide 6
Web301   slide 6Web301   slide 6
Web301 slide 6
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
 
Web301 slide 5
Web301   slide 5Web301   slide 5
Web301 slide 5
 
All zend
All zendAll zend
All zend
 
Cấu hình Hibernate
Cấu hình HibernateCấu hình Hibernate
Cấu hình Hibernate
 
Hiberbate Framework
Hiberbate FrameworkHiberbate Framework
Hiberbate Framework
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5
 

Similar to Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7

TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7dvms
 
DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5dvms
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpTuyet Tam
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc frameworkXuan Le
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionMasterCode.vn
 
Lap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcLap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcChe Linh Nguyen
 
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMTÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMdvms
 
template magento
template magentotemplate magento
template magentodvms
 
My sql part 2 - manager mysql server - backup & restore database
My sql   part 2 - manager mysql server - backup & restore databaseMy sql   part 2 - manager mysql server - backup & restore database
My sql part 2 - manager mysql server - backup & restore databaselaonap166
 
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầuTài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầuLel Đặng Văn
 
Create easymoduleinphpfox
Create easymoduleinphpfoxCreate easymoduleinphpfox
Create easymoduleinphpfoxEntu Di
 
Baocao nguyenanhcuong
Baocao nguyenanhcuongBaocao nguyenanhcuong
Baocao nguyenanhcuongCuong Nguyen
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Minh Tri Lam
 
Huongdancaidat moodle 162(kco j
Huongdancaidat moodle 162(kco jHuongdancaidat moodle 162(kco j
Huongdancaidat moodle 162(kco jLan Nguyen
 
Báo cáo thực tập athena nguyễn anh tuấn
Báo cáo thực tập athena   nguyễn anh tuấnBáo cáo thực tập athena   nguyễn anh tuấn
Báo cáo thực tập athena nguyễn anh tuấniwubmg
 

Similar to Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7 (20)

TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
 
DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5
 
Yii
YiiYii
Yii
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng Extension
 
Lap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcLap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvc
 
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMTÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
 
template magento
template magentotemplate magento
template magento
 
My sql part 2 - manager mysql server - backup & restore database
My sql   part 2 - manager mysql server - backup & restore databaseMy sql   part 2 - manager mysql server - backup & restore database
My sql part 2 - manager mysql server - backup & restore database
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 
Tài liệu HTML5-CSS3
Tài liệu HTML5-CSS3Tài liệu HTML5-CSS3
Tài liệu HTML5-CSS3
 
Joomla developermanual
Joomla developermanualJoomla developermanual
Joomla developermanual
 
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầuTài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
 
Create easymoduleinphpfox
Create easymoduleinphpfoxCreate easymoduleinphpfox
Create easymoduleinphpfox
 
Baocao nguyenanhcuong
Baocao nguyenanhcuongBaocao nguyenanhcuong
Baocao nguyenanhcuong
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
Huongdancaidat moodle 162(kco j
Huongdancaidat moodle 162(kco jHuongdancaidat moodle 162(kco j
Huongdancaidat moodle 162(kco j
 
Báo cáo thực tập athena nguyễn anh tuấn
Báo cáo thực tập athena   nguyễn anh tuấnBáo cáo thực tập athena   nguyễn anh tuấn
Báo cáo thực tập athena nguyễn anh tuấn
 
C5. Model, DataSharing.pdf
C5. Model, DataSharing.pdfC5. Model, DataSharing.pdf
C5. Model, DataSharing.pdf
 

More from KhanhPham

Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtKhanhPham
 
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverGiáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverKhanhPham
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuKhanhPham
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkKhanhPham
 
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)KhanhPham
 
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)KhanhPham
 
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)KhanhPham
 
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)KhanhPham
 
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)KhanhPham
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)KhanhPham
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)KhanhPham
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)KhanhPham
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)KhanhPham
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản KhanhPham
 

More from KhanhPham (14)

Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
 
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverGiáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
 
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
 
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
 
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
 
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
 
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
 

Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7

  • 1. Nhúng template vào ứng dung Zend Framework 2 (P3) Xem 'Bài 7 - Nhúng template vào ứng dung ZF2 (P2)' trước khi thực hành bài này D. Thay đổi thư mục chứa Template trong Zend Framework 2 - Trong các phần trên chúng ta thấy LAYOUT và các thư mục /css, /javascript và /images nằm ở 2 thư mục khác nhau. Điều này làm mỗi lần chúng ta chỉnh sửa rất tốn thời gian tìm kiếm. Trong phần này chúng ta sẽ gom LAYOUT và các thư mục css, javascript, images vào chung cùng một thư mục. Chúng ta sẽ thực hiện như sau: - Tạo thư mục /templates trong thư mục /public - Tạo thư mục /hairstyle trong thư mục /public/templates - Mở tập tin /public/define.php thêm vào đoạn mã để định nghĩa đường dẫn URL chứa template như sau: define('PUBLIC_PATH' , realpath(APPLICATION_PATH . '/public')); define('TEMPLATE_PATH' , realpath(PUBLIC_PATH . '/templates')); - Vậy tập tin /public/define.php có nội dung như sau: <?php //Đường dẫn đến thư mục chứa thư mục hiện thời chdir(dirname(__DIR__)); //Hằng số lưu đường dẫn thư mục ứng dụng //Hằng số lưu thông tin đường dẫn thư mục define('APPLICATION_PATH', realpath(dirname(__DIR__))); //Hằng số lưu đường dẫn thư mục chứa thư viên ZF2 define('LIBRARY_PATH', realpath(APPLICATION_PATH . '/library/')); define('PUBLIC_PATH' , realpath(APPLICATION_PATH . '/public'));
  • 2. define('TEMPLATE_PATH' , realpath(PUBLIC_PATH . '/templates')); - Di chuyển các thư mục /public/css /public/fonts /public/images - Vào thư mục /public/templates/hairstyle - Di chuyển tất cả các tập tin trong thư mục /module/Template/view/layout vào thư mục /public/templates/hairstyle chúng ta sẽ được cấu trúc thư mục như sau: - Bây giờ chúng ta sẽ chạy thử localhost:8000/zf2basic/public/template/
  • 3. - Chúng ta thấy lỗi xảy ra vì vậy chúng ta cần phải thay đổi cấu hình để LAYOUT có thể hiển thị. - Mở tập tin /module/Template/config/module.config.php tìm đoạn mã: 'view_manager' => array( 'template_map' => array( 'layout/home' => __DIR__ . '/../view/layout/index.phtml', 'layout/about' => __DIR__ . '/../view/layout/about.phtml', 'layout/news' => __DIR__ . '/../view/layout/news.phtml', 'layout/hairstyle' => __DIR__ . '/../view/layout/hairstyle.phtml', 'layout/contact' => __DIR__ . '/../view/layout/contact.phtml', ), - Sửa lại như sau: 'view_manager' => array( 'template_map' => array( 'layout/home' => TEMPLATE_PATH . '/hairstyle/index.phtml' ), - Mở tập tin /public/templates/hairstyle/index.phtml thêm vào đoạn mã sau vào đầu trang: <?php $templateURL = $this->basePath('/templates/hairstyle/'); ?> Tìm đoạn mã: <link rel="stylesheet" href="<?php echo $this->basePath();?>/css/style.css" type="text/css"> Sửa lại thành: <link rel="stylesheet" href="<?php echo $templateURL;?>css/style.css" type="text/css">
  • 4. Tìm đoạn mã: <?php echo $this->render("layout/menu.php");?> Sửa lại thành: <?php require_once 'menu.php';?> Tìm đoạn mã: <?php if($this->layout()->getChildren()[0]->getTemplate() == 'template/index/index'){ echo $this->render("layout/banner.php"); } ?> Sửa lại thành: <?php if($this->layout()->getChildren()[0]->getTemplate() == 'template/index/index'){ require_once 'banner.php'; } ?> - Bây giờ chúng ta sẽ chạy thử localhost:8000/zf2basic/public/template/ - Chúng ta đã thấy giao diện đã hiển thị nhưng không load được hình chúng ta sẽ chỉnh lại đường dẫn. - Mở tập tin /public/templates/hairstyle/banner.php sửa nội dung lại thành <div class="article"> <img src="<?php echo $templateURL;?>images/great-hairstyle.jpg" alt=""> <h1>Great hairstyle comes from the experts.</h1> </div>
  • 5. - Mở tập tin /module/Template/view/template/index/index.phtml thêm dòng lệnh vào đầu tập tin: <?php $templateURL = $this->basePath('/templates/hairstyle/'); ?> Tìm các đoạn mã <?php echo $this->basePath();?> Sửa thành: <?php echo $templateURL;?> - Thực hiện điều này tương tự cho các tập tin VIEW: /module/Template/view/template/index/about.phtml /module/Template/view/template/index/contact.phtml /module/Template/view/template/index/hairstyle.phtml /module/Template/view/template/index/news.phtml - Sau đó chúng ta chạy thử các URL sau: localhost:8000/zf2basic/public/template/ localhost:8000/zf2basic/public/template/index/about localhost:8000/zf2basic/public/template/index/contact localhost:8000/zf2basic/public/template/index/hairstyle localhost:8000/zf2basic/public/template/index/news Download source here: http://www.zend.vn/download/pictures/zend-framework-2/04-nhung-templates- vao-zf2/04-Nhung-templates-03.zip Để tìm hiểu kỹ hơn các bạn hãy truy cập: Website: www.zend.vn Facebook: facebook.com/zendvngroup Youtube: youtube.com/user/luutruonghailan