'; echo var_dump($l); echo ''; } exit; //$q = "SELECT * FROM `tmerakomisemp` LIMIT 100"; $q = "SHOW COLUMNS FROM `tmerakomisemp`"; $q = "ALTER TABLE tmerakomisemp CHANGE tMerakomisEmp_tg_acc tMerakomisEmp_tg_acc VARCHAR(31) NOT NULL DEFAULT ''"; $r = \DB::executeString($q); echo '
';
        echo var_dump($q,$r,mysqli_error(\DB::$DB));
        echo '
'; while($l = \DB::fetch($r)){ echo '
';
            echo var_dump($l);
            echo '
'; } } static function replaceTableNames(){ exit; //* // Показывать ли все ошибки error_reporting(E_ALL); ini_set('display_errors',true); /*/ ini_set('display_errors','Off'); /**/ $x = file_get_contents("C:\Users\Helios 300\Desktop\merakomis to module (1).sql"); echo '
';
        echo var_dump(strlen($x));
        echo '
'; foreach (Merakomis::$modules as $m){ $class = Merakomis::$module_prefix.'\\'.$m; $tb = $class::$table_name; $tb2 = strtolower($tb); $x = str_replace($tb2,$tb,$x); } file_put_contents("C:\Users\Helios 300\Desktop\merakomis to module (2).sql",$x); } static function getNotifyCount(){ $res = ['view'=>true]; if($_COOKIE['viewed'.date('Ymd')]) { $res['view'] = false; } else { $x = Emp::getBirthday(); $res['view'] = boolval( count($x['dates']) ); } echo je($res); } static function viewedNotify(){ \Core::setCookie('viewed'.date('Ymd'),'1',time()+60*60*24); } static function test(){ //$r = Merakomis::mail("v.gvozdikov@merakom.ru","Виктор","111",'222');; //$r = Merakomis::mail("starosta-91@ya.ru","Виктор","111",'222');; $res= []; $x = Merakomis::encryptNumber(50000); $y = Merakomis::decryptNumber($x); echo '['; for($i=0;$i<100;$i++){ $res[] = Merakomis::encryptNumber($i); echo $i.' => "'.$res[$i].'",'; } echo ']'; $x = [0 => "ZjRTRHliUDJJZlMvb1BVNHRzOERtdz09",1 => "eVgxVnNxTmkxMUd0ZWcvSzFaSXdqQT09",2 => "UGF0eXNqcFVtTFpaajE0b1RTWE8zdz09",3 => "RThRdE1FNmpIci85QTZ3YmFwUjZWdz09",4 => "eGovemV5S2xWTGZSSWs0a2I4dGh5UT09",5 => "T0pWQUdTcndGbjRMWG5KdkxCSG54dz09",6 => "TkNPMUVtSWF1R2gyd1duUXBxcVcxQT09",7 => "UGZDeG40dU9vSEZiMHJFWEMvVTJTUT09",8 => "VVRzb1V5Mk1SK0JQM0tOWDFzVkV1QT09",9 => "Zzk4dGZYRGNPNjNJVm0vWnlQd05Hdz09",10 => "YlYvcXF5WGJPMUpxVXBNemRkLzlVQT09",11 => "TllpTEd1QWtWbCtuU3hGN243NzJtdz09",12 => "WDkzL2wwTHlnRVhVWTBFT3d2VVJPUT09",13 => "QjFrRW1tOTQ1K1B5cWRpRXpkMXFmUT09",14 => "NWQ4QjZvN2hrOGhvOTl1RDcyVStxQT09",15 => "NThDbVdISXN4YU85cWcxSHpxMWFUdz09",16 => "eDFVeUFxT3pTNVpqYXVRMXRpUUFrZz09",17 => "K1VZU3dmUWNjcWg3QzJydytTK1J4dz09",18 => "c0xKZUg3bThVcitBdGhYRW0xbm5aZz09",19 => "VXdpN1Fkd3Q4SytFb2VvQmdGQVBsZz09",20 => "MFRWVG9rR1c3dy9ZUXRCekluU1Ridz09",21 => "UG1odlBwZFFhVE5zc2JLWmI2ZDl3UT09",22 => "VXJYeFBZSDJYMmQ5SkhvU3BIRGZudz09",23 => "S0FkcXM5N2FmVzFNM3lCZS8vTG8yUT09",24 => "VDdwSnZlK25OSjVMQmlTWHZYaWMzQT09",25 => "VUNYUmQwOW4vUUtyYnRnRXJsV3kzdz09",26 => "eVpURnEwaEtITUEvaS9GZ1oyeHVnQT09",27 => "aEs2a3c1NFhmOG1CRjhtcEEyUnIrZz09",28 => "d1FqbnZaTU05T1c0WVJTS0xYcDBNQT09",29 => "VC9uVEZuUm16VnZPTWc3RXYzSTYvQT09",30 => "Sk9ySWhaNmdHU0ZVVk9Od1VTMWduUT09",31 => "NWxVaVFiWDBCc2NGYkRORzZxM1Fydz09",32 => "djdwSDMyK21tMlMyK3o4OUhTblpFZz09",33 => "YzZiU0NBcVpUd0ZXcmNqQ1dYOXowdz09",34 => "b3IveGFaT0ZHMlh5UjVCazhHQkJqQT09",35 => "Vm16T0FlSnNaenFlN1l0WU1rcVZudz09",36 => "YjhadzZPQ1pVVy9lYS9EYlkyRXp2dz09",37 => "aUxibDZnRktPVEg2VWFtUzYzTTZRQT09",38 => "c1NEcnhJQWk4UTk0WEU4Z0JMRyswZz09",39 => "N0d2T1F2Q2tqamVpeHhzdEtTZ2p0QT09",40 => "aXZDV1RTN3oxa2p2TVFwSjRRRXJOUT09",41 => "V1FZZWlpcFR2UUlFR0FpUExUZHVMQT09",42 => "aXdYUHU4OE1SbzlHeHV5RDdlVWZndz09",43 => "Z0NzYkl3TFRnUDNLT09yMTZ6V0d5UT09",44 => "dDJ3NFlBT3kzeVNBWGNLT3ZCMjlmUT09",45 => "b3M3Nld0SlZGYTFQcEpUSXg1cEdmUT09",46 => "NHQxM29oTExwUERHZk9iQkxnT3dNdz09",47 => "WXdUTjhOeUd1QUc2YkxLeUIzUVBIQT09",48 => "QmZrb2xyRUQ4ajVaMkg1TUw1NmZxdz09",49 => "bGVxUU1aUUdqVUVkbHN3SWF0MTRvZz09",50 => "dVA5OU9BT09sOTg5Znhycmw0aUYvQT09",51 => "TCtGRTRaZWs1UE1FeFZ3RFE3MFJJQT09",52 => "OVJsOSt2NXZLWWIveG5EZjlCcThPdz09",53 => "c3JOeHJIbFVDT2NVMUlpaHhyOU1NQT09",54 => "c3NNcXBja2RKUjVXWksvN0JLUGNHZz09",55 => "cnBDNTFzTFE2OU12dXpzMVJUdEpudz09",56 => "b3J5VU9lNEFMdVFTUExRVHFYRENTQT09",57 => "cWdTUThYcVJMYk5CTmdML1h5SlpMQT09",58 => "cjBWT2w2bEtuODdxUVBJb1ROT3E1QT09",59 => "ZGRUTnM3blNSZWt5cDVqYUJzWGJUUT09",60 => "NEtDa1pteG1pZFBzUGNNNTMyNU1xZz09",61 => "SWlZaHNZTXhtaUJ2NlYyREJYVUZMUT09",62 => "UzR6K0RGZjk4cUF5cFp3VTFWSGZxUT09",63 => "ZFVaTkcxcWdSOGlicjBkWVgrYTVRZz09",64 => "cURWVmkrTlVtSUhuR1ZqU2xyejErdz09",65 => "UWdpU0d3QzA5NDVlNUI0M09QbnB0QT09",66 => "bDZNKzYxZ090SEZmL3o2V1Axd0h6UT09",67 => "RkExUVpqTU81N1VhMGZuMTBwSzdNZz09",68 => "cCtCU2pQdmFBNjNmc3ozVFo5aDVNdz09",69 => "UnY0ZTVUNTB4citGMytjQmMvVSs5QT09",70 => "SkdTWUpqY1Q3dGdvODlJNFZYeGk0dz09",71 => "aTJtSzNRelQzekYzQVdZcEFXN056UT09",72 => "ZVE5dkRmUjlLUktXME45WHhDTzlaZz09",73 => "TTYwdHJTeTk3a0JNUEhEa3RIZ0E1UT09",74 => "THJzWHNWV01aT3NiaEpLdXhyYnJadz09",75 => "UXI4L3JUUkp0MmkxQyttMnpGWVlzZz09",76 => "dHBaMERmWDBEMW1iTkhIWS9STE5BQT09",77 => "Y1hMdTdycVFoYzk1SjVEbTV4U29CUT09",78 => "VTkwVzJ5ZEtBWms3WnZjTFdIdWtrZz09",79 => "UXpkNllxN3crbVBmQk1tQXJvbzA3dz09",80 => "R3p6ZE1TNm5WZ3pjSDA1WFVKRE5uZz09",81 => "SlZpcndhalhuMzBOWi9DcWZ1UmF2QT09",82 => "QTY4QzFyN0t1WjQzTjR0MURqZHNOdz09",83 => "OVhJejdac2RmTXpFYzhUWmZJZzdMZz09",84 => "eDZ3SWtWTHZhQnFjT3RXK1ExaVdmUT09",85 => "L0pRUldJTEZ5TE1WU1VkUGNBSm9TZz09",86 => "bDk5M0dxWXRTeEwwK3BXeGgxYlRIUT09",87 => "M1cyL01WRThFNHZya1RiQm1sWnZmdz09",88 => "WExTeFRLNTFzeDVLUGxLM24vMzdSdz09",89 => "bk9iQVZwNUg1RlQyU3ZCWVBvNDVIUT09",90 => "VUwza0VMbUdpWTJoUWVLc2t1WGdnQT09",91 => "bUNMUndxWnJhT244SFFLUnFxRmhQQT09",92 => "MzlReTcyQmlMTm1RREtjeDNGbWFYZz09",93 => "SndLZ2J1NVAxMFBhSE9hQXM2OFljUT09",94 => "Q3B5a1RDdlY2dWFpcUVtY24rRlpidz09",95 => "cUUxZjdPZGlTdktFWTJ0TTJ3allzQT09",96 => "NjdyQlFEeTV6Sm5hNU5SclFaUVp2Zz09",97 => "NExCb1FnY2xuVVN3cXdmSmZvSWFIQT09",98 => "S3U1cng3U1RqUzgxSGtvbnRHVFRoZz09",99 => "eUVtS3Q5Y2wzTEEvakRhQVFHcUZpUT09",]; foreach($x as $v){ echo $v.'-'.Merakomis::decryptNumber($v).'
'; } } static function setTitleEdit(){ $res = []; if(Emp::$IS_AUTH){ } echo je($res); } static function getTitleEdit(){ $res = []; $res['title'] = Merakomis::$data[$_POST['title']]; $res['text'] = Merakomis::$data[$_POST['text']]; $form = new Form(); $form->addRow((new Row()) ->addColumn(((new Text()) ->setName($_POST['title']) ->setValue($res['title']) ->setClassAll('c-100') ->setLabel($c = 'Заголовок') ->setPlaceholder($c) )) ->addColumn(((new Textarea()) ->setName($_POST['text']) ->setValue($res['text']) ->setClassAll('c-100') ->setLabel($c = 'Текст') ->setPlaceholder($c) ->setIsHtmlEditor(true) ->setTinyMCEApiKey(Theme::$TINY_MCE_KEY) ->setTinyMCEImageUploadUrl(Theme::$TINY_MCE_IMAGE_UPLOAD_URL) )) ->addColumn(((new Form\Input\Submit()) ->setClassAll('c-100') ->setClassName('blue') ->setPlaceholder($c = 'Сохранить') )) ); $res['form'] = $form->toJSON(); echo je($res); } static function sendFeedback(){ $res =[]; if(Emp::$IS_AUTH) { $mess = [ 'Новая обратная связь', 'Тема: '.$_POST['title'], 'Текст: '.$_POST['text'], 'Сотрудник: '.Emp::$data[Emp::$NAME], 'Skype: '.Emp::$data[Emp::$SKYPE], 'Email: '.Emp::$data[Emp::$EMAIL], ]; $mess = implode("
",$mess); $res['mess'] = $mess; $r = Theme::sendMailAdmin($mess,"Новая обратная связь"); if($r['send']) { $res['notify']['content'] = 'Сообщение отправлено'; $res['notify']['color'] = 0; } else { $res['notify']['content'] = 'Не удалось отправить сообщение '; $res['notify']['color'] = 1; } } echo je($res); } static function upload_image(){ $res =[]; if(Emp::$IS_AUTH) { $res = Image::upload(['base64' => false]); } echo je($res); } static function upload_pdf(){ $res =[]; if(Emp::$IS_AUTH) { $res = Image::upload(['base64' => true,'isFile'=>true]); } echo je($res); } static function formThankYou(){ include_once(\Site::$absPath.'/jade/windows/thankyou.php'); } static function sendForm(){ $mess = (($c = $_POST['name']) ?'Тема: '.$c.'
':''). (($c = $_POST['comment']) ?'Комментарий: '.nl2br($c).'
':''). ''; $files = []; foreach ($_FILES as $v){ $file = dirname(__FILE__).'/'.$v['name']; if (move_uploaded_file($v['tmp_name'], $file)) { $files[] = $file; } } $res['mess'] = $mess; try { Theme::sendMailAdmin($mess,'Новая обратная связь',$files); } finally { foreach ($files as $v) { unlink($v); } } /**/ echo je($res); } static function saveFilter(){ $res = []; if(Emp::$IS_AUTH){ $res = Filter::addFilterForToOid( $_POST['name'], $_POST['data']['table'], $_POST['filter'], msTo::MERAKOMBIS_EMP, Emp::$AUTH_ID ); } echo je($res); } static function updateFilter(){ $res = []; if(Emp::$IS_AUTH){ $id = intval($_POST['id']); $filter = Filter::getByID($id); if($filter[Filter::$OID]==Emp::$AUTH_ID and $filter[Filter::$TO]==msTo::MERAKOMBIS_EMP) { Filter::updateById($id, [ Filter::$DATA => je($_POST['data']) ]); $res['notify']['content'] = 'Успешно обновлено'; } } echo je($res); } static function removeFilter(){ $res = []; if(Emp::$IS_AUTH){ $id = intval($_POST['id']); $filter = Filter::getByID($id); if($filter[Filter::$OID]==Emp::$AUTH_ID and $filter[Filter::$TO]==msTo::MERAKOMBIS_EMP) { $res = Filter::deleteByID($id); } } echo je($res); } static function setNewOptions(){ $data = [ Merakomis::$_STAFF_SUBTITLE_1 => 'Сводные данные', Merakomis::$_STAFF_SUBTITLE_2 => 'Заработная плата и ставка', Merakomis::$_STAFF_SUBTITLE_3 => 'Информация о детях', Merakomis::$_STAFF_SUBTITLE_4 => 'Аттестация сотрудников в регулирующих органах', Merakomis::$_STAFF_SUBTITLE_5 => 'Анализ нерабочих дней', Merakomis::$_STAFF_TEXT_1 => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.', Merakomis::$_STAFF_TEXT_2 => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.', Merakomis::$_STAFF_TEXT_3 => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.', Merakomis::$_STAFF_TEXT_4 => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.', Merakomis::$_STAFF_TEXT_5 => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.', Merakomis::$_ANALYSIS_MY_1_SUBTITLE => 'Работа над проектами', Merakomis::$_ANALYSIS_MY_2_SUBTITLE => 'Отсутствие на рабочем месте', Merakomis::$_CARD_SUBTITLE => 'Карточка сотрудника', Merakomis::$_CARD_TEXT => 'В таблице представлены все данные вашей карточки сотрудника. Просим вас их проверить, и, при выявлении неточностей, написать о ней администратору, нажав ссылку «Сообщить об ошибке». Пожалуйста, поддерживайте информацию в актуальном виде. Особенно это касается номера телефона и имени аккаунта Skype, которые вы можете поправить самостоятельно.', Merakomis::$_PROJECT_SUBTITLE => 'Информация о проекте', Merakomis::$_PROJECT_TEXT => 'Карточка проекта, в разработке которого вы принимаете участие', Merakomis::$_ANALYSIS_TEAM_1_SUBTITLE => 'Анализ затрат на проекты - 1', Merakomis::$_ANALYSIS_TEAM_2_SUBTITLE => 'Анализ затрат на проекты - 2', Merakomis::$_ANALYSIS_TEAM_3_SUBTITLE => 'Подразделы', Merakomis::$_ANALYSIS_TEAM_4_SUBTITLE => 'Разделы', Merakomis::$_ANALYSIS_TEAM_5_SUBTITLE => 'Команда проекта', Merakomis::$_ANALYSIS_YEAR_1_SUBTITLE => 'Сводка часов за календарный год', Merakomis::$_ANALYSIS_YEAR_2_SUBTITLE => 'Сводка затрат за календарный год', Merakomis::$_ANALYSIS_COMPANY_1_SUBTITLE => 'Нагрузка на подразделения', Merakomis::$_ANALYSIS_COMPANY_2_SUBTITLE => 'Нагрузка на сотрудников - 1', Merakomis::$_ANALYSIS_COMPANY_3_SUBTITLE => 'Нагрузка на сотрудников - 2', Merakomis::$_ANALYSIS_COMPANY_4_SUBTITLE => 'Анализ нерабочих дней сотрудников вашей компании', Merakomis::$_ANALYSIS_COMPANY_4_SUBTITLE_2 => 'Анализ нерабочих дней сотрудников офиса', ]; $_POST['data'] = $data; self::savePortalOptions(); } static function savePortalOptions(){ $res = []; if(Emp::$IS_AUTH){ $data = json_decode(\Site::$section[Section::$DATA],true); foreach ($_POST['data'] as $k=>$v){ if(in_array($k,[ //MerakomBase::$_PARTNERS ])) continue; $data[$k] = $v; } $r = Section::updateById(\Site::$section_id,[ Section::$DATA => je($data) ]); $res['notify']['content'] = 'Успешно сохранено'; } echo je($res); } static function getFormSettings(){ echo je(Merakomis::getFormSettings()); } static function getAppStructure(){ //if(!Emp::$IS_AUTH) return []; $res = []; $isLocal = $_SERVER['HTTP_ORIGIN'] == 'http://localhost:3000'; $isTest = $isLocal; $isAdmin = true; $token_hash = (Emp::$IS_AUTH?Merakomis::getUploadToken():''); //$token_hash = null; //$profile_id = Emp::$AUTH_ID; $panel_path = $isLocal ? '/' : '/'; $logotype = [ //'url'=>\Site::sectionUrl('content/merakomis/pics/logo/logo.black.svg',true), 'url'=>\Site::sectionUrl('content/merakomru/pics/logo/logo.black.svg',true), 'url'=>\Site::sectionUrl('content/merakomis/pics/logo_meraproject.svg',true), //'title'=>'MeraProject', //'subtitle'=>"MERAKOM PROJECT\nMANAGER", ]; $main_crumbs = [['name'=>'Главная','link'=>'/']]; $sortable_table = [ 'sortable' => true, 'show_filter' => false, 'show_search' => false, 'show_count' => false, 'show_pagination' => false, ]; $isCanEditProjects = !Emp::isMeTopManager(); $isCanAddProjects = Rules::isProjectsAddButton(); $routes = [ ['path'=>'*', 'element'=> eContentPage::MAIN, 'props'=>[],'crumbs'=>array_merge($main_crumbs),], ['path'=>'/', 'element'=> eContentPage::MAIN, 'props'=>[],'crumbs'=>array_merge($main_crumbs),], ['path'=>'projects/*', 'element'=> eContentPage::PROJECTS , 'props'=>['canEdit'=>$isCanEditProjects,'addButton'=>$isCanAddProjects,'entity'=>'project','ajaxData'=>['archive'=>0]],'crumbs'=>array_merge($main_crumbs,[['name'=>'Проекты','link'=>'projects/']]),], //['path'=>'post/*', 'element'=> eContentPage::TABLE_PAGE, 'props'=>['entity'=>'post'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Должности','link'=>'post/']]),], ['path'=>'team/*', 'element'=> eContentPage::TABLE_PAGE, 'props'=>['entity'=>'team'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Команды','link'=>'team/']]),], ['path'=>'team/member/:id', 'element'=> eContentPage::TABLE_TEAM_MEMBER, 'props'=>['entity'=>'team.member','checkable'=>false],'crumbs'=>array_merge($main_crumbs,[['name'=>'Команды','link'=>'team/']]),], ['path'=>'emp/*', 'element'=> eContentPage::TABLE_EMP, 'props'=>['entity'=>'emp','checkable'=>false, 'archive'=>0, 'init_filter_values'=>[Emp::$ARCHIVE=>0], 'ajaxData'=>['archive'=>0]],'crumbs'=>array_merge($main_crumbs,[['name'=>'Сотрудники','link'=>'emp/']]),], ['path'=>'dictionary/absence/*', 'element'=> eContentPage::DICTIONARY, 'props'=>['entity'=>'dictionary.absence'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Причины отсутствия','link'=>'dictionary/absence/']]),], ['path'=>'dictionary/city/*', 'element'=> eContentPage::DICTIONARY, 'props'=>['entity'=>'dictionary.city'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Города','link'=>'dictionary/city/']]),], ['path'=>'dictionary/staffing/*', 'element'=> eContentPage::DICTIONARY, 'props'=>['entity'=>'dictionary.staffing'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Штатное расписание','link'=>'dictionary/staffing/']]),], ['path'=>'dictionary/empstatus/*', 'element'=> eContentPage::DICTIONARY, 'props'=>['entity'=>'dictionary.empstatus'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Статус сотрудника','link'=>'dictionary/empstatus/']]),], ['path'=>'dictionary/org/*', 'element'=> eContentPage::ORG, 'props'=>['entity'=>'dictionary.org'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Юридические лица','link'=>'dictionary/org/']]),], ['path'=>'dictionary/orgtype/*', 'element'=> eContentPage::DICTIONARY, 'props'=>['entity'=>'dictionary.orgtype'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Виды сотрудничества','link'=>'dictionary/orgtype/']]),], ['path'=>'dictionary/objtype/*', 'element'=> eContentPage::DICTIONARY, 'props'=>['entity'=>'dictionary.objtype'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Виды сотрудничества','link'=>'dictionary/orgtype/']]),], ['path'=>'dictionary/contractor/status/*', 'element'=> eContentPage::CONTRACTOR_STATUS, 'props'=>['entity'=>'dictionary.contractor.status'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Статусы контрагентов','link'=>'dictionary/contractor/status/']]),], ['path'=>'dictionary/contractor/*','element'=> eContentPage::CONTRACTOR, 'props'=>[ 'checkable'=>false, 'entity'=>'dictionary.contractor', 'show_download_button'=>false, ], 'crumbs'=>array_merge($main_crumbs,[['name'=>'Контрагенты','link'=>'dictionary/contractor/']]),], ['path'=>'history/*', 'element'=> eContentPage::TABLE_PAGE, 'props'=>['entity'=>'history'],'crumbs'=>array_merge($main_crumbs,[['name'=>'История действий','link'=>'history/']]),], ['path'=>'departments/*', 'element'=> eContentPage::DEPARTMENTS, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Структура компании','link'=>'departments/']]),], ['path'=>'time_tracker/:emp/*', 'element'=> eContentPage::TIME, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Табель', 'link'=>'my/time_tracker/']]),], ['path'=>'my/time_tracker/*', 'element'=> eContentPage::TIME, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Мой табель', 'link'=>'my/time_tracker/']]),], ['path'=>'my/projects/*', 'element'=> eContentPage::PROJECT, 'props'=>['entity'=>'project','show_add_button'=>false,'ajaxData'=>['my'=>1]],'crumbs'=>array_merge($main_crumbs,[['name'=>'Мои проекты', 'link'=>'my/projects/']]),], ['path'=>'my/team/*', 'element'=> eContentPage::TEAM, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Моя команда', 'link'=>'my/team/']]),], ['path'=>'my/company/*', 'element'=> eContentPage::COMPANY, 'props'=>[ 'entity'=>'emp', 'ajaxData'=>['archive'=>0,'my_company'=>1], 'show_add_button'=>false, 'show_download_button'=>false, 'checkable'=>false, ],'crumbs'=>array_merge($main_crumbs,[['name'=>'Моя компания', 'link'=>'my/company/']]),], ['path'=>'dictionary/step/', 'element'=> eContentPage::STEP, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Структура проекта', 'link'=>'dictionary/step/']]),], ['path'=>'my/summary/*', 'element'=> eContentPage::SUMMARY, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Сводный табель', 'link'=>'my/summary/']]),], ['path'=>'my/profile/*', 'element'=> eContentPage::PROFILE, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Моя карточка', 'link'=>'my/profile/']]),], ['path'=>'my/analysis/*', 'element'=> eContentPage::ANALYSIS, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Моя аналитика', 'link'=>'my/analysis/']]),], //['path'=>'analysis/*', 'element'=> eContentPage::ANALYSIS, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Аналитика', 'link'=>'analysis/']]),], ['path'=>'calendar/*', 'element'=> eContentPage::CALENDAR, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Производственный календарь', 'link'=>'calendar/']]),], ['path'=>'public_profile/:id', 'element'=> eContentPage::PUBLIC_PROFILE, 'props'=>[],'crumbs'=>array_merge($main_crumbs,[['name'=>'Профиль', 'link'=>'']]),], ['path'=>'archive/projects/*', 'element'=> eContentPage::PROJECTS, 'props'=>['canEdit'=>$isCanEditProjects,'addButton'=>$isCanAddProjects,'archive'=>true],'crumbs'=>array_merge($main_crumbs,[['name'=>'Проекты','link'=>'projects/']]),], ['path'=>'archive/emp/*', 'element'=> eContentPage::TABLE_EMP, 'props'=>[ 'archive'=>1, 'init_filter_values'=>[Emp::$ARCHIVE=>1], ],'crumbs'=>array_merge($main_crumbs,[['name'=>'Сотрудники','link'=>'emp/']]),], ['path'=>'settings/*', 'element'=> eContentPage::SETTINGS, 'props'=>['key'=>'4','title'=>'Переменные','url'=>'/getFormSettings'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Настройки','link'=>'settings/']]),], ['path'=>'calendar/day', 'element'=> eContentPage::DAYS, 'props'=>['entity'=>'day'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Дни','link'=>'team/']]),], ['path'=>'calendar/event', 'element'=> eContentPage::TABLE_PAGE, 'props'=>['entity'=>'event'],'crumbs'=>array_merge($main_crumbs,[['name'=>'События','link'=>'team/']]),], ['path'=>'pages/', 'element'=> eContentPage::TABLE_PAGE, 'props'=>['entity'=>'page'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Страницы','link'=>'team/']]),], ['path'=>'variable/', 'element'=> eContentPage::VARIABLE, 'props'=>['entity'=>'variable','checkable'=>false],'crumbs'=>array_merge($main_crumbs,[['name'=>'Страницы','link'=>'team/']]),], ['path'=>'money/fot/', 'element'=> eContentPage::FOT, 'props'=>['entity'=>'variable'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Страницы','link'=>'team/']]),], ['path'=>'money/fot/:id', 'element'=> eContentPage::EMP_FOT, 'props'=>['entity'=>'variable'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Страницы','link'=>'team/']]),], ['path'=>'analysis/:type', 'element'=> eContentPage::ANALYSIS, 'props'=>[ ],'crumbs'=>array_merge($main_crumbs,[['name'=>'Моя аналитика', 'link'=>'my/analysis/']]),], ['path'=>'analysis/:type/:subtype', 'element'=> eContentPage::ANALYSIS, 'props'=>[ ],'crumbs'=>array_merge($main_crumbs,[['name'=>'Моя аналитика', 'link'=>'my/analysis/']]),], /* //['path'=>'/', 'element'=>eContentPage::CHANGEBLOG_CLIENTS , 'props'=>[]], ['path'=>'', 'element'=> eContentPage::MAIN, 'props'=>[],'crumbs'=>array_merge($main_crumbs),], ['path'=>'cloud/*', 'element'=> eContentPage::TABLE_PAGE, 'props'=>['entity'=>'cloud'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Облачные документы','link'=>'cloud/']]),], ['path'=>'emp/*', 'element'=> eContentPage::TABLE_PAGE, 'props'=>['entity'=>'emp'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Сотрудники','link'=>'emp/']]),], ['path'=>'groups/*', 'element'=> eContentPage::TABLE_PAGE, 'props'=>$sortable_table+['entity'=>'group'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Группы','link'=>'groups/']]),], ['path'=>'disk/*', 'element'=> eContentPage::TABLE_PAGE, 'props'=>$sortable_table+['entity'=>'disk'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Облака','link'=>'disk/']]),], ['path'=>'cloud/groups/*', 'element'=> eContentPage::TABLE_PAGE, 'props'=>$sortable_table+['entity'=>'cloud.group'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Группы облачных файлов','link'=>'cloud/group/']]),], ['path'=>'settings/css/*', 'element'=> eContentPage::SETTINGS, 'props'=>['key'=>'0','title'=>'Настройки','url'=>'/getFormCSSSettings'],'crumbs'=>array_merge($main_crumbs, [['name'=>'Настройки','link'=>'settings/css/']]),], ['path'=>'settings/cloud/*', 'element'=> eContentPage::SETTINGS, 'props'=>['key'=>'1','title'=>'Настройки','url'=>'/getFormCloudSettings'],'crumbs'=>array_merge($main_crumbs, [['name'=>'Облачные документы','link'=>'settings/cloud/']]),], ['path'=>'settings/feedback/*', 'element'=> eContentPage::SETTINGS, 'props'=>['key'=>'2','title'=>'Настройки','url'=>'/getFormFeedbackSettings'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Обратная связь','link'=>'settings/feedback/']]),], ['path'=>'settings/search/*', 'element'=> eContentPage::SETTINGS, 'props'=>['key'=>'3','title'=>'Настройки','url'=>'/getFormSearchSettings'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Поиск','link'=>'settings/search/']]),], ['path'=>'settings/news/*', 'element'=> eContentPage::SETTINGS, 'props'=>['key'=>'4','title'=>'Настройки','url'=>'/getFormNewsSettings'],'crumbs'=>array_merge($main_crumbs,[['name'=>'Новости','link'=>'settings/news/']]),], ['path'=>'blocks/:id', 'element'=> eContentPage::TABLE_PAGE, 'props'=>$sortable_table+['entity'=>'block','ajaxData'=>['main'=>1],'formData'=>['main'=>1]],'crumbs'=>array_merge($main_crumbs,[['name'=>'Группы','link'=>'groups/']]),], ['path'=>'articles/', 'element'=> eContentPage::TABLE_PAGE, 'props'=>['entity'=>'article',],'crumbs'=>array_merge($main_crumbs,[['name'=>'Статьи','link'=>'articles/']]),], ['path'=>'articles/:id', 'element'=> eContentPage::TABLE_PAGE, 'props'=>$sortable_table+['entity'=>'article',],'crumbs'=>array_merge($main_crumbs,[['name'=>'Статьи','link'=>'articles/']]),], */ ]; $isAdmin = Emp::isAdmin(); $isStaffing = Emp::isMeGroup(eEmpGroup::STAFF) || $isAdmin; $isMeAnyDirector = Emp::isMeAnyDirector(); $isGeneral = Emp::isMeGroup(eEmpGroup::GENERAL); $isAllProject = Emp::isMeGroup(eEmpGroup::ALL); $isMeAnyDepartmentDirector = Emp::isMeAnyDepartmentDirector(); $isMeTopManager = Emp::isMeTopManager(); $isArchiveEmp = $isAdmin || $isStaffing || $isGeneral; $isArchiveProject = $isMeAnyDirector || $isAdmin || $isGeneral || $isAllProject; $isMenuProject = $isMeAnyDirector || $isGeneral || $isAdmin || $isAllProject; $isStaffingMenu = $isStaffing || $isGeneral || $isAdmin; $menu_calendar = $isAdmin ? [ 'title' => "Календарь", 'toggle'=>true, 'opened'=>true, 'submenu'=>[ //['link'=>'calendar/event/', 'title'=>'События','icon'=>'icon-settings'], ] ] : null; ; $cabinet_submenu = []; if(Rules::isMyTable()) $cabinet_submenu[] = ['link'=>'my/time_tracker/', 'title'=>'Мой табель','icon'=>'icon-settings']; if(Rules::isMyProjects()) $cabinet_submenu[] = ['link'=>'my/projects/', 'title'=>'Мои проекты','icon'=>'icon-settings']; if(Rules::isMyCompany()) $cabinet_submenu[] = ['link'=>'my/company/', 'title'=>'Моя компания','icon'=>'icon-settings']; $menu_cabinet = $cabinet_submenu ? [ 'title' => "Личный кабинет", 'toggle'=>true, 'opened'=>true, 'submenu'=>$cabinet_submenu ] : null; $projects_submenu = []; if(Rules::isProjectsList()) $projects_submenu[] = ['link'=>'projects/', 'title'=>'Проекты','icon'=>'icon-settings']; if(Rules::isProjectsContractor()) $projects_submenu[] = ['link'=>'dictionary/contractor/', 'title'=>'Контрагенты','icon'=>'icon-settings']; $menu_projects = $projects_submenu ? [ 'title' => "Проекты", 'toggle'=>true, 'opened'=>true, 'submenu'=>$projects_submenu, ] : null; $staff_submenu = []; if(Rules::isStaffEmployee()) $staff_submenu[] = ['link'=>'emp/', 'title'=>'Сотрудники','icon'=>'icon-settings']; if(Rules::isStaffAbsence()) $staff_submenu[] = ['link'=>'dictionary/absence/', 'title'=>'Причины отсутствия','icon'=>'icon-settings']; if(Rules::isStaffStatus()) $staff_submenu[] = ['link'=>'dictionary/empstatus/', 'title'=>'Статусы сотрудников','icon'=>'icon-settings']; if(Rules::isStaffOrgtype()) $staff_submenu[] = ['link'=>'dictionary/orgtype/', 'title'=>'Виды сотрудничества','icon'=>'icon-settings']; $menu_staff = $staff_submenu ? [ 'title' => "Кадры", 'toggle'=>true, 'opened'=>true, 'submenu'=>$staff_submenu, ] : null; $archive_submenu = []; if(Rules::isArchiveProjects())$archive_submenu[] = ['link'=>'archive/projects/', 'title'=>'Проекты','icon'=>'icon-settings']; if(Rules::isArchiveEmployee())$archive_submenu[] = ['link'=>'archive/emp/', 'title'=>'Сотрудники','icon'=>'icon-settings']; $menu_archive = ($archive_submenu) ? [ 'title' => "Архив", 'toggle'=>true, 'opened'=>true, 'submenu'=>$archive_submenu ] : null; $money_submenu = []; if(Rules::isMoneyFot()) $money_submenu[] = ['link'=>'money/fot/', 'title'=>'ФОТ','icon'=>'icon-settings']; $menu_money = $money_submenu ? [ 'title' => "Бюджет", 'toggle'=>true, 'opened'=>true, 'submenu'=>$money_submenu ] : null; $analysis_submenu = []; if(Rules::isAnalysisMy()) $analysis_submenu[] = ['link'=>'analysis/my', 'title'=>Emp::SurnameIO(Emp::$data),'icon'=>'icon-settings']; if(Rules::isAnalysisProjects()) $analysis_submenu[] = ['link'=>'analysis/team', 'title'=>'Мои проекты','icon'=>'icon-settings'] ; if(Rules::isAnalysisYear()) $analysis_submenu[] = ['link'=>'analysis/year', 'title'=>'Мои проекты: годовой отчёт','icon'=>'icon-settings'] ; if(Rules::isAnalysisFot()) $analysis_submenu[] = ['link'=>'analysis/fot', 'title'=>'Бюджет','icon'=>'icon-settings'] ; if(Rules::isAnalysisAllProjects()) $analysis_submenu[] = ['link'=>'analysis/all_projects', 'title'=>'Все проекты','icon'=>'icon-settings'] ; // if(Rules::isAnalysisMoscow()) $analysis_submenu[] = ['link'=>'analysis/moscow', 'title'=>'Офис Москва','icon'=>'icon-settings'] ; // if(Rules::isAnalysisIvanovo()) $analysis_submenu[] = ['link'=>'analysis/ivanovo', 'title'=>'Офис Иваново','icon'=>'icon-settings'] ; // if(Rules::isAnalysisNovosibirsk()) $analysis_submenu[] = ['link'=>'analysis/novosiborsk', 'title'=>'Офис Новосибирск','icon'=>'icon-settings'] ; // if(Rules::isAnalysisKrasnodar()) $analysis_submenu[] = ['link'=>'analysis/krasnodar', 'title'=>'Офис Краснодар','icon'=>'icon-settings'] ; // if(Rules::isAnalysisSemei()) $analysis_submenu[] = ['link'=>'analysis/semei', 'title'=>'Офис Семей','icon'=>'icon-settings'] ; // if(Rules::isAnalysisCompany()) $analysis_submenu[] = ['link'=>'analysis/department', 'title'=>'Моё подразделение','icon'=>'icon-settings'] ; if(Rules::isAnalysisCompany()) $analysis_submenu[] = ['link'=>'analysis/company', 'title'=>'Моя компания','icon'=>'icon-settings'] ; if(Rules::isAnalysisStaff()) $analysis_submenu[] = ['link'=>'analysis/staff', 'title'=>'Мои кадры','icon'=>'icon-settings'] ; $menu_analysis = $analysis_submenu ? [ 'title' => "Аналитика", 'toggle'=>true, 'opened'=>true, 'submenu'=> $analysis_submenu /* [ ['link'=>'analysis/my', 'title'=>Emp::SurnameIO(Emp::$data),'icon'=>'icon-settings'], $isProjects ? ['link'=>'analysis/team', 'title'=>'Мои проекты','icon'=>'icon-settings'] : null, ($isGeneral || $isAdmin || $isTop) ? ['link'=>'analysis/year', 'title'=>'Мои проекты: годовой отчёт','icon'=>'icon-settings'] : null, $isFot ? ['link'=>'analysis/fot', 'title'=>'Бюджет','icon'=>'icon-settings'] : null, $isMoscow ? ['link'=>'analysis/moscow', 'title'=>'Офис Москва','icon'=>'icon-settings'] : null, $isIvanovo ? ['link'=>'analysis/ivanovo', 'title'=>'Офис Иваново','icon'=>'icon-settings'] : null, $isNovosiborsk ? ['link'=>'analysis/novosiborsk', 'title'=>'Офис Новосибирск','icon'=>'icon-settings'] : null, $isKrasnodar ? ['link'=>'analysis/krasnodar', 'title'=>'Офис Краснодар','icon'=>'icon-settings'] : null, $isSemei ? ['link'=>'analysis/semei', 'title'=>'Офис Семей','icon'=>'icon-settings'] : null, $isDepartment ? ['link'=>'analysis/department', 'title'=>'Моё подразделение','icon'=>'icon-settings'] : null, $isCompany ? ['link'=>'analysis/company', 'title'=>'Моя компания','icon'=>'icon-settings'] : null, $isStaff ? ['link'=>'analysis/staff', 'title'=>'Мои кадры','icon'=>'icon-settings'] : null, ], */ ] : null; $menu_admin = Rules::isAdmin() ? [ 'title' => "Администрирование", 'toggle'=>true, 'opened'=>true, 'submenu'=>[ //['link'=>'calendar/', 'title'=>'Календарь','icon'=>'icon-settings'], ['link'=>'departments/', 'title'=>'Структура компании','icon'=>'icon-settings'], ['link'=>'dictionary/step/', 'title'=>'Структура проекта','icon'=>'icon-settings'], ['link'=>'calendar/day/', 'title'=>'Календарь','icon'=>'icon-settings'], ['link'=>'pages/', 'title'=>'Главная страница','icon'=>'icon-settings'], ['link'=>'variable/', 'title'=>'Переменные','icon'=>'icon-settings'], ['link'=>'dictionary/city/', 'title'=>'Локации','icon'=>'icon-settings'], ['link'=>'dictionary/staffing/', 'title'=>'Штатное расписание','icon'=>'icon-settings'], ['link'=>'dictionary/org/', 'title'=>'Юридические лица','icon'=>'icon-settings'], ['link'=>'dictionary/contractor/status/', 'title'=>'Статусы контрагентов','icon'=>'icon-settings'], ['link'=>'dictionary/objtype/', 'title'=>'Типология объектов','icon'=>'icon-settings'], //['link'=>'history/', 'title'=>'Логи','icon'=>'icon-settings'], //['link'=>'settings/', 'title'=>'Переменные','icon'=>'icon-settings'], //['link'=>'post/', 'title'=>'Должность ?','icon'=>'icon-settings'], ], ] : null; $allMenu = [ $menu_cabinet, $menu_analysis, $menu_projects, $menu_staff, $menu_archive, $menu_money, $menu_admin, // $menu_calendar ]; $myRoutes = [ 'public_profile/:id', 'team/member/:id', //'time_tracker/:emp', ]; // my/time_tracker/50 + // my/projects/49 + // analysis/team/79 + // 'team/member/:id', // 'time_tracker/:emp',+ foreach ($allMenu as $menu) { foreach ($menu['submenu'] as $item) { $myRoutes[] = $item['link']; } } $res = [ 'options'=>[ 'is_local'=>$isLocal, 'server' => $_SERVER, 'is_admin'=>Emp::isAdmin(), 'is_telegram'=>Emp::isTelegram(), 'is_telegram_id'=>boolval(Emp::$data[Emp::$TG_ACC]), 'myRoutes'=>$myRoutes, 'company'=>[ 'emp'=>[ 'init_filter_values'=>[Emp::$ARCHIVE=>0], ] ] ], 'routes' => $routes, //app_background => 'https=>//picsum.photos/1920/1080', //'default_app_background' => '', //'app_class' => 'papaya', //'default_app_class' => 'papaya', 'menu_hide'=>false, 'api_url_theme'=>\Site::$domen.'/api/themes.merakomis', 'domain_url' =>\Site::$domen.'', 'auth' => true, //'token'=>$token_hash, 'account' => [ //'avatar' => \Site::sectionUrl(substr(Image::imageResize($avatar[Image::$URL],100,100,100,['crop'=>'center']),1),true), //'id' => Emp::$AUTH_ID, 'token' => $token_hash, 'data'=>Emp::formatMyTopData(), 'rules'=>Rules::$rules, 'readOtherTableRead'=>Rules::readOtherTableRead(), 'writeOtherTableWrite'=>Rules::writeOtherTableWrite(), 'readAnalysisTableEmp'=>Rules::readOtherTableRead(), ], 'fullscreen' => true, 'url_path' => $panel_path, /* 'header' => [ 'logotype' => 'pics/logo/logo.jpg' ], /**/ 'menu' => [ 'logotype' => $logotype, 'avatar' => 'pics/ava.jpg', 'avatar_link' => 'profile/1', 'menu' => [ $menu_cabinet, $menu_analysis, $menu_projects, $menu_staff, $menu_archive, $menu_money, $menu_admin, // $menu_calendar ] ] ]; echo je($res); } }