Browse Source

added UrlAction_CustomObjectLink, added PARAM_IN with value to UrlAction

Piotr Labudda 9 years ago
parent
commit
c370172826
2 changed files with 38 additions and 5 deletions
  1. 10 5
      SE/se-lib/Route/UrlAction.php
  2. 28 0
      SE/se-lib/Route/UrlAction/CustomObjectLink.php

+ 10 - 5
SE/se-lib/Route/UrlAction.php

@@ -122,13 +122,13 @@ class Route_UrlAction extends RouteBase {// TODO: UrlActionBase
 				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 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
+		--	group by z.ID
 		");
 		$sth->bindValue(':id_zasob', $idTbl, PDO::PARAM_STR);
 		$sth->bindValue(':usr_login', $usrLogin, PDO::PARAM_STR);
@@ -159,9 +159,14 @@ class Route_UrlAction extends RouteBase {// TODO: UrlActionBase
 				$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 (!empty($row['param_in_name'])) {
+				if ($row['param_in_to_cell_id'] > 0) {// ALIAS to field - get field value from row
+					$funParams[ $row['param_in_to_cell_id'] ] = $row['param_in_name'];
+					$functions[ $row['ID'] ]['cell_id_params'] = $funParams;
+				}
+				else if (false !== strpos($row['param_in_name'], '=')) {// "{arg_name}={value}" - add to url
+					$functions[ $row['ID'] ][ 'baseLink' ] .= "&" . $row['param_in_name'];
+				}
 			}
 			if ('LINK_TARGET_SELF' == $row['link_param']) {
 				unset($functions[ $row['ID'] ]['link_target']);

+ 28 - 0
SE/se-lib/Route/UrlAction/CustomObjectLink.php

@@ -0,0 +1,28 @@
+<?php
+
+Lib::loadClass('RouteBase');
+Lib::loadClass('Route_UrlAction');
+Lib::loadClass('UI');
+Lib::loadClass('Core_AclHelper');
+
+class Route_UrlAction_CustomObjectLink extends RouteBase {// TODO: UrlActionBase @see Route_UrlAction
+
+	public function handleAuth() {
+		if (!User::logged()) {
+			User::authByRequest();
+		}
+	}
+
+	public function defaultAction() {
+		try {
+			$tblRoute = Router::getRoute('ViewTableAjax');
+			$tblRoute->route();
+		} catch (Exception $e) {
+			UI::gora();
+			UI::menu();
+			UI::alert('danger', $e->getMessage());
+			UI::dol();
+		}
+	}
+
+}