plutuss / static-text-laravel
此包使得在 Laravel 中,可以从管理面板修改页面的静态文本成为可能。
1.0.5
2024-06-04 14:14 UTC
README
Laravel
“Static Text Laravel” 包提供了一种简单有效的解决方案,可以直接从 Laravel 管理面板管理网站上的静态文本和图片。利用其功能,您可以在无需开发者干预的情况下更新网站内容,使内容管理更加灵活方便。
关键特性
- 静态文本管理:允许网站管理员轻松更新文本内容,如标题、段落、列表和其他元素,无需修改代码或重新加载页面。
- 图片编辑:允许从管理面板直接上传新图片和更新现有图片。这对于更新横幅、标志和其他网站视觉元素来说非常方便。
- 多语言支持:提供管理多语言内容的能力,对于多语言网站尤其有用。
- 访问控制:为管理员和内容编辑器提供灵活的访问设置,根据用户角色限制对功能的使用。
- Laravel 集成:完全兼容 Laravel 框架,并利用最佳开发实践,如迁移、种子和服务提供者。
composer require plutuss/static-text-laravel
php artisan vendor:publish --provider="Plutuss\Providers\StaticTextServiceProvider"
php artisan migrate
<?php use Plutuss\Models\Page; use Plutuss\Http\Requests\StorePageRequest; use Plutuss\Http\Requests\StorePageItemRequest; class PageController extends Controller { public function index() { $page = Page::findByName('name_page'); return view('welcome', compact('page')) } public function addPage(StorePageRequest $request) { $page = Page::add( name: 'home', slug: '/', template: 'main', seo_title: 'seo_title', // this field can be empty seo_description: 'seo_description' // this field can be empty ); } public function addPageItem(StorePageItemRequest $request) { $page = Page::findByName('home'); $pageItem = PageItem::add( name: 'header', page_id: $page->id, data: [ [ 'key' => 'h1', 'value' => 'Installed packages Laravel', 'type' => 'text', ], [ 'key' => 'image-bg', 'value' => 'path/image.jpg', // path image or file 'type' => 'image', // or file ] ]); } public function addPageItemWithLocale() { $pageItem = PageItem::add( name: 'header', page_id: $page->id, data: [ [ 'key' => 'h3_en', // You can specify a key with the available localisations in the application 'value' => 'Installed packages Laravel', 'type' => 'text', ], [ 'key' => 'h3_de', // You can specify a key with the available localisations in the application 'value' => 'Installierte Pakete Laravel', 'type' => 'text', ] ]); } }
resources/views/*.blade.php
<h1> {{ $page->show('header:h1') }} </h1> // You can specify a default value // if the required value is not found in the database. {{ $page->show('header:description_text','default value') }} // Call to a view without specifying a locale <h3> {{ $page->show('header:h3') }} </h3>
您可以使用包装类
$page = Page::query()->first(); $wrapper = new StaticTextWrapper(); $wrapper->setName('header'); $wrapper->setPageId($page->id); $wrapper->setData('h1_title', 'packages', 'text'); $wrapper->setData('description', 'Installed packages laravel', 'text'); $wrapper->setData('package_url', 'https://github.com/plutuss/static-text', 'url'); $pageItem = PageItem::addWithWrapper($wrapper); // Or ************************************* $page = Page::query()->first(); $wrapper = (new StaticTextWrapper())->setName('header') ->setPageId($page->id) ->setData('h1_title', 'packages', 'text') ->setData('description', 'Installed packages laravel', 'text') ->setData('package_url', 'https://github.com/plutuss/static-text', 'url'); $pageItem = PageItem::addWithWrapper($wrapper);
您还可以获取一个用于保存的已准备好的数据数组
- 使用一个方法 get()
$page = Page::query()->first(); $wrapper = (new StaticTextWrapper())->setName('header') ->setPageId($page->id) ->setData('h1_title', 'packages', 'text') ->setData('description', 'Installed packages laravel', 'text') ->setData('package_url', 'https://github.com/plutuss/static-text', 'url') ->get(); $pageItem = PageItem::create($wrapper);
- 然后在 blade 中调用
{{ $page->show('header:h1_title') }} {{ $page->show('header:description') }} {{ $page->show('header:package_url') }}