296 Zeilen
Kein EOL
8,6 KiB
PHP
296 Zeilen
Kein EOL
8,6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Project:
|
|
* Contenido Content Management System
|
|
*
|
|
* Description:
|
|
* Super class for revision
|
|
*
|
|
* Requirements:
|
|
* @con_php_req 5.0
|
|
*
|
|
*
|
|
* @package Contenido Backend classes
|
|
* @version 1.0.0
|
|
* @author Bilal Arslan, Timo Trautmann
|
|
* @copyright four for business AG <info@contenido.org>
|
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
|
* @link http://www.4fb.de
|
|
* @link http://www.contenido.org
|
|
* @since file available since contenido release >= 4.8.8
|
|
*
|
|
* {@internal
|
|
* created 2008-08-12
|
|
*
|
|
* }}
|
|
*
|
|
*/
|
|
if (!defined('CON_FRAMEWORK')) {
|
|
die('Illegal call');
|
|
}
|
|
|
|
class VersionImport extends Version {
|
|
|
|
/**
|
|
* The name of modul
|
|
* @access private
|
|
*/
|
|
private $sName;
|
|
|
|
/**
|
|
* Error Output
|
|
* @access private
|
|
*/
|
|
private $sError;
|
|
|
|
/**
|
|
* Description of modul
|
|
* @access private
|
|
*/
|
|
private $sDescripion;
|
|
|
|
/**
|
|
* Information of deletable
|
|
* @access private
|
|
*/
|
|
private $bDeletabel;
|
|
|
|
/**
|
|
* Code Input
|
|
* @access private
|
|
*/
|
|
private $sCodeInput;
|
|
|
|
/**
|
|
* Code Output
|
|
* @access private
|
|
*/
|
|
private $sCodeOutput;
|
|
|
|
/**
|
|
* Template name of modul
|
|
* @access public
|
|
*/
|
|
public $sTemplate;
|
|
|
|
/**
|
|
* static
|
|
* @access private
|
|
*/
|
|
private $sStatic;
|
|
|
|
/**
|
|
* Information about package guid
|
|
* @access private
|
|
*/
|
|
private $sPackageGuid;
|
|
|
|
/**
|
|
* Information of package data
|
|
* @access private
|
|
*/
|
|
private $sPackageData;
|
|
|
|
/**
|
|
* Type of modul
|
|
* @access public
|
|
*/
|
|
public $sModType;
|
|
|
|
/**
|
|
* Array contents all version information
|
|
* @access public
|
|
*/
|
|
private $aCreateVersion;
|
|
|
|
/**
|
|
* Check variable for look version number
|
|
* @access public
|
|
*/
|
|
private $iWert;
|
|
|
|
/**
|
|
* Table name of mod_history
|
|
* @access public
|
|
*/
|
|
private $sTableName;
|
|
|
|
/**
|
|
* The class versionImport object constructor, initializes class variables
|
|
*
|
|
* @param string $iIdMod The name of style file
|
|
* @param array $aCfg
|
|
* @param array $aCfgClient
|
|
* @param object $oDB
|
|
* @param integer $iClient
|
|
* @param object $sArea
|
|
* @param object $iFrame
|
|
*
|
|
* @return void its only initialize class members
|
|
*/
|
|
public function __construct($aCfg, $aCfgClient, $oDB, $iClient, $sArea, $iFrame) {
|
|
// Set globals in main class
|
|
$this->aCfgClient = $aCfgClient;
|
|
$this->oDB = $oDB;
|
|
|
|
if (!is_object($this->oDB))
|
|
$this->oDB = new DB_ConLite;
|
|
|
|
// folder layout
|
|
$this->sType = "module";
|
|
|
|
|
|
if (isset($_SESSION["dbprefix"])) {
|
|
$this->sTableName = $_SESSION["dbprefix"] . "_mod_history";
|
|
} else {
|
|
$this->sTableName = $this->aCfg['sql']['sqlprefix'] . "_mod_history";
|
|
}
|
|
// init class member
|
|
$this->aCreateVersion = array();
|
|
|
|
// Init class members with table con_history
|
|
$this->getModuleHistoryTable();
|
|
}
|
|
|
|
// end of constructor
|
|
|
|
/**
|
|
* Creats xml files from table mod_history if exists any rows. After create a version it will be delete the current row.
|
|
* If no rows any available, it will be drop the table mod_history.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function CreateHistoryVersion() {
|
|
if ($this->getRows() > 0) {
|
|
// Sort the version files true
|
|
ksort($this->aCreateVersion);
|
|
|
|
// All array read
|
|
foreach ($this->aCreateVersion as $sKey => $sLevelOne) {
|
|
foreach ($sLevelOne as $sKey2 => $sLevelTwo) {
|
|
if (is_array($this->aCfgClient[$sKey])) {
|
|
parent::__construct($aCfg, $this->aCfgClient, $this->oDB, $sKey, $sArea, $iFrame);
|
|
|
|
foreach ($sLevelTwo as $sKey3 => $sLevelThree) {
|
|
$this->iIdentity = $sKey2;
|
|
$this->sName = Contenido_Security::unFilter($sLevelThree["name"]);
|
|
$this->sModType = Contenido_Security::unFilter($sLevelThree["type"]);
|
|
$this->sError = Contenido_Security::unFilter($sLevelThree["error"]);
|
|
$this->sDescripion = Contenido_Security::unFilter($sLevelThree["description"]);
|
|
$this->sDeletabel = Contenido_Security::unFilter($sLevelThree ["deletable"]);
|
|
$this->sCodeInput = Contenido_Security::unFilter($sLevelThree ["input"]);
|
|
$this->sCodeOutput = Contenido_Security::unFilter($sLevelThree ["output"]);
|
|
$this->sTemplate = Contenido_Security::unFilter($sLevelThree["template"]);
|
|
$this->sStatic = Contenido_Security::unFilter($sLevelThree["static"]);
|
|
$this->sPackageGuid = Contenido_Security::unFilter($sLevelThree["package_guid"]);
|
|
$this->sPackageData = Contenido_Security::unFilter($sLevelThree["package_data"]);
|
|
$this->sAuthor = Contenido_Security::unFilter($sLevelThree["changedby"]);
|
|
$this->dCreated = Contenido_Security::unFilter($sLevelThree["created"]);
|
|
$this->dLastModified = Contenido_Security::unFilter($sLevelThree["changed"]);
|
|
$this->dActualTimestamp = Contenido_Security::unFilter($sLevelThree["changed"]);
|
|
|
|
$this->initRevisions();
|
|
|
|
$this->createBodyXML();
|
|
|
|
if ($this->createNewVersion()) {
|
|
$this->deleteRows($sLevelThree["idmodhistory"]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}// end of foreach
|
|
}
|
|
|
|
|
|
if ($this->getRows() == 0) {
|
|
$this->dropTable();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function reads rows variables from table con_mod and init with the class members.
|
|
*
|
|
* @return void
|
|
*/
|
|
private function getModuleHistoryTable() {
|
|
$sSql = "";
|
|
$sSql = "SELECT *
|
|
FROM " . $this->sTableName;
|
|
$this->oDB->query($sSql);
|
|
|
|
// save mod_history in three dimension array
|
|
while ($this->oDB->next_record()) {
|
|
$this->aCreateVersion[$this->oDB->f("idclient")][$this->oDB->f("idmod")][$this->oDB->f("idmodhistory")] = array("idmodhistory" => $this->oDB->f("idmodhistory"), "idmod" => $this->oDB->f("idmod"),
|
|
"idclient" => $this->oDB->f("idclient"), "name" => $this->oDB->f("name"),
|
|
"type" => $this->oDB->f("type"), "description" => $this->oDB->f("description"),
|
|
"input" => $this->oDB->f("input"), "output" => $this->oDB->f("output"),
|
|
"template" => $this->oDB->f("template"), "changedby" => $this->oDB->f("changedby"),
|
|
"changed" => $this->oDB->f("changed"));
|
|
}
|
|
}
|
|
|
|
// end of function
|
|
|
|
/**
|
|
* Set with the body nodes of xml file
|
|
*
|
|
* @return void
|
|
*/
|
|
private function createBodyXML() {
|
|
// Create Body Node of Xml File
|
|
$this->setData("Name", $this->sName);
|
|
$this->setData("Modul_Type", $this->sModType);
|
|
$this->setData("Error", $this->sError);
|
|
$this->setData("Description", $this->sDescripion);
|
|
$this->setData("Deletable", $this->bDeletabel);
|
|
$this->setData("CodeInput", $this->sCodeInput);
|
|
$this->setData("CodeOutput", $this->sCodeOutput);
|
|
$this->setData("Template", $this->sTemplate);
|
|
$this->setData("Static", $this->sStatic);
|
|
$this->setData("PackageGuid", $this->sPackageGuid);
|
|
$this->setData("PackageData", $this->sPackageData);
|
|
}
|
|
|
|
/**
|
|
* Get all rows in tabel mod_con_history
|
|
*
|
|
* @return integer count of rows
|
|
*/
|
|
private function getRows() {
|
|
$sSqlCount = "";
|
|
$iAnz = 0;
|
|
$sSqlCount = "SELECT * FROM " . $this->sTableName;
|
|
$this->oDB->query($sSqlCount);
|
|
$iAnz = $this->oDB->num_rows();
|
|
|
|
return $iAnz;
|
|
}
|
|
|
|
/**
|
|
* Drops table if table exists
|
|
*
|
|
* @return void
|
|
*/
|
|
public function dropTable() {
|
|
$sSqlDropTable = "";
|
|
$sSqlDropTable = "DROP TABLE IF EXISTS " . $this->sTableName;
|
|
$this->oDB->query($sSqlDropTable);
|
|
}
|
|
|
|
/**
|
|
* Deletes the row wich id of mod_history
|
|
*
|
|
* @return void
|
|
*/
|
|
public function deleteRows($iModHistory) {
|
|
$iModHistory = Contenido_Security::unFilter($iModHistory);
|
|
$sSql2 = "DELETE FROM " . $this->sTableName .
|
|
" WHERE idmodhistory = " . $iModHistory;
|
|
$this->oDB->query($sSql2);
|
|
}
|
|
|
|
}
|
|
|
|
?>
|