fixes PHP 7.3
Dieser Commit ist enthalten in:
Ursprung
4ca038a0df
Commit
06b4a295fb
6 geänderte Dateien mit 508 neuen und 549 gelöschten Zeilen
|
@ -1,33 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
|
||||||
* Project:
|
|
||||||
* Contenido Content Management System
|
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* HTML parser for contenido
|
|
||||||
*
|
|
||||||
* Requirements:
|
|
||||||
* @con_php_req 5.0
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @package Contenido Backend classes
|
|
||||||
* @version 1.0.2
|
|
||||||
* @author Starnetsys, LLC.
|
|
||||||
* @copyright Starnetsys, LLC.
|
|
||||||
* @link http://starnetsys.com
|
|
||||||
* @since file available since contenido release <= 4.6
|
|
||||||
*
|
|
||||||
* {@internal
|
|
||||||
* created unknown
|
|
||||||
* modified 2008-07-02, Frederic Schneider, add security fix
|
|
||||||
* modified 2009-10-23, Murat Purc, removed deprecated function (PHP 5.3 ready)
|
|
||||||
*
|
|
||||||
* $Id$:
|
|
||||||
* }}
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(!defined('CON_FRAMEWORK')) {
|
if (!defined('CON_FRAMEWORK')) {
|
||||||
die('Illegal call');
|
die('Illegal call');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,12 +12,12 @@ if(!defined('CON_FRAMEWORK')) {
|
||||||
* website design and software consulting.
|
* website design and software consulting.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define ("NODE_TYPE_START",0);
|
define("NODE_TYPE_START", 0);
|
||||||
define ("NODE_TYPE_ELEMENT",1);
|
define("NODE_TYPE_ELEMENT", 1);
|
||||||
define ("NODE_TYPE_ENDELEMENT",2);
|
define("NODE_TYPE_ENDELEMENT", 2);
|
||||||
define ("NODE_TYPE_TEXT",3);
|
define("NODE_TYPE_TEXT", 3);
|
||||||
define ("NODE_TYPE_COMMENT",4);
|
define("NODE_TYPE_COMMENT", 4);
|
||||||
define ("NODE_TYPE_DONE",5);
|
define("NODE_TYPE_DONE", 5);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class HtmlParser.
|
* Class HtmlParser.
|
||||||
|
@ -79,7 +52,6 @@ class HtmlParser {
|
||||||
* of the current node. Indexes are always lowercase.
|
* of the current node. Indexes are always lowercase.
|
||||||
*/
|
*/
|
||||||
var $iNodeAttributes;
|
var $iNodeAttributes;
|
||||||
|
|
||||||
// The following fields should be
|
// The following fields should be
|
||||||
// considered private:
|
// considered private:
|
||||||
|
|
||||||
|
@ -87,13 +59,12 @@ class HtmlParser {
|
||||||
var $iHtmlTextLength;
|
var $iHtmlTextLength;
|
||||||
var $iHtmlTextIndex = 0;
|
var $iHtmlTextIndex = 0;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
* Constructs an HtmlParser instance with
|
* Constructs an HtmlParser instance with
|
||||||
* the HTML text given.
|
* the HTML text given.
|
||||||
*/
|
*/
|
||||||
function __construct ($aHtmlText) {
|
function __construct($aHtmlText) {
|
||||||
$this->iHtmlText = $aHtmlText;
|
$this->iHtmlText = $aHtmlText;
|
||||||
$this->iHtmlTextLength = strlen($aHtmlText);
|
$this->iHtmlTextLength = strlen($aHtmlText);
|
||||||
}
|
}
|
||||||
|
@ -124,20 +95,19 @@ class HtmlParser {
|
||||||
$this->iNodeType = NODE_TYPE_DONE;
|
$this->iNodeType = NODE_TYPE_DONE;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$this->skipInTag ("<");
|
$this->skipInTag("<");
|
||||||
$this->clearAttributes();
|
$this->clearAttributes();
|
||||||
$name = $this->skipToBlanksInTag();
|
$name = $this->skipToBlanksInTag();
|
||||||
$pos = strpos($name, "/");
|
$pos = strpos($name, "/");
|
||||||
if ($pos === 0) {
|
if ($pos === 0) {
|
||||||
$this->iNodeType = NODE_TYPE_ENDELEMENT;
|
$this->iNodeType = NODE_TYPE_ENDELEMENT;
|
||||||
$this->iNodeName = substr ($name, 1);
|
$this->iNodeName = substr($name, 1);
|
||||||
$this->iNodeValue = "";
|
$this->iNodeValue = "";
|
||||||
}
|
} else {
|
||||||
else {
|
if (!$this->isValidTagIdentifier($name)) {
|
||||||
if (!$this->isValidTagIdentifier ($name)) {
|
|
||||||
$comment = false;
|
$comment = false;
|
||||||
if ($name == "!--") {
|
if ($name == "!--") {
|
||||||
$rest = $this->skipToStringInTag ("-->");
|
$rest = $this->skipToStringInTag("-->");
|
||||||
if ($rest != "") {
|
if ($rest != "") {
|
||||||
$this->iNodeType = NODE_TYPE_COMMENT;
|
$this->iNodeType = NODE_TYPE_COMMENT;
|
||||||
$this->iNodeName = "Comment";
|
$this->iNodeName = "Comment";
|
||||||
|
@ -151,15 +121,13 @@ class HtmlParser {
|
||||||
$this->iNodeValue = "<" . $name;
|
$this->iNodeValue = "<" . $name;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$this->iNodeType = NODE_TYPE_ELEMENT;
|
$this->iNodeType = NODE_TYPE_ELEMENT;
|
||||||
$this->iNodeValue = "";
|
$this->iNodeValue = "";
|
||||||
$nameLength = strlen($name);
|
$nameLength = strlen($name);
|
||||||
if ($nameLength > 0 && substr($name, $nameLength - 1, 1) == "/") {
|
if ($nameLength > 0 && substr($name, $nameLength - 1, 1) == "/") {
|
||||||
$this->iNodeName = substr($name, 0, $nameLength - 1);
|
$this->iNodeName = substr($name, 0, $nameLength - 1);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$this->iNodeName = $name;
|
$this->iNodeName = $name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -173,8 +141,7 @@ class HtmlParser {
|
||||||
$this->skipBlanksInTag();
|
$this->skipBlanksInTag();
|
||||||
$value = $this->readValueInTag();
|
$value = $this->readValueInTag();
|
||||||
$this->iNodeAttributes[strtolower($attrName)] = $value;
|
$this->iNodeAttributes[strtolower($attrName)] = $value;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$this->iNodeAttributes[strtolower($attrName)] = "";
|
$this->iNodeAttributes[strtolower($attrName)] = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -183,40 +150,38 @@ class HtmlParser {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isValidTagIdentifier ($name) {
|
function isValidTagIdentifier($name) {
|
||||||
return preg_match('/[A-Za-z0-9]+/', $name);
|
return preg_match('/[A-Za-z0-9]+/', $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
function skipBlanksInTag() {
|
function skipBlanksInTag() {
|
||||||
return "" != ($this->skipInTag (array (" ", "\t", "\r", "\n" )));
|
return "" != ($this->skipInTag(array(" ", "\t", "\r", "\n")));
|
||||||
}
|
}
|
||||||
|
|
||||||
function skipToBlanksOrEqualsInTag() {
|
function skipToBlanksOrEqualsInTag() {
|
||||||
return $this->skipToInTag (array (" ", "\t", "\r", "\n", "=" ));
|
return $this->skipToInTag(array(" ", "\t", "\r", "\n", "="));
|
||||||
}
|
}
|
||||||
|
|
||||||
function skipToBlanksInTag() {
|
function skipToBlanksInTag() {
|
||||||
return $this->skipToInTag (array (" ", "\t", "\r", "\n" ));
|
return $this->skipToInTag(array(" ", "\t", "\r", "\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
function skipEqualsInTag() {
|
function skipEqualsInTag() {
|
||||||
return $this->skipInTag (array ( "=" ));
|
return $this->skipInTag(array("="));
|
||||||
}
|
}
|
||||||
|
|
||||||
function readValueInTag() {
|
function readValueInTag() {
|
||||||
$ch = $this->currentChar();
|
$ch = $this->currentChar();
|
||||||
$value = "";
|
$value = "";
|
||||||
if ($ch == "\"") {
|
if ($ch == "\"") {
|
||||||
$this->skipInTag (array ( "\"" ));
|
$this->skipInTag(array("\""));
|
||||||
$value = $this->skipToInTag (array ( "\"" ));
|
$value = $this->skipToInTag(array("\""));
|
||||||
$this->skipInTag (array ( "\"" ));
|
$this->skipInTag(array("\""));
|
||||||
}
|
} else if ($ch == "\'") {
|
||||||
else if ($ch == "\'") {
|
$this->skipInTag(array("\'"));
|
||||||
$this->skipInTag (array ( "\'" ));
|
$value = $this->skipToInTag(array("\'"));
|
||||||
$value = $this->skipToInTag (array ( "\'" ));
|
$this->skipInTag(array("\'"));
|
||||||
$this->skipInTag (array ( "\'" ));
|
} else {
|
||||||
}
|
|
||||||
else {
|
|
||||||
$value = $this->skipToBlanksInTag();
|
$value = $this->skipToBlanksInTag();
|
||||||
}
|
}
|
||||||
return $value;
|
return $value;
|
||||||
|
@ -233,8 +198,7 @@ class HtmlParser {
|
||||||
if ($this->iHtmlTextIndex < $this->iHtmlTextLength) {
|
if ($this->iHtmlTextIndex < $this->iHtmlTextLength) {
|
||||||
$this->iHtmlTextIndex++;
|
$this->iHtmlTextIndex++;
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -252,14 +216,19 @@ class HtmlParser {
|
||||||
return $sb;
|
return $sb;
|
||||||
}
|
}
|
||||||
|
|
||||||
function skipInTag ($chars) {
|
function skipInTag($chars) {
|
||||||
$sb = "";
|
$sb = "";
|
||||||
while (($ch = $this->currentChar()) !== -1) {
|
while (($ch = $this->currentChar()) !== -1) {
|
||||||
if ($ch == ">") {
|
if ($ch == ">") {
|
||||||
return $sb;
|
return $sb;
|
||||||
} else {
|
} else {
|
||||||
$match = false;
|
$match = false;
|
||||||
for ($idx = 0; $idx < count($chars); $idx++) {
|
if(is_countable($chars)) {
|
||||||
|
$int_cnt_chars = count($chars);
|
||||||
|
} else {
|
||||||
|
$int_cnt_chars = strlen($chars);
|
||||||
|
}
|
||||||
|
for ($idx = 0; $idx < $int_cnt_chars; $idx++) {
|
||||||
if ($ch == $chars[$idx]) {
|
if ($ch == $chars[$idx]) {
|
||||||
$match = true;
|
$match = true;
|
||||||
break;
|
break;
|
||||||
|
@ -275,12 +244,17 @@ class HtmlParser {
|
||||||
return $sb;
|
return $sb;
|
||||||
}
|
}
|
||||||
|
|
||||||
function skipToInTag ($chars) {
|
function skipToInTag($chars) {
|
||||||
$sb = "";
|
$sb = "";
|
||||||
while (($ch = $this->currentChar()) !== -1) {
|
while (($ch = $this->currentChar()) !== -1) {
|
||||||
$match = $ch == ">";
|
$match = $ch == ">";
|
||||||
if (!$match) {
|
if (!$match) {
|
||||||
for ($idx = 0; $idx < count($chars); $idx++) {
|
if(is_countable($chars)) {
|
||||||
|
$int_cnt_chars = count($chars);
|
||||||
|
} else {
|
||||||
|
$int_cnt_chars = strlen($chars);
|
||||||
|
}
|
||||||
|
for ($idx = 0; $idx < $int_cnt_chars; $idx++) {
|
||||||
if ($ch == $chars[$idx]) {
|
if ($ch == $chars[$idx]) {
|
||||||
$match = true;
|
$match = true;
|
||||||
break;
|
break;
|
||||||
|
@ -314,16 +288,15 @@ class HtmlParser {
|
||||||
* after the location of $needle, or not moved at all
|
* after the location of $needle, or not moved at all
|
||||||
* if nothing is found.
|
* if nothing is found.
|
||||||
*/
|
*/
|
||||||
function skipToStringInTag ($needle) {
|
function skipToStringInTag($needle) {
|
||||||
$pos = strpos ($this->iHtmlText, $needle, $this->iHtmlTextIndex);
|
$pos = strpos($this->iHtmlText, $needle, $this->iHtmlTextIndex);
|
||||||
if ($pos === false) {
|
if ($pos === false) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
$top = $pos + strlen($needle);
|
$top = $pos + strlen($needle);
|
||||||
$retvalue = substr ($this->iHtmlText, $this->iHtmlTextIndex, $top - $this->iHtmlTextIndex);
|
$retvalue = substr($this->iHtmlText, $this->iHtmlTextIndex, $top - $this->iHtmlTextIndex);
|
||||||
$this->iHtmlTextIndex = $top;
|
$this->iHtmlTextIndex = $top;
|
||||||
return $retvalue;
|
return $retvalue;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
}
|
||||||
|
|
|
@ -328,7 +328,9 @@ class PropertyCollection extends ItemCollection
|
||||||
public function getAllValues($field, $fieldValue, $auth=NULL)
|
public function getAllValues($field, $fieldValue, $auth=NULL)
|
||||||
{
|
{
|
||||||
$authString = '';
|
$authString = '';
|
||||||
if (!is_null($auth) && sizeof($auth) > 0) {
|
if (!is_null($auth)
|
||||||
|
&& is_countable($auth)
|
||||||
|
&& sizeof($auth) > 0) {
|
||||||
$authString .= " AND author = '" . $auth->auth["uid"] . "'";
|
$authString .= " AND author = '" . $auth->auth["uid"] . "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ class cTinyMCEEditor extends cWYSIWYGEditor {
|
||||||
*/
|
*/
|
||||||
var $_bUseGZIP = false;
|
var $_bUseGZIP = false;
|
||||||
|
|
||||||
function cTinyMCEEditor($sEditorName, $sEditorContent) {
|
public function __construct($sEditorName, $sEditorContent) {
|
||||||
global $belang, $cfg, $cfgClient, $client, $lang, $idart;
|
global $belang, $cfg, $cfgClient, $client, $lang, $idart;
|
||||||
|
|
||||||
parent::__construct($sEditorName, $sEditorContent);
|
parent::__construct($sEditorName, $sEditorContent);
|
||||||
|
|
|
@ -1,6 +1,38 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PHP 7.3 functions for older PHP versions
|
||||||
|
*
|
||||||
|
* @package Core
|
||||||
|
* @subpackage functions
|
||||||
|
* @version $Rev$
|
||||||
|
* @since 2.0.3
|
||||||
|
* @author Ortwin Pinke <o.pinke@conlite.org>
|
||||||
|
* @copyright (c) 2019, conlite.org
|
||||||
|
* @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version)
|
||||||
|
* @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version)
|
||||||
|
* @link http://www.conlite.org ConLite.org
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
// security check
|
||||||
|
defined('CON_FRAMEWORK') or die('Illegal call');
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('is_countable')) {
|
if (!function_exists('is_countable')) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify that the contents of a variable is a countable value
|
||||||
|
* <p>Verify that the contents of a variable is an <code>array</code> or an object implementing Countable</p>
|
||||||
|
* @param mixed $var <p>The value to check</p>
|
||||||
|
* @return bool <p>Returns <b><code>TRUE</code></b> if <code>var</code> is countable, <b><code>FALSE</code></b> otherwise.</p>
|
||||||
|
* @link http://php.net/manual/en/function.is-countable.php
|
||||||
|
*
|
||||||
|
* @param Countable $var
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
function is_countable($var) {
|
function is_countable($var) {
|
||||||
return (is_array($var) || $var instanceof Countable);
|
return (is_array($var) || $var instanceof Countable);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Project:
|
* Project:
|
||||||
* Contenido Content Management System
|
* Contenido Content Management System
|
||||||
|
@ -29,12 +30,11 @@
|
||||||
* }}
|
* }}
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
if (!defined('CON_FRAMEWORK')) {
|
||||||
if(!defined('CON_FRAMEWORK')) {
|
|
||||||
die('Illegal call');
|
die('Illegal call');
|
||||||
}
|
}
|
||||||
|
|
||||||
cInclude ("includes", "functions.con.php");
|
cInclude("includes", "functions.con.php");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Edit or create a new Template
|
* Edit or create a new Template
|
||||||
|
@ -43,8 +43,7 @@ cInclude ("includes", "functions.con.php");
|
||||||
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
|
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
|
||||||
* @copyright four for business AG <www.4fb.de>
|
* @copyright four for business AG <www.4fb.de>
|
||||||
*/
|
*/
|
||||||
function tplEditTemplate($changelayout, $idtpl, $name, $description, $idlay, $c, $default)
|
function tplEditTemplate($changelayout, $idtpl, $name, $description, $idlay, $c, $default) {
|
||||||
{
|
|
||||||
|
|
||||||
global $db;
|
global $db;
|
||||||
global $sess;
|
global $sess;
|
||||||
|
@ -54,10 +53,10 @@ function tplEditTemplate($changelayout, $idtpl, $name, $description, $idlay, $c,
|
||||||
global $area_tree;
|
global $area_tree;
|
||||||
global $perm;
|
global $perm;
|
||||||
|
|
||||||
$db2= new DB_ConLite;
|
$db2 = new DB_ConLite;
|
||||||
|
|
||||||
$date = date("YmdHis");
|
$date = date("YmdHis");
|
||||||
$author = "".$auth->auth["uname"]."";
|
$author = "" . $auth->auth["uname"] . "";
|
||||||
|
|
||||||
//******** entry in 'tpl'-table ***************
|
//******** entry in 'tpl'-table ***************
|
||||||
set_magic_quotes_gpc($name);
|
set_magic_quotes_gpc($name);
|
||||||
|
@ -70,67 +69,63 @@ function tplEditTemplate($changelayout, $idtpl, $name, $description, $idlay, $c,
|
||||||
|
|
||||||
/* Insert new entry in the
|
/* Insert new entry in the
|
||||||
Template Conf table */
|
Template Conf table */
|
||||||
$sql = "INSERT INTO ".$cfg["tab"]["tpl_conf"]."
|
$sql = "INSERT INTO " . $cfg["tab"]["tpl_conf"] . "
|
||||||
(idtplcfg, idtpl, author) VALUES
|
(idtplcfg, idtpl, author) VALUES
|
||||||
('".Contenido_Security::toInteger($idtplcfg)."', '".Contenido_Security::toInteger($idtpl)."', '".Contenido_Security::escapeDB($auth->auth["uname"], $db)."')";
|
('" . Contenido_Security::toInteger($idtplcfg) . "', '" . Contenido_Security::toInteger($idtpl) . "', '" . Contenido_Security::escapeDB($auth->auth["uname"], $db) . "')";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
/* Insert new entry in the
|
/* Insert new entry in the
|
||||||
Template table */
|
Template table */
|
||||||
$sql = "INSERT INTO ".$cfg["tab"]["tpl"]."
|
$sql = "INSERT INTO " . $cfg["tab"]["tpl"] . "
|
||||||
(idtpl, idtplcfg, name, description, deletable, idlay, idclient, author, created, lastmodified) VALUES
|
(idtpl, idtplcfg, name, description, deletable, idlay, idclient, author, created, lastmodified) VALUES
|
||||||
('".Contenido_Security::toInteger($idtpl)."', '".Contenido_Security::toInteger($idtplcfg)."', '".Contenido_Security::escapeDB($name, $db)."', '".Contenido_Security::escapeDB($description, $db)."',
|
('" . Contenido_Security::toInteger($idtpl) . "', '" . Contenido_Security::toInteger($idtplcfg) . "', '" . Contenido_Security::escapeDB($name, $db) . "', '" . Contenido_Security::escapeDB($description, $db) . "',
|
||||||
'1', '".Contenido_Security::toInteger($idlay)."', '".Contenido_Security::toInteger($client)."', '".Contenido_Security::escapeDB($author, $db)."', '".Contenido_Security::escapeDB($date, $db)."',
|
'1', '" . Contenido_Security::toInteger($idlay) . "', '" . Contenido_Security::toInteger($client) . "', '" . Contenido_Security::escapeDB($author, $db) . "', '" . Contenido_Security::escapeDB($date, $db) . "',
|
||||||
'".Contenido_Security::escapeDB($date, $db)."')";
|
'" . Contenido_Security::escapeDB($date, $db) . "')";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
// set correct rights for element
|
// set correct rights for element
|
||||||
cInclude ("includes", "functions.rights.php");
|
cInclude("includes", "functions.rights.php");
|
||||||
createRightsForElement("tpl", $idtpl);
|
createRightsForElement("tpl", $idtpl);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* Update */
|
/* Update */
|
||||||
$sql = "UPDATE ".$cfg["tab"]["tpl"]." SET name='".Contenido_Security::escapeDB($name, $db)."', description='".Contenido_Security::escapeDB($description, $db)."', idlay='".Contenido_Security::toInteger($idlay)."',
|
$sql = "UPDATE " . $cfg["tab"]["tpl"] . " SET name='" . Contenido_Security::escapeDB($name, $db) . "', description='" . Contenido_Security::escapeDB($description, $db) . "', idlay='" . Contenido_Security::toInteger($idlay) . "',
|
||||||
author='".Contenido_Security::escapeDB($author, $db)."', lastmodified='".Contenido_Security::escapeDB($date, $db)."' WHERE idtpl='".Contenido_Security::toInteger($idtpl)."'";
|
author='" . Contenido_Security::escapeDB($author, $db) . "', lastmodified='" . Contenido_Security::escapeDB($date, $db) . "' WHERE idtpl='" . Contenido_Security::toInteger($idtpl) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
if (is_array($c)) {
|
if (is_array($c)) {
|
||||||
|
|
||||||
/* Delete all container assigned to this template */
|
/* Delete all container assigned to this template */
|
||||||
$sql = "DELETE FROM ".$cfg["tab"]["container"]." WHERE idtpl='".Contenido_Security::toInteger($idtpl, $db)."'";
|
$sql = "DELETE FROM " . $cfg["tab"]["container"] . " WHERE idtpl='" . Contenido_Security::toInteger($idtpl, $db) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
foreach($c as $idcontainer => $dummyval) {
|
foreach ($c as $idcontainer => $dummyval) {
|
||||||
|
|
||||||
$sql = "INSERT INTO ".$cfg["tab"]["container"]." (idcontainer, idtpl, number, idmod) VALUES ";
|
$sql = "INSERT INTO " . $cfg["tab"]["container"] . " (idcontainer, idtpl, number, idmod) VALUES ";
|
||||||
$sql .= "(";
|
$sql .= "(";
|
||||||
$sql .= "'".Contenido_Security::toInteger($db->nextid($cfg["tab"]["container"]))."', ";
|
$sql .= "'" . Contenido_Security::toInteger($db->nextid($cfg["tab"]["container"])) . "', ";
|
||||||
$sql .= "'".Contenido_Security::toInteger($idtpl)."', ";
|
$sql .= "'" . Contenido_Security::toInteger($idtpl) . "', ";
|
||||||
$sql .= "'".Contenido_Security::toInteger($idcontainer)."', ";
|
$sql .= "'" . Contenido_Security::toInteger($idcontainer) . "', ";
|
||||||
$sql .= "'".Contenido_Security::toInteger($c[$idcontainer])."'";
|
$sql .= "'" . Contenido_Security::toInteger($c[$idcontainer]) . "'";
|
||||||
$sql .= ") ";
|
$sql .= ") ";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generate code */
|
/* Generate code */
|
||||||
conGenerateCodeForAllartsUsingTemplate($idtpl);
|
conGenerateCodeForAllartsUsingTemplate($idtpl);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($default == 1)
|
if ($default == 1) {
|
||||||
{
|
$sql = "UPDATE " . $cfg["tab"]["tpl"] . " SET defaulttemplate = '0' WHERE idclient = '" . Contenido_Security::toInteger($client) . "'";
|
||||||
$sql = "UPDATE ".$cfg["tab"]["tpl"]." SET defaulttemplate = '0' WHERE idclient = '".Contenido_Security::toInteger($client)."'";
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
$sql = "UPDATE ".$cfg["tab"]["tpl"]." SET defaulttemplate = '1' WHERE idtpl = '".Contenido_Security::toInteger($idtpl)."' AND idclient = '".Contenido_Security::toInteger($client)."'";
|
$sql = "UPDATE " . $cfg["tab"]["tpl"] . " SET defaulttemplate = '1' WHERE idtpl = '" . Contenido_Security::toInteger($idtpl) . "' AND idclient = '" . Contenido_Security::toInteger($client) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
} else {
|
} else {
|
||||||
$sql = "UPDATE ".$cfg["tab"]["tpl"]." SET defaulttemplate = '0' WHERE idtpl = '".Contenido_Security::toInteger($idtpl)."' AND idclient = '".Contenido_Security::toInteger($client)."'";
|
$sql = "UPDATE " . $cfg["tab"]["tpl"] . " SET defaulttemplate = '0' WHERE idtpl = '" . Contenido_Security::toInteger($idtpl) . "' AND idclient = '" . Contenido_Security::toInteger($client) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +137,6 @@ function tplEditTemplate($changelayout, $idtpl, $name, $description, $idlay, $c,
|
||||||
}
|
}
|
||||||
|
|
||||||
return $idtpl;
|
return $idtpl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -159,37 +153,34 @@ function tplDeleteTemplate($idtpl) {
|
||||||
|
|
||||||
global $db, $client, $lang, $cfg, $area_tree, $perm;
|
global $db, $client, $lang, $cfg, $area_tree, $perm;
|
||||||
|
|
||||||
$sql = "DELETE FROM ".$cfg["tab"]["tpl"]." WHERE idtpl='".Contenido_Security::toInteger($idtpl)."'";
|
$sql = "DELETE FROM " . $cfg["tab"]["tpl"] . " WHERE idtpl='" . Contenido_Security::toInteger($idtpl) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
/* JL 160603 : Delete all unnecessary entries */
|
/* JL 160603 : Delete all unnecessary entries */
|
||||||
|
|
||||||
$sql = "DELETE FROM ".$cfg["tab"]["container"]." WHERE idtpl = '".Contenido_Security::toInteger($idtpl)."'";
|
$sql = "DELETE FROM " . $cfg["tab"]["container"] . " WHERE idtpl = '" . Contenido_Security::toInteger($idtpl) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
$idsToDelete = array();
|
$idsToDelete = array();
|
||||||
$sql = "SELECT idtplcfg FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtpl = '".Contenido_Security::toInteger($idtpl)."'";
|
$sql = "SELECT idtplcfg FROM " . $cfg["tab"]["tpl_conf"] . " WHERE idtpl = '" . Contenido_Security::toInteger($idtpl) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
while ( $db->next_record() ) {
|
while ($db->next_record()) {
|
||||||
$idsToDelete[] = $db->f("idtplcfg");
|
$idsToDelete[] = $db->f("idtplcfg");
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ( $idsToDelete as $id ) {
|
foreach ($idsToDelete as $id) {
|
||||||
|
|
||||||
$sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg = '".Contenido_Security::toInteger($id)."'";
|
$sql = "DELETE FROM " . $cfg["tab"]["tpl_conf"] . " WHERE idtplcfg = '" . Contenido_Security::toInteger($id) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
$sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".Contenido_Security::toInteger($id)."'";
|
$sql = "DELETE FROM " . $cfg["tab"]["container_conf"] . " WHERE idtplcfg = '" . Contenido_Security::toInteger($id) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cInclude ("includes", "functions.rights.php");
|
cInclude("includes", "functions.rights.php");
|
||||||
deleteRightsForElement("tpl", $idtpl);
|
deleteRightsForElement("tpl", $idtpl);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Browse a specific layout for containers
|
* Browse a specific layout for containers
|
||||||
*
|
*
|
||||||
|
@ -205,8 +196,8 @@ function tplBrowseLayoutForContainers($idlay, $raw_code = NULL) {
|
||||||
global $cfg;
|
global $cfg;
|
||||||
global $containerinf;
|
global $containerinf;
|
||||||
|
|
||||||
if(is_null($raw_code) || empty($raw_code)) {
|
if (is_null($raw_code) || empty($raw_code)) {
|
||||||
$sql = "SELECT code FROM ".$cfg["tab"]["lay"]." WHERE idlay='".Contenido_Security::toInteger($idlay)."'";
|
$sql = "SELECT code FROM " . $cfg["tab"]["lay"] . " WHERE idlay='" . Contenido_Security::toInteger($idlay) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
$db->next_record();
|
$db->next_record();
|
||||||
$code = $db->f("code");
|
$code = $db->f("code");
|
||||||
|
@ -214,7 +205,7 @@ function tplBrowseLayoutForContainers($idlay, $raw_code = NULL) {
|
||||||
$code = $raw_code;
|
$code = $raw_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
preg_match_all ("/CMS_CONTAINER\[([0-9]*)\]/", $code, $a_container);
|
preg_match_all("/CMS_CONTAINER\[([0-9]*)\]/", $code, $a_container);
|
||||||
$iPosBody = stripos($code, '<body>');
|
$iPosBody = stripos($code, '<body>');
|
||||||
$sCodeBeforeHeader = substr($code, 0, $iPosBody);
|
$sCodeBeforeHeader = substr($code, 0, $iPosBody);
|
||||||
|
|
||||||
|
@ -243,7 +234,7 @@ function tplBrowseLayoutForContainers($idlay, $raw_code = NULL) {
|
||||||
asort($container);
|
asort($container);
|
||||||
|
|
||||||
if (is_array($container)) {
|
if (is_array($container)) {
|
||||||
$tmp_returnstring = implode("&",$container);
|
$tmp_returnstring = implode("&", $container);
|
||||||
}
|
}
|
||||||
return $tmp_returnstring;
|
return $tmp_returnstring;
|
||||||
}
|
}
|
||||||
|
@ -256,16 +247,13 @@ function tplBrowseLayoutForContainers($idlay, $raw_code = NULL) {
|
||||||
*
|
*
|
||||||
* @return string Container name
|
* @return string Container name
|
||||||
*/
|
*/
|
||||||
function tplGetContainerName($idlay, $container)
|
function tplGetContainerName($idlay, $container) {
|
||||||
{
|
|
||||||
global $db;
|
global $db;
|
||||||
global $cfg;
|
global $cfg;
|
||||||
global $containerinf;
|
global $containerinf;
|
||||||
|
|
||||||
if (is_array($containerinf[$idlay]))
|
if (is_array($containerinf[$idlay])) {
|
||||||
{
|
if (array_key_exists($container, $containerinf[$idlay])) {
|
||||||
if (array_key_exists($container, $containerinf[$idlay]))
|
|
||||||
{
|
|
||||||
return $containerinf[$idlay][$container]["name"];
|
return $containerinf[$idlay][$container]["name"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -279,16 +267,13 @@ function tplGetContainerName($idlay, $container)
|
||||||
*
|
*
|
||||||
* @return string Container name
|
* @return string Container name
|
||||||
*/
|
*/
|
||||||
function tplGetContainerMode($idlay, $container)
|
function tplGetContainerMode($idlay, $container) {
|
||||||
{
|
|
||||||
global $db;
|
global $db;
|
||||||
global $cfg;
|
global $cfg;
|
||||||
global $containerinf;
|
global $containerinf;
|
||||||
|
|
||||||
if (is_array($containerinf[$idlay]))
|
if (is_array($containerinf[$idlay])) {
|
||||||
{
|
if (array_key_exists($container, $containerinf[$idlay])) {
|
||||||
if (array_key_exists($container, $containerinf[$idlay]))
|
|
||||||
{
|
|
||||||
return $containerinf[$idlay][$container]["mode"];
|
return $containerinf[$idlay][$container]["mode"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -302,22 +287,17 @@ function tplGetContainerMode($idlay, $container)
|
||||||
*
|
*
|
||||||
* @return array Allowed container types
|
* @return array Allowed container types
|
||||||
*/
|
*/
|
||||||
function tplGetContainerTypes($idlay, $container)
|
function tplGetContainerTypes($idlay, $container) {
|
||||||
{
|
|
||||||
global $db;
|
global $db;
|
||||||
global $cfg;
|
global $cfg;
|
||||||
global $containerinf;
|
global $containerinf;
|
||||||
|
|
||||||
if (is_array($containerinf[$idlay]))
|
if (is_array($containerinf[$idlay])) {
|
||||||
{
|
if (array_key_exists($container, $containerinf[$idlay])) {
|
||||||
if (array_key_exists($container, $containerinf[$idlay]))
|
if ($containerinf[$idlay][$container]["types"] != "") {
|
||||||
{
|
$list = explode(",", $containerinf[$idlay][$container]["types"]);
|
||||||
if ($containerinf[$idlay][$container]["types"] != "")
|
|
||||||
{
|
|
||||||
$list = explode(",",$containerinf[$idlay][$container]["types"]);
|
|
||||||
|
|
||||||
foreach ($list as $key => $value)
|
foreach ($list as $key => $value) {
|
||||||
{
|
|
||||||
$list[$key] = trim($value);
|
$list[$key] = trim($value);
|
||||||
}
|
}
|
||||||
return $list;
|
return $list;
|
||||||
|
@ -334,16 +314,13 @@ function tplGetContainerTypes($idlay, $container)
|
||||||
*
|
*
|
||||||
* @return array Allowed container types
|
* @return array Allowed container types
|
||||||
*/
|
*/
|
||||||
function tplGetContainerDefault($idlay, $container)
|
function tplGetContainerDefault($idlay, $container) {
|
||||||
{
|
|
||||||
global $db;
|
global $db;
|
||||||
global $cfg;
|
global $cfg;
|
||||||
global $containerinf;
|
global $containerinf;
|
||||||
|
|
||||||
if (is_array($containerinf[$idlay]))
|
if (is_array($containerinf[$idlay])) {
|
||||||
{
|
if (array_key_exists($container, $containerinf[$idlay])) {
|
||||||
if (array_key_exists($container, $containerinf[$idlay]))
|
|
||||||
{
|
|
||||||
return $containerinf[$idlay][$container]["default"];
|
return $containerinf[$idlay][$container]["default"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -356,13 +333,13 @@ function tplGetContainerDefault($idlay, $container)
|
||||||
*
|
*
|
||||||
* @return none
|
* @return none
|
||||||
*/
|
*/
|
||||||
function tplPreparseLayout ($idlay, $raw_code = NULL) {
|
function tplPreparseLayout($idlay, $raw_code = NULL) {
|
||||||
global $containerinf;
|
global $containerinf;
|
||||||
global $db;
|
global $db;
|
||||||
global $cfg;
|
global $cfg;
|
||||||
|
|
||||||
if(is_null($raw_code) || empty($raw_code)) {
|
if (is_null($raw_code) || empty($raw_code)) {
|
||||||
$sql = "SELECT code FROM ".$cfg["tab"]["lay"]." WHERE idlay='".Contenido_Security::toInteger($idlay)."'";
|
$sql = "SELECT code FROM " . $cfg["tab"]["lay"] . " WHERE idlay='" . Contenido_Security::toInteger($idlay) . "'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
$db->next_record();
|
$db->next_record();
|
||||||
$code = $db->f("code");
|
$code = $db->f("code");
|
||||||
|
@ -372,20 +349,17 @@ function tplPreparseLayout ($idlay, $raw_code = NULL) {
|
||||||
|
|
||||||
$parser = new HtmlParser($code);
|
$parser = new HtmlParser($code);
|
||||||
$bIsBody = false;
|
$bIsBody = false;
|
||||||
while ($parser->parse())
|
while ($parser->parse()) {
|
||||||
{
|
|
||||||
if (strtolower($parser->iNodeName) == 'body') {
|
if (strtolower($parser->iNodeName) == 'body') {
|
||||||
$bIsBody = true;
|
$bIsBody = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($parser->iNodeName == "container" && $parser->iNodeType == NODE_TYPE_ELEMENT)
|
if ($parser->iNodeName == "container" && $parser->iNodeType == NODE_TYPE_ELEMENT) {
|
||||||
{
|
|
||||||
$idcontainer = $parser->iNodeAttributes["id"];
|
$idcontainer = $parser->iNodeAttributes["id"];
|
||||||
|
|
||||||
$mode = $parser->iNodeAttributes["mode"];
|
$mode = $parser->iNodeAttributes["mode"];
|
||||||
|
|
||||||
if ($mode == "")
|
if ($mode == "") {
|
||||||
{
|
|
||||||
$mode = "optional";
|
$mode = "optional";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -417,9 +391,9 @@ function tplDuplicateTemplate($idtpl) {
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
*
|
*
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["tpl"]."
|
" . $cfg["tab"]["tpl"] . "
|
||||||
WHERE
|
WHERE
|
||||||
idtpl = '".Contenido_Security::toInteger($idtpl)."'";
|
idtpl = '" . Contenido_Security::toInteger($idtpl) . "'";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
$db->next_record();
|
$db->next_record();
|
||||||
|
@ -429,7 +403,7 @@ function tplDuplicateTemplate($idtpl) {
|
||||||
$new_idtpl = $db->nextid($cfg["tab"]["tpl"]);
|
$new_idtpl = $db->nextid($cfg["tab"]["tpl"]);
|
||||||
//modified (added) 2008-06-30 timo.trautmann added fix module settings were also copied
|
//modified (added) 2008-06-30 timo.trautmann added fix module settings were also copied
|
||||||
$idtpl_conf = $db->f("idtplcfg");
|
$idtpl_conf = $db->f("idtplcfg");
|
||||||
if($idtpl_conf) {
|
if ($idtpl_conf) {
|
||||||
$new_idtpl_conf = $db->nextid($cfg["tab"]["tpl_conf"]);
|
$new_idtpl_conf = $db->nextid($cfg["tab"]["tpl_conf"]);
|
||||||
}
|
}
|
||||||
//modified (added) 2008-06-30 end
|
//modified (added) 2008-06-30 end
|
||||||
|
@ -441,11 +415,11 @@ function tplDuplicateTemplate($idtpl) {
|
||||||
|
|
||||||
//modified (added) 2008-06-30 : idtplcfg -> $new_idtpl
|
//modified (added) 2008-06-30 : idtplcfg -> $new_idtpl
|
||||||
$sql = "INSERT INTO
|
$sql = "INSERT INTO
|
||||||
".$cfg["tab"]["tpl"]."
|
" . $cfg["tab"]["tpl"] . "
|
||||||
(idclient, idlay, idtpl, ".($idtpl_conf?'idtplcfg,':'')." name, description, deletable,author, created, lastmodified)
|
(idclient, idlay, idtpl, " . ($idtpl_conf ? 'idtplcfg,' : '') . " name, description, deletable,author, created, lastmodified)
|
||||||
VALUES
|
VALUES
|
||||||
('".Contenido_Security::toInteger($idclient)."', '".Contenido_Security::toInteger($idlay)."', '".Contenido_Security::toInteger($new_idtpl)."', ".($idtpl_conf?"'".Contenido_Security::toInteger($new_idtpl_conf)."', ":'')." '".Contenido_Security::escapeDB($name, $db)."',
|
('" . Contenido_Security::toInteger($idclient) . "', '" . Contenido_Security::toInteger($idlay) . "', '" . Contenido_Security::toInteger($new_idtpl) . "', " . ($idtpl_conf ? "'" . Contenido_Security::toInteger($new_idtpl_conf) . "', " : '') . " '" . Contenido_Security::escapeDB($name, $db) . "',
|
||||||
'".Contenido_Security::escapeDB($descr, $db)."', '1', '".Contenido_Security::escapeDB($author, $db)."', '".Contenido_Security::escapeDB($created, $db)."', '".Contenido_Security::escapeDB($lastmod, $db)."')";
|
'" . Contenido_Security::escapeDB($descr, $db) . "', '1', '" . Contenido_Security::escapeDB($author, $db) . "', '" . Contenido_Security::escapeDB($created, $db) . "', '" . Contenido_Security::escapeDB($lastmod, $db) . "')";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
$a_containers = array();
|
$a_containers = array();
|
||||||
|
@ -453,9 +427,9 @@ function tplDuplicateTemplate($idtpl) {
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
*
|
*
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["container"]."
|
" . $cfg["tab"]["container"] . "
|
||||||
WHERE
|
WHERE
|
||||||
idtpl = '".Contenido_Security::toInteger($idtpl)."'
|
idtpl = '" . Contenido_Security::toInteger($idtpl) . "'
|
||||||
ORDER BY
|
ORDER BY
|
||||||
number";
|
number";
|
||||||
|
|
||||||
|
@ -469,22 +443,21 @@ function tplDuplicateTemplate($idtpl) {
|
||||||
|
|
||||||
$nextid = $db->nextid($cfg["tab"]["container"]);
|
$nextid = $db->nextid($cfg["tab"]["container"]);
|
||||||
|
|
||||||
$sql = "INSERT INTO ".$cfg["tab"]["container"]."
|
$sql = "INSERT INTO " . $cfg["tab"]["container"] . "
|
||||||
(idcontainer, idtpl, number, idmod) VALUES ('".Contenido_Security::toInteger($nextid)."', '".Contenido_Security::toInteger($new_idtpl)."', '".Contenido_Security::toInteger($key)."', '".Contenido_Security::toInteger($value)."')";
|
(idcontainer, idtpl, number, idmod) VALUES ('" . Contenido_Security::toInteger($nextid) . "', '" . Contenido_Security::toInteger($new_idtpl) . "', '" . Contenido_Security::toInteger($key) . "', '" . Contenido_Security::toInteger($value) . "')";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//modified (added) 2008-06-30 timo.trautmann added fix module settings were also copied
|
//modified (added) 2008-06-30 timo.trautmann added fix module settings were also copied
|
||||||
if($idtpl_conf) {
|
if ($idtpl_conf) {
|
||||||
$a_container_cfg = array();
|
$a_container_cfg = array();
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
*
|
*
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["container_conf"]."
|
" . $cfg["tab"]["container_conf"] . "
|
||||||
WHERE
|
WHERE
|
||||||
idtplcfg = '".Contenido_Security::toInteger($idtpl_conf)."'
|
idtplcfg = '" . Contenido_Security::toInteger($idtpl_conf) . "'
|
||||||
ORDER BY
|
ORDER BY
|
||||||
number";
|
number";
|
||||||
|
|
||||||
|
@ -498,20 +471,18 @@ function tplDuplicateTemplate($idtpl) {
|
||||||
|
|
||||||
$nextid = $db->nextid($cfg["tab"]["container_conf"]);
|
$nextid = $db->nextid($cfg["tab"]["container_conf"]);
|
||||||
|
|
||||||
$sql = "INSERT INTO ".$cfg["tab"]["container_conf"]."
|
$sql = "INSERT INTO " . $cfg["tab"]["container_conf"] . "
|
||||||
(idcontainerc, idtplcfg, number, container) VALUES ('".Contenido_Security::toInteger($nextid)."', '".Contenido_Security::toInteger($new_idtpl_conf)."', '".Contenido_Security::escapeDB($key, $db)."', '".Contenido_Security::escapeDB($value, $db)."')";
|
(idcontainerc, idtplcfg, number, container) VALUES ('" . Contenido_Security::toInteger($nextid) . "', '" . Contenido_Security::toInteger($new_idtpl_conf) . "', '" . Contenido_Security::escapeDB($key, $db) . "', '" . Contenido_Security::escapeDB($value, $db) . "')";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//modified (added) 2008-06-30 end
|
//modified (added) 2008-06-30 end
|
||||||
|
|
||||||
cInclude ("includes", "functions.rights.php");
|
cInclude("includes", "functions.rights.php");
|
||||||
copyRightsForElement("tpl", $idtpl, $new_idtpl);
|
copyRightsForElement("tpl", $idtpl, $new_idtpl);
|
||||||
|
|
||||||
return $new_idtpl;
|
return $new_idtpl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -535,12 +506,12 @@ function tplIsTemplateInUse($idtpl) {
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
b.idcatlang, b.name, b.idlang, b.idcat
|
b.idcatlang, b.name, b.idlang, b.idcat
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["cat"]." AS a,
|
" . $cfg["tab"]["cat"] . " AS a,
|
||||||
".$cfg["tab"]["cat_lang"]." AS b
|
" . $cfg["tab"]["cat_lang"] . " AS b
|
||||||
WHERE
|
WHERE
|
||||||
a.idclient = '".Contenido_Security::toInteger($client)."' AND
|
a.idclient = '" . Contenido_Security::toInteger($client) . "' AND
|
||||||
a.idcat = b.idcat AND
|
a.idcat = b.idcat AND
|
||||||
b.idtplcfg IN (SELECT idtplcfg FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtpl = '".$idtpl."')
|
b.idtplcfg IN (SELECT idtplcfg FROM " . $cfg["tab"]["tpl_conf"] . " WHERE idtpl = '" . $idtpl . "')
|
||||||
ORDER BY b.idlang ASC, b.name ASC ";
|
ORDER BY b.idlang ASC, b.name ASC ";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
if ($db->Errno == '' && $db->num_rows() > 0) {
|
if ($db->Errno == '' && $db->num_rows() > 0) {
|
||||||
|
@ -551,12 +522,12 @@ function tplIsTemplateInUse($idtpl) {
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
b.idartlang, b.title, b.idlang, b.idart
|
b.idartlang, b.title, b.idlang, b.idart
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["art"]." AS a,
|
" . $cfg["tab"]["art"] . " AS a,
|
||||||
".$cfg["tab"]["art_lang"]." AS b
|
" . $cfg["tab"]["art_lang"] . " AS b
|
||||||
WHERE
|
WHERE
|
||||||
a.idclient = '".Contenido_Security::toInteger($client)."' AND
|
a.idclient = '" . Contenido_Security::toInteger($client) . "' AND
|
||||||
a.idart = b.idart AND
|
a.idart = b.idart AND
|
||||||
b.idtplcfg IN (SELECT idtplcfg FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtpl = '".$idtpl."')
|
b.idtplcfg IN (SELECT idtplcfg FROM " . $cfg["tab"]["tpl_conf"] . " WHERE idtpl = '" . $idtpl . "')
|
||||||
ORDER BY b.idlang ASC, b.title ASC ";
|
ORDER BY b.idlang ASC, b.title ASC ";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
@ -566,7 +537,6 @@ function tplIsTemplateInUse($idtpl) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -591,12 +561,12 @@ function tplGetInUsedData($idtpl) {
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
b.idcatlang, b.name, b.idlang, b.idcat
|
b.idcatlang, b.name, b.idlang, b.idcat
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["cat"]." AS a,
|
" . $cfg["tab"]["cat"] . " AS a,
|
||||||
".$cfg["tab"]["cat_lang"]." AS b
|
" . $cfg["tab"]["cat_lang"] . " AS b
|
||||||
WHERE
|
WHERE
|
||||||
a.idclient = '".Contenido_Security::toInteger($client)."' AND
|
a.idclient = '" . Contenido_Security::toInteger($client) . "' AND
|
||||||
a.idcat = b.idcat AND
|
a.idcat = b.idcat AND
|
||||||
b.idtplcfg IN (SELECT idtplcfg FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtpl = '".$idtpl."')
|
b.idtplcfg IN (SELECT idtplcfg FROM " . $cfg["tab"]["tpl_conf"] . " WHERE idtpl = '" . $idtpl . "')
|
||||||
ORDER BY b.idlang ASC, b.name ASC ";
|
ORDER BY b.idlang ASC, b.name ASC ";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
if ($db->Errno == 0 && $db->num_rows() > 0) {
|
if ($db->Errno == 0 && $db->num_rows() > 0) {
|
||||||
|
@ -613,12 +583,12 @@ function tplGetInUsedData($idtpl) {
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
b.idartlang, b.title, b.idlang, b.idart
|
b.idartlang, b.title, b.idlang, b.idart
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["art"]." AS a,
|
" . $cfg["tab"]["art"] . " AS a,
|
||||||
".$cfg["tab"]["art_lang"]." AS b
|
" . $cfg["tab"]["art_lang"] . " AS b
|
||||||
WHERE
|
WHERE
|
||||||
a.idclient = '".Contenido_Security::toInteger($client)."' AND
|
a.idclient = '" . Contenido_Security::toInteger($client) . "' AND
|
||||||
a.idart = b.idart AND
|
a.idart = b.idart AND
|
||||||
b.idtplcfg IN (SELECT idtplcfg FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtpl = '".$idtpl."')
|
b.idtplcfg IN (SELECT idtplcfg FROM " . $cfg["tab"]["tpl_conf"] . " WHERE idtpl = '" . $idtpl . "')
|
||||||
ORDER BY b.idlang ASC, b.title ASC ";
|
ORDER BY b.idlang ASC, b.title ASC ";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
@ -634,7 +604,6 @@ function tplGetInUsedData($idtpl) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return $aUsedData;
|
return $aUsedData;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -645,8 +614,7 @@ function tplGetInUsedData($idtpl) {
|
||||||
* @return int new template configuration ID
|
* @return int new template configuration ID
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function tplcfgDuplicate ($idtplcfg)
|
function tplcfgDuplicate($idtplcfg) {
|
||||||
{
|
|
||||||
global $cfg;
|
global $cfg;
|
||||||
|
|
||||||
$db = new DB_ConLite;
|
$db = new DB_ConLite;
|
||||||
|
@ -655,14 +623,13 @@ function tplcfgDuplicate ($idtplcfg)
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
idtpl, status, author, created, lastmodified
|
idtpl, status, author, created, lastmodified
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["tpl_conf"]."
|
" . $cfg["tab"]["tpl_conf"] . "
|
||||||
WHERE
|
WHERE
|
||||||
idtplcfg = '".Contenido_Security::toInteger($idtplcfg)."'";
|
idtplcfg = '" . Contenido_Security::toInteger($idtplcfg) . "'";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
if ($db->next_record())
|
if ($db->next_record()) {
|
||||||
{
|
|
||||||
$newidtplcfg = $db2->nextid($cfg["tab"]["tpl_conf"]);
|
$newidtplcfg = $db2->nextid($cfg["tab"]["tpl_conf"]);
|
||||||
$idtpl = $db->f("idtpl");
|
$idtpl = $db->f("idtpl");
|
||||||
$status = $db->f("status");
|
$status = $db->f("status");
|
||||||
|
@ -671,11 +638,11 @@ function tplcfgDuplicate ($idtplcfg)
|
||||||
$lastmodified = $db->f("lastmodified");
|
$lastmodified = $db->f("lastmodified");
|
||||||
|
|
||||||
$sql = "INSERT INTO
|
$sql = "INSERT INTO
|
||||||
".$cfg["tab"]["tpl_conf"]."
|
" . $cfg["tab"]["tpl_conf"] . "
|
||||||
(idtplcfg, idtpl, status, author, created, lastmodified)
|
(idtplcfg, idtpl, status, author, created, lastmodified)
|
||||||
VALUES
|
VALUES
|
||||||
('".Contenido_Security::toInteger($newidtplcfg)."', '".Contenido_Security::toInteger($idtpl)."', '".Contenido_Security::toInteger($status)."', '".Contenido_Security::escapeDB($author, $db2)."',
|
('" . Contenido_Security::toInteger($newidtplcfg) . "', '" . Contenido_Security::toInteger($idtpl) . "', '" . Contenido_Security::toInteger($status) . "', '" . Contenido_Security::escapeDB($author, $db2) . "',
|
||||||
'".Contenido_Security::escapeDB($created, $db2)."', '".Contenido_Security::escapeDB($lastmodified, $db2)."')";
|
'" . Contenido_Security::escapeDB($created, $db2) . "', '" . Contenido_Security::escapeDB($lastmodified, $db2) . "')";
|
||||||
|
|
||||||
$db2->query($sql);
|
$db2->query($sql);
|
||||||
|
|
||||||
|
@ -683,28 +650,26 @@ function tplcfgDuplicate ($idtplcfg)
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
number, container
|
number, container
|
||||||
FROM
|
FROM
|
||||||
".$cfg["tab"]["container_conf"]."
|
" . $cfg["tab"]["container_conf"] . "
|
||||||
WHERE idtplcfg = '".Contenido_Security::toInteger($idtplcfg)."'";
|
WHERE idtplcfg = '" . Contenido_Security::toInteger($idtplcfg) . "'";
|
||||||
|
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
while ($db->next_record())
|
while ($db->next_record()) {
|
||||||
{
|
|
||||||
$newidcontainerc = $db2->nextid($cfg["tab"]["container_conf"]);
|
$newidcontainerc = $db2->nextid($cfg["tab"]["container_conf"]);
|
||||||
$number = $db->f("number");
|
$number = $db->f("number");
|
||||||
$container = $db->f("container");
|
$container = $db->f("container");
|
||||||
|
|
||||||
$sql = "INSERT INTO
|
$sql = "INSERT INTO
|
||||||
".$cfg["tab"]["container_conf"]."
|
" . $cfg["tab"]["container_conf"] . "
|
||||||
(idcontainerc, idtplcfg, number, container)
|
(idcontainerc, idtplcfg, number, container)
|
||||||
VALUES
|
VALUES
|
||||||
('".Contenido_Security::toInteger($newidcontainerc)."', '".Contenido_Security::toInteger($newidtplcfg)."', '".Contenido_Security::toInteger($number)."', '".Contenido_Security::escapeDB($container, $db2)."')";
|
('" . Contenido_Security::toInteger($newidcontainerc) . "', '" . Contenido_Security::toInteger($newidtplcfg) . "', '" . Contenido_Security::toInteger($number) . "', '" . Contenido_Security::escapeDB($container, $db2) . "')";
|
||||||
$db2->query($sql);
|
$db2->query($sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ($newidtplcfg);
|
return ($newidtplcfg);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -719,70 +684,61 @@ function tplcfgDuplicate ($idtplcfg)
|
||||||
* is empty. We need a better logic for handling "changes".
|
* is empty. We need a better logic for handling "changes".
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function tplAutoFillModules ($idtpl)
|
function tplAutoFillModules($idtpl) {
|
||||||
{
|
|
||||||
global $cfg;
|
global $cfg;
|
||||||
global $db_autofill;
|
global $db_autofill;
|
||||||
global $containerinf;
|
global $containerinf;
|
||||||
global $_autoFillcontainerCache;
|
global $_autoFillcontainerCache;
|
||||||
|
|
||||||
if (!is_object($db_autofill))
|
if (!is_object($db_autofill)) {
|
||||||
{
|
|
||||||
$db_autofill = new DB_ConLite;
|
$db_autofill = new DB_ConLite;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT idlay FROM ".$cfg["tab"]["tpl"]." WHERE idtpl = '".Contenido_Security::toInteger($idtpl)."'";
|
$sql = "SELECT idlay FROM " . $cfg["tab"]["tpl"] . " WHERE idtpl = '" . Contenido_Security::toInteger($idtpl) . "'";
|
||||||
$db_autofill->query($sql);
|
$db_autofill->query($sql);
|
||||||
|
|
||||||
if (!$db_autofill->next_record())
|
if (!$db_autofill->next_record()) {
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$idlay = $db_autofill->f("idlay");
|
$idlay = $db_autofill->f("idlay");
|
||||||
|
|
||||||
if (!(is_array($containerinf) && array_key_exists($idlay, $containerinf) && array_key_exists($idlay, $_autoFillcontainerCache)))
|
if (!(is_array($containerinf) && array_key_exists($idlay, $containerinf) && array_key_exists($idlay, $_autoFillcontainerCache))) {
|
||||||
{
|
|
||||||
tplPreparseLayout($idlay);
|
tplPreparseLayout($idlay);
|
||||||
$_autoFillcontainerCache[$idlay] = tplBrowseLayoutForContainers($idlay);
|
$_autoFillcontainerCache[$idlay] = tplBrowseLayoutForContainers($idlay);
|
||||||
}
|
}
|
||||||
|
|
||||||
$a_container = explode("&",$_autoFillcontainerCache[$idlay]);
|
$a_container = explode("&", $_autoFillcontainerCache[$idlay]);
|
||||||
|
|
||||||
foreach ($a_container as $container)
|
foreach ($a_container as $container) {
|
||||||
{
|
switch ($containerinf[$idlay][$container]["mode"]) {
|
||||||
switch ($containerinf[$idlay][$container]["mode"])
|
|
||||||
{
|
|
||||||
/* Fixed mode */
|
/* Fixed mode */
|
||||||
case "fixed":
|
case "fixed":
|
||||||
if ($containerinf[$idlay][$container]["default"] != "")
|
if ($containerinf[$idlay][$container]["default"] != "") {
|
||||||
{
|
$sql = "SELECT idmod FROM " . $cfg["tab"]["mod"]
|
||||||
$sql = "SELECT idmod FROM ".$cfg["tab"]["mod"]
|
. " WHERE name = '" .
|
||||||
." WHERE name = '".
|
Contenido_Security::escapeDB($containerinf[$idlay][$container]["default"], $db_autofill) . "'";
|
||||||
Contenido_Security::escapeDB($containerinf[$idlay][$container]["default"], $db_autofill)."'";
|
|
||||||
|
|
||||||
$db_autofill->query($sql);
|
$db_autofill->query($sql);
|
||||||
|
|
||||||
if ($db_autofill->next_record())
|
if ($db_autofill->next_record()) {
|
||||||
{
|
|
||||||
$idmod = $db_autofill->f("idmod");
|
$idmod = $db_autofill->f("idmod");
|
||||||
|
|
||||||
|
|
||||||
$sql = "SELECT idcontainer FROM ".$cfg["tab"]["container"]." WHERE idtpl = '".Contenido_Security::toInteger($idtpl)."' AND number = '".Contenido_Security::toInteger($container)."'";
|
$sql = "SELECT idcontainer FROM " . $cfg["tab"]["container"] . " WHERE idtpl = '" . Contenido_Security::toInteger($idtpl) . "' AND number = '" . Contenido_Security::toInteger($container) . "'";
|
||||||
|
|
||||||
$db_autofill->query($sql);
|
$db_autofill->query($sql);
|
||||||
|
|
||||||
if ($db_autofill->next_record())
|
if ($db_autofill->next_record()) {
|
||||||
{
|
$sql = "UPDATE " . $cfg["tab"]["container"] .
|
||||||
$sql = "UPDATE ".$cfg["tab"]["container"].
|
" SET idmod = '" . Contenido_Security::toInteger($idmod) . "' WHERE idtpl = '" . Contenido_Security::toInteger($idtpl) . "'" .
|
||||||
" SET idmod = '".Contenido_Security::toInteger($idmod)."' WHERE idtpl = '".Contenido_Security::toInteger($idtpl)."'".
|
" AND number = '" . Contenido_Security::toInteger($container) . "' AND " .
|
||||||
" AND number = '".Contenido_Security::toInteger($container)."' AND ".
|
" idcontainer = '" . Contenido_Security::toInteger($db_autofill->f("idcontainer")) . "'";
|
||||||
" idcontainer = '".Contenido_Security::toInteger($db_autofill->f("idcontainer"))."'";
|
|
||||||
$db_autofill->query($sql);
|
$db_autofill->query($sql);
|
||||||
} else {
|
} else {
|
||||||
$sql = "INSERT INTO ".$cfg["tab"]["container"].
|
$sql = "INSERT INTO " . $cfg["tab"]["container"] .
|
||||||
" (idcontainer, idtpl, number, idmod) ".
|
" (idcontainer, idtpl, number, idmod) " .
|
||||||
" VALUES ('".$db_autofill->nextid($cfg["tab"]["container"])."', ".
|
" VALUES ('" . $db_autofill->nextid($cfg["tab"]["container"]) . "', " .
|
||||||
" '$idtpl', '$container', '$idmod')";
|
" '$idtpl', '$container', '$idmod')";
|
||||||
$db_autofill->query($sql);
|
$db_autofill->query($sql);
|
||||||
}
|
}
|
||||||
|
@ -792,39 +748,35 @@ function tplAutoFillModules ($idtpl)
|
||||||
|
|
||||||
case "mandatory":
|
case "mandatory":
|
||||||
|
|
||||||
if ($containerinf[$idlay][$container]["default"] != "")
|
if ($containerinf[$idlay][$container]["default"] != "") {
|
||||||
{
|
$sql = "SELECT idmod FROM " . $cfg["tab"]["mod"]
|
||||||
$sql = "SELECT idmod FROM ".$cfg["tab"]["mod"]
|
. " WHERE name = '" .
|
||||||
." WHERE name = '".
|
Contenido_Security::escapeDB($containerinf[$idlay][$container]["default"], $db) . "'";
|
||||||
Contenido_Security::escapeDB($containerinf[$idlay][$container]["default"], $db)."'";
|
|
||||||
|
|
||||||
$db_autofill->query($sql);
|
$db_autofill->query($sql);
|
||||||
|
|
||||||
if ($db_autofill->next_record())
|
if ($db_autofill->next_record()) {
|
||||||
{
|
|
||||||
$idmod = $db_autofill->f("idmod");
|
$idmod = $db_autofill->f("idmod");
|
||||||
|
|
||||||
|
|
||||||
$sql = "SELECT idcontainer, idmod FROM ".$cfg["tab"]["container"]
|
$sql = "SELECT idcontainer, idmod FROM " . $cfg["tab"]["container"]
|
||||||
." WHERE idtpl = '".Contenido_Security::toInteger($idtpl)."' AND number = '".Contenido_Security::toInteger($container)."'";
|
. " WHERE idtpl = '" . Contenido_Security::toInteger($idtpl) . "' AND number = '" . Contenido_Security::toInteger($container) . "'";
|
||||||
|
|
||||||
$db_autofill->query($sql);
|
$db_autofill->query($sql);
|
||||||
|
|
||||||
if ($db_autofill->next_record())
|
if ($db_autofill->next_record()) {
|
||||||
{
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$sql = "INSERT INTO ".$cfg["tab"]["container"].
|
$sql = "INSERT INTO " . $cfg["tab"]["container"] .
|
||||||
" (idcontainer, idtpl, number, idmod) ".
|
" (idcontainer, idtpl, number, idmod) " .
|
||||||
" VALUES ('".Contenido_Security::toInteger($db_autofill->nextid($cfg["tab"]["container"]))."', ".
|
" VALUES ('" . Contenido_Security::toInteger($db_autofill->nextid($cfg["tab"]["container"])) . "', " .
|
||||||
" '".Contenido_Security::toInteger($idtpl)."', '".Contenido_Security::toInteger($container)."', '".Contenido_Security::toInteger($idmod)."')";
|
" '" . Contenido_Security::toInteger($idtpl) . "', '" . Contenido_Security::toInteger($container) . "', '" . Contenido_Security::toInteger($idmod) . "')";
|
||||||
$db_autofill->query($sql);
|
$db_autofill->query($sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -347,7 +347,7 @@ class MetaTagCreatorHtml5 {
|
||||||
*/
|
*/
|
||||||
protected function _checkCacheFile() {
|
protected function _checkCacheFile() {
|
||||||
if(file_exists($this->_sCacheFile)) {
|
if(file_exists($this->_sCacheFile)) {
|
||||||
$iDiff = mktime() - filemtime($this->_sCacheFile);
|
$iDiff = time() - filemtime($this->_sCacheFile);
|
||||||
if($iDiff < $this->_aConfig['cachetime']) {
|
if($iDiff < $this->_aConfig['cachetime']) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Laden …
In neuem Issue referenzieren