Emlog模板设置插件使用教程及开发规范-站长杂谈下载

Emlog模板设置插件使用教程及开发规范

开通本站Svip会员,全站资源免费下
    一直以来,emlog走的轻量级路线,没有集成模板后台设置,于是很多功能强大的模板不得不在需要的时候,修改文件以改变设置。那么,有了这个插件以后,就可以不用如此纠结了,只要模板按照开发规范来开发,就可以使用本插件在后台进行设置了。重点强调,本插件是辅助插件,所有设置依赖于模板的功能,而不是插件本身,因此不要问我为什么没有blabla功能,请去寻求模板作者。
6 C; y* b9 }3 t6 r) a  |
2 ]2 ]* N0 t6 k/ p  [插件名称:模板设置3 o1 b" P! Q6 U- e+ H
插件作者:奇遇
4 J1 t4 [4 K: q. ]3 D! p1 p下载地址:https://www.tuyuanma.com/news-1124-1-1
- C. @, t# |4 x' Z+ E0 \2 F0 x2 N4 A  o% [; Y' I8 s
哪些模板支持?) ?+ [  V: y9 ?# }) W- V& T+ x
    多模板,尤其是CMS模板,会有很多设置项,大多会有一个options.php文件,当你需要修改配置时,就得去修改文件,那么哪些模板才能用上插件的后台设置功能呢?) h4 t0 Y8 F1 W
答案是:按照规范来开发的模板。模板开发者请看下面!2 D5 b$ V$ K+ u" v. {4 O  @

1 {! l& N$ l7 j+ Y( ~如何让模板能被插件识别?3 M" D# |5 h. b( {1 c1 c
    在模板目录里放入options.php,内容格式如下即可,可以任意增加设置项,注意$options变量和注释:

  1. 1 M8 L8 y* r1 A( X0 J' r) z& ]
  2. <?php
    : H9 V9 S/ [$ p! \. H& G# d
  3. /*@support tpl_options*/' T0 h" U9 f% Z. w' l
  4. !defined('EMLOG_ROOT') && exit('access deined!');3 X5 p5 r4 x' k' e1 x
  5. $options = array(2 [% V# _6 p+ ^9 G1 e
  6.     'sidebar' => array(
    : l2 t# M! {2 F+ X: o
  7.         'type' => 'radio',
    " O3 s% i. ?0 s: e$ [6 M
  8.         'name' => '侧边栏位置',) z9 b) ]- Y2 R; [4 N! e( e" n( }
  9.         'values' => array(% n& ^: ~& i" h/ W: Y
  10.             'left' => '左边',
    : c* V6 I9 k% D, V0 V2 T: t- t
  11.             'right' => '右边'* j+ e& K/ j) b; c3 |3 }8 d' j
  12.         ),/ n7 `8 Z) F/ I  T( N# R/ G
  13.         'default' => 'right',
    ' @  W8 _+ r# S, D9 D, B5 A
  14.     ),/ R& q# v7 k# F' V
  15.     'sortIcon' => array(
    ! t, i, a% w1 c2 `3 e' E7 G1 c7 V
  16.         'type' => 'image',0 N3 j/ E/ W7 r4 \
  17.         'name' => '分类图标设置',+ ^7 ]- X0 h1 N( N( K
  18.         'values' => array(
    3 M& N1 n7 K; s
  19.             TEMPLATE_URL . 'images/star.png',
    + D3 X0 N, E) ?7 I0 x: j$ V3 M! _
  20.         ),
    " D8 z% l/ r+ k( d% P- H' i4 \
  21.         'depend' => 'sort',: d0 J6 K. P7 b- j3 ^7 q# I4 x
  22.         'unsorted' => true,
    ; S7 H* n- D0 }- F) R
  23.         'description' => '给不同的分类设置不一样的小icon,以20×20为宜',* {4 P, l) [% D* P. S7 m! c5 w
  24.     ),& ~4 H* i' j, b( b
  25. );
复制代码
options.php里,每个元素都该写什么?
8 R' L- ^6 Q2 G2 O/ A& w$ l  \    如上所示,$options数组里,key为设置项的id,而value是一个数组,数组里包含若干个元素。其中type属性和name属性必选,name是设置项名字,而type用来指定设置项的类型,支持的类型如下:
  1. radio: 单选按钮
    0 w# d5 b, i4 h! |7 r
  2. checkbox: 复选按钮3 T* J8 i- f3 y- a1 b
  3. text: 文本, H% O+ s0 m8 E3 L* e3 D
  4. image: 图片
    , U! U5 a+ }8 T: x+ d
  5. page: 页面; x! _/ b  l+ u2 S8 {- B( c; a
  6. sort: 分类3 L) r4 x& M5 a. s9 M. f, f2 X
  7. TAG: 标签
复制代码
4 k, ~1 e( B& d1 f6 Y! w6 s/ Q
    对于所有类型,default属性用于指定默认值,当没有指定default时,使用values里第一个值,若都没有指定,则会使用奇怪的默认值。, ~: K7 W1 X* C1 d" @3 U; ?
    对于radio和chexkbox,values属性用来设置各个按钮的值和显示名称。
% t1 x0 {  K2 O    除sort外,均可以指定depend为sort,表示该选项可以根据不同的分类设置不同的值,当指定depend为sort时,可选unsorted属性,为true时,表示包括未分类,为false不包括,默认为true。
6 M" y5 C4 b3 e  d/ l1 r0 p$ x    sort和page可设置multi属性为true,表示多选。5 A: E- ]& n5 m$ p, |' e6 q
    description属性可选,用以描述该选项。0 L6 w2 G% |4 B. r( w& P, G
    若type为text,可设置multi属性为true,表示多行文本,即input和textarea的区别,可选属性rich用以支持富文本,若设置该值,将加载编辑器。
3 }& Z5 k, {" R& s- l    若type为sort、page或者tag,且设置了多选,默认值将为空,否则将为第一个该类型的值。
( e! [6 z. c& s( B6 D. @1 [* E1 i4 A0 m$ b% t9 x: S
模板里如何调用设置项$ U4 _6 d6 n2 A6 s# V, i
    插件提供简单方法_g($key),如上示例,可以使用_g('sidebar')来获取侧边栏的设置,取到的值将为0或者1,使用_g('sortIcon')来获取分类icon的全部设置,以分类id为key的数组,使用_g('sortIcon.1')来获取分类id为1(如果存在)的sortIcon。需要注意的是,对于类型为page的,将取到页面id,类型为sort的,将取到分类id,类型为tag的,将取到标签名。 若不传递参数,即使用_g()方法将获取到所有设置项,对于老的模板迁移来的,可以用extract(_g());来代替原来的加载option文件。
: ~0 S8 t' m: U8 M, l

全部评论 0

您需要登录后才可以回帖 立即登录
登录
0
0
0
返回顶部