CMS-Value's

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Arrrgggggg!
Ein Fehler der bei mir in Fleisch und Blut übergegangen ist.

strtok("_", "CMS_VAR[1]")
muss
strtok( "CMS_VAR[1]", "_" )

Code: Alles auswählen

$sCurrentContainer = substr(strtok("CMS_VAR[1]","_"), 1, -3);
echo("ContainerID: ".$sCurrentContainer."");
mfg OliverL
(ich schreib es immer richtig dann Korregiere ich das richtige in das Falsche)
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

OliverL hat geschrieben:Arrrgggggg!
Ein Fehler der bei mir in Fleisch und Blut übergegangen ist.

strtok("_", "CMS_VAR[1]")
muss
strtok( "CMS_VAR[1]", "_" )

Code: Alles auswählen

$sCurrentContainer = substr(strtok("CMS_VAR[1]","_"), 1, -3);
echo("ContainerID: ".$sCurrentContainer."");
mfg OliverL
(ich schreib es immer richtig dann Korregiere ich das richtige in das Falsche)
bei mir funzt

Code: Alles auswählen

$sCurrentContainer = substr("CMS_VAR[1]", 1, 2);
echo("ContainerID: ".$sCurrentContainer."");
grad super :)
raus dabei kommt 30 :)
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

:)

und jetzt nimm mal für das Moidul den Container mit der ID 300.
Da kommt dann auch 30 raus!

mfg OliverL
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

OliverL hat geschrieben::)

und jetzt nimm mal für das Moidul den Container mit der ID 300.
Da kommt dann auch 30 raus!

mfg OliverL
arg mist :D ich geh eig nie über 100.. ach das jetzt erstmal nebensache.. ^^ :)

aber gleich ists fertig, gleich bekommst post, nurnoch eine sache is Buggy, aber krieg ich hin
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

hab das problem das ich so große sachen auslager in ne eigene klassen datei,
klappt auch alles, bis auf dein sql befehl zum template ID im output ausgeben
da kommt kein return =/ *weiter bastel*
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

1. setz doch einfach das neue Tok() von mir ein dann hast du niemals das Problem wenn du über 99 kommst.

2. das mit der SQL ist mein Fehler. der Prefix der Tabellen ist bei mir "con48" nicht wie bei dir "con"

Hier mal mit den Offizellen Ariablen für die Tabellen:

Code: Alles auswählen

$sql = "SELECT ca.idcat, ca.idart, tca.idtpl as tca, tcc.idtpl as tcc

FROM ".$cfg["tab"]["cat_art"]." as ca,
".$cfg["tab"]["art_lang"]." as al
LEFT JOIN ".$cfg["tab"]["tpl_conf"]." as tca
  ON al.idtplcfg = tca.idtplcfg,
".$cfg["tab"]["cat_lang"]." as cl
LEFT JOIN ".$cfg["tab"]["tpl_conf"]." as tcc
  ON cl.idtplcfg = tcc.idtplcfg

WHERE al.idart = ".$idart."
AND al.idlang = ".$lang."
AND ca.idart = al.idart
AND ca.idcat = cl.idcat";

$db->query($sql);

$iArtTpl = $db->f('tca');
$iCatTpl = $db->f('tcc');
if( $iArtTpl ) $iThisTpl = $iArtTpl;
else  $iThisTpl = $iCatTpl;
mfg OliverL
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

OliverL hat geschrieben: das mit der SQL ist mein Fehler. der Prefix der Tabellen ist bei mir "con48" nicht wie bei dir "con"

Hier mal mit den Offizellen Ariablen für die Tabellen:

Code: Alles auswählen

$sql = "SELECT ca.idcat, ca.idart, tca.idtpl as tca, tcc.idtpl as tcc

FROM ".$cfg["tab"]["cat_art"]." as ca,
".$cfg["tab"]["art_lang"]." as al
LEFT JOIN ".$cfg["tab"]["tpl_conf"]." as tca
  ON al.idtplcfg = tca.idtplcfg,
".$cfg["tab"]["cat_lang"]." as cl
LEFT JOIN ".$cfg["tab"]["tpl_conf"]." as tcc
  ON cl.idtplcfg = tcc.idtplcfg

WHERE al.idart = ".$idart."
AND al.idlang = ".$lang."
AND ca.idart = al.idart
AND ca.idcat = cl.idcat";

$db->query($sql);

$iArtTpl = $db->f('tca');
$iCatTpl = $db->f('tcc');
if( $iArtTpl ) $iThisTpl = $iArtTpl;
else  $iThisTpl = $iCatTpl;
mfg OliverL
das hab ich schon geändert ;)

wenn ich den $sql string returne bekomme ich

Code: Alles auswählen

TemplateID: SELECT ca.idcat, ca.idart, tca.idtpl AS tca, tcc.idtpl AS tcc FROM con_cat_art AS ca, con_art_lang AS al LEFT JOIN con_template_conf AS tca ON al.idtplcfg = tca.idtplcfg, con_cat_lang AS cl LEFT JOIN con_template_conf AS tcc ON cl.idtplcfg = tcc.idtplcfg WHERE al.idart = 2 AND al.idlang = 1 AND ca.idart = al.idart AND ca.idcat = cl.idcat LIMIT 0 , 30
bastel ich damit in phpMyAdmin rum bekomm ich auch nen ergebnis
aaaaaaaaaber, irgendwie funzt das

Code: Alles auswählen

$iArtTpl = $db->f('tca');
nicht wenn ichs auslager

hier mal nen Teil des Code meiner eigenen Klasse

Code: Alles auswählen

class Hauptklasse{
	function __construct(){
		$this->db			=	$GLOBALS['db'];
		$this->cfg			=	$GLOBALS['cfg'];
		$this->client		=	$GLOBALS['client'];
		$this->lang			=	$GLOBALS['lang'];
		$this->cfgClient	=	$GLOBALS['cfgClient'];
		$this->sess			=	$GLOBALS['sess'];
	}
}

class TemplateID extends Hauptklasse {
	function auslesen($idart){
		$this->idart = $idart;
		
		$sql = 'SELECT ca.idcat, ca.idart, tca.idtpl AS tca, tcc.idtpl AS tcc'
        . ' FROM con_cat_art AS ca, con_art_lang AS al'
        . ' LEFT JOIN con_template_conf AS tca ON al.idtplcfg = tca.idtplcfg, con_cat_lang AS cl'
        . ' LEFT JOIN con_template_conf AS tcc ON cl.idtplcfg = tcc.idtplcfg'
        . ' WHERE al.idart = '.$this->idart.''
        . ' AND al.idlang = '.$this->lang.''
        . ' AND ca.idart = al.idart'
        . ' AND ca.idcat = cl.idcat'
        . ' LIMIT 0 , 30';
		$this->db->query($sql);
		
		$iArtTpl = $this->db->f('tca');
		$iCatTpl = $this->db->f('tcc');
		if( $iArtTpl ) $iThisTpl = $iArtTpl;
		else  $iThisTpl = $iCatTpl;
		
		
		
		return $iThisTpl;
	}
}
und im output gehts dann so

Code: Alles auswählen

cInclude('classes', 'webtischlerei.class.php');

$oIDtpl = new TemplateID();
$sIDtpl = $oIDtpl->auslesen($idart);
und $sIDtpl ist dann halt leer :(
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Must du ldie Variablen nicht vorab erstellen?
oder ist das in php5 nicht mehr so?
z.B.:

Code: Alles auswählen

class Hauptklasse{

  var $db;
  var $cfg;
  var $client;
  var $lang;
  var $cfgClient;
  var $sess;
  /* ... usw ...  */

   function __construct(){
      ...
Zuletzt geändert von OliverL am Mi 10. Sep 2008, 16:56, insgesamt 1-mal geändert.
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

ne das funzt schon, andere sachen laufen schon die auf die werte da zugreifen
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Zeigt das System-Log etwas?
Weil wenn phpmyadmin da was zeigt sollte Contenido auch was zeigen.

mfg OliverL

(habe das oben noch ergänzt mit "var ...")
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

OliverL hat geschrieben:Zeigt das System-Log etwas?
Weil wenn phpmyadmin da was zeigt sollte Contenido auch was zeigen.

mfg OliverL

(habe das oben noch ergänzt mit "var ...")
var ist ja mal ganz böse :) also wenn dann public, protected oder private ;)

log.. *mal gucken* ne zeigt nichts an, alles leer

ich versteh es einfach nicht
returne ich "$this->db->query($sql);" bekomm ich als ausgabe "Resource id #191"
aber return ich alles was dadrunter steht.. nichts, der gibt einfach nichts zurück :/
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

wat is en mit:


echo $this->db->f('idcat');
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

OliverL hat geschrieben:wat is en mit:


echo $this->db->f('idcat');
TemplateID: 1

:) das richtig

aber idcat is in dem fall eig 19, warum gibt der 1 aus? xD
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

Code: Alles auswählen

Create object with
 * $obj = new Article(idart, client, lang [, idartlang]);
 * 
 * You can now read the article properties with
 * $obj->getField(property);
 *
 * List of article properties: 
 *
 * idartlang		 - Language dependant article id
 * idart			 - Language indepenant article id 
 * idclient			 - Id of the client
 * idtplcfg 		 - Template configuration id
auszug aus der "class.article.php"

hoffe du siehst was in der letztel zeile des auszuges steht :)
man ich benutz die klasse so oft, aber nciht dran gedacht da mal nachzugucken ><

bloß für die kategorie find ich nicht so nen kurzen weg, mal noch weiter suchen

also artikel auslesen ist dann so =>

Code: Alles auswählen

class TemplateID extends Hauptklasse {
	function auslesen($idart){
		$oArticle = new Article($idart, $this->client, $this->lang);
		$sAtplID = $oArticle->getField('idtplcfg');

                // hier muss noch die TPL ID der kategorie ausgelesen werden
                
                $sTplID = $sAtplID;
                return $sTplID;
	}
}
Zuletzt geändert von _wiewo_ am Do 11. Sep 2008, 07:54, insgesamt 1-mal geändert.
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

du hast den query zwar abgesetzt, aber du befindest dich noch auf zeile 0. du musst mindestens einen aufruf von $this->db->next_record() vornehmen um auf den ersten eintrag zu gelangen.

normalerweise schlaufst du ja durch die ergebnisse mit

Code: Alles auswählen

while ($this->db->next_record()) {
    $meinWert = $this->db->f('meinFeldBezeichner');
}
wenn du nur ein ergebnis erwartest (einen einzelnen record) kannst du auch sowas machen:

Code: Alles auswählen

if ($this->db->next_record()) {
    $meinWert = $this->db->f('meinFeldBezeichner');
} else {
    // der query gab kein ergebnis zurück
}
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Gesperrt