Một ứng dụng có thể có một hoặc nhiều chủ đề. Mỗi chủ đề sống trong thư mục riêng của mình. Hãy để chúng tôi tìm hiểu làm thế nào để tạo chủ đề trong chương này.
Cấu hình chủ đề
Khóa học lập trình PHP cung cấp một tệp cấu hình riêng cho các chủ đề, Fuel / app / config / Themes.php . Tất cả các cài đặt liên quan đến chủ đề được cấu hình trong tập tin này. Một số cài đặt chủ đề chính như sau.
![]() |
| Khóa học lập trình PHP |
hoạt động - Tên của chủ đề đang hoạt động
dự phòng - Tên của chủ đề dự phòng, nếu không tìm thấy chủ đề hoạt động
đường dẫn - Mảng của đường dẫn để tìm kiếm và tìm chủ đề
Tài sản_folder - Thông thường, tài sản cần phải nằm trong DOCPATH để có thể truy cập qua web. Nó đề cập đến thư mục tài sản cho các chủ đề bên trong DOCPATH
view_ext - Mở rộng tệp xem của chủ đề
info_file_name - Tệp có thông tin mở rộng về chủ đề
require_info_file - Có yêu cầu các tập tin thông tin chủ đề info_file_name
use_modules - Có sử dụng mô-đun hiện tại hay không
Cấu hình đơn giản cho tập tin chủ đề như sau.
<?php return array ( 'active' => 'tpthemes', 'fallback' => 'tpthemes', 'paths' => array ( APPPATH.'themes', ), 'assets_folder' => 'assets', 'view_ext' => '.html', 'require_info_file' => false, 'info_file_name' => 'themeinfo.php', 'use_modules' => false, );Ở đây chúng tôi đã thiết lập
Tên của chủ đề dự phòng và dự phòng là tptheme
Đường dẫn của thư mục chủ đề là nhiên liệu / ứng dụng / chủ đề /
Đường dẫn của thư mục tài sản là / công khai / tài sản / tptheme /
Lớp học chủ đề
Sau khi cấu hình xong, chúng ta có thể sử dụng lớp, Chủ đề do Khóa học lập trình PHP cung cấp để thực hiện chức năng của chủ đề. Hãy cho chúng tôi biết về các phương thức có sẵn trong lớp Theme trong chương này.
phương pháp ví dụ cho phép tạo một chủ đề mới. Nó có hai tham số sau
$ name - Tên của chủ đề (tùy chọn)
$ config - Mảng cấu hình chủ đề (giống như đã thấy trong phần cấu hình)
Cả hai tham số là tùy chọn. Nếu không có tham số nào được chỉ định, nó sẽ cố lấy chủ đề mặc định từ tệp cấu hình. Nếu tên chủ đề được chỉ định, nó sẽ cố lấy các cài đặt khác từ tệp cấu hình. Nếu cấu hình cũng được chỉ định, thì nó sẽ sử dụng cài đặt do người dùng chỉ định thay vì cài đặt từ tệp cấu hình.
$theme = \Theme::instance(); $theme = \Theme::instance('tpthemes'); $theme = \Theme::instance ('mytheme', array ( 'active' => 'mytheme', 'view_ext' => '.php'));
làm giả
forge tương tự như thể hiện, ngoại trừ nó chỉ có mảng cấu hình.$theme = \Theme::forge (array( 'active' => 'tpthemes', 'fallback' => 'tpthemes', 'view_ext' => '.php', ));
lượt xem
phương thức view sử dụng View :: forge () trong nền. Cả hai API đều giống nhau ngoại trừ phương thức xem tìm kiếm tệp xem trong thư mục chủ đề, nhiên liệu / ứng dụng / chủ đề / tptheme / thay vì nhiên liệu / ứng dụng / lượt xem / thư mục.$theme = \Theme::instance(); $view = $theme->view('template/index'); // *fuel/app/themes/tpthemes/template/index.php
người trình bày
phương thức của người trình bày sử dụng Presenter :: forge () trong nền. Cả hai API đều giống nhau ngoại trừ phương thức của người trình bày tìm kiếm tệp xem trong thư mục chủ đề, nhiên liệu / ứng dụng / chủ đề / tptheme / thay vì nhiên liệu / ứng dụng / lượt xem / thư mục.$theme = \Theme::instance(); $presenter = $theme->presenter('template/index');
tài sản
Phương thức property_path trả về đường dẫn đến nội dung được yêu cầu liên quan đến chủ đề hiện được chọn.$theme = \Theme::instance(); // public/assets/tpthemes/css/style.css $style = \Html::css($theme->asset_path('css/style.css'));
add_path
phương thức add_path cho phép thêm một đường dẫn chủ đề trong thời gian chạy.$theme = \Theme::instance(); $theme->add_path(DOCROOT.'newthemes');
add_path
Phương thức add_paths cho phép thêm nhiều đường dẫn chủ đề khi chạy.$theme = \Theme::instance(); $theme->add_path(DOCROOT.'newthemes');
hoạt động
phương thức hoạt động cho phép thiết lập chủ đề hoạt động.$theme = \Theme::instance(); $active = $theme->active('newtheme');
dự phòng
phương pháp dự phòng cho phép thiết lập chủ đề dự phòng.$theme = \Theme::instance(); $fallback = $theme->fallback('custom');
get_template
Phương thức get_template sẽ trả về thể hiện View của mẫu chủ đề hiện đang được tải.$theme = \Theme::instance(); $theme->get_template()->set('body', 'Theme can change the look and feel of your app');
set_template
Phương thức set_template cho phép đặt mẫu chủ đề cho trang.$theme = \Theme::instance(); $theme->set_template('layouts/index')->set('body', 'set theme template');
tìm thấy
tìm trả về true, nếu đường dẫn đến chủ đề được tìm thấy, nếu không nó trả về false.$theme = \Theme::instance(); $path = $theme->find('newtheme')
tất cả các
tất cả phương thức trả về một mảng của tất cả các chủ đề trong tất cả các đường dẫn chủ đề.$theme = \Theme::instance(); $themes = $theme->all();
nhận thông tin
Phương thức get_info trả về một biến cụ thể từ mảng thông tin chủ đề. Nếu không có chủ đề nào được chỉ định, mảng thông tin của chủ đề đang hoạt động sẽ được sử dụng.$theme = \Theme::instance(); $var = $theme->get_info('color', 'green', 'newtheme');Ở đây, phương thức lấy màu được định nghĩa trong 'newtheme'. Nếu nó không được xác định, thì nó sẽ sử dụng 'green' làm màu mặc định.
set_info
Phương thức set_info đặt một biến trong chủ đề dự phòng hoặc dự phòng.
$theme->set_info('color', 'green', 'fallback');
set_partial
phương thức set_partial cho phép đặt chế độ xem một phần cho phần được đặt tên của mẫu trang của bạn. Thông thường, nó được thực hiện thông qua cuộc gọi HMVC.$theme = \Theme::instance(); $theme->set_template('layouts/homepage'); $theme->set_partial('navbar', 'homepage/navbar');
get_partial
Phương thức get_partial cho phép lấy phiên bản xem của một phần được đặt trước đó trong một phần được đặt tên của mẫu trang của bạn.$theme = \Theme::instance(); $theme->set_partial('sidebar', 'partials/menu'); $theme->get_partial('sidebar', 'partials/menu')->set('class', 'menu green');
Ví dụ làm việc
Khóa học lập trình PHP để chúng tôi thêm hỗ trợ chủ đề trong ứng dụng nhân viên của chúng tôi.Bước 1 - Thêm tệp cấu hình chủ đề mới, Fuel / app / config / theme.php với nội dung sau.
<?php return array ( 'active' => 'tpthemes', 'fallback' => 'tpthemes', 'paths' => array (APPPATH.'themes', ), 'assets_folder' => 'assets', 'view_ext' => '.html', 'require_info_file' => false, 'info_file_name' => 'themeinfo.php', 'use_modules' => false, );Bước 2 - Thêm thư mục tài sản mới, công khai / tài sản / tptheme / css cho chủ đề, tptheme.
cd /go/to/app/root/path
mkdir -p public/assets/tpthemes/css
Bước 3 - Tải xuống bootstrap mới nhất và đặt bootstrap.min.css dưới công khai / tài sản / tptheme / css
Bước 4 - Thêm thư mục mới, tptheme trong thư mục nhiên liệu / ứng dụng / chủ đề.
cd /go/to/app/root/path
mkdir -p fuel/app/themes/tpthemes
Bước 5 - Thêm mẫu bố cục mới, bootstrap.html trong nhiên liệu / ứng dụng / chủ đề / tptheme / layout / và thêm mã sau đây.
<!DOCTYPE html> <html lang = "en"> <head> <title>Theme example</title> <meta charset = "utf-8"> <meta name = "viewport" content = "width = device-width, initial-scale = 1"> <!-- Bootstrap core CSS --> <?php echo \Theme::instance()->asset->css('bootstrap.min.css'); ?> </head> <body> <?php echo $header; ?> <div class = "container"> <div class = "row"> <div class = "col-sm-12"> <?php echo $content; ?> </div> </div> </div> </body> </html>
Khóa học lập trình PHP Ở đây, chúng tôi đã sử dụng thể hiện chủ đề và phương thức tài sản để lấy đường dẫn của tệp bootstrap. Chúng tôi đã xác định hai biến, tiêu đề và nội dung. tiêu đề được xác định để thiết lập chi tiết tiêu đề một cách linh hoạt. nội dung được xác định để thiết lập nội dung thực tế của trang một cách linh hoạt.
Bước 6 - Thêm mẫu tiêu đề mới, header.php tại Fuel / app / Themes / tptheme / partials như sau.
<div class = "jumbotron text-center"> <h1>Theme support in fuelphp</h1> <p>bootstrap based template</p> </div>Bước 7 - Tạo một bộ điều khiển mới, ThemeSample tại Fuel / app / class / controller / Themesample.php và hành động tại action_index như sau.
<?php class Controller_ThemeSample extends \Controller { public function before() { $this->theme = \Theme::instance(); $this->theme->set_template('layouts/bootstrap'); $header = $this->theme->view('partials/header'); $this->theme->get_template()->set('header', $header); } public function action_index() { $content = $this->theme ->view('themesample/index') ->set('message', 'This data comes from action page'); $this->theme ->get_template() ->set('content', $content); } public function after($response) { if (empty($response) or ! $response instanceof Response) { $response = \Response::forge(\Theme::instance()->render()); } return parent::after($response); } }Khóa học lập trình PHP Ở đây, chúng ta đã sử dụng phương thức trước và sau để thực hiện khởi tạo chủ đề bằng các phương thức của lớp Theme . Một số phương thức được sử dụng là thể hiện, get_template, set_template và view.
Bước 8 - Cuối cùng, thêm chế độ xem cho hành động chỉ mục, index.php tại Fuel / app / Themes / tptheme / Themesample như sau.
<p>The data comes from *fuel/app/themes/tpthemes/themesample/index.html* file.</p> <p> <?php echo $message; ?> </p>Ở đây, chúng ta đã định nghĩa một biến, thông báo, cần được đặt động trong bộ điều khiển.

Không có nhận xét nào:
Đăng nhận xét