Опять нужно для админки сотворить редактор хреновин. И опять я запутался как нормально построить логику редактора.
Заткнулся на том, что метод 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';
    }Давно уже натыкался на удобную разбивку действий, но удачно потерял где это было.