/** * get database connection list */ public function getDbConnectionsList () { if (! isset( $_SESSION['PROCESS'] )) { $_SESSION['PROCESS'] = $_POST['PRO_UID']; } G::LoadClass( 'dbConnections' ); $proUid = $_POST['PRO_UID']; $dbConn = new DbConnections(); $dbConnections = $dbConn->getConnectionsProUid( $proUid, array('mysql') ); $workSpace = new workspaceTools(SYS_SYS); $workspaceDB = $workSpace->getDBInfo(); if ($workspaceDB['DB_NAME'] == $workspaceDB['DB_RBAC_NAME']) { $defaultConnections = array (array ('DBS_UID' => 'workflow','DBS_NAME' => 'Workflow')); } else { $defaultConnections = array (array ('DBS_UID' => 'workflow','DBS_NAME' => 'Workflow'), array ('DBS_UID' => 'rp','DBS_NAME' => 'REPORT')); } $dbConnections = array_merge( $defaultConnections, $dbConnections ); return $dbConnections; }
public function regenerateContent($langs, $workSpace = SYS_SYS) { //Search the language $key = array_search('en', $langs); if ($key === false) { $key = array_search(SYS_LANG, $langs); if ($key === false) { $key = '0'; } } $this->langsAsoc = array(); foreach ($langs as $key => $value) { $this->langsAsoc[$value] = $value; } $this->langs = $langs; $this->rowsProcessed = 0; $this->rowsInserted = 0; $this->rowsUnchanged = 0; $this->rowsClustered = 0; //Creating table CONTENT_BACKUP $connection = Propel::getConnection('workflow'); $oStatement = $connection->prepareStatement("CREATE TABLE IF NOT EXISTS `CONTENT_BACKUP` (\n `CON_CATEGORY` VARCHAR(30) default '' NOT NULL,\n `CON_PARENT` VARCHAR(32) default '' NOT NULL,\n `CON_ID` VARCHAR(100) default '' NOT NULL,\n `CON_LANG` VARCHAR(10) default '' NOT NULL,\n `CON_VALUE` MEDIUMTEXT NOT NULL,\n CONSTRAINT CONTENT_BACKUP_PK PRIMARY KEY (CON_CATEGORY,CON_PARENT,CON_ID,CON_LANG)\n )Engine=InnoDB DEFAULT CHARSET='utf8' COMMENT='Table for add content';"); $oStatement->executeQuery(); $sql = " SELECT DISTINCT CON_LANG\n FROM CONTENT "; $stmt = $connection->createStatement(); $rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC); while ($rs->next()) { $row = $rs->getRow(); $language = $row['CON_LANG']; if (array_search($row['CON_LANG'], $langs) === false) { Content::removeLanguageContent($row['CON_LANG']); } } $sql = " SELECT CON_ID, CON_CATEGORY, CON_LANG, CON_PARENT, CON_VALUE\n FROM CONTENT\n ORDER BY CON_ID, CON_CATEGORY, CON_PARENT, CON_LANG"; G::LoadClass("wsTools"); $workSpace = new workspaceTools($workSpace); $workSpace->getDBInfo(); $link = @mysql_pconnect($workSpace->dbHost, $workSpace->dbUser, $workSpace->dbPass) or die("Could not connect"); mysql_select_db($workSpace->dbName, $link); mysql_query("SET NAMES 'utf8';"); mysql_query("SET FOREIGN_KEY_CHECKS=0;"); mysql_query('SET OPTION SQL_BIG_SELECTS=1'); $result = mysql_unbuffered_query($sql, $link); $list = array(); $default = array(); $sw = array('CON_ID' => '', 'CON_CATEGORY' => '', 'CON_PARENT' => ''); while ($row = mysql_fetch_assoc($result)) { if ($sw['CON_ID'] == $row['CON_ID'] && $sw['CON_CATEGORY'] == $row['CON_CATEGORY'] && $sw['CON_PARENT'] == $row['CON_PARENT']) { $list[] = $row; } else { $this->rowsClustered++; if (count($langs) != count($list)) { $this->checkLanguage($list, $default); } else { $this->rowsUnchanged = $this->rowsUnchanged + count($langs); } $sw = array(); $sw['CON_ID'] = $row['CON_ID']; $sw['CON_CATEGORY'] = $row['CON_CATEGORY']; $sw['CON_LANG'] = $row['CON_LANG']; $sw['CON_PARENT'] = $row['CON_PARENT']; unset($list); unset($default); $list = array(); $default = array(); $list[] = $row; } if ($sw['CON_LANG'] == $langs[$key]) { $default = $row; } $this->rowsProcessed++; } if (count($langs) != count($list)) { $this->checkLanguage($list, $default); } else { $this->rowsUnchanged = $this->rowsUnchanged + count($langs); } mysql_free_result($result); $total = $this->rowsProcessed + $this->rowsInserted; $statement = $connection->prepareStatement("INSERT INTO CONTENT\n SELECT CON_CATEGORY, CON_PARENT, CON_ID , CON_LANG, CON_VALUE\n FROM CONTENT_BACKUP"); $statement->executeQuery(); $statement = $connection->prepareStatement("DROP TABLE CONTENT_BACKUP"); $statement->executeQuery(); //close connection $sql = "SELECT * FROM information_schema.processlist WHERE command = 'Sleep' and user = SUBSTRING_INDEX(USER(),'@',1) and db = DATABASE() ORDER BY id;"; $stmt = $connection->createStatement(); $rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC); while ($rs->next()) { $row = $rs->getRow(); $oStatement = $connection->prepareStatement("kill " . $row['ID']); $oStatement->executeQuery(); } if (!isset($_SERVER['SERVER_NAME'])) { CLI::logging("Rows Processed ---> {$this->rowsProcessed} ..... \n"); CLI::logging("Rows Clustered ---> {$this->rowsClustered} ..... \n"); CLI::logging("Rows Unchanged ---> {$this->rowsUnchanged} ..... \n"); CLI::logging("Rows Inserted ---> {$this->rowsInserted} ..... \n"); CLI::logging("Rows Total ---> {$total} ..... \n"); } }