tigron/skeleton-package-crud

Tigron 骨架 CRUD 功能

v4.0.0 2024-09-02 12:02 UTC

This package is auto-updated.

Last update: 2024-09-02 12:03:45 UTC


README

描述

此库为骨架对象提供 CRUD 功能

安装

通过 Composer 安装

composer require tigron/skeleton-package-crud

如何安装

模块

在你的应用程序中创建一个扩展自 Skeleton\Package\Web\Module\Crud 的模块

<?php
/**
 * Module Crud
 *
 * @author Christophe Gosiau <christophe@tigron.be>
 * @author Gerry Demaret <gerry@tigron.be>
 * @author David Vandemaele <david@tigron.be>
 */

use Skeleton\Package\Crud\Web\Module\Crud;

class Web_Module_User extends Crud {

	/**
	 * The template
	 *
	 * @access public
	 */
	public $template = 'user.twig';

	/**
	 * Get the pager object
	 *
	 * @access public
	 * @return Pager $pager
	 */
	public function get_pager() {
	}
}

Create a route in your application Config.php

	/**
	 * Routes
	 */
	'routes' => [
		'web_module_user' => [
			'$language/user'
		],
	]

模板

为你的模块创建一个模板,将生成的模板注入到你的布局中

{% extends "_default/layout.base.twig" %}

{% block header_js %}
	{% embed "@skeleton-package-crud/javascript.twig" %}{% endembed %}
{% endblock header_js %}

{% block header_css %}
	{% embed "@skeleton-package-crud/css.twig" %}{% endembed %}
{% endblock header_css %}

{% block content %}
	{% embed "@skeleton-package-crud/content.twig" with {'object_name': 'My object'} %}{% endembed %}
{% endblock content %}

模板块

在嵌入 "@skeleton-package-crud/content.twig" 中,有可用的块来自定义 CRUD 模块。以下是可以找到的块及其默认内容列表

分页页面

分页的过滤器

{% block pager_filters %}
	<div class="form-group">
		<label class="control-label col-lg-2">{% trans "Search" %} </label>
		<div class="controls col-lg-10">
			<input type="text" class="form-control" name="search" value="{{ pager.get_search() }}"/>
		</div>
	</div>
{% endblock pager_filters %}

面包屑导航

{% block page_pager_breadcrumb %}
	{#
		Insert the full breadcrumbs for the edit page
	#}
{% endblock page_pager_breadcrumb %}

分页表格的表头

{% block pager_table_head %}
	{% for definition in default_fields %}
		<th>{{ pager.create_header(definition.field, definition.field) }}</th>
	{% endfor %}
{% endblock pager_table_head %}

分页表格的行

{% block pager_table_row %}
	{% for definition in default_fields %}
		<td>{{ attribute(object, definition.field) }}</td>
	{% endfor %}
{% endblock pager_table_row %}

创建页面

对象创建的表单

{% block form_create %}
	{#
		Insert a complete form for object creation here.
		Make sure that an array with key object[field] is posted
	#}
{% endblock form_create %}

面包屑导航

{% block page_create_breadcrumb %}
	{#
		Insert the full breadcrumbs for the create page
	#}
{% endblock page_create_breadcrumb %}

创建页面

{% block page_create %}
	{#
		Insert a complete page for creating the object here
		Make sure that an array with key object[field] is posted
	#}
{% endblock page_create %}

创建页面页脚

{% block page_create_footer %}
	{#
		This is a part of block page_create just below the edit form
		This can be used to show additional information about the object
	#}
{% endblock page_create_footer %}

编辑页面

编辑对象的表单

{% block form_edit %}
	{#
		Insert a complete form for editing the object here.
		Make sure that an array with key object[field] is posted
	#}
{% endblock form_edit %}

面包屑导航

{% block page_edit_breadcrumb %}
	{#
		Insert the full breadcrumbs for the edit page
	#}
{% endblock page_edit_breadcrumb %}

编辑页面

{% block page_edit %}
	{#
		Insert a complete page for editing the object here
		Make sure that an array with key object[field] is posted
	#}
{% endblock page_edit %}

编辑页面页脚

{% block page_edit_footer %}
	{#
		This is a part of block page_edit just below the edit form
		This can be used to show additional information about the object
	#}
{% endblock page_edit_footer %}

模块方法

在模块中,你可以使用以下方法来配置 CRUD 行为

/**
 * Is deletable
 *
 * @access public
 * @param Object $object
 * @return bool $deletable
 */
public function is_deletable($object) {
	return true;
}

/**
 * Is editable
 *
 * @access public
 * @param Object $object
 * @return bool $editable
 */
public function is_editable($object) {
	return true;
}

/**
 * Is creatable
 *
 * @access public
 * @return bool $creatable
 */
public function is_creatable() {
	return true;
}