insyht / larvelous
Larvelous 框架
Requires
- php: ^8.2
- barryvdh/laravel-ide-helper: ^2.13
- deployer/deployer: ^7.3
- filament/filament: ^2.0
- guzzlehttp/guzzle: ^7.2
- jeffgreco13/filament-breezy: ^1.5
- laravel/framework: ^10.10
- laravel/sanctum: ^3.2
- laravel/tinker: ^2.8
- laravel/ui: ^4.0
- livewire/livewire: ^2.12
- sentry/sentry-laravel: ^3.6
- spatie/laravel-permission: ^5.10
Requires (Dev)
- barryvdh/laravel-debugbar: ^3.8
- doctrine/dbal: ^3.0
- fakerphp/faker: ^1.9.1
- laravel/pint: ^1.0
- laravel/sail: ^1.18
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^7.0
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.3
- spatie/laravel-ignition: ^2.0
README
如何工作:每个网站有1个设计,在这里定义了颜色和样式(实际上是css)。网站由页面组成。每个页面都链接到一个模板。模板由块组成,例如介绍块或图像滑块块。除了块之外,还有表单,你可以在模板中放置这些表单,就像块一样。你可以有1个或多个菜单,在这些菜单中放置页面。在某些块中,你可以放置1个或多个媒体文件,这些文件可以在“媒体”部分单独管理。还有插件,这些插件可以包含/修改块/表单/模板/页面/菜单/设计。
因此
Website--Design
____________________________|____________________
| |
Pagina--template Pagina--template
____________________| ________|________
| | | |
Blok Blok Blok Blok
________|________
| |
Media Media
Website--Design
_______________________|_______________________
| |
Menu Menu
___________________|____________ ___________________|____________
| | | | | | | | | |
Pagina Pagina Pagina Pagina Pagina Pagina Pagina Pagina Pagina Pagina
这个树状结构在数据库中以模型的形式存储,并通过网站API以JSON格式内部提供,这样CMS就可以建立连接。因此,CMS没有自己的网站数据,而是基于从连接的网站获得的JSON。我还可以将这些JSON用作网站的缓存机制,以提高其速度(不需要数据库查询)。一个例子
{ "website": { "design": { "theme": "vegas", // 在SCSS/themes目录下使用名为"vegas"的SCSS文件。一个主题包含字体、列结构等。
数据库结构:pages id language_id template_id title url(可能是路由?)
templates(这是页面的类型,例如文本页面或产品页面)id resource_id(可以通过此id获取特定模板的数据)label view(Blade视图的路径,例如templates/winkelwagen对应resources/views/templates/winkelwagen.blade.php)
blocks id resource_id(可以通过此id获取特定模板的数据)view(从root开始的Blade视图路径,例如insyht/larvelous-shop/resources/views/paragraph对应vendor/insyht/larvelous-shop/resources/views/paragraph.blade.php)label description
block_variables id block_id name(Blade视图中变量的名称,但不包括美元符号)label(字段名称,用户在CMS中看到的名称)type(textfield,textarea,imageselector,pageselector)required(布尔值)
block_variable_values id block_variable_id language_id value
block_variable_value_template_block(模板块与块变量值之间的关联表)id template_block_id block_variable_value_id 排序(如果在一个模板中包含多个块时使用)
block_templates(模板与块之间的关联表)id 页面_id block_id 启用 排序
languages id 名称 缩写(ISO-639-1)
创建特定块所用的SQL语句