Browse Source

fixed encoder in instalator, added test get_object_list by company

Piotr Labudda 9 năm trước cách đây
mục cha
commit
0dd08cf9a3

+ 9 - 0
SE/schema/gui/company/biuro_biall_net_pl/get_object_list.php

@@ -0,0 +1,9 @@
+<?php
+
+// @usage: $objList = include APP_PATH_SCHEMA . '/gui/company/biuro_pro_netmedia_pl/get_object_list.php';
+
+
+$objList = [];
+$objList[] = 'default_objects__x3A__Zaliczka:Zaliczka';
+
+return $objList;

+ 9 - 0
SE/schema/gui/company/biuro_pro_netmedia_pl/get_object_list.php

@@ -0,0 +1,9 @@
+<?php
+
+// @usage: $objList = include APP_PATH_SCHEMA . '/gui/company/biuro_pro_netmedia_pl/get_object_list.php';
+
+
+$objList = [];
+$objList[] = 'default_objects__x3A__Zaliczka:Zaliczka';
+
+return $objList;

+ 18 - 2
SE/se-lib/Core/AclHelper.php

@@ -54,9 +54,9 @@ class Core_AclHelper {// Helper class for Acl
     	$schemaNs = substr($namespace, strlen($baseNsUri) + 1);
     	$ns = explode('/', $schemaNs);// "http://biuro.biall-net.pl/wfs/  default_db/{$nazwa_tabeli}/{$nazwa_obj}
     	$sourceName = array_shift($ns);// remove first element - source name
+      $objName = $ns[0];
       if ('default_db' == $sourceName || 'p5_default_db' == $sourceName) {
       	$sourceName = 'default_db';
-      	$objName = $ns[0];
       	if (1 == count($ns)) {
       		$acl = User::getAcl()->getObjectAcl($sourceName, $objName);
       		if (!$acl) throw new Exception("Could not get acl for '{$schemaNs}'");
@@ -69,7 +69,15 @@ class Core_AclHelper {// Helper class for Acl
       }
       else if ('default_objects' == $sourceName || 'SystemObjects' == $sourceName || 'p5_objects' == $sourceName) {
       	$sourceName = 'objects';
-      	$objName = $ns[0];
+      	if (1 == count($ns)) {
+      		$acl = User::getAcl()->getObjectAcl($sourceName, $objName);
+      		if (!$acl) throw new Exception("Could not get acl for '{$schemaNs}'");
+      		$acl->init($forceTblAclInit);
+      		return $acl;
+      	} else throw new Exception("Nieznany namespace SystemObjects: '{$schemaNs}'", 501);
+      }
+      else if ('default_objects__x3A__' == substr($sourceName, 0, 22)) {// default_objects__x3A__Zaliczka:Zaliczka
+      	$sourceName = 'objects';
       	if (1 == count($ns)) {
       		$acl = User::getAcl()->getObjectAcl($sourceName, $objName);
       		if (!$acl) throw new Exception("Could not get acl for '{$schemaNs}'");
@@ -233,6 +241,14 @@ class Core_AclHelper {// Helper class for Acl
     // TODO: read from Database
     // $aclList[] = 'default_db__x3A__TEST_PERMS:TEST_PERMS';// uproszczona wersja: default_db:TEST_PERMS
 
+    $cleanHostName = str_replace(array(".", "-"), '_', $_SERVER['SERVER_NAME']);
+    $objList = include APP_PATH_SCHEMA . "/gui/company/{$cleanHostName}/get_object_list.php";
+    if (!empty($objList) && is_array($objList)) {
+      foreach ($objList as $objectName) {
+        if (!in_array($objectName, $aclList)) $aclList[] = $objectName;
+      }
+    }
+
     return $aclList;
   }
 

+ 1 - 0
SE/se-lib/Route/Install.php

@@ -231,6 +231,7 @@ jQuery(document).ready(function () {
 			$skipPhpFiles[] = 'bash_sync_perms.php';
 			$skipPhpFiles[] = 'bash_install_check.php';
 			$skipPhpFiles[] = '.config.php';
+			$skipPhpFiles[] = '.config_base_structure.php';
 			$skipPhpFiles[] = 'se-lib/V.php';
 			$skipPhpFiles[] = 'se-lib/Lib.php';
 			$skipPhpFiles[] = 'se-lib/DB.php';

+ 168 - 0
SE/se-lib/Schema/ZaliczkaStorageAcl.php

@@ -0,0 +1,168 @@
+<?php
+
+Lib::loadClass('Core_AclBase');
+Lib::loadClass('Core_AclHelper');
+Lib::loadClass('FileStorage');
+
+class Schema_ZaliczkaStorageAcl extends Core_AclBase {
+
+  public function __construct() {
+    $this->parentAcl = User::getAcl()->getObjectAcl('default_db', 'USER_ZALICZKA');
+    // DBG::_(true, true, "parentAcl", $this->parentAcl, __CLASS__, __FUNCTION__, __LINE__);
+  }
+  public function getNamespace() { return 'default_objects/' . $this->getName(); }
+  public function getSourceName() { return 'default_objects'; }
+  public function init($force = false) {}
+  public function isInitialized() { return true; }
+  public function getName() { return 'Zaliczka'; }
+  public function getRootTableName() { return 'USER_ZALICZKA'; }
+  public function getFieldListByIdZasob() { return $this->getRealFieldListByIdZasob(); }
+  public function getVisibleFieldListByIdZasob() { return $this->getRealFieldListByIdZasob(); }
+  public function getVirtualFieldListByIdZasob() { return array(); }
+  public function getRealFieldListByIdZasob($force = false) {
+    $cols = $this->parentAcl->getRealFieldListByIdZasob();
+    $cols[100001] = 'Pracownik';
+    $cols[100002] = 'Pozycja';
+    return $cols;
+  }
+  public function getFields() {// @returns array - $this->_fields
+    $fields = $this->parentAcl->getFields();
+    $fields[100001] = ['name'=>'Pracownik', 'perms'=>'RWXC', 'opis'=>'Pracownik pobierający zaliczkę', 'sort_prio'=>1000, 'label'=>'Pracownik'];
+    $fields[100002] = ['name'=>'Pozycja', 'perms'=>'RWXC', 'opis'=>'Pozycje zaliczki', 'sort_prio'=>1001, 'label'=>'Pozycje'];
+    return $fields;
+  }
+  public function getFieldType($fieldName) {
+    foreach ($this->getFields() as $field) {
+      if ($fieldName == $field['name']) return $field;
+    }
+    return null;
+	}
+
+  // TODO: replace legacy functions: isAllowed, hasFieldPerm, getFieldIdByName
+  public function canCreateField($fieldName) {
+    if ('Pracownik' == $fieldName) return true;
+    if ('Pozycja' == $fieldName) return true;
+    return $this->parentAcl->canCreateField($fieldName);
+  }
+  public function canReadField($fieldName) {
+    if ('File' == $fieldName) return true;
+    if ('AccessGroupRead' == $fieldName) return true;
+    if ('AccessGroupWrite' == $fieldName) return true;
+    if ('AccessOwner' == $fieldName) return true;
+    return $this->parentAcl->canReadField($fieldName);
+  }
+  public function canReadObjectField($fieldName, $record) {
+    if ('File' == $fieldName) return true;
+    if ('AccessGroupRead' == $fieldName) return true;
+    if ('AccessGroupWrite' == $fieldName) return true;
+    if ('AccessOwner' == $fieldName) return true;
+    return $this->parentAcl->canReadObjectField($fieldName, $record);
+  }
+  public function canWriteField($fieldName) {
+    if ('File' == $fieldName) return true;
+    if ('AccessGroupRead' == $fieldName) return true;
+    if ('AccessGroupWrite' == $fieldName) return true;
+    if ('AccessOwner' == $fieldName) return true;
+    return $this->parentAcl->canWriteField($fieldName);
+  }
+  public function canWriteObjectField($fieldName, $record) {
+    if ('File' == $fieldName) return true;
+    if ('AccessGroupRead' == $fieldName) return true;
+    if ('AccessGroupWrite' == $fieldName) return true;
+    if ('AccessOwner' == $fieldName) return true;
+    return $this->parentAcl->canWriteObjectField($fieldName, $record);
+  }
+
+  public function getTotal($params = array()) {// TODO: use ParseOgcQuery
+    $DBG = V::get('DBG_DS', 0, $_GET, 'int');
+    if($DBG>2){echo 'C.'.get_class($this).' L.' . __LINE__ . " getTotal \$params:";print_r($params);echo "\n";}
+    return $this->parentAcl->getTotal($params);
+  }
+  public function getItem($primaryKey) {
+    $items = $this->getItems(['primaryKey'=>$primaryKey]);
+    return (!empty($items[$primaryKey])) ? $items[$primaryKey] : null;
+  }
+  public function getItems($params = array()) {// TODO: use ParseOgcQuery
+    $DBG = V::get('DBG_DS', 0, $_GET, 'int');
+    if($DBG>2){echo 'C.'.get_class($this).' L.' . __LINE__ . " getItems \$params:";print_r($params);echo "\n";}
+    $items = array();
+    $rawItems = $this->parentAcl->getItems($params);
+    foreach ($rawItems as $pk => $item) $items[$pk] = (array)$item;
+    if($DBG>2){echo 'C.'.get_class($this).' L.' . __LINE__ . " getItems \$items:";print_r($items);echo "\n";}
+    if (empty($items)) return $items;
+    $this->fetchItemRef($items);// TODO: only fields from request
+    if($DBG>2){echo 'C.'.get_class($this).' L.' . __LINE__ . " getItems after fetchItemRef \$items:";print_r($items);echo "\n";}
+    return $items;
+  }
+  public function fetchItemRef(&$items) {
+    $DBG = V::get('DBG_DS', 0, $_GET, 'int');
+    $refs = array();// fieldName => xsdType
+    foreach ($this->getRealFieldListByIdZasob() as $id => $fieldName) {
+      $fieldType = $this->getXsdFieldType($fieldName);
+      if ('ref:' == substr($fieldType, 0, 4)) $refs[$fieldName] = substr($fieldType, 4);
+      else if ('alias_ref:' == substr($fieldType, 0, 10)) {
+        $refs[$fieldName] = substr($fieldType, 10);
+      }
+    }
+    if (empty($refs)) return $items;
+    $pkList = array_keys($items);
+    $sqlPk = array(); foreach ($pkList as $pk) { $sqlPk[] = DB::getPDO()->quote($pk, PDO::PARAM_STR); } $sqlPk = implode(", ", $sqlPk);
+    $refRows = array();// $fieldName => [ pk, ... ]
+    foreach ($refs as $fieldName => $type) {
+      $acl = Core_AclHelper::getAclByTypeName($type);
+      // TODO: Core_AclBase->fetchRefs($fieldName, $pkList = array());// $refPk[$fieldName] = $this->fetchRefs($fieldName, $pkList);
+      $refTableName = $this->createRefTable($fieldName);
+      if($DBG>2){echo 'C.'.get_class($this).' L.' . __LINE__ . " getItems loop(\$fieldName:{$fieldName}) \$refTableName:({$refTableName})";echo"\n";}
+      $refRows[$fieldName] = DB::getPDO()->fetchAllByKey("
+        select r.*
+        from `{$refTableName}` r
+        where r.PRIMARY_KEY in({$sqlPk})
+          and r.A_STATUS != 'DELETED'
+      ", $key = 'PRIMARY_KEY');
+      if($DBG>2){echo 'C.'.get_class($this).' L.' . __LINE__ . " getItems loop(\$fieldName:{$fieldName}) \$refTableName:({$refTableName}), \$refRows[$fieldName]";print_r($refRows[$fieldName]);echo"\n";}
+    }
+    foreach ($refRows as $fieldName => $refList) {
+      foreach ($refList as $pk => $ref) {
+        $items[ $pk ][ $fieldName ][] = array('xlink' => "{$refs[$fieldName]}.{$ref['REMOTE_PRIMARY_KEY']}");
+      }
+    }
+  }
+  public function addItem($itemTodo) {
+    return $this->parentAcl->addItem($itemTodo);
+  }
+  public function updateItem($itemPatch) {
+    return $this->parentAcl->updateItem($itemPatch);
+  }
+
+  public function getGeomFieldType($fieldName) { return null; }
+  public function getPrimaryKeyField() { return 'ID'; }
+  public function getID() { return 0; }
+  public function getAttributesFromZasoby() { return array(); }
+  public function isEnumerationField($fieldName) {
+    if ('A_STATUS' == $fieldName) return true;
+    return false;
+  }
+  public function getEnumerations($fieldName) {
+    if ('A_STATUS' == $fieldName) return $this->parentAcl->getEnumerations($fieldName);
+    return null;
+  }
+  public function getXsdFieldType($fieldName) {
+    if ('File' == $fieldName) return 'ref:p5_objects:File';
+    // if ('File1' == $fieldName) return 'alias_ref:p5_objects:File';
+    // if ('File2' == $fieldName) return 'alias_ref:p5_objects:File';
+    // if ('NestedObjectTest' == $fieldName) return 'local_ref:p5_objects:NestedObjectTest';
+    if ('AccessGroupRead' == $fieldName) return 'ref:default_objects:AccessGroupRead';
+    if ('AccessGroupWrite' == $fieldName) return 'ref:default_objects:AccessGroupWrite';
+    if ('AccessOwner' == $fieldName) return 'ref:default_objects:AccessOwner';
+    return $this->parentAcl->getXsdFieldType($fieldName);
+  }
+  public function isGeomField($fldName) {
+    if ('File' == $fieldName) return false;
+    if ('AccessGroupRead' == $fieldName) return false;
+    if ('AccessGroupWrite' == $fieldName) return false;
+    if ('AccessOwner' == $fieldName) return false;
+    // if ('NestedObjectTest' == $fieldName) return false;
+    return $this->parentAcl->isGeomField($fldName);
+  }
+
+}

+ 50 - 13
SE/superedit-INSTALL_SES_PROCESY_A.php

@@ -603,7 +603,7 @@ if($SERVER_VERSION=='10.9Maverick') $cmd[]['rsh']="gcc 2>&1 |grep 'no input file
 //@2014-10 really needed??? if($SERVER_VERSION=='10.8MountainLion') $cmd[]['scp']=array('/Library/Server/Web/Data/Sites/Default/SE/se-dev-pl/stuff/xcode462_cltools_10_86938259a.dmg','/tmp/xcode462_cltools_10_86938259a.dmg');
 //@2014-10 really needed??? if($SERVER_VERSION=='10.8MountainLion') $cmd[]['rsh']='hdiutil mount /tmp/xcode462_cltools_10_86938259a.dmg -mountpoint /Volumes/xcodetools';
 //@2014-10 really needed??? if($SERVER_VERSION=='10.8MountainLion') $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "/" -verbose';//  $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
-	
+
 	//todo use sw_vers -productVersion -> shows 10.11.6 for elcapitain etc...
 	if($SERVER_VERSION=='10.8MountainLion') {
 		$cmd[]['scp']=array('/Library/Server/Web/Data/Sites/Default/SE/se-dev-pl/stuff/MacPorts-2.2.0-10.8-MountainLion.pkg','/tmp/MacPorts-2.2.0-10.8-MountainLion.pkg');
@@ -649,7 +649,7 @@ if($SERVER_VERSION=='10.12-Sierra') {
     $cmd[]['scp']=array('/Applications/SourceGuardian.app/Contents/Loaders/Mac\ OS\ X/ixed.5.6.dar','/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/');
     $cmd[]['rsh']='cat /etc/php.ini |grep "extension=/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/ixed.5.6.dar" || echo "\nextension=/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/ixed.5.6.dar\n" >> /etc/php.ini';
 }
-    
+
 $cmd[]['rsh']='serveradmin stop web && serveradmin start web';
 
 if($SERVER_VERSION=='10.10Yosemite') {
@@ -673,7 +673,7 @@ if($SERVER_VERSION=='10.12-Sierra') {
 	$cmd[]['rsh']='port install php56-imagick';
 	$cmd[]['rsh']='port install php56-imagick';
 	$cmd[]['rsh']='cat /etc/php.ini |grep "extension=/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/imagick.so" || echo "\nextension=/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/imagick.so\n" >> /etc/php.ini';
-}   
+}
 
 //@2015-10-25 bindera: problemy po upgrade portow z niedzialajacym mysql - skip-networking- wykonanie instrukcji czyszczacych ten problem
 	$cmd[]['rsh']='cat /opt/local/etc/mysql55/macports-default.cnf |grep "skip-networking" |grep -v "#" && (
@@ -864,7 +864,7 @@ $cmd[]['rsh']='mysqladmin -h 127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' c
 $cmd[]['rsh']='echo "GRANT ALL PRIVILEGES ON '.$REMOTE_FOLDER_ROOT.'_wordpress.* to \'wordpress\'@\'127.0.0.1\' IDENTIFIED BY \''.md5($ADMIN_USERNAME_PASSWD).'\'  WITH GRANT OPTION; flush privileges;" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\'';
 $cmd[]['rsh']='echo "GRANT ALL PRIVILEGES ON '.$REMOTE_FOLDER_ROOT.'_wordpress.* to \'wordpress\'@\'localhost\' IDENTIFIED BY \''.md5($ADMIN_USERNAME_PASSWD).'\'  WITH GRANT OPTION; flush privileges;" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\'';
 
-//@2016-07 aktywowany wordpress z cli nie wstawia .htaccess dobrego 
+//@2016-07 aktywowany wordpress z cli nie wstawia .htaccess dobrego
 //teraz wylaczone z uwagi na test wp rewrite structure nizej z CLI
 /*$cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/wordpress && echo "<IfModule mod_rewrite.c>
 RewriteEngine On
@@ -1479,10 +1479,10 @@ function INSTALL_GETCOMMANDS_SE($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNA
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/.config.php','/Library/Server/Web/Data/Sites/Default/SE/');
     $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/procesy || echo PASSED';
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/procesy','/Library/Server/Web/Data/Sites/Default/SE/');
- 
+
   $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/static || echo PASSED';
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/static','/Library/Server/Web/Data/Sites/Default/SE/');
- 
+
     $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/bash_sync_perms.php || echo PASSED';
   $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_sync_perms.php','/Library/Server/Web/Data/Sites/Default/SE/');
 	$cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php || echo PASSED';
@@ -1571,7 +1571,7 @@ return $cmd;
 }
 
 function INSTALL_GETCOMMANDS_SE_LAST_UPDATE($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
- //@2016-08-10 jest blad tutaj wyzwolenia w kosmetologii z bomby ktorys error wywala 
+ //@2016-08-10 jest blad tutaj wyzwolenia w kosmetologii z bomby ktorys error wywala
 $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php '.$SERVER_ADDRESS;
 //@2016-06 bindera: po aktualizacji sql czesto nie dziala event sheduler np zoompak
 $cmd[]['rsh']=' echo " SET GLOBAL event_scheduler =  \"ON\" " |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
@@ -1646,16 +1646,16 @@ $cmd[]['rsh']=' test -f /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--d
   $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SKANY/index.html';
  $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WMS_LAYERS';
   $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WMS_LAYERS/index.html';
-  
+
    $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WIZJE_LOKALNE';
   $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WIZJE_LOKALNE/index.html';
 
-  
+
    $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/MK_Rewiry';
   $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/MK_Rewiry/index.html';
 
-  
-  
+
+
  $cmd[]['rsh']=' chmod 0755 /Library/Server/Web/Data/Sites/Default/PLIKI/';
  $cmd[]['rsh']=' chmod -R +a "_www allow writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,add_file,add_subdirectory,delete_child,list,search,file_inherit,directory_inherit" /Library/Server/Web/Data/Sites/Default/PLIKI';
 //! TODO te komendy nie działają @2013-10-15 - trzeba ruszyc recznie z GUI
@@ -2244,7 +2244,44 @@ function MAKE_PKG_COMPONENT($h,$installer_dir_tar,$installer_url,$installer_tmp,
 				//TODO detect several hosts at the same IP address/domain to make it allow to work.
 				// select SERVER_ADDRESS_IP
 	 			//$exec='cd '.$installer_dir.' && /Applications/SourceGuardian.app/Contents/MacOS/sgencoder -b- --domain '.$h->SERVER_ADDRESS_SHORT.' -r *.php -x superedit-DB_PROCEDURES_CREATE.php';
-	 			$exec='cd '.$installer_dir.' && /Applications/SourceGuardian.app/Contents/MacOS/sgencoder -b- '.INSTALL_SES_PROCESY_A::get_same_domains_for_install($h->SERVER_ADDRESS_SHORT).' -r *.php  -x Budget.php -x Config.php -x FixCrmProcesInitIdx.php -x FixProjectPath.php -x FixZasobPath.php -x Install.php -x Msgs.php -x WindykacjaZestawienia.php -x superedit-DB_PROCEDURES_CREATE.php -x INI.php -x .config_base_structure.php -x HttpException.php';
+
+				$skipPhpFiles = array();
+				$skipPhpFiles[] = 'bash_sync_perms.php';
+				$skipPhpFiles[] = 'bash_install_check.php';
+				$skipPhpFiles[] = '.config.php';
+				$skipPhpFiles[] = '.config_base_structure.php';
+				$skipPhpFiles[] = 'se-lib/V.php';
+				$skipPhpFiles[] = 'se-lib/Lib.php';
+				$skipPhpFiles[] = 'se-lib/DB.php';
+				$skipPhpFiles[] = 'se-lib/DBG.php';
+				$skipPhpFiles[] = 'se-lib/User.php';
+				$skipPhpFiles[] = 'se-lib/UserProfile.php';
+				$skipPhpFiles[] = 'se-lib/Config.php';
+				$skipPhpFiles[] = 'se-lib/Config/INI.php';
+				$skipPhpFiles[] = 'se-lib/FoldersConfig.php';
+				$skipPhpFiles[] = 'se-lib/FileUploader.php';
+				$skipPhpFiles[] = 'se-lib/Route/Budget.php';
+				$skipPhpFiles[] = 'se-lib/Route/FixCrmProcesInitIdx.php';
+				$skipPhpFiles[] = 'se-lib/Route/FixProjectPath.php';
+				$skipPhpFiles[] = 'se-lib/Route/FixZasobPath.php';
+				//$skipPhpFiles[] = 'se-lib/Route/Install.php';
+				$skipPhpFiles[] = 'se-lib/Route/Msgs.php';
+				$skipPhpFiles[] = 'se-lib/Route/UrlAction/WmsGenerate.php';
+				$skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php';
+				$skipPhpFiles[] = 'se-lib/DataSourceException.php';
+				$skipPhpFiles[] = 'se-lib/Core/Pdo.php';
+				$skipPhpFiles[] = 'se-lib/Cron.php';
+				$skipPhpFiles[] = 'se-lib/Router.php';
+				$skipPhpFiles[] = 'se-lib/RouteBase.php';
+				$skipPhpFiles[] = 'se-lib/HttpException.php';
+				$skipPhpFiles[] = 'se-lib/DebugExecutionTime.php';
+				$skipPhpFiles[] = 'WindykacjaZestawienia.php';
+				$skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php';
+				$skipFilesSgencoder = (!empty($skipPhpFiles)) ? ' -x ' . implode(' -x ', $skipPhpFiles) : '';
+
+				$phpVersionsForSgencoder = '--phpversion 5.5 --phpversion 5.6';// encode for PHP 5.x (currently supported PHP 5.0-5.6)
+
+	 			$exec='cd '.$installer_dir.' && /Applications/SourceGuardian.app/Contents/MacOS/sgencoder '.$phpVersionsForSgencoder.' -b- '.INSTALL_SES_PROCESY_A::get_same_domains_for_install($h->SERVER_ADDRESS_SHORT).' -r *.php ' . $skipFilesSgencoder;
 
 	 			exec($exec,$out,$exit);$out="";$exit="";
 	 			DEBUG_S(-3,'Zakodowanie kodu php/kompilacja z licencja i kluczem',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
@@ -2617,7 +2654,7 @@ function INSTALL_SES_PROCESY_A() {
 		$packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['xml_choice']['start_selected']='true';
 
 
-		//! pakiet: INSTALL_GETCOMMANDS_SE_LAST_UPDATE - koncowe skrypty 
+		//! pakiet: INSTALL_GETCOMMANDS_SE_LAST_UPDATE - koncowe skrypty
 		$packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['exit_file']=str_replace('.', '_', $h->ID.".SE_LAST_UPDATE_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
 		$packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['installer_dir_name']=$h->ID.".SE_LAST_UPDATE_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
 		$packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['installer_tmp']="/tmp/pl.procesy5_SE_LAST_UPDATE_".$h->ID.".".$h->SERVER_ADDRESS;  //miejsce do ktorego installer odpakuje wszystko instalator