assign('razdel','rejtmain'); if(isset($_GET['page'])){ $page=$_GET['page']; }else{ $page='main'; } if(isset($_GET['des'])){ $des=$_GET['des']; }else{ $des='show';} /* echo '
'.print_r($_POST,1).''; echo '
'.print_r($_GET,1).''; [rejt] => [page] => admin1 [des] => add*/ $TB['razdels'] = $ST['dbpf'].'_rejt_razdels'; $TB['items'] = $ST['dbpf'].'_rejt_items'; $TB['polyas'] = $ST['dbpf'].'_rejt_polyas'; $TB['itemspolyas'] = $ST['dbpf'].'_rejt_itemspolyas'; $TB['saves'] = $ST['dbpf'].'_rejt_saves'; $TB['savesballs'] = $ST['dbpf'].'_rejt_savesballs'; $TB['otchgods'] = $ST['dbpf'].'_rejt_otchgods'; {$sql = 'CREATE TABLE IF NOT EXISTS `'.$TB['savesballs'].'` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data_c` int(11) NOT NULL, `id_user` int(11) NOT NULL, `id_item` int(11) NOT NULL, `balls` float NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;'; $rez = $DB->QUR($sql);} {$sql = 'CREATE TABLE IF NOT EXISTS `'.$TB['razdels'].'` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `descr` varchar(255) NOT NULL, `pos` tinyint(4) NOT NULL, `status` tinyint(4) NOT NULL, `dostup` tinyint(4) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;'; $rez = $DB->QUR($sql); } { $sql = 'CREATE TABLE IF NOT EXISTS `'.$TB['items'].'` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_razdel` int(11) NOT NULL, `name` text NOT NULL, `tip` tinyint(4) NOT NULL, `pos` tinyint(4) NOT NULL, `formuls` varchar(255) NOT NULL, `descr` text NOT NULL, `status` tinyint NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;'; $rez = $DB->QUR($sql); } { $sql = 'CREATE TABLE IF NOT EXISTS `'.$TB['polyas'].'` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_item` int(11) NOT NULL, `name` text NOT NULL, `pos` tinyint(4) NOT NULL, `value` DOUBLE NOT NULL, `status` tinyint NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;'; $rez = $DB->QUR($sql);} { $sql = 'CREATE TABLE IF NOT EXISTS `'.$TB['itemspolyas'].'` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_item` int(11) NOT NULL, `name` varchar(255) NOT NULL, `pos` tinyint(4) NOT NULL, `value` varchar(255) NOT NULL, `status` tinyint NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;'; $rez = $DB->QUR($sql);} { $sql = 'CREATE TABLE IF NOT EXISTS `'.$TB['saves'].'` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data_c` int(11) NOT NULL, `id_user` int(11) NOT NULL, `id_razdel` int(11) NOT NULL, `id_items` int(11) NOT NULL, `id_itemspolyas` int(11) NOT NULL, `id_polyas` int(11) NOT NULL, `value` text NOT NULL, `pos` tinyint(4) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;'; $rez = $DB->QUR($sql);} {$sql = 'CREATE TABLE IF NOT EXISTS `'.$TB['otchgods'].'` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data_c` int(11) NOT NULL, `tip` int(11) NOT NULL, `data_s1` int(11) NOT NULL, `data_s2` int(11) NOT NULL, `name` varchar(255) NOT NULL, `descrip` text NOT NULL, `status` tinyint NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;'; $rez = $DB->QUR($sql);} function rejt_get_razdels($id=0){ GLOBAL $TB,$DB; $out=array(); if($id){ $sql = 'SELECT * FROM '.$TB['razdels'].' WHERE id='.$id.' AND status=1 LIMIT 1'; }else{ $sql = 'SELECT * FROM '.$TB['razdels'].' WHERE status=1 ORDER BY pos'; } $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $out[]=$val; } } return $out; } function rejt_get_items($id=0){ GLOBAL $TB,$DB; $out=array(); if($id){ $sql = 'SELECT * FROM '.$TB['itemspolyas'].' WHERE id='.$id.' AND status=1 LIMIT 1'; }else{ $sql = 'SELECT * FROM '.$TB['itemspolyas'].' WHERE status=1 ORDER BY id_item,pos'; } $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val)if($key){ $sql1 = 'SELECT * FROM '.$TB['items'].' WHERE id='.$val['id_item'].' AND status=1'; $rez1 = $DB->QUR_SEL($sql1); if($rez1){ $sql2 = 'SELECT * FROM '.$TB['razdels'].' WHERE id='.$rez1[1]['id_razdel'].' AND status=1'; $rez2 = $DB->QUR_SEL($sql2); if($rez2){ $rez1[1]['razdel'] = $rez2[1]; } $val['item'] = $rez1[1]; } $out[]=$val; } } return $out; } function rejt_get_useranketa(){ GLOBAL $ST,$DB,$TB; $items=array(); $BALLS=0; $sql = 'SELECT * FROM '.$TB['razdels'].' WHERE status=1 ORDER BY pos'; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).''; if($rez){ foreach($rez as $key => $val)if($key){ $val['razdel']=array(); $sql1 = 'SELECT * FROM '.$TB['items'].' WHERE id_razdel='.$val['id'].' AND status=1 ORDER BY pos'; $rez1 = $DB->QUR_SEL($sql1); //echo $sql1.'
'.print_r($rez1,1).''; if($rez1){ foreach($rez1 as $key1 => $val1)if($key1){ $val1['itemspolyas']=array(); $sql2 = 'SELECT * FROM '.$TB['itemspolyas'].' WHERE id_item='.$val1['id'].' AND status=1 ORDER BY pos'; $rez2 = $DB->QUR_SEL($sql2); //echo $sql2.'
'.print_r($rez2,1).''; $kolsaves=0; if($rez2){ foreach($rez2 as $key2 => $val2)if($key2){ $val2['polyas']=array(); //выбираем выпадающие элементы $sql3 = 'SELECT * FROM '.$TB['polyas'].' WHERE id_item='.$val2['id'].' AND status=1 ORDER BY pos'; $rez3 = $DB->QUR_SEL($sql3); //echo $sql3.'
'.print_r($rez3,1).''; if($rez3){ foreach($rez3 as $key3 => $val3)if($key3){ $val2['polyas'][]=$val3; } } $val2['saves']=array(); //выбираем сохранения в зависимости от $_SESSION['otchgods'][3]['data_s1']-$_SESSION['otchgods'][3]['data_s2'] if(isset($_SESSION['otchgods'][3])){ //$sql4 = 'SELECT * FROM '.$TB['saves'].' WHERE id_user='.$_SESSION['user']['id'].' AND id_razdel='.$val['id'].' AND id_items='.$val1['id'].' AND id_itemspolyas='.$val2['id'].' ORDER BY pos'; $sql4 = 'SELECT * FROM '.$TB['saves'].' WHERE id_user='.$_SESSION['user']['id'].' AND id_razdel='.$val['id'].' AND id_items='.$val1['id'].' AND id_itemspolyas='.$val2['id'].' AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].') ORDER BY pos'; $rez4 = $DB->QUR_SEL($sql4); //echo '1:'.$sql4.'
'.print_r($rez4,1).''; if($rez4){ if($rez4[0]>$kolsaves) $kolsaves=$rez4[0]; foreach($rez4 as $key4 => $val4)if($key4){ $val2['saves'][$val4['pos']+1]=$val4; } } } $val1['itemspolyas'][]=$val2; } }else{//может быть сохранения и для первого раздела! $val2['saves']=array(); //выбираем сохранения в зависимости от $_SESSION['otchgods'][3]['data_s1']-$_SESSION['otchgods'][3]['data_s2'] if(isset($_SESSION['otchgods'][3])){ $sql4 = 'SELECT * FROM '.$TB['saves'].' WHERE id_user='.$_SESSION['user']['id'].' AND id_razdel='.$val['id'].' AND id_items='.$val1['id'].' AND id_itemspolyas=0 AND (data_c BETWEEN '.$_SESSION['otchgods'][3]['data_s1'].' AND '.$_SESSION['otchgods'][3]['data_s2'].') ORDER BY pos'; $rez4 = $DB->QUR_SEL($sql4); //echo '2:'.$sql4.'
'.print_r($rez4,1).''; if($rez4){ if($rez4[0]>$kolsaves) $kolsaves=$rez4[0]; foreach($rez4 as $key4 => $val4)if($key4){ $val2['saves'][$val4['pos']+1]=$val4; } } } $val1['itemspolyas'][]=$val2; } $val1['kolsaves']=$kolsaves; $val1['formuls'] = rejt_raschet($val1['id'],$_SESSION['user']['id']); $BALLS+=$val1['formuls']['itogo']; $val['razdel'][]=$val1; } //echo '$key1='.$key1.'
'.print_r($val,1).''; //exit(); //echo '$key='.$key.'
'.print_r($items,1).''; return array('items'=>$items,'balls'=>$BALLS); } //echo '
'.print_r($_SESSION['user'],1).''; //if($_SESSION['user']['status']==99){ if($page=='checks'){ include 'rejt_checks.php'; } if($page=='admin'){ $smarty->assign('page',$page); $smarty->assign('des',$des); $maincontent = $smarty->fetch('tpl_rejt_main.html'); } if($page=='kart'){ $smarty->assign('page',$page); $smarty->assign('des',$des); $maincontent = $smarty->fetch('tpl_rejt_kart.html'); } if($page=='admin1'){//УПРАВЛЕНИЕ ОСНОВНЫМИ РАЗДЕЛАМИ include 'rejt_admin1.php'; } if($page=='admin2'){//УПРАВЛЕНИЕ ПОДРАЗДЕЛАМИ include 'rejt_admin2.php'; } if($page=='admin3'){//УПРАВЛЕНИЕ полями в ПОДРАЗДЕЛАХ include 'rejt_admin3.php'; } if($page=='admin4'){//УПРАВЛЕНИЕ значениями в полях include 'rejt_admin4.php'; } if($page=='admin5'){//УПРАВЛЕНИЕ отчетными периодами include 'rejt_admin5.php'; } if($page=='xlsx'){ $otchgods=array();//выберем активный отчетный период unset($_SESSION['otchgods'][3]); $sql = 'SELECT * FROM '.$TB['otchgods'].' WHERE tip=3 AND status=1'; $rez = $DB->QUR_SEL($sql); if($rez){ $otchgods = $rez[1]; $otchgods['konec'] = 0; if(time()>$otchgods['data_s2']) $otchgods['konec'] = 1; $_SESSION['otchgods'][$otchgods['tip']] = $otchgods;//для подсчета баллов } ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('Europe/Moscow'); require_once 'inc/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("Яковлев Александр Леонидович") ->setLastModifiedBy("Яковлев Александр Леонидович") ->setTitle('Рейтинг сотрудника "'.$_SESSION['user']['fio'].'"') ->setSubject("выгрузка данных с сайта") ->setDescription("сводные данные по всем машинам") ->setKeywords("alneo.ru alneo php") ->setCategory("эффективный контракт"); $objPHPExcel->getActiveSheet()->mergeCells('A1:D1'); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'Рейтинг сотрудника "'.$_SESSION['user']['fio'].'" '.date('H:i d.m.Y')); $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); //$header=array('1','2','3'); //$objPHPExcel->getActiveSheet()->fromArray($header, NULL, 'A2'); /* $objPHPExcel->getActiveSheet()->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('J2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('K2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('L2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('A2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('C2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('D2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('E2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('F2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('G2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('H2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('I2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('J2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('K2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('L2')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('M2')->getFont()->setBold(true); */ $rejtuser = rejt_get_useranketa(); $items = $rejtuser['items']; $BALLS = $rejtuser['balls']; //echo '
'.print_r($items,1).''; $row=3; foreach($items as $key => $it){ $row = $row+$key; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $it['name']); $objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); if (count($it['razdel'])){ $row++; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $it['razdel']['name']); $objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getFont()->setBold(true); //$objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); foreach($it['razdel'] as $key => $rd){ if (!count($rd['itemspolyas'])){//Блок без допполей $row++; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $rd['name']); //{if $rd.name=='Ф.И.О. преподавателя'}{$user.fio}{/if} $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, '--'); } else{//блоки с допполями $row++; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $rd['name']); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$row, $rd['formuls']['itogo']); $objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getFont()->setBold(true); //$objPHPExcel->getActiveSheet()->getStyle('A'.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); if ($rd['kolsaves']){//если есть сохранения for ($kol=1;$kol<=$rd['kolsaves'];$kol++){ $row++; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $rd['name'].' №'.$kol); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$row, $rd['formuls'][$kol-1]); $objPHPExcel->getActiveSheet()->getStyle('C'.$row)->getFont()->setBold(true); foreach($rd['itemspolyas'] as $key2 => $ip){ $row++; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $ip['name']); if($ip['saves'][$kol]['value']!=''){ if(is_numeric($ip['saves'][$kol]['value'])){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, $ip['saves'][$kol]['value']); }else{ $urlb1 = false; $urlb2 = false; if (strpos($ip['saves'][$kol]['value'], 'upload/rejt') !== false) $urlb1 = true; if (strpos($ip['saves'][$kol]['value'], 'http') !== false) $urlb2 = true; if($urlb1){ $url = 'http://eios.mkgtu.ru'.$ip['saves'][$kol]['value']; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, '=Hyperlink("'.$url.'","Скачать")'); }else{ if($urlb2){//внешние ссылки $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, $ip['saves'][$kol]['value']); }else{//просто текст $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, $ip['saves'][$kol]['value']); } } } } } } } } } } } $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true); //$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true); $objPHPExcel->getActiveSheet()->setTitle('Рейтинг'); $objPHPExcel->setActiveSheetIndex(0); $file = 'Рейтинг_'.$_SESSION['user']['fio'].''; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.$file.'.xlsx"'); header('Cache-Control: max-age=0'); header('Cache-Control: max-age=1'); header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header ('Pragma: public'); // HTTP/1.0 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); //echo '
'.print_r($objWriter,1).''; exit; } if($page=='main'){ include 'rejt_anketa.php'; } if($page=='maineu'){ //echo '
'.print_r($_GET,1).''; $_SESSION['rejteu'] = (int)$_GET['des']; include 'rejt_anketa.php'; } //}else{$maincontent = 'в разработке';}