From 4721d826ad5bc4abfee827d75f42c4091a1c4aa0 Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Tue, 9 Apr 2013 17:45:08 -0400 Subject: [PATCH] DOC SYSTEM Si el flag partner existe pisara scripts sql Tambien el skin se podra cambiar si se le asigna uno --- workflow/engine/classes/class.Installer.php | 108 +++++++++++++++++- .../engine/classes/model/Configuration.php | 21 ++++ workflow/engine/data/partner/mysql/insert.sql | 2 + workflow/engine/data/partner/skin/skin.tar | 1 + .../engine/skinEngine/base/css/codemirror.css | 0 workflow/engine/skinEngine/base/css/form.css | 0 workflow/engine/skinEngine/base/css/rtl.css | 0 .../engine/skinEngine/base/css/show-hint.css | 0 workflow/engine/skinEngine/base/layout.html | 0 9 files changed, 127 insertions(+), 5 deletions(-) create mode 100755 workflow/engine/data/partner/mysql/insert.sql create mode 100755 workflow/engine/data/partner/skin/skin.tar mode change 100644 => 100755 workflow/engine/skinEngine/base/css/codemirror.css mode change 100644 => 100755 workflow/engine/skinEngine/base/css/form.css mode change 100644 => 100755 workflow/engine/skinEngine/base/css/rtl.css mode change 100644 => 100755 workflow/engine/skinEngine/base/css/show-hint.css mode change 100644 => 100755 workflow/engine/skinEngine/base/layout.html diff --git a/workflow/engine/classes/class.Installer.php b/workflow/engine/classes/class.Installer.php index d2f232376..03a68a611 100755 --- a/workflow/engine/classes/class.Installer.php +++ b/workflow/engine/classes/class.Installer.php @@ -205,18 +205,116 @@ class Installer $this->log("Write: " . $db_file . " => " . ((!$ff) ? $ff : "OK") . "\n", $ff === false); fclose($fp); - $this->set_configuration(); - $this->set_admin(); + $this->setPartner(); + $this->setConfiguration(); + $this->setAdmin(); } return $test; } + /** + * set_partner + * + * @return void + */ + public function setPartner() + { + if (defined('PARTNER_FLAG')) { + // Execute sql for partner + $pathMysqlPartner = PATH_CORE . 'data' . PATH_SEP . 'partner' . PATH_SEP . 'mysql' . PATH_SEP; + if (G::verifyPath($pathMysqlPartner)) { + $res = array(); + $filesSlq = glob($pathMysqlPartner . '*.sql'); + foreach ($filesSlq as $value) { + $this->query_sql_file($value, $this->connection_database); + } + } + + // Execute to change of skin + $pathSkinPartner = PATH_CORE . 'data' . PATH_SEP . 'partner' . PATH_SEP . 'skin' . PATH_SEP; + if (G::verifyPath($pathSkinPartner)) { + $res = array(); + $fileTar = glob($pathSkinPartner . '*.tar'); + foreach ($fileTar as $value) { + $dataFile = pathinfo($value); + $nameSkinTmp = $dataFile['filename']; + G::LoadThirdParty( 'pear/Archive', 'Tar' ); + $tar = new Archive_Tar( $value ); + + $pathSkinTmp = $pathSkinPartner . 'tmp' . PATH_SEP; + G::rm_dir($pathSkinTmp); + G::verifyPath($pathSkinTmp, true); + chmod( $pathSkinTmp, 0777); + $tar->extract($pathSkinTmp); + + $pathSkinName = $pathSkinTmp . $nameSkinTmp . PATH_SEP; + chmod( $pathSkinName, 0777); + G::verifyPath(PATH_CORE . 'skinEngine' . PATH_SEP . 'tmp', true); + $skinClassic = PATH_CORE . 'skinEngine' . PATH_SEP . 'tmp' . PATH_SEP; + + if (is_dir($pathSkinName)) { + $this->copyFile($pathSkinName, $skinClassic); + } + + G::rm_dir(PATH_CORE . 'skinEngine' . PATH_SEP . 'base'); + rename(PATH_CORE . 'skinEngine' . PATH_SEP . 'tmp', PATH_CORE . 'skinEngine' . PATH_SEP . 'base'); + G::rm_dir(PATH_CORE . 'skinEngine' . PATH_SEP . 'tmp'); + + break; + } + } + } + } + + function copyFile($fromDir, $toDir, $chmod=0777) + { + $errors = array(); + $messages = array(); + + if (!is_writable($toDir)) { + $errors[]='target '.$toDir.' is not writable'; + } + if (!is_dir($toDir)) { + $errors[]='target '.$toDir.' is not a directory'; + } + if (!is_dir($fromDir)) { + $errors[]='source '.$fromDir.' is not a directory'; + } + if (!empty($errors)) { + return false; + } + + $exceptions = array ('.','..'); + $handle = opendir($fromDir); + while (false !== ($item=readdir($handle))) { + if (!in_array($item,$exceptions)) { + $from = str_replace('//','/',$fromDir.'/'.$item); + $to = str_replace('//','/',$toDir.'/'.$item); + if (is_file($from)) { + if (@copy($from,$to)) { + chmod($to,$chmod); + touch($to,filemtime($from)); + } + } + + if (is_dir($from)) { + if (@mkdir($to)) { + chmod($to,$chmod); + } + $this->copyFile($from,$to,$chmod); + } + } + } + + closedir($handle); + } + /** * set_configuration * * @return void */ - public function set_configuration() + public function setConfiguration() { $oConf = new Configuration(); $dataCondif = $oConf->getAll(); @@ -237,14 +335,14 @@ class Installer } } } - } + } /** * set_admin * * @return void */ - public function set_admin() + public function setAdmin() { mysql_select_db($this->wf_site_name, $this->connection_database); // The mysql_escape_string function has been DEPRECATED as of PHP 5.3.0. diff --git a/workflow/engine/classes/model/Configuration.php b/workflow/engine/classes/model/Configuration.php index 125093065..d280727e0 100755 --- a/workflow/engine/classes/model/Configuration.php +++ b/workflow/engine/classes/model/Configuration.php @@ -130,5 +130,26 @@ class Configuration extends BaseConfiguration $oRow = ConfigurationPeer::retrieveByPK( $CfgUid, $ObjUid, $ProUid, $UsrUid, $AppUid ); return (( get_class ($oRow) == 'Configuration' )&&(!is_null($oRow))); } + + public function getAll () + { + $oCriteria = new Criteria( 'workflow' ); + + $oCriteria->addSelectColumn( ConfigurationPeer::CFG_UID ); + $oCriteria->addSelectColumn( ConfigurationPeer::OBJ_UID ); + $oCriteria->addSelectColumn( ConfigurationPeer::CFG_VALUE ); + $oCriteria->addSelectColumn( ConfigurationPeer::PRO_UID ); + $oCriteria->addSelectColumn( ConfigurationPeer::USR_UID ); + $oCriteria->addSelectColumn( ConfigurationPeer::APP_UID ); + + //execute the query + $oDataset = ConfigurationPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $aRows = array (); + while ($oDataset->next()) { + $aRows[] = $oDataset->getRow(); + } + return $aRows; + } } diff --git a/workflow/engine/data/partner/mysql/insert.sql b/workflow/engine/data/partner/mysql/insert.sql new file mode 100755 index 000000000..9cabb2744 --- /dev/null +++ b/workflow/engine/data/partner/mysql/insert.sql @@ -0,0 +1,2 @@ +# INSERT INTO USERS (USR_UID,USR_USERNAME,USR_PASSWORD,USR_FIRSTNAME,USR_LASTNAME,USR_EMAIL,USR_DUE_DATE,USR_CREATE_DATE,USR_UPDATE_DATE,USR_STATUS,USR_COUNTRY,USR_CITY,USR_LOCATION,USR_ADDRESS,USR_PHONE,USR_FAX,USR_CELLULAR,USR_ZIP_CODE,DEP_UID,USR_POSITION,USR_RESUME,USR_BIRTHDAY,USR_ROLE,USR_REPORTS_TO,USR_REPLACED_BY ) VALUES +# ('00000000000000000000000000000001','admin','21232f297a57a5a743894a0e4a801fc3','Administrator',' ', 'admin@processmaker.com','2020-01-01','1999-11-30 00:00:00','2008-05-23 18:36:19','ACTIVE', 'US','FL','MMK','','', '1-305-402-0282','1-305-675-1400','','','Administrator', '','1999-02-25','PROCESSMAKER_ADMIN','',''); \ No newline at end of file diff --git a/workflow/engine/data/partner/skin/skin.tar b/workflow/engine/data/partner/skin/skin.tar new file mode 100755 index 000000000..20d17db3b --- /dev/null +++ b/workflow/engine/data/partner/skin/skin.tar @@ -0,0 +1 @@ +Add skin \ No newline at end of file diff --git a/workflow/engine/skinEngine/base/css/codemirror.css b/workflow/engine/skinEngine/base/css/codemirror.css old mode 100644 new mode 100755 diff --git a/workflow/engine/skinEngine/base/css/form.css b/workflow/engine/skinEngine/base/css/form.css old mode 100644 new mode 100755 diff --git a/workflow/engine/skinEngine/base/css/rtl.css b/workflow/engine/skinEngine/base/css/rtl.css old mode 100644 new mode 100755 diff --git a/workflow/engine/skinEngine/base/css/show-hint.css b/workflow/engine/skinEngine/base/css/show-hint.css old mode 100644 new mode 100755 diff --git a/workflow/engine/skinEngine/base/layout.html b/workflow/engine/skinEngine/base/layout.html old mode 100644 new mode 100755