samsoncms / template
SamsonCMS 基础模板
0.0.5
2016-08-17 13:03 UTC
Requires
Requires (Dev)
- phpunit/phpunit: 4.2.*
This package is not auto-updated.
Last update: 2024-09-14 16:13:41 UTC
README
此模块负责渲染基础HTML模板、其样式、图标和图片。
所有模板样式均使用LESS创建,每个实体都有其 vars.less
。
此模块应定义SamsonCMS的HTML结构、构建块和实体,这些实体应在所有其他SamsonCMS模块和应用中使用。
此模板是基本的,包含在SamsonCMS引导程序中,但可以通过自定义或修改一次轻松更改,必须满足的唯一限制是模板结构和其事件,因为所有SamsonCMS生态系统都是基于此结构和实体构建的。
模板使用 Font-Awesome 用于所有图标。
事件
所有结构块都有事件(http://github.com/samsonphp/event),它们的所有填充和渲染都应该通过这些事件完成。
模板结构
此基础SamsonCMS模板结构可以定义为以下
- 菜单部分
.template-menu
- 子菜单部分
.template-sub-menu
- 容器部分
.template-container
模板菜单结构
索引视图位于 www/menu/index.vphp
,菜单项视图位于 www/menu/item.vphp
<section>.template-menu
<ul>.template-menu-list
<li>.text
如果项是活动的,则添加.active
<a>.item
或<div>.item
(对于 .active 元素,因为它不能被点击)<i>
用于图标(如果不需要图标,则不要使用它)<span>
用于项文本(如果不需要文本,则不要使用它)
模板子菜单结构
索引视图位于 www/menu/index.vphp
,菜单项视图位于 www/menu/item.vphp
<section>.template-sub-menu
<ul>.template-sub-menu-list
<li>.collapser
用于显示/隐藏子菜单<li>
您可以使用任何内部项结构
菜单事件
菜单创建事件 - template.menu.started: &$html, &$submenu
此事件在开始通用菜单渲染过程之前触发。在菜单开始之前,默认模板菜单项将自动添加
- 主页项
- 转到网站项 因此,在您的事件中,您将已经收到非空的菜单
$html
,这使您能够删除这些默认项或更改它们。
要渲染子菜单部分,您需要在事件处理程序中填写 $submenu
。
菜单渲染事件 - template.menu.rendered: &$html, &$submenu
此事件在所有菜单内部项目已渲染到主容器中时触发。
菜单事件处理程序示例
这是一个修改后的旧方法,通过新的菜单事件集成菜单和子菜单渲染
function oldMenuRenderer(&$html, &$subMenu) { // Iterate loaded samson\cms\application foreach (\samson\cms\App::loaded() as $app) { // Show only visible apps if ($app->hide == false) { // Render application menu item $html .= m('template') ->view('menu/item') ->active(url()->module == $app->id() ? 'active' : '') ->app($app) ->icon($app->icon) ->name(isset($app->name{0}) ? $app->name : (isset($app->app_name{0}) ? $app->app_name : '')) ->output(); } } $subMenu = ''; // Find current SamsonCMS application if (\samson\cms\App::find(url()->module, $app/*@var $app App*/)) { // Render main-menu application sub-menu $subMenu = $app->submenu(); // If module has sub_menu view - render it if ($app->findView('sub_menu')) { $subMenu .= $app->view('sub_menu')->output(); } } }
模板容器结构
容器内的所有元素都必须在 .template-block
内
<section>.template-container
<div>.template-block
模板容器表单结构
<*>.template-form
应用于所有表单<div>.template-form-group
- 表单行<div>.template-form-input
- 表单输入字段<input,select,textarea>.template-form-input-field
<label>.template-form-input-placeholder
用于代替标准占位符
容器事件
主页创建事件 - template.main.created
此事件在开始主页渲染过程之前触发。
主页渲染事件 - template.main.rendered
此事件在主页面被渲染到主容器时触发。