dieses problem beschäftigt mich nun schon das ganze pfingstwochende
um in einer spalte im layout content auf allen seiten einzufügen, möchte ich den inhalt eines CMS_HTML[] types 1:1 übernehmen incl. verlinkter bilder, formate etc. der artikel der eingefügt werden soll kommt aus kategorie XY (Systemseiten) und dort immer der startartikel
dazu habe das standardmodul "Artikel einfügen (rechts)" verwendet, und das zunächst zum testen um den input gekürzt.
modified "Artikel einfügen (rechts)"
input: leer
output:
Code: Alles auswählen
<?php
$cms_idcat = 23;
$sql = "SELECT
b.idart AS idart
FROM
".$cfg["tab"]["cat_lang"]." AS a,
".$cfg["tab"]["art_lang"]." AS b
WHERE
a.idcat = '".$cms_idcat."' AND
a.startidartlang = b.idartlang AND
a.idlang = '".$lang."'";
$db->query($sql);
while ($db->next_record()) {
$news_startarticle = $db->f('idart');
}
$cms_idcatart = $news_startarticle;
$bDebug = true;
if ($bDebug) echo "<pre> cat $cms_idcat catart $cms_idcatart</pre>";
if ((strlen($cms_idcat) > 0 AND $cms_idcat != '0') AND (strlen($cms_idcatart) > 0 AND $cms_idcatart != '0')) {
$cms_catid = $cms_idcat;
$cms_artid = $cms_idcatart;
#Check if category is online or protected
$sql = "SELECT public, visible FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".$cms_catid."' AND idlang='".$lang."'";
if ($bDebug) {echo "<pre>";print_r($sql);echo "</pre>";}
$db->query($sql);
$db->next_record();
$public = $db->f("public");
$visible = $db->f("visible");
$db->free();
#Check if article is online
$sql = "SELECT online FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".$cms_artid."' AND idlang='".$lang."'";
if ($bDebug) {echo "<pre>";print_r($sql);echo "</pre>";}
$db->query($sql);
$db->next_record();
$online = $db->f("online");
$db->free();
#If the article is online and the according category is not protected and visible, include the article
if ($public == 1 AND $visible == 1 AND $online == 1) {
#Check if code creation is necessary
$sql = "SELECT
createcode
FROM
".$cfg["tab"]["cat_art"]."
WHERE
idcat = '".$cms_catid."' AND
idart = '".$cms_artid."'";
if ($bDebug) {echo "<pre>";print_r($sql);echo "</pre>";}
$db->query($sql);
if ($db->next_record()) {
$createcode = $db->f("createcode");
} else {
$createcode = 1;
}
$db->free();
#Create code if necessary
if ($createcode == 1) {
cInclude('includes', 'functions.con.php');
cInclude('includes', 'functions.tpl.php');
cInclude('includes', 'functions.mod.php');
conGenerateCode($cms_catid, $cms_artid, $lang, $client);
}
#Get code from database and execute it
$sql = "SELECT code FROM ".$cfg["tab"]["code"]." WHERE idcatart = '".$cms_idcatart."' AND idlang = '".$lang."'";
if ($bDebug) {echo "<pre>";print_r($sql);echo "</pre>";}
$db->query($sql);
if ($db->next_record()) {
$code = stripslashes($db->f("code"));
$db->free();
ob_start();
eval("?>
".$code."
<?php
");
$code = ob_get_contents();
#Clean buffer
ob_end_clean();
$startpos = strpos($code, "<!--start:content-->");
$endpos = strpos($code, "<!--end:content-->");
$difflen = $endpos - $startpos;
$code = substr($code, $startpos, $difflen);
echo $code;
} else {
echo "<!-- ERROR in module Article Include<pre>no code created for article to include!<br>idcat $cms_catid, idart $cms_artid, idlang $lang, idclient $client</pre>-->";
}
}
}
?>
der haken an der sache ...
wenn ich jetzt meinen baum in einer 2. sprache synchronisiere, dann passiert dort zunächst gar nichts. erst wenn ich in der 2. sprache den zu includierenden artikel speichere wird im frontend auch in der 2. sprache der artikel angezeigt.
switche ich nun zurück zur 1. sprache im frontend, dann ist dort wieder nix zu sehen, bis ich im backend den artikel in sprache 1 speichere und siehe da ... eben jetzt gehts aber in der 2. sprache wieder nicht. da steht in der con_code meines erachtens immer nur der last-save drin
die parts mit denen ich nicht klar komme sind
Code: Alles auswählen
#Check if code creation is necessary
#Create code if necessary
gibt es einen ansatz der schon läuft für mein problem?
dank für euren input!