luyadev/luya-generic

View on GitHub
src/blocks/TitleBlock.php

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
<?php

namespace luya\generic\blocks;

use luya\generic\Module;
use luya\generic\BaseGenericBlock;
use luya\cms\frontend\blockgroups\TextGroup;

/**
 * Heading-Title Block.
 *
 * @author Basil Suter <basil@nadar.io>
 * @since 1.0.0
 */
final class TitleBlock extends BaseGenericBlock
{
    /**
     * @inheritdoc
     */
    public $cacheEnabled = true;

    /**
     * @inheritdoc
     */
    public function name()
    {
        return Module::t('block_title_name');
    }
    
    /**
     * @inheritdoc
     */
    public function blockGroup()
    {
        return TextGroup::class;
    }

    /**
     * @inheritdoc
     */
    public function icon()
    {
        return 'format_size';
    }

    /**
     * @inheritdoc
     */
    public function config()
    {
        return [
            'vars' => [
                ['var' => 'content', 'label' => Module::t('block_title_content_label'), 'type' => self::TYPE_TEXT],
                ['var' => 'headingType', 'label' => Module::t('block_title_headingtype_label'), 'type' => self::TYPE_SELECT, 'initvalue' => 'h1', 'options' => [
                        ['value' => 'h1', 'label' => Module::t('block_title_headingtype_heading') . ' 1'],
                        ['value' => 'h2', 'label' => Module::t('block_title_headingtype_heading') . ' 2'],
                        ['value' => 'h3', 'label' => Module::t('block_title_headingtype_heading') . ' 3'],
                        ['value' => 'h4', 'label' => Module::t('block_title_headingtype_heading') . ' 4'],
                        ['value' => 'h5', 'label' => Module::t('block_title_headingtype_heading') . ' 5'],
                    ],
                ],
            ],
            'cfgs' => [
                ['var' => 'cssClass', 'label' => Module::t('block_cfg_additonal_css_class'), 'type' => self::TYPE_TEXT],
            ]
        ];
    }
    
    /**
     * @inheritdoc
     */
    public function admin()
    {
        return '{% if vars.content is not empty %}<{{vars.headingType}}>{{ vars.content }}</{{vars.headingType}}>{% else %}<span class="block__empty-text">' . Module::t('block_title_no_content') . '</span>{% endif %}';
    }
}