= 5.1.0 required by date functions if (file_exists(".config.php")) include(".config.php"); SEF('DEBUG_S'); SEF('ZAP_SQL'); SEF('ZAP_SQL_UPDATE'); SEF('USERS_COLUMN_INIT'); SEF('GETFORMITEM'); SEF('T_WORKPOINTS_USER_SELECT'); require_once dirname(__FILE__) . '/' . 'se-lib' . '/' . 'Lib.php'; Lib::loadClass('V'); Lib::loadClass('User'); Lib::loadClass('Config'); Lib::loadClass('App'); Lib::loadClass('DB'); Lib::loadClass('S'); Lib::loadClass('ProcesHelper'); Lib::loadClass('Tree'); Lib::loadClass('TreeHelper'); Lib::loadClass('DB_Image'); Lib::loadClass('TreeSortChildren'); // ========== Task functions ============== require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'legacy.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'proces.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'zasob.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'testy.php';// CRM_TESTY_WYNIKI require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'proces_log.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'user.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'ext_ids.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'search.php';// CRM_SEARCH // TODO: if (App::is_ajax_request()) require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'ajax.php'; require_once APP_PATH_ROOT . DS . 'se-lib' . DS . 'SE_Layout.php';// CRM_SEARCH // ========== SESSION set default session values ============== S::init(); if (!isset($_SESSION['HIDE_ZASOBY'])) $_SESSION['HIDE_ZASOBY'] = true; if (!isset($_SESSION['HIDE_PROCESY'])) $_SESSION['HIDE_PROCESY'] = true; if (!isset($_SESSION['ZWIN_DRZEWO'])) $_SESSION['ZWIN_DRZEWO'] = false; if (!isset($_SESSION['TREE_OPEN_ARRAY'])) $_SESSION['TREE_OPEN_ARRAY'] = array(); if (!isset($_SESSION['TREE_SHOW_P_ID2'])) $_SESSION['TREE_SHOW_P_ID2'] = false; if (!isset($_SESSION['TREE_SHOW_P_ID3'])) $_SESSION['TREE_SHOW_P_ID3'] = false; if (!isset($_SESSION['ROZWIN'])) $_SESSION['ROZWIN'] = false; if (!isset($_SESSION['ROZWIN_OPIS'])) $_SESSION['ROZWIN_OPIS'] = false; if (!isset($_SESSION['ROZWIN_ZASOBY'])) $_SESSION['ROZWIN_ZASOBY'] = false; if (!isset($_SESSION['TREE-ZASOBY'])) $_SESSION['TREE-ZASOBY'] = array(); if (!isset($_SESSION['TREE-PROCESY'])) $_SESSION['TREE-PROCESY'] = array(); if (!isset($_SESSION['USER_PARAMS'])) $_SESSION['USER_PARAMS'] = array(); // ========== SESSION set values from request ============== if(isset($_GET['HIDE_ZASOBY']) && $_GET['HIDE_ZASOBY']) $_SESSION['HIDE_ZASOBY'] = true; if(isset($_GET['UNHIDE_ZASOBY']) && $_GET['UNHIDE_ZASOBY']) $_SESSION['HIDE_ZASOBY'] = false; if(isset($_GET['HIDE_PROCESY']) && $_GET['HIDE_PROCESY']) $_SESSION['HIDE_PROCESY'] = true; if(isset($_GET['UNHIDE_PROCESY']) && $_GET['UNHIDE_PROCESY']) $_SESSION['HIDE_PROCESY'] = false; if(isset($_GET['ZWIN_DRZEWO']) && $_GET['ZWIN_DRZEWO']) $_SESSION['ZWIN_DRZEWO'] = true; if(isset($_GET['ROZWIN_DRZEWO']) && $_GET['ROZWIN_DRZEWO']) $_SESSION['ZWIN_DRZEWO'] = false; if(isset($_GET['TREE_OPEN']) && $_GET['TREE_OPEN']) $_SESSION['TREE_OPEN_ARRAY'][$_GET['TREE_OPEN']] = true; if(isset($_GET['TREE_CLOSE']) && $_GET['TREE_CLOSE']) $_SESSION['TREE_OPEN_ARRAY'][$_GET['TREE_CLOSE']] = false; if(isset($_GET['TREE_SHOW_P_ID2']) && $_GET['TREE_SHOW_P_ID2']) $_SESSION['TREE_SHOW_P_ID2'] = true; if(isset($_GET['TREE_HIDE_P_ID2']) && $_GET['TREE_HIDE_P_ID2']) $_SESSION['TREE_SHOW_P_ID2'] = false; if(isset($_GET['TREE_SHOW_P_ID3']) && $_GET['TREE_SHOW_P_ID3']) $_SESSION['TREE_SHOW_P_ID3'] = true; if(isset($_GET['TREE_HIDE_P_ID3']) && $_GET['TREE_HIDE_P_ID3']) $_SESSION['TREE_SHOW_P_ID3'] = false; if(isset($_GET['TREE_ROZWIN']) && $_GET['TREE_ROZWIN']) $_SESSION['ROZWIN'] = true; if(isset($_GET['TREE_ZWIN']) && $_GET['TREE_ZWIN']) $_SESSION['ROZWIN'] = false; if(isset($_GET['TREE_OPISY_ROZWIN']) && $_GET['TREE_OPISY_ROZWIN']) $_SESSION['ROZWIN_OPIS'] = true; if(isset($_GET['TREE_OPISY_ZWIN']) && $_GET['TREE_OPISY_ZWIN']) $_SESSION['ROZWIN_OPIS'] = false; if(isset($_GET['TREE_ZASOBY_ROZWIN']) && $_GET['TREE_ZASOBY_ROZWIN']) $_SESSION['ROZWIN_ZASOBY'] = true; if(isset($_GET['TREE_ZASOBY_ZWIN']) && $_GET['TREE_ZASOBY_ZWIN']) $_SESSION['ROZWIN_ZASOBY'] = false; // ========== SESSION timeout ============== S::timeout_update(); // ========== App state ============== App::set_default_task('CRM_PROCES'); // ========== DB connection ============== //$conn = DB::connect();// TODO: needed? // ========== App auth ============== User::auth();// die if not logged in // ========== FUNCTION_INIT ============== // ?_ajax_request=FUNCTION // TODO: if (App::is_ajax_request()) App::exec_ajax_request(); // ?function_init=FUNCTION //echo'
';var_dump( headers_sent() );echo''; App::exec_function_init(); // column init Lib::loadClass('Column'); Column::init('CRM_PROCES'); Column::init('CRM_LISTA_ZASOBOW'); //Column::init('CRM_TESTY'); /** * Perm/access function. * * admin - kierownik, $_SESSION['ADM_ADMIN_LEVEL'] in (0,1) */ function User_is_admin() { return User::hasAccess('procesy_admin'); } function User_procesy5_check_access() { if (!User::hasAccess('procesy')) { ?>
'."Dodano nowy rekord"; } else { echo '
'."Error przy dodawaniu rekordu";
}
echo'
'."Wroc do ".App::link("procesow", "?task=CRM_PROCES");
echo'
'."lub ".App::link("dodaj kolejny zasob do procesu ".$sql_obj->ID_PROCES, "?task=ADD_PROCES_ID&id=".$sql_obj->ID_PROCES);
echo'
'."Wrong id!".'
'; return; } if ($id_zasob <= 0) { echo''."Wrong zasob id!".'
'; return; } $proces = DB::get_by_id( 'CRM_PROCES', $id_proces ); if (!$proces) { echo''; echo ' '.$w->CW_ID.''; echo'['.$w->ID.']'; echo' '.$w->CP_FORM_TREAT.''; echo''; echo ' '.$w->TYPE.''; echo ' '.$w->DESC.' '; //if ($tree->get_param('rozwin_opis')) echo ' '.$w->OPIS.'';// opis zasobu //if ($tree->get_param('rozwin_opis')) echo ' '.$w->OPIS_ZASOB.'';// komentarz wskaznika echo'
'; echo''; echo' ['.$zasob->ID.']'; echo' '.$zasob->TYPE.' '.$zasob->DESC.' '.$zasob->OPIS.''; echo'
'; echo''."Wrong ID".'
'; return; } $R = null; $sql = "select * from `CRM_WSKAZNIK` where `ID`='".$id."' limit 1; ";// TODO: use DB::get_by_id $res = DB::query($sql); if (!$res) die("sql query error $sql"); $R = DB::fetch($res); if (!$R) { echo''."Wrong ID - not exists".'
'; return; } //echo'';print_r($R);echo''; // form submit if (V::get('EDIT_SUBMIT', '', $_POST)) { $sql_obj = new stdClass(); $sql_obj->ID = $R->ID; //$sql_obj->PARENT_ID = V::get('EDIT_PARENT_ID', '', $_POST); $sql_obj->TYP = V::get('EDIT_TYP', '', $_POST); $sql_obj->ID_PRZYPADEK = V::get('EDIT_ID_PRZYPADEK', '', $_POST); $sql_obj->OPIS_ZASOB = V::get('EDIT_OPIS_ZASOB', '', $_POST); $sql_obj->ID_PROCES = V::get('EDIT_ID_PROCES', '', $_POST, 'int'); $sql_obj->ID_ZASOB = V::get('EDIT_ID_ZASOB', '', $_POST, 'int'); $sql_obj->PARENT_ID = V::get('PARENT_ID', '', $_POST);//todo trzeba sprawdzic czy jest taki wskaznik uzyty w tym procesie $sql_obj->EXPORT_WSKAZNIK = V::get('EXPORT_WSKAZNIK', '', $_POST, 'int');//todo musi byc weryfikacja czy jest taki wskaznik w odwolujacej sie funkcji //TODO: POST_VERIFY $affected = DB::UPDATE_OBJ( 'CRM_WSKAZNIK', $sql_obj ); if (V::get('DEBUG', '', $_SESSION)) echo"PASSED($affected)
'."Zmienio rekord"; } else if ($affected == 1) { echo '
'."Zmieniono rekord (Error: nie zapisano hostorii)"; } else if ($affected < 0) { echo '
'."Blad podczas edytowania rekordu - nic nie zmieniono";
}
echo'
'."Wroc do ".App::link("procesow", "?task=CRM_PROCES");
echo'
'."Wrong ID".'
'; return; } $affected = DB::UPDATE_OBJ( 'CRM_WSKAZNIK', $sql_obj ); if (V::get('DEBUG', '', $_SESSION)) echo"PASSED($affected)'."Usunieto wskaznik"; } else if ($affected == 1) { echo '
'."Usunieto wskaznik (Error: nie zapisano hostorii)"; } else if ($affected < 0) { echo '
'."Blad podczas usuwaniu wskaznika - nic nie zmieniono";
}
echo'
'."Wroc do ".App::link("procesow", "?task=CRM_PROCES");
echo'
'."Task not allowed".'
'; return; } $ses_col_name = $allowed_task[$task]; $tbl_conf = Column::getInstance($allowed_task[$task]); $user_tbl_profile = User::getProfile($allowed_task[$task]); if (!$user_tbl_profile) $user_tbl_profile = array(); if (empty($tbl_conf)) { echo''."Error: brak configu".'
'; return; } $field_list = $tbl_conf->getFieldList(); // router - $arg: hide, unhide $break = false; switch ($arg) { case 'hide': if (!empty($col_id) && array_key_exists($col_id, $field_list)) { User::setProfileColumn($ses_col_name, $col_id, 'HIDE'); $break = true; } break; case 'unhide': if (!empty($col_id) && array_key_exists($col_id, $field_list)) { User::removeProfileColumn($ses_col_name, $col_id); $break = true; } break; default: ; } if ($break) { if ($ret == __FUNCTION__) { } else { return; } } $out_tbl = array(); foreach ($field_list as $field_id => $field_name) { $out_tr = array(); $out_tr['hide'] = false; $out_tr['col_id'] = $field_id; //if(strstr($_SESSION[$thiss->DETECT_TABLE_COLUMN]['PERMEDIT'][ $_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC'][$field_id] ], 'R')) { // $_SESSION[$thiss->DETECT_TABLE_COLUMN]['HIDE'][$field_id] - HIDE in config (user profile at exec USERS_COLUMN_INIT2) //if (V::get($field_id, '', $tbl_conf['HIDE']) == 'HIDE') { if (User::getProfileColumn($ses_col_name, $field_id) == 'HIDE') { $out_tr['hide'] = true; } $out_tr['field_name'] = $field_name; $out_tr['field_desc'] = $tbl_conf->desc($field_name); //if($_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC_TO_LANG'][$_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC']["$value"]]) { // echo $_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC_TO_LANG'][$_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC']["$value"]] . "| '; if ($out_tr['hide'] == true) { echo App::link("Pokaz", array('function_init'=>"fun_USERS_COLUMN", 'arg'=>"unhide", 'col_id'=>$out_tr['col_id'], 'ret'=>"fun_USERS_COLUMN"), array('title'=>"Pokaz kolumne")); } else { echo App::link("X", array('function_init'=>"fun_USERS_COLUMN", 'arg'=>"hide", 'col_id'=>$out_tr['col_id'], 'ret'=>"fun_USERS_COLUMN"), array('title'=>"Ukryj kolumne", 'ico'=>'shutdown.gif', 'ico_height'=>11)); } echo' | '; echo'';
if (!empty($out_tr['field_desc'])) echo $out_tr['field_desc'].' ';
echo''.$out_tr['field_name'].'';
echo' | ';
echo'
procesMap (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($procesMap);echo'';}
$loopLimit = 50;// max ilość zagłębień w procesie
for ($i = 0; $i < $loopLimit; $i++) {
$breakLoop = true;
foreach ($procesMap->procesInitAll as $kId => $vProces) {
if (!empty($vProces->sub)) {
$breakLoop = false;
$childrens = array_keys($vProces->sub);
$vProces->sub = array();
foreach ($childrens as $childId) {
if (array_key_exists($childId, $procesMap->treeFlat)) {
foreach ($procesMap->treeFlat[$childId] as $vId) {
$vProces->sub[$vId] = true;
}
}
if (array_key_exists($childId, $procesMap->gotoAll)) {
$gotoId = $procesMap->gotoAll[$childId]->IF_TRUE_GOTO;
$vProces->gotoLinks[$gotoId] = $procesMap->procesInitAll[$gotoId];
$procesMap->gotoFrom[$gotoId][$vProces->ID] = $vProces->ID;
}
}
}
}
if ($breakLoop) {
if(V::get('DBG', '', $_GET)){echo'breakLoop (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r("end by {$i} loops");echo'';}
break;
}
}
// fetch DESC i OPIS laters
$sqlIds = array_keys($procesMap->procesInitAll);
if (!empty($sqlIds)) {
$sqlIds = implode(",", $sqlIds);
$sql = "select p.`ID`, p.`DESC`, p.`OPIS`
from `CRM_PROCES` as p
where
p.`A_STATUS` in('WAITING', 'NORMAL')
and p.`ID` in({$sqlIds})
";
$res = $db->query($sql);
while ($r = $db->fetch($res)) {
$procesMap->procesInitAll[$r->ID]->DESC = $r->DESC;
$procesMap->procesInitAll[$r->ID]->OPIS = $r->OPIS;
}
}
if(V::get('DBG', '', $_GET)){echo'procesMap (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($procesMap);echo'';}
?>
OPIS); ?>
gotoLinks) : ?>$wskazniki (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($wskazniki);echo'';}
$gotoLinks = array();
$gotoIds = array();
foreach ($listFlat as $vItem) {
$item = $treeList->getData($vItem->ID);
if ($item->IF_TRUE_GOTO > 0) {
$gotoIds[] = $item->IF_TRUE_GOTO;
}
}
if (!empty($gotoIds)) {
$db = DB::getDB();
$sqlIds = implode(",", $gotoIds);
$sql = "select p.`ID`, p.`DESC`, p.`OPIS`
from `CRM_PROCES` as p
where
p.`A_STATUS` in('WAITING', 'NORMAL')
and p.`ID` in({$sqlIds})
";
$res = $db->query($sql);
while ($r = $db->fetch($res)) {
$gotoLinks[$r->ID] = $r->DESC;
}
}
foreach ($listFlat as $vItem) {
$item = $treeList->getData($vItem->ID);
if(V::get('DBG_TF', '', $_GET) > 0){echo'wskazniki['.$item->ID.'] (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($wskazniki[$item->ID]);echo'';}
$vItem->gotoOut = '';
if ($item->IF_TRUE_GOTO > 0) {
$gotoLink = "{{$item->IF_TRUE_GOTO}}";
if (!V::get('HIDE_PANEL', 0, $_GET, 'int')) {
$gotoLink = App::link($gotoLink, array('task'=>'PROCES_VIEW_LIST', 'id_proces'=>$item->IF_TRUE_GOTO));
}
if ($item->IF_TRUE_GOTO_FLAG == 'GOTO') {
$vItem->gotoOut .= " {$gotoLink}"; //usunąłem Przejdz do Procesu, bo w instrukcji/umowie nie jest to potrzebne
} else if ($item->IF_TRUE_GOTO_FLAG == 'GOTO_AND_RETURN') {
$vItem->gotoOut .= "Przejdź do procesu {$gotoLink} i wróć po jego zakończeniu";
} else if ($item->IF_TRUE_GOTO_FLAG == 'FORK') {
$vItem->gotoOut .= "Uruchom propces {$gotoLink}";
}
if (!empty($vItem->gotoOut) && !empty($gotoLinks[$item->IF_TRUE_GOTO])) {
$vItem->gotoOut .= ": {$gotoLinks[$item->IF_TRUE_GOTO]}";
}
$vItem->gotoOut .= ".";
}
}
$imgSize = (V::get('show_big_img', '', $_GET))? '600x600' : '200x200';
?>
A_HAS_IMAGE > 0) : ?>
A_HAS_IMAGE; $i++) : ?>
OPIS; ?>
gotoOut; ?>
'."Wrong ID".'
'; return; } if (1 != V::get('HIDE_PANEL', 0, $_GET, 'int')) { // pathway echo''."Process ".$id_proces." not exists".'
'; return; } $tbl = 'CRM_PROCES'; $clbk = 'tree_callback__show_item_from_'.$tbl; $tree_params = array(); $tree_params['rozwin'] = true; $tree_params['editable'] = false; $tree_params['rozwin_proces'] = true; $tree_params['filtr_img'] = true; $tree_params['rozwin_zasoby'] = true; $tree_params['rozwin_opis'] = true; $tree_params['style'] = 'NOWY'; action_VIEW_SUBTREE($tbl, $p->ID, $clbk, $tree_params); } function task_CRM_WYSWIETL_OBOWIAZKI() { User_procesy5_check_access(); $_GET['TYPE'] = V::get('TYPE', "%", $_REQUEST); $_GET['DESC'] = V::get('DESC', "%", $_REQUEST); $_GET['OPIS'] = V::get('OPIS', "%", $_REQUEST); $_GET['ADM_AREA'] = V::get('ADM_AREA', "BN%", $_REQUEST); $_GET['CLZ_ID'] = V::get('CLZ_ID', '', $_REQUEST); if (!$_GET['CLZ_ID']) { //echo''."Brak ID".'
'; task_CRM_MENU(); //TEST:// echo App::link_ajax_load_on_ready('user menu', 'task_CRM_MENU'); return; } $zasob = DB::get_by_id('CRM_LISTA_ZASOBOW', $_GET['CLZ_ID']); if (!$zasob) { echo''."Brak danych - zasob ".$_GET['CLZ_ID']." nie istnieje.".'
'; return; } echo'';
echo "Procesy powiazane z zasobem: ";
echo'['.$zasob->ID.']';
echo'
';
echo ' '.$zasob->TYPE.'';
echo ' '.$zasob->DESC.'';
echo '
'.$zasob->OPIS.'';
echo '
ID.'&RESOURCES=1>Wyświetl mapę ';
echo'
| '."PROCES ID".' | '; echo''."NAZWA / OPIS".' | '; echo'
|---|---|
| '; echo App::link($k_id, array('task'=>"CRM_PROCES", 'filtr_id'=>$k_id)); echo' | '; echo'';
foreach ($v_arr as $r) {
echo' ';
echo' '.$r->p__DESC.'';
echo' | ';
echo'
'."Wrong id!".'
'; return; } $proces = DB::get_by_id( 'CRM_PROCES', $id_proces ); if (!$proces) { echo''; echo ' '.$w->CW_ID.''; echo'['.$w->ID.']'; echo' '.$w->CP_FORM_TREAT.''; echo''; echo ' '.$w->TYPE.''; echo ' '.$w->DESC.' '; //if ($tree->get_param('rozwin_opis')) echo ' '.$w->OPIS.'';// opis zasobu //if ($tree->get_param('rozwin_opis')) echo ' '.$w->OPIS_ZASOB.'';// komentarz wskaznika echo'
'; echo'';
echo "DRZEWO ";
if ($_SESSION['ZWIN_DRZEWO']) {
echo App::link("ROZWIN", "?ROZWIN_DRZEWO=1&id={$id_proces}#tree");
} else {
echo App::link("ZWIN", "?ZWIN_DRZEWO=1&id={$id_proces}#tree");
}
echo " / ";
$js = "window.location.href='#TREE'+this.form.id.value;return false;";
echo ''."\n";
tree_listuj_zasoby(0,0,0);
echo'';
}
function fun_SHOW_EXTERNAL_IMAGE() {
$remote_table = V::get('tbl', '', $_REQUEST);
$remote_id = V::get('id', '', $_REQUEST, 'int');
$number = V::get('number', '', $_REQUEST, 'int');
$imageResize = V::get('resize', '', $_REQUEST);
$DBG = (V::get('DBG', 0, $_REQUEST, 'int') > 0);
if ($remote_id <= 0) {
header('HTTP/1.1 400: Bad Request');
header('Warning: wrong ID L.' . __LINE__);
exit;
}
if (!DB_Image::tableIsAllowed($remote_table)) {
header('HTTP/1.1 400: Bad Request');
header('Warning: table not allowed L.' . __LINE__);
exit;
}
$image_row = DB_Image::getImage($remote_table, $remote_id, $number);
if (!$image_row) {
header('HTTP/1.1 400: Bad Request');
header('Warning: image not found in db L.' . __LINE__);
exit;
}
$etag = md5($image_row->ID . $image_row->A_CREATE_DATE_TS);
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $image_row->A_CREATE_DATE_TS
|| trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
//header("HTTP/1.1 304 Not Modified");
//exit;
}
$expire_date = mktime(0, 0, 0, date('m') + 3, date('d'), date('Y'));
$maxWidth = 0;
$maxHeight = 0;
if ($imageResize) {
list($maxWidth, $maxHeight) = explode('x', $imageResize, 2);
$maxWidth = intval($maxWidth);
$maxHeight = intval($maxHeight);
if ($maxWidth <= 0 || $maxHeight <= 0) {
header('HTTP/1.1 400: Bad Request');
echo'ERROR wrong param resize (WxH)';
exit;
}
}
if (!$DBG) {
header("Content-type: {$image_row->TYPE}");
header("Cache-control: public");
header("Pragma: public");// default 'no-cache'
header("Etag: {$etag}");
if (!$imageResize) {
header("Content-length: {$image_row->SIZE}");
}
header("Expires: " . gmdate("D, d M Y H:i:s", $expire_date) . " GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s", $image_row->A_CREATE_DATE_TS) . " GMT");
}
if ($imageResize) {
print DB_Image::resizeImageFromBlob($image_row->IMAGE, $image_row->TYPE, $maxWidth, $maxHeight);
} else {
print $image_row->IMAGE;
}
exit;
}
function fun_SHOW_IMAGE() {
$image_id = V::get('image_id', 0, $_REQUEST, 'int');
if ($image_id <= 0) {
header('HTTP/1.1 400: Bad Request');
header('Warning: wrong id ' . __LINE__);
exit;
}
$image_row = DB_Image::getImageById($image_id);
if (!$image_row) {
header('HTTP/1.1 400: Bad Request');
header('Warning: image not found in db L.' . __LINE__);
exit;
}
header("Content-type: ".$image_row->TYPE);
header("Content-length: ".$image_row->SIZE);
print $image_row->IMAGE;
exit;
}
function fun_IMAGE_ADD() {
$remote_table = V::get('tbl', '', $_REQUEST);
$remote_id = V::get('id', 0, $_REQUEST, 'int');
$task = V::get('task', '', $_REQUEST);
$thiss = new stdClass();
$thiss->DETECT_TABLE_NAME = $remote_table;
$errors = array();
$msgs = array();
// check remote id
if ($remote_id <= 0) {
echo'';
echo "Error wrong ID";
echo'
';
//echo App::link();// TODO: link do ???
echo'
'."Usunieto zdjecie ID=".$req['ID'].'
'; } else { $erros[] = ''."Wystapil blad podczas usuwania zdjecia ID=".$req['ID'].'
'; } } } // check if a file was submitted if (!isset($_FILES['userfile'])) { //echo 'Please select a file
'; } else { $errors = DB_Image::uploadImage($remote_table, $remote_id, $_FILES['userfile']); // give praise and thanks to the php gods if (empty($errors)) { $msgs[] = 'Thank you for submitting
'; } else { $msgs[] = '' . "Sorry, could not upload file:" . '
' . implode('
', $errors) .'
'."[".$zasob->ID."] ".''.$zasob->TYPE.' '.$zasob->DESC.'
'; echo''."[".$zasob_parent->ID."] ".''.$zasob_parent->TYPE.' '.$zasob_parent->DESC.'
'; echo''."[".$zasob_parent2->ID."] ".''.$zasob_parent2->TYPE.' '.$zasob_parent2->DESC.'
'; exit; } // ======== TREE ========= DEBUG_S(5,'SES.USER_PARAMS', $_SESSION['USER_PARAMS'], __FILE__, __FUNCTION__, __LINE__); DEBUG_S(6,'SES', $_SESSION, __FILE__, __FUNCTION__, __LINE__); DEBUG_S(6,'SRV', $_SERVER, __FILE__, __FUNCTION__, __LINE__); echo'| '; echo 'SE'; echo ' / '; //echo App::link("PROCESY", $_SERVER['PHP_SELF'], array('class'=>'logo', 'title'=>"PROCESY")); echo App::link("ODSWIEZ", ''); echo' | '; echo'';// center $menu = array(); /* * ADM_ADMIN_LEVEL = 6; * A_STATUS = 'WAITING'; * ADM_ACCOUNT = 'Kandydat'; * ADM_AREA = 'KANDYDAT'; * ADM_ADMIN_DESC = 'Kandydat'; */ if (User::get('ADM_ADMIN_LEVEL') == 6) { $menu ['CRM_TESTY'] = array("TESTY", "?task=CRM_TESTY", array('title'=>'Wyswietlenie testów')); } else { $menu ['CRM_PROCES'] = array("PROCESY", array('task'=>'CRM_PROCES'), array('title'=>'Wyswietlenie procesow')); $menu ['CRM_LISTA_ZASOBOW'] = array("ZASOBY", "?task=CRM_LISTA_ZASOBOW", array('title'=>'Wyswietlenie zasobow')); $menu ['CRM_WYSWIETL_OBOWIAZKI'] = array("OBOWIAZKI", "?task=CRM_WYSWIETL_OBOWIAZKI", array('title'=>'Wyswietlenie OBOWIAZKOW')); $menu ['CRM_TESTY'] = array("TESTY", "?task=CRM_TESTY", array('title'=>'Wyswietlenie testów')); if (User::hasAccess('testy_wyniki_read')) { $menu ['CRM_TESTY_WYNIKI'] = array("WYNIKI", "?task=CRM_TESTY_WYNIKI", array('title'=>'Wyswietlenie wyników testów')); } $menu ['USERS'] = array("KONTAKTY", "?task=USERS", array('title'=>'Kontakty')); } foreach ($menu as $k_task => $v_menu) { if ($k_task == App::get_task()) $v_menu[2] ['class'] = 'current'; echo App::link($v_menu[0], $v_menu[1], $v_menu[2]); } echo' | '."\n"; echo''."\n"; { $q = V::get('q', '', $_REQUEST); echo ''; echo' | '; } S::show_session_timer(); //echo'Ekran | '; if (V::get('DEBUG', '', $_SESSION)) { echo'DBG('.$_SESSION['DEBUG'].')'; $js = "if(jQuery(document.body).hasClass('show-DEBUG_S')){jQuery(document.body).removeClass('show-DEBUG_S');this.innerHTML='+';}else{jQuery(document.body).addClass('show-DEBUG_S');this.innerHTML='-'};return false;"; echo ' ' . "+" . ''; echo' | '; } echo App::link($_SESSION['AUTHORIZE_USER'], array('task'=>"USER"), array('title'=>$_SESSION['ADM_ACCOUNT'])); echo' | '.User::get('ADM_ADMIN_LEVEL').''; echo' | '; echo App::link("Wyloguj", "?LOGIN=LOGOUT"); echo' | '; echo'
|---|
'; echo ' '."STANOWISKA:".''; echo ' ' . implode(', ', $stanowiska) . ' '; echo '
'; echo ''; echo ' '.$w->CW_ID.''; if ($tree->get_param('editable')) { echo App::link("^", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=>$w->CW_ID, 'arg1_val'=>'upup','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w gore o 5 pol")); echo App::link("^", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=>$w->CW_ID, 'arg1_val'=>'up','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w gore")); echo App::link("v", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=> $w->CW_ID, 'arg1_val'=>'dw','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w dol")); echo App::link("V", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=> $w->CW_ID, 'arg1_val'=>'downdown','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w dol o 5 pol")); echo' '; if ($tree->get_param('WskaznikTblId')) { echo App::link("E", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('WskaznikTblId')."#EDIT/".$w->CW_ID, array('title'=>'Edytuj', 'class'=>'btn-p5')); } else { echo App::link("E", "?task=CRM_EDIT_CRM_WSKAZNIK&EDIT=".$w->CW_ID."&ID=".$w->CW_ID, array('title'=>'Edytuj', 'class'=>'btn-p5')); } if ($tree->get_param('ZasobTblId') > 0) { echo App::link("F", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('ZasobTblId')."#FILES/".$w->ID, array('title'=>'Pliki', 'class'=>'btn-p5')); } } if (!empty($pytania)) { foreach ($pytania as $pytanie) { if ($pytanie->ID_WSKAZNIK != $w->CW_ID) { continue; } $odpowiedzi = array(); for ($i = 0; $i < 5; $i++) { $fldTxt = "ODP_{$i}"; $fldOdp = "ODP_{$i}_ODP"; if (!empty($pytanie->{$fldTxt})) { if ($pytanie->{$fldOdp} == 'TAK') { $odpowiedzi[] = '' . htmlspecialchars($pytanie->{$fldTxt}) . ''; } else { $odpowiedzi[] = '' . htmlspecialchars($pytanie->{$fldTxt}) . ''; } } } $popupIcon = ($pytanie->TEST_TYPE=='TEORETYCZNY')? 'glyphicon glyphicon-question-sign' : 'glyphicon glyphicon-exclamation-sign'; $popupLink = "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID={$tblPytaniaId}&task=CRM_PROCES#EDIT/{$pytanie->ID}";// TODO: add rand _hash? $popupTitle = "#{$pytanie->ID} " . htmlspecialchars($pytanie->PYTANIE); $popupContent = implode('
wsk = ';print_r($wsk);echo''; // TEST parents $wsk_parents = array(); $max_deep = 0;// max parents deep foreach ($wsk as $k_wsk_id => $w) { $wsk_parents_cur = array_reverse(array_keys($w->_parents)); $wsk_parents_cur[] = $w->ID; if (count($wsk_parents_cur) > $max_deep) $max_deep = count($wsk_parents_cur); $wsk_parents_cur ['wsk_id'] = $k_wsk_id; $wsk_parents[] = $wsk_parents_cur; echo'parents ['.implode(',', $wsk_parents_cur).']
parents('.$wsk_parents_cnt.'); max_deep('.$max_deep.'); wsk_parents = ';print_r($wsk_parents);echo'';
$zasoby_id = array();
foreach ($wsk as $k_wsk_id => $w) {
$zasoby_id [$w->ID] =& $wsk[$k_wsk_id];
foreach ($w->_parents as $k_z_id => $z) {
$zasoby_id [$k_z_id] =& $wsk[$k_wsk_id]->_parents[$k_z_id];
}
}
$wsk_parents_map = array();// table td: rowspan, colspan, wsk_id
/*
for ($x = 0, $last_x = 0, $last_y = 0; $x < $max_deep; $x++, $last_x = $x) {
for ($y = 0; $y < $wsk_parents_cnt; $y++) {
$z_id = 'x';
if (isset($wsk_parents[$y][$x])) {
$z_id = $wsk_parents[$y][$x];
}
$wsk_parents_map[$y][$x] = array('rowspan'=>1, 'colspan'=>1, 'z_id'=>$z_id);// default content is 'x'
}
}
*/
for ($y = 0, $last_y = 0, $last_x = 0; $y < $wsk_parents_cnt; $y++, $last_y = $y) {
for ($x = 0; $x < $max_deep; $x++) {
$z_id = 'x';
$wsk_parents_map[$y][$x] = array('rowspan'=>1, 'colspan'=>1, 'z_id'=>$z_id);// default content is 'x'
if (isset($wsk_parents[$y][$x])) {
$wsk_parents_map[$y][$x]['z_id'] = $wsk_parents[$y][$x];
} else if ($x > 0 && $wsk_parents_map[$y][$x - 1]['z_id'] != 'x') {
//$wsk_parents_map[$y][$x - 1]['z_id'] = 'x';
$wsk_parents_map[$y][$x - 1]['wsk_id'] = $wsk_parents[$y]['wsk_id'];
}
}
// dodaj wsk_id do ostatniego elementu
$x = $max_deep - 1;
if ($wsk_parents_map[$y][$x]['z_id'] != 'x') {
$wsk_parents_map[$y][$x]['wsk_id'] = $wsk_parents[$y]['wsk_id'];
}
}
echo'1:wsk_parents_map = ';print_r($wsk_parents_map);echo''; // set rowspan for ($x = 0, $last_x = 0; $x < $max_deep; $x++, $last_x = $x) { for ($y = 1, $last_y = 0; $y < $wsk_parents_cnt; $y++) { $last_cell_map =& $wsk_parents_map[$last_y][$x]; $curr_cell_map =& $wsk_parents_map[$y][$x]; if ($last_cell_map['z_id'] != $curr_cell_map['z_id']) { $last_y = $y; } else if (isset($last_cell_map['wsk_id'])) { $last_y = $y; } else { $curr_cell_map['z_id'] = 'x'; $last_cell_map['rowspan'] += 1; } } } echo'
2:wsk_parents_map = ';print_r($wsk_parents_map);echo''; // set colspan for ($y = 0, $last_y = 0; $y < $wsk_parents_cnt; $y++, $last_y = $y) { for ($x = 1, $last_x = 0; $x < $max_deep; $x++) { $last_cell_map =& $wsk_parents_map[$y][$last_x]; $curr_cell_map =& $wsk_parents_map[$y][$x]; if ($curr_cell_map['z_id'] == 'x') { $curr_cell_map['z_id'] = 'x'; $last_cell_map['colspan'] += 1; } else { $last_x = $x; } } } echo'
wsk_parents_map = ';print_r($wsk_parents_map);echo''; /* foreach ($wsk_parents as $k_i => $v_map) { $last_p_id = 0; $last_map_ind = -1; foreach ($v_map as $wsk_i => $parent_id) { if ($last_map_ind == -1) { $last_map_ind = 0; $wsk_parents_map[$k_i][$last_map_ind] = array('p_id'=>$parent_id, 'rowspan'=>1); } else if ($last_p_id != $parent_id) { $last_map_ind++; $wsk_parents_map[$k_i][$last_map_ind] = array('p_id'=>$parent_id, 'rowspan'=>1); } else { $wsk_parents_map[$k_i][$last_map_ind]['rowspan'] += 1; } $last_p_id = $parent_id; } } echo'
wsk_parents_map = ';print_r($wsk_parents_map);echo''; */ /* parents [27,35,57,79 ] parents [27,35,57,79 ] parents [27,14,31,355,1070,2365] parents [27,35,57,79 ] wsk_parents_map = Array( [0] => Array( [0] => Array( [p_id] => 27 [rowspan] => 3
| 27 | 35 | 57 | 79 |
| 14 | 31 | 355 | |
| 27 | 35 | 57 |
zasoby_id: ';print_r($zasoby_id);echo''; echo'
| '.$out_zasob.' | '; $cls = ' class="wsk-cell"'; } $out_row .= ''.$out_zasob.' | '; } if ($out_row) { echo'
zasoby_id = ';print_r($zasoby_id);echo''; if (!empty($zasoby_id['KOMORKA'])) { $komorki = array(); foreach ($zasoby_id['KOMORKA'] as $z_id => $w_id) { $komorki[] = $wsk[ $w_id ]; } DEBUG_S(4,'komorki',$komorki, __FILE__, __FUNCTION__, __LINE__); // zasoby pobierz info o komorkach: tabela, baza danych; host,login,passwd z configa // BAZA_DANYCH -> TABELA -> KOMORKA $zasoby_tabele = array(); $zasoby_db_conf = array(); $sql = "select z.ID as KOMORKA_ID , z.DESC as KOMORKA_DESC , z.OPIS as KOMORKA_OPIS , z2.ID as TABELA_ID , z2.DESC as TABELA_DESC , z2.OPIS as TABELA_OPIS , z3.ID as DB_ID , z3.DESC as DB_DESC , z3.OPIS as DB_OPIS from `CRM_LISTA_ZASOBOW` as z left join `CRM_LISTA_ZASOBOW` as z2 on(z2.`ID`=z.`PARENT_ID`) left join `CRM_LISTA_ZASOBOW` as z3 on(z3.`ID`=z2.`PARENT_ID`) where z.`ID` in (".implode(',', array_keys($zasoby_id['KOMORKA'])).") and z2.`TYPE`='TABELA' -- and z3.`TYPE`='BAZA_DANYCH' -- lub DATABASE_MYSQL, DATABASE_MSSQL "; DEBUG_S(5,'sql', $sql, __FILE__, __FUNCTION__, __LINE__); $res = DB::query( $sql ); while ($z = DB::fetch( $res )) { $zasoby_db_conf [$z->DB_ID][] = array($z->KOMORKA_ID, $z->DB_ID, $z->DB_DESC, $z->DB_OPIS); $zasoby_tabele [$z->TABELA_ID][] = array($z->KOMORKA_ID, $z->TABELA_ID, $z->TABELA_DESC, $z->TABELA_OPIS); } DEBUG_S(4,'zasoby_db_conf ['.implode(',',array_keys($zasoby_db_conf)).']', $zasoby_db_conf, __FILE__, __FUNCTION__, __LINE__); DEBUG_S(4,'zasoby_tabele ['.implode(',',array_keys($zasoby_tabele)).']', $zasoby_tabele, __FILE__, __FUNCTION__, __LINE__); // pogrupuj komorki wg tabel // permy z $zasob->CW_TYP } } echo'