UrlActions system

...
type = 'success'; $jsonData->msg = 'Gotowe'; try { $this->reinstall(); } catch (Exception $e) { $jsonData->type = 'danger'; $jsonData->msg = $e->getMessage(); } echo json_encode($jsonData); } public function reinstall() { $sqlList = array(); // alter table enum add URL_ACTION //$sqlList['RemoveTable'] = "DROP TABLE IF EXISTS `CRM_UI_MSGS`"; $pdo = DB::getPDO(); foreach ($sqlList as $sqlName => $sql) { $pdo->exec($sql); } } /* 636 TABELA IN7_MK_BAZA_DYSTRYBUCJI Projekty 763 KOMORKA ID Nr 22332 22317 URL_ACTION ProjektyKosztyWstepnychRobot 22335 763 PARAM_IN ID_PROJECT 25 TYPESPECIALS TYPESPECIALS PowiÄ…zania tabel 22317 URL_ACTION ProjektyKosztyWstepnychRobot 22324 PARAM_IN ID_PROJECT */ public static function fetchTableFunctions($idTbl, $idRecord) { $sth = DB::getPDO()->prepare(" select z.ID as ID , z.`DESC_PL` as fun_label , za.`DESC` as fun_name , zp.ALIAS_ID as param_in_to_cell_id , zp.DESC as param_in_name from CRM_LISTA_ZASOBOW z join CRM_LISTA_ZASOBOW za on(za.ID = z.ALIAS_ID) left join CRM_LISTA_ZASOBOW zp on(zp.PARENT_ID = z.ID and zp.`TYPE` = 'PARAM_IN') left join CRM_LISTA_ZASOBOW zpa on(zpa.ID = zp.ALIAS_ID and zpa.`TYPE` = 'PARAM_IN' and zpa.`DESC` = zp.`DESC`) where z.PARENT_ID = :id_zasob and z.`TYPE` = 'URL_ACTION' "); $sth->bindValue(':id_zasob', $idTbl, PDO::PARAM_STR); $sth->execute(); return $sth->fetchAll(); } public static function fetchTableFunctionsForUser($idTbl, $idRecord, $usrLogin) { $sth = DB::getPDO()->prepare(" select z.ID as ID , z.`DESC_PL` as fun_label , za.`DESC` as fun_name , zp.ALIAS_ID as param_in_to_cell_id , zp.DESC as param_in_name , param.`DESC` as link_param from CRM_LISTA_ZASOBOW z join CRM_LISTA_ZASOBOW za on(za.ID = z.ALIAS_ID) left join CRM_LISTA_ZASOBOW zp on(zp.PARENT_ID = z.ID and zp.`TYPE` = 'PARAM_IN') left join CRM_LISTA_ZASOBOW zpa on(zpa.ID = zp.ALIAS_ID and zpa.`TYPE` = 'PARAM_IN' and zpa.`DESC` = zp.`DESC`) join CRM_WSKAZNIK w on(w.ID_ZASOB = z.ID) -- join CRM_PROCES p on(p.ID = w.ID_PROCES) join CRM_PROCES_idx_USER_to_PROCES_VIEW upv on(upv.ID_PROCES = w.ID_PROCES) left join CRM_LISTA_ZASOBOW param on(param.PARENT_ID = z.ID and param.`TYPE` = 'DANE') where z.PARENT_ID = :id_zasob and z.`TYPE` = 'URL_ACTION' and upv.ADM_ACCOUNT = :usr_login group by z.ID "); $sth->bindValue(':id_zasob', $idTbl, PDO::PARAM_STR); $sth->bindValue(':usr_login', $usrLogin, PDO::PARAM_STR); $sth->execute(); return $sth->fetchAll(); } public static function getTableFunctions($idTbl, $idRecord, $tblName = '', $usrLogin = null) { $rows = array(); if (!empty($usrLogin)) { $rows = self::fetchTableFunctionsForUser($idTbl, $idRecord, $usrLogin); } else { $rows = self::fetchTableFunctions($idTbl, $idRecord); } DBG::_('DBG', '>1', 'rows', $rows, __CLASS__, __FUNCTION__, __LINE__); $functions = array(); foreach ($rows as $row) { // TODO: Router::getRoute("UrlAction_{$row['fun_name']}")->isRecordAllowed($idTbl, $idRecord, $tblName); if (!array_key_exists($row['ID'], $functions)) { $fun = array(); $fun['label'] = $row['fun_label']; $fun['name'] = $row['fun_name']; $fun['baseLink'] = "index.php?_route=UrlAction_{$row['fun_name']}"; $fun['ico'] = "glyphicon glyphicon-share"; $fun['cell_id_params'] = array(); $fun['link_target'] = '_blank';// LINK_TARGET_SELF $functions[ $row['ID'] ] = $fun; } $funParams = $functions[ $row['ID'] ]['cell_id_params']; if ($row['param_in_to_cell_id'] > 0 && !empty($row['param_in_name'])) { $funParams[ $row['param_in_to_cell_id'] ] = $row['param_in_name']; $functions[ $row['ID'] ]['cell_id_params'] = $funParams; } if ('LINK_TARGET_SELF' == $row['link_param']) { unset($functions[ $row['ID'] ]['link_target']); } } DBG::_('DBG', '>1', 'functions', $functions, __CLASS__, __FUNCTION__, __LINE__); return $functions; } }