Yii2 E-Sculptor

Yii2 E-Sculptor

SKU : Yii2_E-Sculptor-ES
$35.00
Qty

Características

  • CRUD para páginas, categorías y entradas/publicaciones
  • Administración de menú
  • Administración de archivos multimedia
  • Integrado con TinyMCE para una edición Wysiwyg del contenido
  • Permite contenido multi-idioma

Este módulo integra yii2-storage, un componente que administra el almacenamiento local o de la nube. 


Instalación

Descargue el archivo comprimido y descomprímalo en el directorio vendor/neoacevedo. Puede que necesite instalar las dependencias manualmente y también configurar los espacios de nombres de las extensiones en sus configuraciones de extensiones de Yii2 manualmente.

Migraciones
  • Primero ejecute la migración de Yii2-menu:
php yii migrate [email protected]/pceuropa/migrations/
  • Luego ejecute la migración del CMS:
php yii migrate [email protected]/neoacevedo/cms/migrations/

Configuraciones para el módulo

Las siguientes configuraciones son opcionales. Si no se establece algún valor para ellas, se tomarán los valores predefinidos en el módulo. Para establecer diferentes configuraciones (solo plantilla avanzada), debe primero agregar la configuración del módulo en backend/config/main.php y frontend/config/main.php.

  • postLayout: ruta al layout para las publicaciones.
  • pageLayout: ruta al layout para las páginas.
  • categoryLayout: ruta al layout para las categorías.
  • searchLayout: ruta al layout para los resultados de la búsqueda.
  • postViewPath: ruta para las vistas de las publicaciones.
  • pageViewPath: ruta para las vistas de las páginas.
  • categoryViewPath: ruta para las vistas de las categorías.
  • searchViewPath: ruta para las vistas de los resultados de la búsqueda.
  • pageSize: número de resultados por página.
  • userClass: clase del modelo de usuario de la aplicación. Predefinida a \common\models\User::class.
  • displayLangCodeInUrl : define si en la URL se agrega el idioma. Ejemplo: http://dominio/es/pagina.

Uso

La configuración puede ser para todo el proyecto (independiente de si está usando la plantilla básica o la plantilla avanzada de Yii2).

Para todo el proyecto agregue la siguiente configuración en el archivo common/config/main.php de su proyecto (o en config/main.php si usa la plantilla básica)

...
'modules' => [
...
    'cms' => [
        'class' => neoacevedo\cms\Module::class
    ]
]

Esto permitirá la administración y visualización del contenido.

URL Manager

Configure las reglas de urlManager de la siguiente manera:

...
'urlManager' => [
    'class' => 'neoacevedo\cms\components\ContentUrlManager',
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        [
            'class' => 'yii\web\UrlRule',
            'pattern' => 'search/view',
            'route' => '/cms/search/view'
        ]
    ],
    'cmsUrlRules' => [
        'cms/<controller:(page|post)>/<action:view>' => '<alias>',
        'cms/<controller:(post|category)>/<action:view>' => '<category-alias>/<alias>',
    ]
],
...
Menú

Adicional a ello, el módulo incluye el módulo pceuropa/yii2-menu. Para usarlo, agregue la siguiente configuración al archivo main.php de su proyecto (config/main.php para la plantilla básica, backend/config/main.php para la plantilla avanzada):

'menu' => [
    'class' => '\pceuropa\menu\Menu',
],

Al ejecutar la migración se crea un menú predeterminado llamado “Main menu”.

En el layout de su sitio público, incluya el módulo: use pceuropa\menu\Menu; Y en la opción items del widget Nav sustituya los ítems predefinidos y agregue Menu::NavbarLeft("Main menu");

Almacenamiento

Yii2 E-Sculptor hace uso de neoacevedo\yii2-storage para el almacenamiento de imágenes.

Para usarlo, agregue la siguiente configuración dentro del módulo al archivo main.php de su proyecto (config/main.php para la plantilla básica, common/config/main.php para la plantilla avanzada):

<?php
...
    'modules' => [
        ...
        'cms' => [
            'class' => neoacevedo\cms\Module::class,
            'components' => [
                /**
                 * Amazon S3
                 */
//                'storage' => [
//                    'class' => 'neoacevedo\yii2\Storage',
//                    'service' => 's3',
//                    'config' => [
//                        'key' => 'YOUR_IAM_ACCESS_KEY',
//                        'secret' => 'YOUR_IAM__SECRET_ACCESS_KEY',
//                        'bucket' => 'your-bucket',
//                        'region' => 'your-region',
//                        'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
//                    ],
//                    'prefix' => '', // ruta al directorio de imágenes. Ej: images/ (Opcional)
//                ],
                /**
                 * Azure Storage Blob
                 */
//                'storage' => [
//                    'class' => 'neoacevedo\yii2\Storage',
//                    'service' => 'azure',
//                    'config' => [
//                        'accountName' => 'ACCOUNT_NAME',
//                        'accountKey' => 'ACCOUNT_KEY',
//                        'container' => 'your-container',
//                        'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
//                    ],
//                    'prefix' => '' // ruta al directorio de imágenes. Ej: images/ (Opcional)
//                ],
                /**
                 * Google Storage Cloud
                 */
//                'storage' => [
//                    'class' => 'neoacevedo\yii2\Storage',
//                    'service' => 'gsc',
//                    'config' => [
//                        'projectId' => 'YOUR_PROJECT_ID',
//                        'bucket' => 'your-bucket',
//                        'keyFile' => '', // Contenido del archivo JSON generado en la consola de Google
//                        'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
//                    ],
//                    'prefix' => '', // ruta al directorio de imágenes. Ej: images/ (Opcional)
//                ],
                /**
                 * Almacenamiento local
                 */
//                'storage' => [
//                    'class' => 'neoacevedo\yii2\Storage',
//                    'service' => 'local',
//                    'config' => [
//                        'baseUrl' => "//" . filter_input(INPUT_SERVER, "SERVER_NAME"), // ej: http://example.com/
//                        'directory' => '@webroot/web/', // reemplace @webroot por @frontend o @backend según sea el caso. Debe terminar con una barra diagonal.
//                        'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
//                    ],
//                    'prefix' => '', // ruta al directorio de imágenes. Ej: images/ (Opcional)
//                ]
            ]
        ],
        ...
    ],
...

Solo puede tener un servicio de almacenamiento. Descomente el que requiera y configúrelo de acuerdo con sus necesidades.


Widget (opcional)

Para mostrar una lista de publicaciones de una categoría en el entorno público, simplemente use el siguiente código:

<?= \neoacevedo\cms\widgets\PostWidget::widget([
    'category' => 'mi-categoria',
    'pagination' => [
        'pageSize' => 10
]]); ?>

También dispone de un widget que renderiza un pequeño cuadro de búsqueda:

<?= \neoacevedo\cms\widgets\SearchForm::widget([
        'options' => [
            'class' => 'col-md-3'
        ] // options permite renderizar atributos HTML
]); ?>

 

Yii2 Requirements

kartik-v/yii2-widget-sidenav
paulzi/yii2-nested-intervals
2amigos/yii2-tinymce-widget
rmrevin/yii2-fontawesome
pceuropa/yii2-menu
neoacevedo/yii2-storage
yiisoft/yii2-jui

PHP Requirements

cURL
PHP JSON
PHP Version: 7