Cấu hình mẫu kế thừa

Ví dụ sơ đồ trang
-- Trang chủ
-- Tin tức  (trang cấp cha)
   -- -- Tin số 1  (trang cấp con)
   -- -- Tin số 2  (trang cấp con)
   -- -- Tin số 3  (trang cấp con)

1. Cấu hình trực tiếp mẫu
* Hệ thống Adminsys -> Mục cấu hình -> Mẫu HTML
 + HTML Header
 + HTML Body
 + HTML Temp
Nhập một đoạn HTML hay nạp 1 trang html đã có, sử dụng lệnh: <iif-H>name.htm</iif-H>
Ví dụ:
 *   Cấu hình cho trang chủ
+ HTML Header:<iif-H>header.htm</iif-H>
+ HTML Body:<iif-H>homepage.htm</iif-H>
+ HTML Temp:<iif-H>temp.htm</iif-H>
  *   Cấu hình cho tin tức
+ HTML Header:<iif-H>header.htm</iif-H>
+ HTML Body:<iif-H>news.htm</iif-H>
+ HTML Temp:<iif-H>temp.htm</iif-H>
*   Cấu hình cho tin tức chi tiết
+ HTML Header:<iif-H>header.htm</iif-H>
+ HTML Body:<iif-H>news_detail.htm</iif-H>
+ HTML Temp:<iif-H>temp.htm</iif-H>

2. Cấu hình trang con từ trang cha
* Mục đích: chỉ cấu hình 1 nơi đó là trang cha, sau đó các trang con không cần cấu hình mà sử dụng lệnh từ trang cha.
   Ví dụ: trang cha Tin tức -> có nhiều trang con, vì tin tức sẽ thêm thường xuyên, nếu không dùng lệnh tự động thì mỗi lần tạo trang tin tức con, phải cấu hình trong phần mẫu HTML, việc này làm mất thời gian.
   Lệnh được thiết lập ở trang tin tức (trang cha)
  
<TempHtml>
  <SetChild>...</SetChild>
</TempHtml> 
   --> Copy 3 mục trong mẫu HTML cho trang con

Ví dụ:
<TempHtml>
  <SetChild>
     <HTML_Header><iif-H>header.htm</iif-H></HTML_Header>
     <HTML_Body><iif-H>news_detail</iif-H></HTML_Body>
     <HTML_Temp><iif-H>temp.htm</iif-H></HTML_Temp>
 </SetChild>
</TempHtml> 
   --> Thiết lập 3 mục trong mẫu HTML cho trang con theo lệnh
 3. Cấu hình trang cháu từ trang ông nội
Ví dụ: Cấp trang như sau
- Tin tức
---- Công nghệ
--------- Bài 1 công nghệ
--------- Bài 2 công nghệ
---- Xã hội
--------- Bài 1 xã hội
--------- Bài 2 xã hội
Thì các bài 1,2 là cháu của Tin tức và xã hội
Khi tạo mẫu, nếu cứ tạo 1 bài rồi đi cấu hình lệnh mẫu như vậy rất mất nhiều thời gian, ta chỉ cần cấu hình lênh ở trang cao nhất (là ông) thì các trang cháu tạo tạo mẫu.

<TempHtml>
  <SetChild2>
     <HTML_Header><iif-H>header.htm</iif-H></HTML_Header>
     <HTML_Body><iif-H>news_detail.htm</iif-H></HTML_Body>
     <HTML_Temp><iif-H>temp.htm</iif-H></HTML_Temp>
     <SYS_config2>lệnh...</SYS_config2>
 </SetChild2>
</TempHtml> 
   --> Thiết lập 3 mục trong mẫu HTML cho trang con của con (gọi là cháu) theo lệnh
Đối với SYS_config2 thì các lệnh thêm vào đuôi là _SetChild2
   * Chú ý: nếu không có lệnh <HTML_Header>, <HTML_Body>, <HTML_Temp> thì lấy giá trị trang đang truy cập.
Ví dụ:
<TempHtml>
  <SetChild2>
     <HTML_Header></HTML_Header>
     <HTML_Body></HTML_Body>
     <HTML_Temp><iif-H>temp.htm</iif-H></HTML_Temp>
     <SYS_config2>
         <OutWebState_SetChild2>text/html</OutWebState_SetChild2>
     </SYS_config2>
 </SetChild2>
</TempHtml> 



<TempHtml>
  <GetParent/>
</TempHtml> 
   --> Thiết lập 3 mục trong mẫu HTML giống trang cha.

<TempHtml>
  <GetXml>ID</GetXml>
</TempHtml> 
   --> Thiết lập 3 mục trong mẫu HTML theo file app_data/xml_data/web_data_load.xml


* Mục cấu hình -> Lệnh
<ParentHtml_ALL>=</ParentHtml_ALL>
<TempHtml>GetParent</TempHtml>  
     kế thừa mẫu từ trang cha, lệnh cấu hình ở trang con, lệnh này phải cấu hình từng trang con tạo ra
<TempHtml>SetChild</TempHtml>  : kế thừa mẫu từ trang cha, lệnh cấu hình ở trang cha, các trang con không cần cấu hình lệnh nữa, chỉ có hiệu lực khi Mẫu HTML rỗng.
<TempHtml>Null</TempHtml>  -> Không kế thừa mẫu nào

3. Cấu hình theo điều kiện dữ liệu
/AdminSYS/Config.aspx -> tham số 79
Tên_Cột;Giá trị;ID_Trong_web_data_load
Click để xem danh sách Tên_Cột  tham khảo

Ví dụ: những dữ liệu cấp thứ 3 (là cấp cháu) thì áp mẫu có ID là 2
SysLevelRow;3;2
web_data_load.xml
Để sửa cấu hình web_data_load vào /Adminxml/xml_getdata.aspx?file=web_data_load.xml


4. Thứ tự xử lý lệnh mẫu HTML
Khi truy cập 1 trang hệ thống sẽ kiểm tra
+ Kiểm tra 3 mục mẫu HTML: HTML Header, HTML Body, HTML Temp
    - Nếu CÓ giá trị thì lấy giá trị làm mẫu
    - Nếu KHÔNG thì xem phần lệnh có lệnh thuộc giá trị sau
        <TempHtml> <GetParent> lấy mẫu cấp cha.
        <TempHtml> <Empty/> gán rỗng cho dù cấp cha có lệnh <SetChild> ở cấp cha.
        Xem ở cấp cha có <SetChild> , nếu có hãy lấy mẫu từ cấp cha


             

    - Nếu không có giá trị kiểm tra có lệnh
     -> Nếu có:
                - Nếu là: GetParent thì lấy mẫu của trang cha  (Mẫu HTML: HTML Header, HTML Body .HTML Temp)
               
     -> Nếu không: kiểm tra trang cha có lệnh mẫu có hay không
               -> Nếu có: thì xem có lệnh SetChild, lấy lệnh SetChild làm lệnh mẫu
               -> Nếu không:


Mặc định nếu không có lệnh mẫu sẽ mặc định là...


+ Muốn các trang hiện tại kế thừa mẫu từ mẫu của trang cha hãy cấu hình lệnh ở trang hiện tại như sau:

 

+ Muốn các trang con được tạo ra

+ Nếu cấu hình mẫu theo cấp bảng ghi, theo trường _SysPosRow

Trường _SysPosRow có giá trị là 1, 2 ,3 , 4 ... n

Nếu muốn tạo ra 1 trang mới mà mẫu khởi theo theo giá trị định sẵn
/AdminSYS/NoiDung_Web_Edit.aspx?id=0&state=add&id_p=0&view=tieude&config=web_data_load:1
  File để tại App_Data/xml_data/web_data_load.xml