Опять нужно для админки сотворить редактор хреновин. И опять я запутался как нормально построить логику редактора.
Заткнулся на том, что метод save вынужден разруливать прошло ли сохранение и выдавать или редактор с введенными перед этим данными или
#—————————————————————————————————
if('save' == $action){
$p = param::getList('id','value');
# И тут засада. Начинается куча ветвлений что куда и как.
$templateData['r'] = $p;
$template = 'monsteritemeditor';
}
#—————————————————————————————————
if('new' == $action){
# значения по умолчанию для новой записи
$templateData['r'] = array('id' => 0,
'value' => 'default value');
$template = 'monsteritemeditor';
}
#—————————————————————————————————
if('editor' == $action){
# загружаем в редактор запись и БД
$tmp = array('id' => (int)param::get('id',-1));
$tmp = faMonstro::getMonsters($tmp);
if(empty($tmp)){
throw new Exception('Запись не найдена.');
}
$templateData['r'] = reset($tmp);
$template = 'monsteritemeditor';
}
#—————————————————————————————————
if('viewitem' == $action){
# Загружаем запись из БД
$tmp = array('id' => (int)param::get('id',-1));
$tmp = faMonstro::getMonsters($tmp);
$templateData['r'] = reset($tmp);;
$template = 'monsteritem';
}
Давно уже натыкался на удобную разбивку действий, но удачно потерял где это было.