<?    // запись в списке
include_once('clss_0.php') ;
class clss_20 extends clss_0
{
  // создаем объект нужного класса
  function obj_create($finfo,$options=array())
  {
    // вызываем базовую функцию создания объекта
    //$options['no_return_id']=1 ;
    $obj_info=parent::obj_create($finfo,$options) ;
    // небоходимо присвоить значение id
    if ($obj_info['pkey'])
    { $last_id=execSQL_value('select max(id) from '._DOT($obj_info['tkey'])->table_name.' where parent='.$obj_info['parent']) ;
      $last_id++ ;
      update_rec_in_table($obj_info['tkey'],array('id'=>$last_id),'pkey='.$obj_info['pkey']) ;
      $obj_info['id']=$last_id ;
    }
    // после добавления записи в список обновляем список в сессии
    // может быть заблокировано, если создается набор записей списка и далее будет единое обновление данных списка
    if (!$options['no_save_to_session']) $this->after_save_rec($obj_info['tkey'],$obj_info['pkey']) ;
    return($obj_info) ;
  }

  // при удалении записи из списка, также удаляем запись в сессии
  function on_delete_event($obj_info,$options=array())
  { $list_name=$_SESSION['index_list_names'][$obj_info['parent']] ;
    if ($list_name) unset(_IL($list_name)->recs['id']) ;
    parent::on_delete_event($obj_info,$options) ;
  }

  // -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  //
  //  ВЫВОД ОБЪЕКТОВ КЛАССА В VIEWER - показ списка дочерних объектов
  //
  // -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

  function before_view_rec(&$rec,$options=array())
  { if (!isset($_SESSION['index_list_names'][$rec['parent']])) return ;
    $arr_name=$_SESSION['index_list_names'][$rec['parent']] ;
    $rec_list=$_SESSION[$arr_name][$rec['id']] ;
    if (is_array($rec_list) and _sizeof($rec_list)) $rec=array_merge($rec,$rec_list) ;
  }

  // действие после сохранение записи из списка в БД - обновляем список в сессии
  function after_save_rec($tkey,$pkey)
  { $list_id=get_obj_parent($pkey.'.'.$tkey) ;
    $list_name=$_SESSION['index_list_names'][$list_id] ;
    if ($list_name) _IL($list_name)->reload() ;
  }

  function prepare_public_info(&$rec)
  {
      $name=$rec['obj_name'] ;
      $name=trim(strip_tags($name))  ;   // удаляем начальные и конечные пробелы и HTML-теги
      $name=str_replace(array("\n"),array(''),$name) ; // удяляем переносты строк
      if (!$name) $name='# '.$rec['pkey'] ;
      $rec['_in_tree_name']=$name ;
      $rec['_in_tree_child_cnt']=0 ;
      if (isset($this->parent_to) and !_sizeof($this->parent_to)) $rec['_in_tree_child_cnt']=0 ;
  }

  function get_key_field()  { return('id') ;  }
}

?>
