Zum Inhalt springen

[fe_users] Datensatz einfügen

Erstellt am 14. August 2003 · 2 Antworten · letzte Antwort am 16. August 2003

Tags: Frage

Jörg Roth ·

Hi,

ich habe jetzt Extensions gebastelt - alles wunderbar. Ich möchte jedoch außerordentlich gerne einen einzelnen Frontend-Benutzer auf einer Seite einfügen können.

Ideal wäre es, den Inhaltstyp "Datensatz einfügen" entsprechend um fe_users zu erweitern. Die Ausgabe spezifischer Felder (z.b. Name, Telefon, Fax, E-Mail) liese sich ja per TS steuern, oder liege ich da falsch?

Ich habe mir jetzt schon einen Wolf nach dem entsprechenden Eintrag (tt_content.records) gesucht. Wie es geht, ist mir klar. Aber ich werde in der tables.php nicht fündig.

Wäre es sinnvoll, direkt eine neue Extension anzulegen?

Ich habe mir auch mal den Photo Marathon zu gemüte geführt. Dort geht's ja über eine "static_list".

Bin für jede Info dankbar,

Jörg (*derdeswegeneinwenigbauchschmerzenhat*)

Jörg Roth ·

Hi,

ich bin ja nun schon etwas weiter.

tt_content ist um eine spezifische Spalte erweitert worden, in der die ID des selektierten fe_users gespeichert wird. Prima. Schaut dann so aus:

Bild: ff.zeusmedia.de/apart.gif

Nur die Ausgabe hakt noch in meiner Birne. Die Klasse in pi1 schaut jetzt erst einmal so aus:

class tx_zmapart_pi1 extends tslib_pibase {
	var $prefixId = "tx_zmapart_pi1";		// Same as class name
	var $scriptRelPath = "pi1/class.tx_zmapart_pi1.php";	// Path to this script relative to the extension dir.
	var $extKey = "zm_apart";	// The extension key.
    
    var $conf;
    var $templateCode;
    
	function main($content,$conf)	{
        $this->conf=$conf;
		$this->pi_setPiVarDefaults();
		$this->pi_loadLL();
        
        $this->zmapu=$this->cObj->data['tx_zmapart_apuser'];
        
        $query = "SELECT name,telephone,fax,email FROM fe_users WHERE uid = ".$zmapu." AND NOT deleted";
        $res = mysql(TYPO3_db,$query);
        $row = mysql_fetch_assoc($res);
        
        $content = "<h1>.$row.</h1>";
        return $content;
	}
}

Natürlich funktioniert das nicht. Ich habe bereits eine entsprechende MM-Tabelle angelegt, aber absolut null Ahnung, wie ich die anbinde. Ich wälze mich zurzeit durch andere EXT durch und werde mir jetzt mal User Tracking und Who's Online anschauen.

Ahja, TS-Setup:

plugin.tx_zmapart_pi1 {
    templateFile = EXT:zm_apart/apart_template.html
    parser < tt_content.text.20.parseFunc
}

Marker anbinden krieg ich schon auf die Reihe. Für den Anfang reicht mir ganz banal und einfach mal eine Ausgabe. Später kommt das Template dann zum Einsatz.

Kann mir da jemand helfen? Danke!

Jörg Roth ·

Juhuu, es funktioniert. Prima. Endlich Wochenende. Naja, nicht ganz... *g*

	function main($content,$conf)	{
        $this->conf=$conf;
		$this->pi_setPiVarDefaults();
		$this->pi_loadLL();
        
        $user = $this->cObj->data['tx_zmapart_apuser'];

        $query = "SELECT name,telephone,fax,email FROM fe_users WHERE uid = '$user'";
        $res = mysql(TYPO3_db,$query);
        $row = mysql_fetch_assoc($res);
        
        $content = "<table width="145" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC" align="left"><tr><td><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#F5F2F2" align="center"><tr><td width="100%" align="left"><strong>Ansprechpartner</strong></td></tr><tr>";
        $content .= "<td align="left">".$row['name']."<br>Telefon: ".$row['telephone']."<br>Telefax: ".$row['fax']."<br>E-Mail: <a href="mailto:".$row['email']."">".$row['email']."</a></td>";
        $content .= "</tr></table></td></tr></table><br>";
        return $content;
	}

So tut's mit der Funktion in der Klasse. Ist hier noch händisch formatiert, ich stelle das später mal auf ein Template um. Felder aus fe_users können dann per Marker gesetzt werden.

Fazit: Keine Bauchschmerzen mehr und ein K.O.-Kirterium für den Kunden weniger... 🙂