• Online only

Yii2 E-Sculptor

No tax

Yii2 E-Sculptor is a module developed for Yii2, that provides a web interface for the content management.



Return Policy


  • CRUD for pages, categories and posts
  • Menu management
  • Multimedia management
  • Integrated with TinyMCE for a Wysiwyg edition
  • It allows multilanguage content

This module is integrated with yii2-storage, a Yii2 component that manages the local storage or the cloud storage.


Download and uncompress the file inside the vendor/neoacevedodirectory. Maybe you need manually to install the dependencies and to setup the namespaces in the extensions in your Yii2 extensions settings.


First run the yii2-menumanager migration:

php yii migrate [email protected]/neoacevedo/yii2-menumanager/migrations/

After it run the CMS migration:

php yii migrate [email protected]/neoacevedo/cms/migrations/

Module Settings

The following settings are optional. If no value is set for them, the default values in the module will be taken. To set different settings (advanced template only), you must first add module settings in backend/config/main.php and frontend/config/main.php

  • pageLayout: layout path for pages.
  • categoryLayout: layout path for categories.
  • searchLayout: layout path for search results.
  • pageViewPath: path for page views.
  • categoryViewPath: path for category views.
  • searchViewPath: path for search results views.
  • pageSize: number of results per page.
  • userClass: The application's user model class. Predefined to \common\models\User::class.
  • displayLangCodeInUrl: defines if the language is added in the URL. Example: http://domain/es/page.


The settings can be for the entire project (regardless of whether you are using the basic template or the advanced Yii2 template).

For the whole project add the following configuration in your project's frontend/config/main.php file (or in config/web.php if you use the basic template)

'modules' => [
         'cms' => [
            'class' => neoacevedo\cms\Module::class,
            'displayLangCodeInUrl' => (bool$settings['displayLangCodeInUrl'],
            'defaultLanguage' => (bool$settings['defaultLanguage'],
            'detectBrowserLanguage' => (bool$settings['detectBrowserLanguage'],

This will allow the administration and display of the content.

In the advanced template, in backend/config/main.php add the following content in the modules section:

        'cms' => [
            'class' => neoacevedo\cms\Module::class,
            #'contentViewPath' => '@backend/views/content',

URL Manager

Configure urlManager rules as follows (in frontend/config/main.php or config/web.php file):

        '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:content>/<action:view>' => '<alias>',
                'cms/<controller:(content|category)>/<action:view>' => '<category-alias>/<alias>',


Additionally, the module includes the neoacevedo/yii2-menumanager module. To use it, add the following configuration to your project's main.php file (config / web.php for the basic template, backend/config/main.php for the advanced template):

'menu' => [
            'class' => 'neoacevedo\menu\MenuManager',


Yii2 E-Sculptor makes use of neoacevedo\yii2-storage for image storage.

To use it, add the following configuration within the module to your project's main.php file (config/web.php for the basic template, common/config/main.php for the advanced template):

         * Almacenamiento local
        'storage' => [
            'class' => 'neoacevedo\yii2\Storage',
            'service' => 'local',
            'config' => [
                'baseUrl' => "//" . filter_input(INPUT_SERVER, "SERVER_NAME"), // ej: http://example.com/
                'directory' => '@frontend/web/',
                'extensions' => 'pdf, jpg, jpeg, gif, png, bmp'
            'prefix' => "uploads/"// ruta al directorio de imágenes. Debe terminar con un slash (Opcional)

Widget (optional)

To display a list of posts from a category in the public environment, just use the following code:

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

It also has a widget that renders a small search box:

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