CakePHP Framework: Kỹ thuật sử dụng layout
Khi ta viết một ứng dụng cho CakePHP Framework. mặc định CakePHP
Framework đã hổ trợ cho cng ta dao diện sẵn . Nhưng đôi khi tùy theo sở
thích, nhu cầu , xu hướng … nên bắt buộc người thiết kế cũng như người lập
trình cn có những giao diện (layout) cho riêng mình. Bài viết sẽ hướng dẫn
cách chúng ta tạo 1 layout cho riêng mình và cách áp dng 1 Helper
CakePHP Framework vào ứng dụng của mình.
Khi phân tích 1 trang web , nhìn chung ta thấy gồm các phần chính như sau :
Để vận dụng được sự hổ trợ mạnh mẽ chắc năng load layout của CakePHP
FrameWork , ta phân tích các thành phần cố định và thành phần động :
Như vậy ta để tránh việc xử lý các thành phần c đnh ở controller ta chỉ cần
viết 1 class Hepler để hiển thị nó . Còn tnh phần động sẽ được xử lý thông
qua Controllers.
Cái file cn chuẩn bị trong Tutorial Layout CakePHP Framework như sau
:
+ app/ :
-app_controller.php
+ app/controllers/templates/ :
-templates_controller.php (Controller chính để load layout)
+ app/views/templates/ :
- index.ctp
- view.ctp
+ app/views/helpers/ :
- common.php (Tạo các thành phần cố đnh : menu , header,footer)
+- template.ctp (File chứa nội dung layout)
+ app/webroot/css/ :
- style.css (file CSS của layout)
Tạo file app_controller.php (app/)
1
<?php
2
class AppController extends Controller {
3
}
4
?>
Tạo file common.php (app/views/helpers/)
01
<?php
02
class CommonHelper extends HtmlHelper {
03
// Hàm tạo menu
04
function create_menu(){
05
$menu = "<ul>";
06
$menu .= "<li>".$this->link("CodeIgniter", array(
07
"controller"=>"templates",
08
"action"=>"view",
09
1))."</li>";
10
$menu .= "<li>".$this->link("CakePHP",
array(
11
"controller"=>"templates",
12
"action"=>"view",
13
2))."</li>";
14
$menu .= "<li>".$this->link("Zend",
array(
15
"controller"=>"templates",
16
"action"=>"view",