每个主题都是核心的延伸ThemePlugin
类。这个类有许多方法,可以帮助您加载脚本和样式、修改父样式表等等。
本节包含这个PHP类的技术文档。如果您不熟悉主题类以及它与样式、脚本和模板之间的关系,您应该熟悉在这里开始.
主题的设置和配置将在init ()
方法。此方法仅为当前活动主题(或当前活动主题的父主题)运行。API的所有其他方法都应该在init ()
方法。
/** *初始化主题的样式,脚本和钩子。这只适用于*当前活动的主题。* * @return null */公共函数初始化(){$这一点->addStyle(“my-custom-style”,“风格/ index.less”);}
向主题添加样式表。通过一项少
将自动编译的文件。
公共函数初始化(){$这一点->addStyle(“my-custom-style”,“风格/ index.less”);}
通过一个预编译CSS
如果你愿意,可以归档。
公共函数初始化(){$这一点->addStyle(“my-custom-style”,“风格/ stylesheet.css”);}
此方法接受许多可选参数args美元
.
/** *添加一个样式表以加载这个主题**扩展名为.less的样式路径将被编译并重定向到*编译文件。* * @param $name string样式表的名称。应该是一个相对于*主题目录的路径,或者,如果包含' inline '参数,则输出*的样式数据。* @param $args array可选参数哈希。支持的args: * 'context':是否加载这个在' frontend '或' backend '。*默认:' frontend ' * 'priority':控制样式打印的顺序数组* 'addLessVariables':一个包含额外的LESS变量的字符串,在编译之前要*解析。示例:“@bg: # 000;”* ' inline ' bool $style值是否应该直接作为* style数据输出。*/公共函数addStyle(美元的名字,$风格,args美元=数组()){...}
风格与前端
context将输出到你放置自定义Smarty的主题中load_stylesheet
功能:
= $ {load_stylesheet上下文=“前端”样式表的样式表}
如果愿意,您可以定义和使用多个上下文。但前端
是否有主题标准,如果没有,会自动设置上下文
参数传递。
修改已注册的样式,例如父主题的风格。以下将修改a默认的
样式,添加另一个少
文件并排编译。
公共函数初始化(){$这一点->modifyStyle('默认',数组(“addLess”=>数组(“风格/ colors.less”)));}
的modifyStyle
函数接受数组args美元
哪一个允许你修改args美元
在样式注册时设置addStyle ()
.
/ ** *修改现有样式表的参数* * @param $ name字符串要修改的样式表的名称* @param $ args数组参数要修改。* @see self :: addstyle()* @return null * /公共函数modifyStyle(美元的名字,args美元=数组()){...}
删除已经注册的样式,例如父主题的风格。以下将删除命名的风格默认的
.
公共函数初始化(){$这一点->removeStyle('默认');}
向主题添加一个JavaScript文件。
公共函数初始化(){$这一点->addScript(“代码”,“js / main.js”);}
此方法接受许多可选参数args美元
.
/** *添加一个脚本以加载这个主题** @param $name string这个脚本的名称* @param $script string要包含的脚本。应该是相对于主题*的路径,或者,如果包含' inline '参数,则输出*的脚本数据。* @param $args array可选参数哈希。支持的args: * ' context ' string是否加载这个在' frontend '或' backend '。* default: frontend * ' priority ' int控制脚本打印的顺序。* default: STYLE_SEQUENCE_NORMAL * ' inline ' bool $script值是否应该直接作为* script数据输出。用于将后端数据传递给脚本。*/公共函数addScript(美元的名字,美元的脚本,args美元=数组()){...}
脚本的前端
context将输出到你放置自定义Smarty的主题中load_script
功能:
{load_script context =“frontend”脚本= $ scripts}
如果愿意,您可以定义和使用多个上下文。但前端
是否有主题标准,如果没有,会自动设置上下文
参数传递。
修改已经注册的脚本,例如父主题的脚本。的modifyScript
函数接受数组args美元
哪一个允许你修改args美元
设置注册脚本的时间addScript ()
.
/** *修改已有脚本的参数** @param $name string要修改的脚本的名称* @param $args数组要修改的参数。* @see self::addScript() * @return null */公共函数modifyScript(美元的名字,args美元=数组()){...}
删除已经注册的脚本,例如父主题的脚本。下面将删除一个名为默认的
.
公共函数初始化(){$这一点->removeScript('默认');}
主题必须注册菜单区域,以显示Journal Manager (v3.1+)创建的导航菜单。下面将注册一个名为主
.
公共函数初始化(){$这一点->addMenuArea(“主”);}
你也可以一次经过几个菜单区。
公共函数初始化(){$这一点->addMenuArea(数组(“主”,“用户”));}
删除已经注册的菜单区域,例如父主题的菜单区域。下面将删除一个名为用户
.
公共函数初始化(){$这一点->removeMenuArea(“用户”);}
将当前主题设置为另一个主题的子主题。了解更多关于儿童主题.
公共函数初始化(){$这一点->setParent(“defaultthemeplugin”);}