Este paquete proporciona una forma ESAY de integrar GrapesJs en su ProeJCT de Laravel.
composer require jd-dotlogics/laravel-grapesjs
php artisan vendor:publish --tag="laravel-grapesjs"
php artisan migrate
Agregue la columna 'GJS_DATA' a la tabla de base de datos del modelo (por ejemplo, página), para la cual usará el editor.
Implementar la interfaz editable y utilizar el rasgo EditableRait para la clase de modelo
use Illuminate Database Eloquent Model ;
use Dotlogics Grapesjs App Traits EditableTrait ;
use Dotlogics Grapesjs App Contracts Editable ;
class Page extends Model implements Editable
{
use EditableTrait;
. . .
}Route:: get ( ' pages/{page}/editor ' , ' PageController@editor ' ); <?php
namespace App Http Controllers ;
use App Models Page ;
use Illuminate Http Request ;
use Dotlogics Grapesjs App Traits EditorTrait ;
class PageController extends Controller
{
use EditorTrait;
. . .
public function editor (Request $ request , Page $ page )
{
return $ this -> show_gjs_editor ( $ request , $ page );
}
. . .
}
Los marcadores de posición son como el código corto en WordPress. La sinaxa del marcador de posición es
[[This-Is-Placeholder]]
Cree un archivo llamado "this-is-placeholder.blade.php" en "/recursos/vistas/proveedor/laravel-grapesjs/de posición".
El marcador de posición será reemplazado por el contenido del archivo de Blade relativo "this-is-placeholder.blade.php"
Puede crear plantillas globales (o bloques) en el directorio "/recursos/vistas/proveedor/laravel-grapesjs/plantillas". Y las plantillas/bloques estarán disponibles en la sección de bloques de Editors. También puede crear plantillas/bloques específicos del modelo definiendo GetTemplatesPath/GetGJSBlockSpath en el modelo
public function getTemplatesPath (){ return ' pages_templates ' ; }Esto buscará plantillas en el directorio "Laravel-GrapesJ :: Pages_Templates".
También puede devolver nulo de estos métodos para ocultar plantillas/bloques para cualquier modelo.
El modelo "editable" (por ejemplo) tendrá dos propiedades públicas, CSS y HTML. En su archivo Blade puede usar estas propiedades para mostrar el contenido.
< style type = " text/css " >
{!! $page -> css ! !}
</ style >
{!! $page -> html ! !}
Gracias por usar.