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);
}
}