View file Web Template Ktpl/package/system/fields/skin.php

File size: 2.31Kb
<?php

class fieldSkin extends cmsFormField {

    public $title       = 'Подключить скины';
    public $sql         = 'varchar(64) NULL DEFAULT NULL';
    public $filter_type = false;
    public $var_type    = 'string';
    public $native_tag  = false;

    public function getOptions(){
        return array(
            new fieldList('default_skin', array(
                'title' => 'Скин по умолчанию',
                'hint' => 'Скин, который будет применяться если не выбран в записи',
                'generator' => function($cat){
					$items = array();
					$items[null] = 'Не подключать';
					$skins = files_tree_to_array('templates/ktpl/skins/');
					if ($skins) foreach($skins as $key=>$item) $items[$key] = $key;

                    return $items;

               	}
            )),
        );
    }

    public function parseTeaser($value){
        return '';
    }

    public function parse($value){

    	if(!$value && $this->getOption('default_skin')) $value = $this->getOption('default_skin');
    	if(!$value) return false;

        $skins = files_tree_to_array('templates/ktpl/skins/');

        if($skins) {
        	foreach($skins as $key=>$skin) {
        		$skin_arr[$key] = $key;
        	}
        	if(!in_array($value, $skin_arr)) return false;
        }
        
        $template = cmsTemplate::getInstance();
        $template->addCSS("templates/ktpl/skins/".$value."/styles.css");
        $template->addJs("templates/ktpl/skins/".$value."/script.js");

        return false;

    }

    public function getListItems(){

        $items = array();
		$items[null] = 'Не подключать, или использовать по-умолчанию';
        $skins = files_tree_to_array('templates/ktpl/skins/');
        if ($skins) foreach($skins as $key=>$item) $items[$key] = $key;

        return $items;

    }

    public function getInput($value){

        $this->data['items']       = $this->getListItems();
        $this->data['is_tree']     = $this->getProperty('is_tree');
        $this->data['parent']      = $this->getProperty('parent');
        $this->data['dom_attr']    = array('id' => $this->id);

        return parent::getInput($value);

    }

}