[TYPO3-german] fe_user Einzelnansicht, Auswahl (DROPDOWN-Menu) der User über FE-Plugin

Bernd Wilke xoonsji02 at sneakemail.com
Thu Aug 31 01:17:22 CEST 2006


On Wed, 30 Aug 2006 20:13:25 +0200, denis wrote
with subject "[TYPO3-german] fe_user Einzelnansicht, Auswahl
(DROPDOWN-Menu) der User über FE-Plugin":

> Hallo Liste,
> 
> ich habe über 50 FE-User, die keinen Zugriff haben. Über Plugin 
> Benutzerliste, sind alle Benutzer aufgelistet sind. Ausserdem möchte ich 
> , dass man einzelne Benutzer (z.B.: Herr Müller) erscheint in der Rechte 
> Spalte mit Parametern:Name,Vorname,Fon,Fax.
> 
> Nun möchte ich eine Ext. schreiben (FE-Plugin), in diesem Plugin möchte 
> ich eine Dropdown-menü haben, wo ich EINEN Benutzer auswählen kann.
> 
> Habe schon versucht Relation zu Tabelle fe_user, klappt, aber nur im 
> Backend. Ich möchte aber, dass das über Plugin geht....
> 
> Ist das möglich? Hat jemand schon Erfahrungen mit DropDown-Menü, wie man 
> das machen kann?

diverse möglichkeiten:

DHTML:

im plugin wird jede menge javascript erstellt:

<script type="text/javascript">
<!--
//eine Liste mit allen möglichen Daten
var ul = new Array();
ul[1]=Array('name1','vorname1','fon1','fax1');
ul[2]=Array('name2','vorname2','fon2','fax2');
 :
ul[99]=Array('name99','vorname99','fon99','fax99');

// eine function um die Daten in die Seite zu setzen:
function changedata(id) {
    if (ul[id]) {
        adr=document.getElementById("adresse");
        if (adr) {
            adr.innerHTML="<br><b>"+ul[id][1]+" "+ul[id][0] + "</b><br>"
                         +"Fon:"+ul[id][2]+"<br>"
	                 +"Fax:"+ul[id][3];
        }
    }
}
//-->
</script>

<!--und natürlich die Auswahl in fForm eines HTML-SELECT :-->
<select onchange="changedata(this.options[this.selectedIndex].value)"
name="userauswahl">
<option value="1">name1</option>
<option value="2">name2</option>
  :
<option value="99">name99</option>
</select>


<!-- irgendwo gibt es das dazugehörige div, in das die Daten geschrieben
werden: -->
<div id="adresse"></div>

Vorteil: 
+ kein erneuter Seitenaufruf, also auch sehr schnell
Nachteil: 
- läuft nur, wenn Javascript aktiv ist.
- bei vielen Daten wird der HTML-Quelltext der Seite seeehr lang
- alle Daten sind im HTML-Quelltextes auslesbar


oder aber ein Formular mit Seitenneuaufruf im Plugin:
(nicht ganz so konkret)

$select_fields='uid,name,vorname, ...';
$from_table='fe_users';
$where_clause='';
$groupBy='';
$orderBy='';
$limit='';
$allusers=$GLOBALS['TYPO3_DB']->exec_SELECTgetRows( $select_fields
				        , $from_table
				        , $where_clause

.$this->cObj->enableFields($from_table)
				        , $groupBy
				        , $orderBy
				        , $limit
				        );

$seluser=$this->GPVar('userid'); // GET- _oder_ POST-Param (s.u.)
if ($seluser) {
	$content='sie wollten folgende infos haben:<br />'
                .$allusers[$seluser]['name'].' '
		.$allusers[$seluser]['vorname'].'<br />'
			:
			:
} else {
	$content='<form
action="'.$this->pi_getPageLink($GLOBALS['TSFE']->page['uid'])
method="POST">' // POST-Param
                .'<select name="'.$this->prefixId.'[userid]>';

	foreach($allusers as $user) {
		$content.='<option value="'.$user['uid'].'">'
                          .$user['name']
                          .'</option>';
        }
	$content.='<input type="submit" value="los">'
                 .'</form>';
}

return $content;

Vorteil dieser Methode: 
+ du kannst eine Seite mit den Daten eines Users auch direkt 'anspringen'
(GET-Param): index.php?id=123&tx_pluginname_pi1[userid]=23
+ datenschutz: nur eine Adresse im HTML-Quelltext auslesbar.
+ kaum mehr Aufwand bei mehr Usern




viel spaß
Bernd
-- 
----------------
Bernd Wilke     
Annweilerstr.20 
40229 Düsseldorf
0211/229 2800



More information about the TYPO3-german mailing list