/simplecms

simplecms

Primary LanguagePHPOtherNOASSERTION

SimpleCMS

Instalación / Configuración

  • Instalar package

      composer require "lebenlabs/simplecms=0.0.*"
  • Ejecutar un composer dump-autoload

      composer dump-autoload
  • Correr publish del package.Elegir el package en la pregunta (Provider: Lebenlabs\SimpleCMS\SimpleCMSServiceProvider)

        php artisan vendor:publish
  • Ejecutar un composer dump-autoload

      composer dump-autoload
  • Config de filesystems

        // Added for SimpleStorage package
        'archivos' => [
            'driver' => 'local',
            'root' => storage_path('app/archivos'),
        ],
    
        // Added for Lebenlabs\SimpleCMS package
        'simplecms_imagenes' => [
            'driver' => 'local',
            'root' => storage_path('app/public/lebenlabs_simplecms/imagenes/publicaciones'),
        ],
  • Ejecutar migrations

  • En el authenticable

        /* --------------------------*/
        
        abstract class Usuario implements Authenticatable, CanResetPassword, CanEditMenu, CanEditMenuItem, CanManagePublicaciones, CanViewPublicacion
        
        /* --------------------------*/
        
    
      /**
       * Returns true if the Entity can edit Menu
       *
       * @return boolean
       */
      public function canEditMenu()
      {
          return $this->esAdministrador();
      }
    
      /**
       * Returns true if the Entity can edit Menu Item
       *
       * @return bool
       */
      public function canEditMenuItem()
      {
          return $this->esAdministrador();
      }
    
      /**
       * Returns true if the Entity can manage publicaciones
       *
       * @return bool
       */
      public function canManagePublicaciones()
      {
          return $this->esAdministrador();
      }
    
      /**
       * @param Publicacion $publicacion
       * @return bool
       */
      public function canViewPublicacion(Publicacion $publicacion)
      {
          if ($this->esAdministrador()) {
              return true;
          }
    
          if ($publicacion->getPublicada()) {
              return true;
          }
    
          return false;
      }
      
         /* --------------------------*/      
        
  • Agregar mapping de entidaddes en el config/doctrine.php

      'paths'         => [
         ....
    
          // Lebenlabs/SimpleCMS package
          base_path('vendor/lebenlabs/simplecms/src/Models'),
    
          // SimpleStorage package
          base_path('vendor/lebenlabs/simplestorage/src/Models'),
        ....
    ]
  • Generar doctrine proxies

  • Incluir SimpleCMS Menú item en backend

      {{--Laravel Package - Lebenlabs\SimpleCMS--}}
      @include('Lebenlabs/SimpleCMS::Partials.header_shortcut')
  • Editar las vistas que fueron publisheadas mas arriba

  • Agregar en los layouts los CSS/JS

      {{--Laravel Package - Lebenlabs\SimpleCMS - CSS --}}
      @include('Lebenlabs/SimpleCMS::Partials.header_css')
    
      .....
    
      {{--Laravel Package - Lebenlabs\SimpleCMS - JS --}}
      @include('Lebenlabs/SimpleCMS::Partials.header_js')
  • Generar JS/CSS del package. Agregar las lineas a webpack.mix.js

     mix.
       -----
        // Lebenlabs - SimpleCMS - JS
      .js('vendor/lebenlabs/simplecms/src/Resources/Assets/js/SimpleCMS', 'public/js')
      .js('vendor/lebenlabs/simplecms/src/Resources/Assets/js/SummernoteHelper', 'public/js')
      .js('vendor/lebenlabs/simplecms/src/Resources/Assets/js/bootstrap-datetimepicker.min', 'public/js')
      
      ----
      // Lebenlabs - SimpleCMS - CSS
      .sass('vendor/lebenlabs/simplecms/src/Resources/Assets/css/bootstrap-datetimepicker.min', 'public/css')
  • Compilar assets

      npm run dev
  • Crear menu ejecutando el siguiente comando:

      php artisan lebenlabs:simplecms:create-menu 

    NOTA: Hoy en día solo se soporta un solo Menú - IMPROVE THIS

  • Cargar los menu items que se pretendan utilizar utilizando un view composer registrado desde la aplicación (IMPROVE: seleccionar determinado menu - posibilidad de varios)

      // ComposerServiceProvider
      public function boot()
      {
          View::composer(
              'Lebenlabs/SimpleCMS::Partials.Menu.show', SimpleCMSViewComposer::class
          );
      }
    
      // SimpleCMSViewComposer
      public function compose(View $view)
      {
          $view->with('rootMenuItems', $this->simpleCMS->findAllRootMenuItems());
      }