Файл: system/fields/listgroups.php
Строк: 25
<?php
class fieldListGroups extends cmsFormField {
public $title = LANG_PARSER_LIST_GROUPS;
public $is_public = false;
public $sql = 'text NULL DEFAULT NULL';
public $allow_index = false;
public $var_type = 'array';
public function getOptions(){
return array(
new fieldCheckbox('show_all', array(
'title' => LANG_PARSER_LIST_MULTIPLE_SHOW_ALL,
'default' => 1
)),
new fieldCheckbox('show_guests', array(
'title' => LANG_PARSER_LIST_GROUPS_SHOW_GUESTS,
'default' => 0
)),
);
}
public function getListItems(){
$users_model = cmsCore::getModel('users');
$items = $this->getProperty('show_all') ? array(0 => LANG_ALL) : array();
$groups = $users_model->getGroups((bool)$this->getProperty('show_guests'));
foreach($groups as $group){
$items[$group['id']] = $group['title'];
}
return $items;
}
public function getInput($value){
$this->data['groups'] = $this->getListItems();
if(!is_array($value)){
$value = cmsModel::yamlToArray($value);
}
if($value){
foreach ($value as $k => $v) {
if(is_numeric($v)){ $value[$k] = (int)$v; }
}
}
return parent::getInput($value ? $value : array(0));
}
public function store($value, $is_submitted, $old_value=null){
if(is_array($value)){
$value = array_filter($value);
}
return parent::store($value, $is_submitted, $old_value);
}
}