Nette Framework 的 CMS

维护者

详细信息

github.com/nattreid/cms

源代码

问题

安装: 720

依赖: 4

建议者: 0

安全: 0

星星: 4

关注者: 4

分支: 0

公开问题: 3

语言:JavaScript

1.8.11 2023-04-14 09:07 UTC

README

网络应用程序管理

设置

config.neon 中注册并设置扩展。模块名称由命名空间派生,以 'Ext' 添加到命名空间,以便进一步扩展管理模块。例如,扩展 ORM 的名称为 orm

extensions:
    cms: NAttreid\Cms\DI\CmsExtension

cms:
    namespace: 'Cms'
    url: '/cms/'
    sender: 'Odesilatel <nejaky@mail.cz>'
    front: ':Front:Homepage:'

    disabled: false # vypnuti CRM
    
    configurator:
    	defaultPromenna: 'hodnota' # nastaveni vychozich hodnot v configuratoru

    fileManagerDir: %appDir%/../
    infoRefresh: 15 # vteriny

    minPasswordLength: 8
    passwordChars: '0-9a-zA-Z'

    loginExpiration: '20 minutes'
    sessionExpiration: '14 days'
    
    tracy:
        cookie: nejakyHash

    layout: '%appDir%/cms/templates/cms.latte' # hlavní šablona

添加模型到 ORM。在示例中,扩展 ORM 的名称为 orm

orm:
    add:
        - NAttreid\Cms\Model\Orm

要添加 assets,请使用

cms:
    assets:
        - %wwwDir%/js/example.js
        - %wwwDir%/css/example.css
        - {%wwwDir%/js/cs.js, locale: cs} # localizace pro cs
        - http://someUrt/scritp.js # remote
        - //someUrt/scritp.js # remote
        - {%wwwDir%/js/example.js, remote: true} # remote
        - {files: ["*.js", "*.css", "*.less"], from: %appDir%/cms}

添加其他模块

cms:
    menu:
        Example:
            link: 'Homepage:'
            web:
                test:
                    link: action                            # pokud je null, provede se default action
                    arguments: {name: value}                # argumenty
                    toBlank: TRUE                           # otevre do noveho okna
                    count: 5                                # pocet za linkem
                    # nebo
                    count: @SomeClass::countUnapproved()    # pocet za linkem
                    # nebo
                    count: {5, info}                        # muze byt info, warning (info je default)

演示器必须继承自类 \NAttreid\Cms\Control\ModulePresenter。以下是一个从示例菜单中继承的演示器示例

namespace App\Cms\Example\Presenters;

class TestPresenter extends \NAttreid\Cms\Control\ModulePresenter {
    public function renderDefault() {
        // pro zobrazeni menu v mobilu (defaultne je skryto)
        $this->viewMobileMenu();
        
        // pridani tlacitka do Dockbaru
        $this['dockbar']->addLeftLink('tlacitko', 'link!');
        // nebo
        $this['dockbar']->addLeftLink('tlacitko')
            ->addClass('trida'); // spusteni pomoci javascriptu
            
        // tlacitko vpravo
        $this['dockbar']->addRightLink('tlacitko')
    }
}

cms.latte

{extends $layout}

模块的 @layout.latte 模板必须继承自 cms.latte

通过扩展实现可扩展性

扩展类必须继承自 \NAttreid\Cms\DI\ModuleExtension

class ExampleExtension extends \NAttreid\Cms\DI\ModuleExtension {

    protected $namespace = 'example';
    protected $dir = __DIR__;
    protected $package = 'Package\\';

    public function beforeCompile() {
        parent::beforeCompile();
        $this->addLoaderFile('cestaKCssNeboJs');
        $this->addLoaderFile('cestaKLocalizovanemuJs','cs');
    }

}

在文件夹中必须有文件 default.neon

link: 'Homepage:'
position: 1

menu:
    group:
        test:
            link:

演示器必须继承自类 \NAttreid\Cms\Control\ModulePresenter

namespace Package\Example\Presenters;

class TestPresenter extends \NAttreid\Cms\Control\ModulePresenter {
    
}

CMS 演示器的设置

注册实现自 \NAttreid\Cms\ISettings 的服务

class CmsSettings implements ISettings {
    
    public function init(\Nette\Application\UI\ITemplate $template, \NAttreid\Cms\Control\AbstractPresenter $presenter)
	{
		// php kod ...
	}
}

更多

在演示器中处理 AJAX 调用的重定向

$this->ajaxRedirect('link', ['args']);