Zum Inhalt springen

Porblem mit übergebenen Variablen

Erstellt am 10. November 2003 · 10 Antworten · letzte Antwort am 11. August 2004

Tags: PHP, Frage

Semerzo ·

Hi,
Vorab: Ja ich hab die Suchfunktion benutzt ^^

Also:

http://localhost/index.php?id=139&gid=1&grp=Nats

Das ist meine URL. Ich will jetzt "nur" an gid und grp kommen, komme ich aber nicht. Ich habe es mit allem versucht was ich hier im Forum gefunden habe.

require_once(PATH_tslib."class.tslib_pibase.php");

class tx_btlinks_pi1 extends tslib_pibase {
        var $prefixId = "tx_btlinks_pi1";                // Same as class name
        var $scriptRelPath = "pi1/class.tx_btlinks_pi1.php";        // Path to this script relative to the extension dir.
        var $extKey = "bt_links";        // The extension key.
        //echo $gid;
        /**
         * [Put your description here]
         */
        function main($content,$conf)        {
                $this->conf=$conf;
                $grp = $this->piVars['grp'];
                $gid = $this->piVars['gid'];
                $this->pi_setPiVarDefaults();
                $this->pi_loadLL();
                if($gid=="" or (!(isset($gid)))) {

So sieht der Code bis zuer relevanten stelle aus. Kann mir wer weiterhelfen ? Ich weiss, dass ich etwas mit:
(var) $gid = $this->piVars['gid'];
versuchen könnte, aber das habe ich fast überall eingesetzt, ohne Erfolg. Hilfe.

Semerzo ·

Das mir hier keiner hilft bin ich ja schon gewohnt 🙂

Also ich hab das TS REF und Inside Typo3 gewälzt habe n paar Sachen gefunden, die mir nicht die Bohne geholfen haben.

Habe meinen Code (läuft immer noch nicht) jetzt so ergänzt:

require_once(PATH_tslib."class.tslib_pibase.php");

class tx_btlinks_pi1 extends tslib_pibase {
        var $prefixId = "tx_btlinks_pi1";                // Same as class name
        var $scriptRelPath = "pi1/class.tx_btlinks_pi1.php";        // Path to this script relative to the extension dir.
        var $extKey = "bt_links";        // The extension key.
        
        /**
         * [Put your description here]
         */
        function main($content,$conf)        {
                $this->conf=$conf;
                $gid = t3lib_div::GPvar("gid");
                if(!(isset($gid))) { t3lib_div::setGPvars("gid"); } // bin nicht sicher, ob man das so machen sollte
                $this->pi_setPiVarDefaults();
                $this->pi_loadLL();
dj.​picasso ·

Hi Semerzo,

Semerzo schrieb

Das mir hier keiner hilft bin ich ja schon gewohnt 🙂
Also ich hab das TS REF und Inside Typo3 gewälzt habe n paar Sachen gefunden, die mir nicht die Bohne geholfen haben.

Bitte jetzt nicht anfangen zu weinen, ja :-).
Da bekomme ich ja ein weiches Herz #giggle# Hallelluja sog i!

Semerzo schrieb
function main($content,$conf)        {
   $this->conf=$conf;
   $gid = t3lib_div::GPvar("gid");
   if(!(isset($gid))) { t3lib_div::setGPvars("gid"); } // bin nicht sicher, ob man das so machen sollte
   $this->pi_setPiVarDefaults();
  $this->pi_loadLL();

Die Zeile ist vollkommen OK:
$gid = t3lib_div::GPvar("gid");

Hier brauchst Du dann natürlich:
$grp = t3lib_div::GPvar("grp");

Die Zeile ist MÜLL, weg damit:
if(!(isset($gid))) { t3lib_div::setGPvars("gid"); } // bin nicht sicher, ob man das so machen sollte

Was dahinter kommt ist dann natürlich auch zu überprüfen.
Mit dem Einlesen der VAR sollte es jedoch klappen.
Ciao
Der DJ

Semerzo ·

Hm, das ding ist, das ich dat so schon probiert hatte. Steht hier ja häufig genug im Forum. Aber es klappt halt nicht.

dj.​picasso ·

Hi,
dann liegt es an etwas anderem aber nicht an der Def. Deiner Variablen.

Zum Beweis hier ein Teil aus meiner Extension. Es werden die Vars eingelesen und entweder als Cookie gespeichert, oder falls kein Var da ist, wird sie aus dem Cookie entnommen.

class tx_myextension_pi1 extends tslib_pibase {
	var $prefixId = "tx_myextension_pi1";
	var $scriptRelPath = "pi1/class.tx_myextension_pi1.php";
	var $extKey = "my_extension";	// The extension key.

	var $conf;
	var $templateCode;
	
	/***** [Put your description here]	******/
	function main($content,$conf)	{
		$this->conf=$conf;
		$this->pi_setPiVarDefaults();
		$this->pi_loadLL();

	/***** Abfrage der Cookies	*****/

	    $wid = t3lib_div::GPvar("wmid");
	    $mpvar = t3lib_div::GPvar("MP");
		$cookieName = "my_extension";

		// wmid Abfrage wenn ein Cookie bereits existiert
	    if (!isset($GLOBALS["HTTP_COOKIE_VARS"][$cookieName])) {
		if ($wid) {
			$GLOBALS["TSFE"]->set_no_cache();
			// set a cookie
			setcookie($cookieName,$wid,time()+(3600*24*10)); // delete cookie after 10 days
		}
	    } else {
		$GLOBALS["TSFE"]->set_no_cache();
		$wid = $GLOBALS["HTTP_COOKIE_VARS"][$cookieName];
	    }

Ciao
Der DJ

Semerzo ·

Hmm, komisch. Es klappt be mir auch, fast.
Wenn ich die Links anklicke, dann im Backend den Cash cleare und danach die Seite Refresche, DANN klappt die Seitennavigation ???

Semerzo ·

Wah, das war ja doch net so schwer. Hatte nur eine Zeile nicht drin. Hast du oben auch in deinem Code, dachte/wusste nur nicht, dass sie so wichtig ist:

$GLOBALS["TSFE"]->set_no_cache();

Jetzt klappts !!!! GOTT ICH LIEBE ES, nach 2 Tagen, aber immerhin.

dj.​picasso ·

Hi,
die ist auch nicht wichtig. Die ist aus einem anderen Grund in dieser Extension, die erst einmal nichts mit der Var-Übernahme zu tun hat.
Wenn die Vars nicht in Deinen Links enthalten sind, liegt es dennoch an etwas anderem.
Hast Du eigentlich auch im TypoScript Deine Vars definiert:
config.linkVars = gid,grp

Ciao
Der DJ

Semerzo ·

Hm, ne hab ich nicht. Muss man das denn ? Es klappt ja nu...
Ich kenn mich mit dem CMS noch nicht so gut aus, habe bisher mehr C und PHP so gecoded, php allerdings noch nicht mit OOP.
Sollte ich in dieser Hinsicht die Vars im TScript deklarieren ?

dj.​picasso ·

Hi Semerzo,

Semerzo schrieb

Hm, ne hab ich nicht. Muss man das denn ? Es klappt ja nu...
Sollte ich in dieser Hinsicht die Vars im TScript deklarieren ?

Beide Fragen: JA!
Du musst in TS config.linkVars einstellen wenn Du die Variablen innerhalb Deiner Site über die Seitenaufrufe weitergeben möchtest!

In Deinem Falle würden gip und grp an jeden Deiner von Typo3 genererierten Seitenlinks angehängt.
Beispiel ohne:
www.meinedomain.de/index.php?id=240

Beispiel mit:
www.meinedomain.de/index.php?id=240&gip=35&grp=sonstwas

Ciao
Der DJ

Unbekannter Benutzer ·
dj.picasso schrieb

Hi,
Hast Du eigentlich auch im TypoScript Deine Vars definiert:
config.linkVars = gid,grp

alte scheisse, woher soll man das denn nu wissen?????
aber nu lüppts, nach ca. 6 std suchen...
thx