* @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.6 * * {@internal * created 2003 * modified 2008-06-26, Frederic Schneider, add security fix * * $Id$: * }} * */ if(!defined('CON_FRAMEWORK')) { die('Illegal call'); } cInclude ("includes", "functions.tpl.php"); cInclude ("includes", "functions.con.php"); /** * Edit or Create a new layout * * @param int $idlay Id of the Layout * @param string $name Name of the Layout * @param string $description Description of the Layout * @param string $code Layout HTML Code * @return int $idlay Id of the new or edited Layout * * @author Olaf Niemann * @copryright four for business AG */ function layEditLayout($idlay, $name, $description, $code) { global $client, $auth, $cfg, $cfgClient; $db = new DB_ConLite(); $date = date("Y-m-d H:i:s"); $author = $auth->auth["uname"]; $description = stripslashes($description); $code = addslashes($code); if (strlen(trim($name)) == 0) { $name = i18n('-- Unnamed Layout --'); } /** * START TRACK VERSION **/ $oVersion = new VersionLayout($idlay, $cfg, $cfgClient, $db, $client, $area, $frame); // Create new Layout Version in cms/version/layout/ $oVersion->createNewVersion(); /** * END TRACK VERSION **/ if (!$idlay) { $tmp_newid = $db->nextid($cfg["tab"]["lay"]); $idlay = $tmp_newid; $sql = "INSERT INTO ".$cfg["tab"]["lay"]." (idlay,name, description, deletable, code, idclient, author, created, lastmodified) VALUES ('".Contenido_Security::toInteger($tmp_newid)."', '".Contenido_Security::escapeDB($name, $db)."', '".Contenido_Security::escapeDB($description, $db)."', '1', '".$code."', '".Contenido_Security::toInteger($client)."', '".Contenido_Security::escapeDB($author, $db)."', '".Contenido_Security::escapeDB($date, $db)."', '".Contenido_Security::escapeDB($date, $db)."')"; $db->query($sql); // set correct rights for element cInclude ("includes", "functions.rights.php"); createRightsForElement("lay", $idlay); return $idlay; } else { $sql = "UPDATE ".$cfg["tab"]["lay"]." SET name='".Contenido_Security::escapeDB($name, $db)."', description='".Contenido_Security::escapeDB($description, $db)."', code='".$code."', author='".Contenido_Security::escapeDB($author, $db)."', lastmodified='".Contenido_Security::escapeDB($date, $db)."' WHERE idlay='".Contenido_Security::toInteger($idlay)."'"; $db->query($sql); /* Update CODE table*/ conGenerateCodeForAllartsUsingLayout($idlay); return $idlay; } } function layDeleteLayout($idlay) { global $db; global $client; global $cfg; global $area_tree; global $perm; $sql = "SELECT * FROM ".$cfg["tab"]["tpl"]." WHERE idlay='".Contenido_Security::toInteger($idlay)."'"; $db->query($sql); if ($db->next_record()) { return "0301"; // layout is still in use, you cannot delete it } else { $sql = "DELETE FROM ".$cfg["tab"]["lay"]." WHERE idlay='".Contenido_Security::toInteger($idlay)."'"; $db->query($sql); } // delete rights for element cInclude ("includes", "functions.rights.php"); deleteRightsForElement("lay", $idlay); } ?>