«

模板设置插件

那多记忆 • 2022-11-20 19:44 • 1105 次点击 • 🧩插件


模板设置插件

PRO版模版设置插件,为模板提供更丰富的设置功能。该插件由emlog官方和爱好者蓝叶共同维护,请放心使用。

如何让模板能被插件识别?

在模板目录里放入options.php,内容格式如下即可,可以任意增加设置项,注意$options变量和注释:

<?php
/*@support tpl_options*/
!defined('EMLOG_ROOT') && exit('access deined!');
$options = array(  
    'bodybg' => array(
        'type' => 'color',
        'name' => '背景颜色',
        'values' => array('#ffffff'),
        'description' => '点击选择颜色进行设置。',
    ),  
    'viewmode' => array(
        'type' => 'checkon',
        'name' => '网站开关',
        'values' => array('1'=>'开启'),
        'description' => '点击设置开关,蓝色为开启。',
    ),
    'sidebar' => array(
        'type' => 'radio',
        'name' => '侧边栏位置',
        'values' => array(
            'left' => '左边',
            'right' => '右边'
        ),
        'default' => 'right',
    ),
    'sortIcon' => array(
        'type' => 'image',
        'name' => '分类图标设置',
        'values' => array(
            TEMPLATE_URL . 'images/star.png',
        ),
        'depend' => 'sort',
        'unsorted' => true,
        'description' => '给不同的分类设置不一样的小icon,以20×20为宜',
    ),
);

options.php里,每个元素都该写什么?

如上所示,$options数组里,key为设置项的id,而value是一个数组,数组里包含若干个元素。其中type属性和name属性必选,name是设置项名字,而type用来指定设置项的类型,支持的类型如下:

  • radio: 单选按钮
  • checkbox: 复选按钮
  • text: 文本
  • image: 图片
  • page: 页面
  • sort: 分类
  • tag: 标签
  • color: 颜色
  • checkon: 开关
  1. 对于所有类型,default属性用于指定默认值,当没有指定default时,使用values里第一个值,若都没有指定,则会使用奇怪的默认值。
  2. 对于radio和chexkbox,values属性用来设置各个按钮的值和显示名称。
  3. 除sort外,均可以指定depend为sort,表示该选项可以根据不同的分类设置不同的值,当指定depend为sort时,可选unsorted属性,为true时,表示包括未分类,为false不包括,默认为true。
  4. sort和page可设置multi属性为true,表示多选。
  5. description属性可选,用以描述该选项。
  6. 若type为text,可设置multi属性为true,表示多行文本,即input和textarea的区别,可选属性rich用以支持富文本,若设置该值,将加载编辑器。
  7. 若type为sort、page或者tag,且设置了多选,默认值将为空,否则将为第一个该类型的值。
  8. color为颜色控件,点击可以选择颜色生成代码。
  9. checkon为开关样式,点击设置开关,蓝色为开启。

模板里如何调用设置项

插件提供简单方法_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文件。

更新记录

模板插件

评论:
avatar
UTF-X 用户2023-04-16 06:50
可不可以设置多级菜单