idtpl Param von Funktion conEditFirstTime
Verfasst: Do 26. Jul 2007, 15:03
Die Funktion conEditFirstTime benötigt 18 Parameter, wenn ich richtig gezählt habe.
Nummer 5 ist idtpl.
1. Mir scheint, als würde die Funktion diesen Parameter idtpl stets ignorieren. Im Quelltext der Funktion taucht er nicht mehr auf.
Der Parameter auf den es ankommt, um einen neuen Eintrag in con_art_lang vorzunehmen, ist idtplcfg. Diese idtplcfg ist Foreign Key zu Tabelle con_template_conf.
2. idtplcfg für den neuen Artikel wird nicht von der Funktion ermittelt.
Man sollte darauf hinweisen dass idtpl stets null sein muss. (genauso wie idart und idartlang). Sonst ist es leicht irreführend . Man denkt, man kann eine Template-ID Übergeben und der neu angelegte Artikel liegt im gewünschten Template vor, aber denkste!
Mindestens Schlechtes API_Design, kann auch sein, dass es sich um einen Bug handelt. Vielleicht war der Code mal drin, welcher die neue idtplcfg ermittelt, wurde dann aber wieder wieder rausgenommen, aber nur teilweise. Denn in der Funktion wird aus tplcfg nur gelöscht, aber nichts eingefügt.
DIe Templatezuweisung für einen Artikel muss man anscheinend mit extra Code bewerkstelligen.
PS
Die Vorgeschichte zu diesem Topic steht in diesem Thread
http://www.contenido.org/forum/viewtopic.php?p=104393
Nummer 5 ist idtpl.
1. Mir scheint, als würde die Funktion diesen Parameter idtpl stets ignorieren. Im Quelltext der Funktion taucht er nicht mehr auf.
Der Parameter auf den es ankommt, um einen neuen Eintrag in con_art_lang vorzunehmen, ist idtplcfg. Diese idtplcfg ist Foreign Key zu Tabelle con_template_conf.
2. idtplcfg für den neuen Artikel wird nicht von der Funktion ermittelt.
Man sollte darauf hinweisen dass idtpl stets null sein muss. (genauso wie idart und idartlang). Sonst ist es leicht irreführend . Man denkt, man kann eine Template-ID Übergeben und der neu angelegte Artikel liegt im gewünschten Template vor, aber denkste!
Code: Alles auswählen
$sql = "INSERT INTO
".$cfg["tab"]["art_lang"]." (
idartlang,
idart,
idlang,
-- hier fehlt idtplcfg
title,
pagetitle,
summary,
...
Code: Alles auswählen
//******** delete from 'tpl_conf'-table ***************
... $tmp_idtplcfg = $db->f('idtplcfg');
$sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg = '".$tmp_idtplcfg."'";
$db->query($sql);
PS
Die Vorgeschichte zu diesem Topic steht in diesem Thread
http://www.contenido.org/forum/viewtopic.php?p=104393