anmerkung con typen

Gesperrt
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

anmerkung con typen

Beitrag von emergence »

ich bin wieder mal dabei den code für mich etwas klarer zu gestalten...

ich finde in so ziemlich jeden con_type

Code: Alles auswählen

$tmp = urldecode($tmp);
es ist mir an sich klar warum das urldecode dort benötigt wird...

zeitweise zb bei CMS_IMGDESC

findet sich vor dem urldecode

Code: Alles auswählen

$tmp = htmlspecialchars($tmp);
$tmp = urldecode($tmp);
oder bei CMS_LINKTARGET

Code: Alles auswählen

$tmp = htmlspecialchars($tmp);
$tmp = str_replace("'", "\'", $tmp);
$tmp = urldecode($tmp);
mir ist nicht ganz klar welchen sinn es haben soll vor dem urldecode die anderen aktionen auszuführen... ? hat das nen bestimmten grund ?

na wie auch immer...

zweite sache, die damit zusammenhängt

in der functions.con2.php und include.con_editcontent.php findet sich etwas wie das hier

Code: Alles auswählen

		/* Find out what kind of CMS_... Vars are in use */
		$sql = "SELECT
					*
				FROM
					".$cfg["tab"]["content"]." AS A,
					".$cfg["tab"]["art_lang"]." AS B,
					".$cfg["tab"]["type"]." AS C
				WHERE
					A.idtype	= C.idtype AND
					A.idartlang = B.idartlang AND
					B.idart 	= '".$idart."' AND
					B.idlang	= '".$lang."'";

		$db->query($sql);

		while ( $db->next_record() ) {
			$a_content[$db->f("type")][$db->f("typeid")] = $db->f("value");
		}
zusätzlich hab ich in der functions.con.php die
function conGetContentFromArticle($idartlang)

die an sich das selbe macht nur die werte schon urldecodiert...

bei der functions.general.php hab ich nochmals eine ähnliche funktion
function getAvailableContentTypes($idartlang) die nur in den include_CMS_*.php dateien verwendet wird...


das heisst man könnte das eigentlich zusammen fassen, oder nicht ?
zb nur mehr die function conGetContentFromArticle in der functions.con.php verwenden... dann wäre zumindestens das an zentraler stelle...
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ich hab die funktion jetzt mal umgebaut damit sie so ziemlich alle punkte abdecken kann...

alle änderung nur für orginale 4.6.4

functions.con2.php

Code: Alles auswählen

/**
 * Extracts the available content-
 * types from the database
 *
 * Creates an array $a_content[type][number] = content string
 * f.e. $a_content['CMS_HTML'][1] = content string
 * Same for array $a_description
 *
 * @param int $idartlang Language specific ID of the article
 * @param bool $urldecode If true, every value returned urldecoded
 * @param bool $makeglobal If true, $a_content, $a_description are made available globaly
 * @return void
 *
 * @author Martin Horwath <horwath@dayside.net>
 * @copyright DAYSIDE.net
 */
function conGetContentFromArticle($idartlang, $urldecode = false, $makeglobal = false)
{

	global $cfg, $db;

	if ($makeglobal) {
		global $a_content, $a_description;
	}

	$sql = "SELECT
				*
			FROM
				".$cfg["tab"]["content"]." AS A,
				".$cfg["tab"]["art_lang"]." AS B,
				".$cfg["tab"]["type"]." AS C
			WHERE
				A.idtype	= C.idtype AND
				A.idartlang = B.idartlang AND
				B.idartlang = '".$idartlang."' ";

	$db->query($sql);

	while ( $db->next_record() ) {
		$a_content[$db->f("type")][$db->f("typeid")] = ($urldecode) ? urldecode($db->f("value")) : $db->f("value");
		if ($makeglobal) {
			$a_description[$db->f("type")][$db->f("typeid")] = i18n($db->f("description"));
		}
	}

	return $a_content;

}
änderungen an anderen stellen

functions.con2.php in conGenerateCode

Code: Alles auswählen

	/* Find out what kind of CMS_... Vars are in use */
	$sql = "SELECT
	                    *
	                FROM
	                    ".$cfg["tab"]["content"]." AS A,
	                    ".$cfg["tab"]["art_lang"]." AS B,
	                    ".$cfg["tab"]["type"]." AS C
	                WHERE
	                    A.idtype    = C.idtype AND
	                    A.idartlang = B.idartlang AND
	                    B.idart     = '".$idart."' AND
	                    B.idlang    = '".$lang."'";

	$db->query($sql);

	while ($db->next_record())
	{
		$a_content[$db->f("type")][$db->f("typeid")] = $db->f("value");
	}

	$sql = "SELECT idartlang, pagetitle FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".$idart."' AND idlang='".$lang."'";

	$db->query($sql);
	$db->next_record();

	$idartlang = $db->f("idartlang");
	$pagetitle = stripslashes($db->f("pagetitle"));
ersetzen durch

Code: Alles auswählen

		$sql = "SELECT idartlang, pagetitle FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".$idart."' AND idlang='".$lang."'";

		$db->query($sql);
		$db->next_record();

		$idartlang = $db->f("idartlang");
		$pagetitle = stripslashes($db->f("pagetitle"));

		/* Find out what kind of CMS_... Vars are in use */
		$a_content = conGetContentFromArticle($idartlang);
include.con_editcontent.php

Code: Alles auswählen

        #
        # Find out what kind of CMS_... Vars are in use
        #
        $sql = "SELECT
                    *
                FROM
                    ".$cfg["tab"]["content"]." AS A,
                    ".$cfg["tab"]["art_lang"]." AS B,
                    ".$cfg["tab"]["type"]." AS C
                WHERE
                    A.idtype    = C.idtype AND
                    A.idartlang = B.idartlang AND
                    B.idart     = '".$idart."' AND
                    B.idlang    = '".$lang."'";
        
        $db->query($sql);
        
        while ( $db->next_record() ) {
            $a_content[$db->f("type")][$db->f("typeid")] = $db->f("value");
        }

        $sql = "SELECT idartlang FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".$idart."' AND idlang='".$lang."'";
        
        $db->query($sql);
        $db->next_record();
        
        $idartlang = $db->f("idartlang");
ersetzen durch

Code: Alles auswählen

        $sql = "SELECT idartlang FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".$idart."' AND idlang='".$lang."'";

        $db->query($sql);
        $db->next_record();

        $idartlang = $db->f("idartlang");


        /* Find out what kind of CMS_... Vars are in use */
        $a_content = conGetContentFromArticle($idartlang);
functions.con.php - function conSaveContentEntry

Code: Alles auswählen

    $aContent = conGetContentFromArticle($idartlang);
ersetzen durch

Code: Alles auswählen

    $aContent = conGetContentFromArticle($idartlang, true);
alle include.CMS_*.php

Code: Alles auswählen

        getAvailableContentTypes($idartlang);
ersetzen durch

Code: Alles auswählen

        conGetContentFromArticle($idartlang, true, true);
functions.general.php

Code: Alles auswählen

/**
 * Extracts the available content-
 * types from the database
 *
 * Creates an array $a_content[type][number] = content string
 * f.e. $a_content['CMS_HTML'][1] = content string
 * Same for array $a_description
 *
 * @param int $idartlang Language specific ID of the arcticle
 * @return void
 *
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG
 */
function getAvailableContentTypes($idartlang)
{
	global $db, $cfg, $a_content, $a_description;

	$sql = "SELECT
	                *
	            FROM
	                ".$cfg["tab"]["content"]." AS a,
	                ".$cfg["tab"]["art_lang"]." AS b,
	                ".$cfg["tab"]["type"]." AS c
	            WHERE
	                a.idtype    = c.idtype AND
	                a.idartlang = b.idartlang AND
	                b.idartlang = '".$idartlang."'";

	$db->query($sql);

	while ($db->next_record())
	{
		$a_content[$db->f("type")][$db->f("typeid")] = urldecode($db->f("value"));
		$a_description[$db->f("type")][$db->f("typeid")] = i18n($db->f("description"));
	}

}
kann entfernt werden... (wird nur bei den include.CMS_*.php verwendet)
*** make your own tools (wishlist :: thx)
Gesperrt