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

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

来自版块: 站长杂谈发表于: 2015-8-17 11:30:14
54341
0
如本资源下载地址失效,请点击此处进行反馈
开通本站Svip会员,全站资源免费下
    一直以来,emlog走的轻量级路线,没有集成模板后台设置,于是很多功能强大的模板不得不在需要的时候,修改文件以改变设置。那么,有了这个插件以后,就可以不用如此纠结了,只要模板按照开发规范来开发,就可以使用本插件在后台进行设置了。重点强调,本插件是辅助插件,所有设置依赖于模板的功能,而不是插件本身,因此不要问我为什么没有blabla功能,请去寻求模板作者。' T+ W' D; ~- Y- L8 z

  G. n7 @) x" \# [4 l) o. c5 T  _' g插件名称:模板设置& D5 z/ d7 A. }0 \! D% w* s' Y
插件作者:奇遇
% v' U- g8 _; _6 s& i2 D下载地址:https://tuyuanma.com/news-1124-1-1
' [. I/ G  D; ^) Y) s# P  k' N6 t$ b* t* W; @& `* r
哪些模板支持?
/ _6 x! [2 m1 A4 p    多模板,尤其是CMS模板,会有很多设置项,大多会有一个options.php文件,当你需要修改配置时,就得去修改文件,那么哪些模板才能用上插件的后台设置功能呢?
0 m( S2 Q* ]% ?$ O. t& r答案是:按照规范来开发的模板。模板开发者请看下面!
  {3 ~. R7 Y4 t' i: D, |6 |# V& f  |" q" a
如何让模板能被插件识别?6 u( R  k- A; y/ t9 J, P/ O0 \
    在模板目录里放入options.php,内容格式如下即可,可以任意增加设置项,注意$options变量和注释:

  1. , m( z! X9 B4 S
  2. <?php
    + a1 P( G0 g1 J. \
  3. /*@support tpl_options*/
    # u8 d- O& Q; V# h/ q0 m
  4. !defined('EMLOG_ROOT') && exit('access deined!');
    9 C2 q5 v0 T1 e7 V
  5. $options = array(
    3 \  G  [! j- b7 G& ]0 V9 t
  6.     'sidebar' => array(# D. f; P) z5 d
  7.         'type' => 'radio',
    ; u4 K) e2 m0 z( [
  8.         'name' => '侧边栏位置',) y: F' B. w7 o! M% @& @, S
  9.         'values' => array(- G1 w9 f! Q! t, E. K+ f" U
  10.             'left' => '左边',
    ! k8 p& ]. F8 o3 u: z& V9 l- ?5 H
  11.             'right' => '右边'! y3 ~" K+ P. {: a
  12.         ),8 x& E- ?" q  f  d5 K* ]9 [
  13.         'default' => 'right',
    3 o9 Y- E  u4 B- l& g1 W
  14.     ),9 z. x. t1 A; Q. k# r3 l) Y; A
  15.     'sortIcon' => array(0 \5 K, D+ M# e0 L1 ]
  16.         'type' => 'image',( u3 Q3 w$ T6 u0 I% S# b4 V6 x
  17.         'name' => '分类图标设置',
    5 q) J" y' T. T# Z- {2 N
  18.         'values' => array(
    : Q1 Y2 @+ [2 V2 f/ q& F$ b
  19.             TEMPLATE_URL . 'images/star.png',- I7 |9 z4 m- Y! s. ]' Z6 x
  20.         ),: |7 n! z( e- P2 \( ?# Y/ G7 z
  21.         'depend' => 'sort',
    ' f" x3 L5 O/ F' S7 P
  22.         'unsorted' => true,- n3 e2 s$ y% T( L# h( _. m2 E6 n
  23.         'description' => '给不同的分类设置不一样的小icon,以20×20为宜',
    & `) F& z6 O$ `: i2 f
  24.     ),8 b5 v& g: J6 D! R
  25. );
复制代码
options.php里,每个元素都该写什么?
8 \( K0 }" I( I4 y( Q3 `    如上所示,$options数组里,key为设置项的id,而value是一个数组,数组里包含若干个元素。其中type属性和name属性必选,name是设置项名字,而type用来指定设置项的类型,支持的类型如下:
  1. radio: 单选按钮
    $ {# N. G  Z5 a6 j- ^/ G
  2. checkbox: 复选按钮
    - @* U, Q2 n' C# K3 ]+ a2 [
  3. text: 文本$ |% {5 f4 z! y: E" J
  4. image: 图片2 J* Q" u' S- Q$ D6 c1 A
  5. page: 页面
    % r* U# @# m- `* w8 e
  6. sort: 分类, }! V( s$ U4 {7 x
  7. tag: 标签
复制代码
/ V; T1 S' F7 ~4 v) ~! ]/ m& _
    对于所有类型,default属性用于指定默认值,当没有指定default时,使用values里第一个值,若都没有指定,则会使用奇怪的默认值。3 g3 ]' g2 {: w* ~8 B' m5 i
    对于radio和chexkbox,values属性用来设置各个按钮的值和显示名称。, w. D, b6 @0 V$ O5 C. o
    除sort外,均可以指定depend为sort,表示该选项可以根据不同的分类设置不同的值,当指定depend为sort时,可选unsorted属性,为true时,表示包括未分类,为false不包括,默认为true。  Y" m5 w3 f& A% i: T; x
    sort和page可设置multi属性为true,表示多选。
3 O2 W. B! D/ M8 e9 B( {" f* A    description属性可选,用以描述该选项。
2 C, p- Q& E1 H$ q* g* V$ g( {    若type为text,可设置multi属性为true,表示多行文本,即input和textarea的区别,可选属性rich用以支持富文本,若设置该值,将加载编辑器。
/ C" E  a! l  R3 Y4 t% U+ _6 l    若type为sort、page或者tag,且设置了多选,默认值将为空,否则将为第一个该类型的值。$ ]$ @4 |' }/ A  m+ M  d3 c

/ T$ m& e, U. Q7 r7 o模板里如何调用设置项$ {) |7 t7 B+ m7 U
    插件提供简单方法_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文件。
2 Y' @$ V) {$ ^$ U3 q# |9 C5 m

全部评论 0

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