Thứ Năm, 10 tháng 1, 2019

Khóa học lập trình PHP - PHP - Chủ đề

Chủ đề được sử dụng để cho phép nhiều giao diện cho ứng dụng. Nó cung cấp tùy chọn cho người dùng / nhà phát triển để thay đổi giao diện của ứng dụng mà không làm ảnh hưởng đến chức năng của ứng dụng.

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
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

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...