<?
include_once(_DIR_EXT.'/HTML/c_page_XML_AJAX.php');

class c_page_ajax extends c_page_XML_AJAX
{

    // ************************************************************************************************************************************************************************
    //
    // КАРТОЧКА ТЕМЫ
    //
    // ************************************************************************************************************************************************************************

    function get_panel_theme_create()
    { //$arr_events=execSQL_row('select pkey,obj_name from obj_site_events_schedule where ext like "%quiz%" and enabled=1 and status!=5') ;
      $form=new i_form() ;
      $form->form_open();
      $form->filter_section_input_text('name','Название новой темы',11,array());
      //$form->filter_section_select('event_id','Мероприятие, в рамках которого будет доведена тема',11,$arr_events);
      $form->button('Добавить тему','quiz/theme_create_apply',['item_type'=>'theme']) ;
      $form->form_close() ;
      $this->add_element('show_modal_window','HTML',array('title'=>'Создание новой темы'));
    }

    function theme_create_apply()
    {   //damp_array($_POST);

        $data=[] ;
        $data['name']=$_POST['name'];
        if(!$data['name'])$this->add_element('show_notife','Не указано наименование темы',array('color'=>'red'));
        else
        {
            $data['parent']=1;
            $data['event_id']=$_POST['event_id'];
            $id=QUIZ()->section_create($data);
            if($id) echo 'Тема <strong>"'.$data['name'].'"</strong> добавлена, ID '.$id.'<br>';
           /* if (!$data['event_id'])
            { echo '<br><strong>Внимание!<br></strong>Вы не выбрали мероприятие, в рамках которого будут производиться опрос по данной теме. Вы можете сделать это позднее в карточке темы или карточке мероприятия<br>' ;
            }*/
            echo '<br><button class="button cancel">Закрыть</button>'  ;
            $this->add_element('show_modal_window','HTML',array('title'=>'Создание новой темы','after_close_update_page'=>1));

            //$this->add_element('show_modal_window','HTML',array('title'=>'Создание новой темы'));

            $this->add_element('close_mBox_window',1);
            $this->add_element('show_notife','Тема добавлена',array('color'=>'green'));
        }

    }


    function get_panel_theme_delete()
    {
        $rec_theme=QUIZ()->get_theme_by_id($_POST['item_id']);
        ?><strong>Удаление темы контроля знаний</strong><br>
        <p>Вы действительно хотите удалить тему (раздел) "<? echo $rec_theme['obj_name'] ?>"?</p>
        <button class="button v2" cmd="quiz/get_panel_theme_delete_apply" item_id="<? echo $rec_theme['pkey'] ?>">Удалить тему</button>&nbsp;&nbsp;&nbsp;
        <button class="button cancel">Отмена</button>
        <?
        $this->add_element('show_modal_window','HTML',array('title'=>'Подтверждение операции'));
    }

    function get_panel_theme_delete_apply()
    {
        $result=QUIZ()->theme_delete($_POST['item_id']);
        damp_array($result,1,-1);
        $this->add_element('show_modal_window','HTML',array('title'=>'Удаление раздела'));

    }


    function clear_filter_values($filters)
    {
        $setting=[];
        if(_sizeof($filters)) foreach($filters as $id=>$value)
        {
            if(is_array($value) and _sizeof($value)) $setting[$id]=$value;
            if(is_string($value) and $value!="") $setting[$id]=$value;
            if(is_int($value) and $value!=0) $setting[$id]=$value;
            if(is_float($value) and $value!=0.00) $setting[$id]=$value;
        }
        return ($setting);
    }

    // перенести в библиотеку решений
    function save_theme_orgs()
    {   //damp_array($_POST);
        $theme_id=$_POST['theme_section_id'] ;
        $org_id=$_POST['item_id'] ;
        $rec_id=execSQL_value('select pkey from quiz_orgs where theme_id='.$theme_id.' and org_id='.$org_id) ;
        if ($_POST['checked'] and !$rec_id) adding_rec_to_table('quiz_orgs',['clss'=>280,'theme_id'=>$theme_id,'org_id'=>$org_id]) ;
        if (!$_POST['checked'] and $rec_id) execSQL_update('delete from quiz_orgs where pkey='.$rec_id) ;
        $this->add_element('show_notife','Сохранено',array('color'=>'green'));
        //$this->add_element('show_modal_window','HTML',array('title'=>'Сохранение билета'));
    }

    function get_orgs_workings()
    {   ob_start() ;
        damp_array($_POST);
        // ищем все должности внутри переданной организации/подразделения
        $arr_child_ids=DB_get_childs_ids('obj_site_personals',$_POST['item_id'],array('usl'=>'clss in (207,208)'));
        $workings_ids=execSQL('select t1.working,t2.obj_name,count(t1.pkey) as cnt 
                               from obj_site_personals t1 
                               left join view_IL_works t2 on t2.id=t1.working
                               where t1.parent in ('.$arr_child_ids.') and t1.clss=211
                               group by t1.working
                               ',2) ;
        var_dump($arr_child_ids);
        include "panel_quiz_theme_workings.php";
        panel_quiz_theme_workings(0,$arr_child_ids) ;


        $this->add_element('panel_org_workings.HTML',ob_get_clean());
    }



    // ************************************************************************************************************************************************************************
    //
    // КАРТОЧКА РАЗДЕЛА
    //
    // ************************************************************************************************************************************************************************

    function section_save()
    {   $rec=$_POST['section'];
        $section_id=$_POST['section_id'] ;
        if ($_POST['item_id']) $section_id=$_POST['item_id'] ;
        if ($_POST['json_data']) $rec['json_data']=$_POST['json_data'] ;
        QUIZ()->section_save($section_id,$rec);
        $this->add_element('show_notife','Изменения сохранены',array('color'=>'green'));
        $this->update_page=1 ;
        //else $this->add_element('show_notife','Заполните необходимые поля',array('color'=>'green'));
        //damp_array($_POST);
        //$this->add_element('show_modal_window','HTML',array('title'=>'Создание раздела'));
    }

    function get_panel_section_create()
    {
        $form=new i_form();
        $form->form_open() ;
        $form->row_open() ;
        $form->filter_section_input_text('section[name]','Название раздела',11);
        $form->row_close() ;
        $form->row_open(['class'=>'center']) ;
        $form->button('Добавить раздел','quiz/section_create_apply',['theme_id'=> $_POST['theme_id'],'item_type'=>'section']) ;
        $form->button('Отмена','cancel') ;
        $form->row_close() ;
        $form->form_close() ;
        $this->add_element('show_modal_window','HTML',array('title'=>'Создание раздела'));
    }

    // отработка клика в jfinder - там один обработкик на все элементы
    // передаются item_type  item_id item_clss

    function section_create_apply()
    {
        $rec=$_POST['section'];
        if($rec['name'] and $_POST['theme_id'])
        {   $rec['parent']=$_POST['theme_id'] ;
            $id=QUIZ()->section_create($rec);
            if($id) echo 'Раздел добавлен, ID '.$id.'<br>';

            $this->add_element('close_mBox_window',1);
            $this->add_element('show_notife','Раздел добавлен',array('color'=>'green'));

            $this->go_url='/frame/quiz/theme/card/'.$_POST['theme_id'].'/sections/' ;

        }
        else $this->add_element('show_notife','Заполните необходимые поля',array('type'=>'info'));
    }


    function get_panel_section_delete()
    {   //damp_array($_POST,1,-1) ;
        $alerts=array();
        $blocks=array();

        if(!_sizeof($_POST['_check']))
        {
            $this->add_element('show_notife','Нет выбранных разделов',array('color'=>'red'));
            return;
        }
        $checked_ids=implode(',',$_POST['_check']);


        // перед удалением раздела предупреждаем во содержимом раздела


        $tikets_ids=execSQL_line('select pkey from quiz_questions where parent in ('.$checked_ids.')');
        if(_sizeof($tikets_ids)) $alerts[]='В выбранных разделах имеется <strong>'._sizeof($tikets_ids).'</strong> '.get_case_by_count_1_2_5(_sizeof($tikets_ids),['билет','билета','билетов']);
        // проверяем, есть ли мероприятия, в котором УЖЕ были заданы вопросы из данного раздела. Если такие мероприятия есть - удаление не делаем
        if(_sizeof($alerts))
        {
            echo '<strong>ВНИМАНИЕ!</strong><br>'.implode('<br>',$alerts).'<br>';;
        }
        echo 'Пожалуйста, подтвердите удаление<br><br>';
        ?>
        <div class="center">
        <button class="button v2" cmd="quiz/section_delete_apply" theme_id=<?echo $_POST['theme_id']?> item_ids="<? echo $checked_ids ?>">Удалить</button>&nbsp;&nbsp;&nbsp;
        <button class="button cancel">Отмена</button></div><?

        $this->add_element('show_modal_window','HTML',array('title'=>'Удаление разделов'));
    }

    function section_delete_apply()
    {
        $this->add_element('close_mBox_window',1);
        ob_start();
        //damp_array($_POST,1,-1);
        // удаляем дочерние объекты - вопросы ответы билеты

        $tikets_ids=execSQL_line('select pkey from quiz_questions where parent in ('.$_POST['item_ids'].')');
        if(_sizeof($tikets_ids)) QUIZ()->tiket_delete($tikets_ids) ;
        $cnt=execSQL_update('delete from quiz_themes where pkey in ('.$_POST['item_ids'].')');
        echo 'Удален <strong>'.$cnt.'</strong> ',get_case_by_count_1_2_5($cnt,['раздел','раздела','разделов']).', ID '.$_POST['item_ids'].'<br>';
        ?><br>
        <div class="center">
            <button class="cancel">Закрыть</button>
        </div><?
        $text=ob_get_clean();
        echo $text;
        $this->add_element('show_modal_window','HTML',array('title'=>'Удаление раздела','after_close_update_page'=>1));
    }


    function get_panel_section_move()
       {
           if(!_sizeof($_POST['_check']))
           {
               $this->add_element('show_notife','Нет выбранных разделов',array('color'=>'red'));
               return;
           }
           $checked_ids=implode(',',$_POST['_check']);
           $cur_theme_id=$_POST['theme_id'];

           //print_2x_arr($recs_sections);
           $form=new i_form();
           $form->form_open();
           $form->fieldset_open();
           $form->row_open();
           $recs_sections=QUIZ()->get_arr_groups_select_options() ;
           $form->filter_section_select('theme_id','Переместить выбранные разделы в тему',0,$recs_sections);
           $form->row_close();

           ?>
           <div class="center">
           <button class="button v2" cmd="quiz/section_move_apply" ids="<? echo $checked_ids ?>" cur_theme_id="<?echo $cur_theme_id?>">Переместить</button>&nbsp;&nbsp;&nbsp;
           <button class="button cancel">Отмена</button></div><?
           $form->fieldset_close();
           $form->form_close();

           $this->add_element('show_modal_window','HTML',array('title'=>'Перемещение разделов','width'=>'600px'));
       }

       function section_move_apply()
       {
           $this->add_element('close_mBox_window',1);
           if(!$_POST['theme_id'])
           {
               $this->add_element('show_notife','Не выбрана тема для перемещения раздела',array('color'=>'red'));
               return;
           }

           ob_start();
           $arr_ids=explode(',',$_POST['ids']);
           $rec_section=QUIZ()->get_theme_by_id($_POST['theme_id']);
           echo 'Тема: <strong>'.$rec_section['obj_name'].'</strong> [ID '.$rec_section['pkey'].']<br>';
           if(_sizeof($arr_ids)) foreach($arr_ids as $id)
           {   // удаляем дочерние объекты - вопросы ответы билеты
               echo 'Перемещаем раздел ID <strong>'.$id.'</strong> в тему "'.$rec_section['obj_name'].'" - <span class="green">OK</span><br>';
               // обновляем данные в разделе
               $data=['parent'=>$rec_section['pkey']] ;
               QUIZ()->full_parent_levels_to_rec($data);
               update_rec_in_table('quiz_themes',$data,'pkey='.$id) ;
               // обновляем данные во всех дочерних разделах и вопросах
               TREE('quiz_themes')->update_levels_parents('',['from_id'=>211,'ext_table'=>'quiz_questions']);

           }
           $text=ob_get_clean();
           echo $text;
           ?><br>
           <div class="center">
               <button class="cancel">Закрыть</button>
           </div><?
           $this->add_element('show_modal_window','HTML',array('title'=>'Перемещение разделов','after_close_update_page'=>1));
           LOGS()->reg_log('QUIZ',$text,array('reffers'=>[$rec_section['_reffer']]));
       }



    // ************************************************************************************************************************************************************************
    //
    // КАРТОЧКА БИЛЕТА
    //
    // ************************************************************************************************************************************************************************

    function tiket_save()
    {
        $result=QUIZ()->tiket_save($_POST['tiket_id'],$_POST['question'],$_POST['answer'],$_POST['contents'],$_POST['upload_files']);
        if($result['success'])
        {
            ?>
            <div class="center">
                <strong>Билет успешно сохранен</strong> <br> <br>
                <button class="cancel">Закрыть</button>
            </div>
            <?
            $this->update_page=1 ;
            $this->add_element('show_notife','Сохранено',array('color'=>'green'));
        }
        else
        {
            ?>
            <div class="alert">Билет не сохранен!</div>
            <div class="left"><? echo $result['error'] ?></div>
            <div class="center">
                <button class="cancel">Закрыть</button>
            </div>
            <?
            $this->add_element('show_modal_window','HTML',array('title'=>'Сохранение билета'));
        }

    }

    function tiket_create()
    {
        $result=QUIZ()->tiket_create($_POST['parent_id'],$_POST['question'],$_POST['answer'],$_POST['upload_files']);
        $rec_section=QUIZ()->get_theme_by_id($_POST['parent_id']) ;
        $url_section=($rec_section['clss']==481)? '/frame/quiz/known/card/':'/frame/quiz/theme/card/' ;
        $cnt_tiket=execSQL_value('select count(pkey) from quiz_questions where parent='.$_POST['parent_id']) ;
        if($result['success'])
        { ?>
            <div class="center">
                <strong>Билет успешно добавлен</strong>, всего <?echo $cnt_tiket.' '.get_case_by_count_1_2_5($cnt_tiket,'билет,билета,билетов')?> <br><br>
                <button class="v1" href="<?echo $url_section.$_POST['parent_id']?>/questions/">Вернуться к списку билетов</button>
                <button class="v1" href="<?echo $url_section.$_POST['parent_id']?>/new_question/">Добавить еще один билет</button>
            </div>
            <?
        }
        else
        {
            ?>
            <div class="alert">Билет не добавлен!</div>
            <div class="left"><? echo $result['error'] ?></div>
            <div class="center"><button class="cancel">Закрыть</button></div>
            <?
        }

        $this->add_element('show_modal_window','HTML',array('title'=>'Создание билета'));
    }

    function get_panel_tiket_delete()
    {
        $alerts=array();
        $blocks=array();
        if(!_sizeof($_POST['_check']))
        {
            $this->add_element('show_notife','Нет выбранных билетов',array('color'=>'red'));
            return;
        }
        $cur_theme_id=$_POST['theme_id'];
        $cur_section_id=$_POST['section_id'];
        $checked_ids=implode(',',$_POST['_check']);
        // перед удалением раздела предупреждаем во содержимом билета
        // проверяем, есть ли мероприятия, в котором УЖЕ были заданы вопросы из данного раздела. Если такие мероприятия есть - удаление не делаем
        $cnt_opros=execSQL_value('select count(pkey) from quiz_result where question_id in ('.$checked_ids.')');
        if($cnt_opros) $alerts[]='В данном разделе имеются вопросы, которые уже были заданы в ходе опроса.<br>Будут удалены все результаты ответов по данному вопросу<br>';



            if(_sizeof($alerts)) echo '<strong>ВНИМАНИЕ!</strong><br>'.implode('<br>',$alerts).'<br>';;
            echo 'Пожалуйста, подтвердите удаление билетов ID: <strong>'.$checked_ids.'</strong><br><br>';
            ?>
            <div class="center">
            <button class="button v2" cmd="quiz/tiket_delete_apply" ids="<? echo $checked_ids ?>" cur_section_id="<? echo $cur_section_id ?>" cur_theme_id="<? echo $cur_theme_id ?>">Удалить
            </button>&nbsp;&nbsp;&nbsp;<button class="button cancel">Отмена</button></div><?


        $this->add_element('show_modal_window','HTML',array('title'=>'Удаление билета'));
    }

    function tiket_delete_apply()
    {
        $this->add_element('close_mBox_window',1);

        QUIZ()->tiket_delete($_POST['ids'],$_POST['cur_theme_id'],$_POST['cur_section_id']) ;

        ?><br>
        <div class="center">
            <button class="cancel">Закрыть</button>
        </div><?
        $this->add_element('show_modal_window','HTML',array('title'=>'Удаление билета','after_close_update_page'=>1));


    }

    function tiket_append_question()
    {
        QUIZ()->answers_create($_POST['tiket_id'],array()) ;
        $this->add_element('show_notife','Ответ добавлен',array('color'=>'green'));
        $this->update_page=1 ;


    }


    // ************************************************************************************************************************************************************************
    //
    // ЗНАНИЕ
    //
    // ************************************************************************************************************************************************************************

    function get_panel_knowledge_create()
    {
        //damp_array($_POST);
        //$this->add_element('show_modal_window','HTML',array('title'=>'Новое знание','after_close_update_page'=>1));
        // собираем все POST параметры и открываем страницу создания нового знания
        $questions_ids=(_sizeof($_POST['_check']))? implode(';',$_POST['_check']):[] ;
        $section_id=$_POST['section_id'] ;
        if ($questions_ids) $url='/frame/quiz/theme/card/'.$section_id.'/new_knowledge/[questions_ids='.$questions_ids.']/' ;
        else                $url='/frame/quiz/theme/card/'.$section_id.'/new_knowledge/' ;
        $this->add_element('go_url',$url) ;

    }

    function get_panel_create_known_from_show_selected_text()
      {
          /*$select_from=$_POST['selectFrom']['line'].'.'.$_POST['selectFrom']['ch'] ;
          $select_to=$_POST['selectTo']['line'].'.'.$_POST['selectTo']['ch'] ;
          if ($select_from==$select_to)
          {
              $this->add_element('show_notife','Ничего не выделено',array('color'=>'red'));
              return ;
          }*/
          damp_array($_POST,1,-1) ;
          //echo nl2br($_POST['text']) ;
          $form=new i_form() ;
          $form->form_open(array('class'=>'form-horizontal2')) ;
          $form->hidden_var('section_id',$_POST['section_id']);
          //$form->hidden_var('select_from',$select_from);
          //$form->hidden_var('select_to',$select_to);
          $form->element_input(['name'=>'name','title'=>'Название знания','value'=>strip_tags($_POST['name'])]);

          $recs_subsections=execSQL('select pkey,obj_name from quiz_themes where parent='.$_POST['section_id'].' and clss=472') ;
          $form->filter_section_select('subsection_id','Подраздел',0,$recs_subsections);

          $form->element_textarea(['name'=>'manual','title'=>'Содержание знания','value'=>$_POST['text'],'style'=>'height:200px;display:none;']);
          ?><textarea style="border:1px solid #BABABA;width:100%;height:100px;overflow: scroll;padding:5px;margin-right:10px;margin-bottom:15px;"><?echo $_POST['doc_text']?></textarea><?
          $data=array() ;
          $data['manual']=$_POST['doc_text'] ;
          QUIZ()->section_save($_POST['section_id'],$data);


          ?><div style="border:1px solid #BABABA;width:100%;height:100px;overflow: scroll;padding:5px;margin-right:10px;margin-bottom:15px;"><?echo $_POST['text']?></div><?

          $form->button('Создать','quiz/known_create',['go_known_card'=>0]);
          $form->button('Создать и открыть карточку знания','quiz/known_create',['go_known_card'=>1]);
          $form->button('Отмена','cancel');
          $form->form_close();
          $this->add_element('show_modal_window','HTML',array('title'=>'Создание нового знания','width'=>'800px','_after_close_update_page'=>1));
      }

    function save_known_doc_comment()
    {
        //damp_array($_POST,1,-1);
        $data=array() ;
        $data['manual']=$_POST['doc_text'] ;
        $data['comment']=$_POST['comments'] ;
        QUIZ()->section_save($_POST['section_id'],$data);
        $this->add_element('show_notife','Сохранено',array('color'=>'green'));
        //$this->add_element('show_modal_window','HTML',array('title'=>'Сохранение комментариев','width'=>'800px','_after_close_update_page'=>1));
    }

    function known_create()
    {   //damp_array($_POST,1,-1);
        //$this->add_element('show_modal_window','HTML',array('title'=>'Создание нового знания','_after_close_update_page'=>1));

        if (!$_POST['name'])
        { $this->add_element('show_notife','Не указано наименование знания',array('color'=>'red'));
          return;
        }

        if (!$_POST['manual'])
        { $this->add_element('show_notife','Не указано содержание знания',array('color'=>'red'));
          return;
        }

        $parent_sections=($_POST['subsection_id'])? $_POST['subsection_id']:$_POST['section_id'] ;
        $rec=array('section_id'=>$_POST['section_id'],
                   'name'=>$_POST['name'],
                   'manual'=>$_POST['manual'],
                   'select_from'=>($_POST['select_from'])? $_POST['select_from']:'',
                   'select_to'=>($_POST['select_to'])? $_POST['select_to']:''
                  ) ;
        $id=QUIZ()->known_create($parent_sections,$rec) ;

        ob_start() ;
        ?><script type="text/javascript">
              var range = editor.getSelection().getRanges()[0];
              var el = editor.document.createElement( 'div' );
              el.append( range.cloneContents() );

              var newElement = new CKEDITOR.dom.element("a");              // Make Paragraff
              newElement.setAttributes({href: '/frame/quiz/known/card/<?echo $id?>/questions/',class:'new_window',name:'known_<?echo $id?>'})  ;               // Set Attributes
              newElement.setHtml(el.getHtml());                           // Set text to element
              editor.insertElement(newElement);                            // Add Element
              //console.log(newElement.getHtml()) ;

              //document.getElementById('<?echo $_POST['ckeditor_id']?>').style.display="none";
              //document.getElementById('<?echo $_POST['ckeditor_id']?>').style.display="block";

              // save_text
              send_ajax_request({cmd:'quiz/save_known_doc',
                                 section_id:<?echo $_POST['section_id'] ?>,
                                 text:editor.getData()
                                 }) ;

              //editor.setData(editor.getData()) ;
          </script><?

        $text=ob_get_clean() ;
        $this->add_element('JSCODE',$text);



        //if ($_POST['go_known_card']) $this->add_element('show_new_window',); $_POST['go_url']='/frame/quiz/known/card/'.$id.'/questions/' ;
        if ($_POST['go_known_card']) $this->add_element('show_new_window','/frame/quiz/known/card/'.$id.'/questions/') ;
        $this->add_element('close_mBox_window',1);  // закрываем модальные окна, которые были открыты ранее
        //$this->update_page=1 ;


        //if (!$_POST['go_url']) $this->update_page=1 ;
        //else                   $this->go_url=$_POST['go_url'] ;
    }

    function known_create2()
    {   ob_start() ;
        damp_array($_POST,1,-1);
        $data=json_decode($_POST['data_json'],true) ;
        damp_array($data,1,-1);
        $text=ob_get_clean() ;
        LOGS()->reg_log('known_create2','',['save_to_file'=>$text]) ;

        QUIZ()->section_save($_POST['section_id'],array('json_data'=>$_POST['data_json']));
        //QUIZ()->section_save($_POST['section_id'],array('manual'=>$_POST['data_doc']));

        $parent_sections=($_POST['subsection_id'])? $_POST['subsection_id']:$_POST['section_id'] ;
        $data=array('id'=>$_POST['markerId'],
                   'section_id'=>$_POST['section_id'],
                   'name'=>'Знание '.$_POST['markerId'],//$_POST['name'],
                   'manual'=>$_POST['selection'],
                   'json_data'=>$_POST['markerJSON'],
                   //'select_from'=>($_POST['select_from'])? $_POST['select_from']:'',
                   //'select_to'=>($_POST['select_to'])? $_POST['select_to']:''
                  ) ;
        //damp_array($data,1,-1);
        QUIZ()->known_create($parent_sections,$data) ;
        //damp_array(json_decode($_POST['markerJSON'],true),1,-1);
        //$this->add_element('show_modal_window','HTML',array('title'=>'Сохранение знаний','width'=>'800px','_after_close_update_page'=>1));
        $this->add_element('show_notife','Знание добавлено',array('color'=>'green'));
        $this->add_element('create_window','HTML',array('title'=>'Сохранение знаний','width'=>'800px','_after_close_update_page'=>1));
        $this->add_element('show_new_window','/frame/quiz/known/card/'.$_POST['markerId'].'/questions/',array('width'=>1000,'height'=>800)) ;
    }

    function save_known_doc()
    {
        $data=array() ;
        $data['manual']=$_POST['text'] ;
        QUIZ()->section_save($_POST['section_id'],$data);
        $this->add_element('show_notice','Сохранено',['color'=>'green']);
    }

    function create_known_by_comment()
    {
        $rec_section=QUIZ()->get_theme_by_id($_POST['section_id']) ;
        $arr_comments=json_decode($rec_section['comment'],true) ;
        /*damp_array($arr_comments);
        ?>
            <textarea style="width:100%;height:200px;"><?echo $rec_section['manual']?></textarea>
        <?*/
        if (_sizeof($arr_comments)) foreach($arr_comments as $rec_thread)
        { $threadId=$rec_thread['threadId'] ;
          //echo '$threadId='.$threadId.'<br>' ;
          /*if (_sizeof($rec_thread['comments'])) foreach($rec_thread['comments'] as $rec_comment)
          { $commentId=$rec_comment['commentId'] ;
            $authorId=$rec_comment['authorId'] ;
            $content=$rec_comment['content'] ;
            $createdAt=$rec_comment['createdAt'] ;
            break ;
          }*/
          preg_match_all('/<comment id="'.$threadId.'" type="start"><\/comment>(.+?)<comment id="'.$threadId.'" type="end"><\/comment>/is', $rec_section['manual'],$matches,PREG_SET_ORDER) ;
          //damp_array($matches,1,-1);
          if (_sizeof($matches)) foreach($matches as $match)
          { /*  ?>
                  <textarea style="width:100%;height:200px;"><?echo $match[1]?></textarea>
              <?*/


             $rec_known=QUIZ()->get_known_by_uid($threadId) ;
             if ($rec_known['pkey'])
             { $data=['clss'=>481,
                    'parent'=>$rec_section['pkey'],
                    'obj_name'=>strip_tags($rec_thread['comments'][0]['content']),
                    'uid'=>$threadId,
                    'account_id'=>$rec_thread['comments'][0]['authorId'],
                    'manual'=>$match[1]
                   ] ;
                 QUIZ()->section_save($rec_known['pkey'],$data);
                 //damp_array($data,1,-1);
               echo 'Обновлено знание ID '.$rec_known['pkey'].'<br>' ;
             }
             else
             { $data=['clss'=>481,
                      'parent'=>$rec_section['pkey'],
                      'name'=>strip_tags($rec_thread['comments'][0]['content']),
                      'uid'=>$threadId,
                      'account_id'=>$rec_thread['comments'][0]['authorId'],
                      'manual'=>$match[1]
                     ] ;
               $id=QUIZ()->section_create($data);
               echo 'Добавлено знание ID '.$id.'<br>' ;
             }


          }

        }
        ?><button class="button cancel">Закрыть</button><?
        $this->add_element('show_modal_window','HTML',array('title'=>'Сохранение знаний','width'=>'800px','after_close_update_page'=>1));
    }

    // ************************************************************************************************************************************************************************
    //
    // НЕРАЗОБРАНО
    //
    // ************************************************************************************************************************************************************************



    // добавление нового билета, показываем модальное окно с вопросом что дальше делать
    function get_panel_tiket_move()
    {
        if(!_sizeof($_POST['_check']))
        {
            $this->add_element('show_notife','Нет выбранных билетов',array('color'=>'red'));
            return;
        }
        $checked_ids=implode(',',$_POST['_check']);
        $cur_section_id=$_POST['section_id'];
        $cur_theme_id=$_POST['theme_id'];

        $form=new i_form();
        $form->form_open();
        $form->fieldset_open();
        $form->row_open();
        $recs_sections=QUIZ()->get_arr_groups_select_options() ;
        $form->filter_section_select('section_id','Переместить выбранные вопросы в раздел',11,$recs_sections);
        $form->row_close();

        ?>
        <div class="center">
        <button class="button v2" cmd="quiz/tiket_move_apply" ids="<? echo $checked_ids ?>"
                cur_section_id="<? echo $cur_section_id ?>" cur_theme_id="<? echo $cur_theme_id ?>">Переместить
        </button>&nbsp;&nbsp;&nbsp;<button class="button cancel">Отмена</button></div><?
        $form->fieldset_close();
        $form->form_close();

        $this->add_element('show_modal_window','HTML',array('title'=>'Перемещение билета','width'=>'600px'));
    }

    function tiket_move_apply()
    {
        $this->add_element('close_mBox_window',1);
        if(!$_POST['section_id'])
        {
            $this->add_element('show_notife','Не выбрана тема для перемещения билета',array('color'=>'red'));
            return;
        }

        ob_start();
        $arr_ids=explode(',',$_POST['ids']);
        $rec_section=QUIZ()->get_theme_by_id($_POST['section_id']);
        if(_sizeof($arr_ids)) foreach($arr_ids as $id)
        {   // удаляем дочерние объекты - вопросы ответы билеты
            echo 'Перемещаем билет ID <strong>'.$id.'</strong> в раздел "'.$rec_section['obj_name'].'" - <span class="green">OK</span><br>';
            $data=['parent'=>$rec_section['pkey']] ;
            QUIZ()->full_parent_levels_to_rec($data);
            update_rec_in_table('quiz_questions',$data,'pkey='.$id) ;

        }
        $text=ob_get_clean();
        echo $text;
        ?><br>
        <div class="center">
            <button class="cancel">Закрыть</button>
        </div><?
        $this->add_element('show_modal_window','HTML',array('title'=>'Перемещение билетов','after_close_update_page'=>1));
        LOGS()->reg_log('QUIZ',$text,array('reffers'=>[$rec_section['_reffer']]));

    }


    function get_themes_collections_item()
    {
        $this->add_element('panel_quiz_buttons.HTML','<button class="v2" cmd="quiz/import_theme_from_collection" theme_id="'.$_POST['item_id'].'">Загрузить тему в "ЭСМО Контроль знаний"</button>
                                                         <!--<button class="v2" cmd="quiz/export_theme_from_collection" theme_id="'.$_POST['item_id'].'">Выгрузить тему в файл</button>-->
                                                        ');
    }

    function get_panel_theme_export()
       {   //damp_array($_POST);
           $arr_themes=[] ;
           if (_sizeof($_POST['_check'])) $arr_themes=$_POST['_check'] ;
           if ($_POST['id']) $arr_themes[]=$_POST['id'] ;
           if (!_sizeof($arr_themes)) {$this->add_element('show_notice','Не выбраны темы для экспорта',['color'=>'red']); return ; }

           foreach($arr_themes as $theme_id)
           {
               $result=QUIZ()->theme_export($theme_id);
               if (_sizeof($arr_themes)==1) damp_array($result,1,-1);
               if($result['Файл экпорта']) echo 'Скачать файл: <a href="/services/get_file/?temp_fname='.$result['Файл экпорта'].'">'.$result['Файл экпорта'].'</a><br>';

           }
           ?><div class="panel_buttons"><button class="button cancel">Закрыть</button></div><?
           $this->add_element('show_modal_window','HTML',array('title'=>'Экспорт темы контроля знаний','_after_close_update_page'=>1));
       }

       function get_panel_theme_import()
       {
           ob_start();
           ?>
           <form><?
           include(_DIR_EXT.'/upload_files/panel_upload_files.php');
           panel_upload_files(array('text'=>'Перетяните и отпустите сюда<br>файл JSON','file_filter'=>'json','style_panel'=>'margin:0;','SendFormOnUploadSuccess'=>1));
           ?><input type=submit id=theme_import_apply class="v2" cmd="quiz/theme_import_apply" value="Импортировать файл" style="display:none;">
           </form><?
           $text=ob_get_clean();
           $this->add_element('panel_filter.HTML',$text);
           //$this->add_element('show_modal_window','HTML',array('title'=>'Создание вопроса','_after_close_update_page'=>1)) ;

       }

    function theme_import_apply()
    {
        ob_start();
        include(_DIR_TO_MODULES.'/engine/i_backgroup_process.php');
        $back_process=new i_backgroup_process('/services/quiz/import_from_json/',array('json_fname'=>$_POST['upload_files'][0]));
        $back_process->panel_background_process();
        $text=ob_get_clean();
        $this->add_element('panel_filter.HTML',$text);
    }


    function import_theme_from_collection()
    {
        ob_start();
        if($_POST['theme_id'])
        {
            $files=get_files_list(_DIR_EXT.'/quiz/collections/');
            // текст в ID не проходит, передаем индекс файла
            //$fname=_DIR_EXT.'/quiz/collections/'.$_POST['theme_id'].'.json' ;
            $fname=$files[$_POST['theme_id']-1]; // _DIR_EXT.'/quiz/collections/'.$_POST['theme_id'].'.json' ;
            if(file_exists($fname))
            {
                include(_DIR_TO_MODULES.'/engine/i_backgroup_process.php');
                $back_process=new i_backgroup_process('/services/quiz/import_from_json/',array('json_fname'=>hide_server_dir($fname)));
                $back_process->panel_background_process();
            }
            else echo '<div class=red>Не найден файл темы '.hide_server_dir($fname).'</div>';
        }
        $text=ob_get_clean();
        $this->add_element('panel_export.HTML',$text);
    }

    function get_rating()
    {
        $report_options=[];

        if ($_POST['analyze_type'] and $_POST['get_type']) {
            include_once('addition/panel_rating.php');
            $report_name='report_quiz_'.$_POST['get_type'];
            if ($_POST['analyze_type']=='learned') $report_name.='_learned';
            $report_name.='_rating';

            if (_sizeof($_POST['cur_page_filter'])) $report_options['filter']=$_POST['cur_page_filter'];

            panel_rating($report_name,$report_options);
            $html=ob_get_clean();

//            echo $html;
//            $this->add_element('show_modal_window','HTML');
            $this->add_element('rating_tables.HTML',$html);
        }
    }

    function get_snalyze_stats_graph()
    {
        include_once('report_quiz_stats3.php');
        //damp_array($_POST);
        //$this->add_element('show_modal_window','HTML');
        ob_start();
        if (_sizeof($_POST['cur_page_filter'])) {
            $report1 = new report_quiz_stats3(['filter'=>$_POST['cur_page_filter']]);
        } else {
            $report1 = new report_quiz_stats3();
        }

        $report1->no_view_title=1;
        $report1->view_panel_info=0;

        $report1->view_as_HTML(['chart_elem_id'=>$_POST['stats_elem_id']]);

        $html=ob_get_clean();
        //echo $html ;
        //$this->add_element('show_modal_window','HTML');

        $this->add_element('JSCODE',$html);

    }

    function tiket_check()
    {


        $rec_session_kz=array('mo_id'   => 0,
                              'terminal_id'   =>0,
                              'terminal_pkey' =>0,
                                 'personal_id'   =>0,
                                 'group_id'      =>0,
                                 'reader'        =>'check',
                                 'pass_id'       =>0,
                                 'quiestion_ids' =>$_POST['tiket_id']
                                   );

         $quiz_id=QUIZ()->open_quiz_session($rec_session_kz,array('debug'=>1)) ; // id записи по проведению КЗ ;
         echo '<strong>Открываем сессию КЗ</strong>, ID='.$quiz_id.'<br>' ;
         damp_array($rec_session_kz,1,-1); echo '<br>' ;

         $page_url=_PATH_TO_SITE.'/services/quiz/frame/'.$quiz_id.'/' ;
         echo $page_url ;
         $this->add_element('show_new_window',$page_url,['width'=>1100,'height'=>700]);
    }
}
