Hallo,
um die Verwantwortlichen Persohnen eines bestimmten Bereichs vorzustellen, möchte ich deren Userdetails untereinander anzeigen. Klar könnte ich dies einfach mit einem content element (z.B. text) erledigen, doch da ich eh newloginbox verwende und diese extension userdetails anzeigen kann, wollte ich eben diese userdetails als content einbinden.
Gibt es dazu eine Lösung?
Vielen Dank,
MArkus
newloginbox userdetails als datensatz einfügen
Hallo,
was ich zumindest lösen konnte, war newloginbox so zu bearbeiten, dass die Userliste in Abhänbgigkeit der Benutzergruppe dargestellt wird. Den php Quellcode habe ich irgendwo (wo weis ich net mehr) gefunden und noch etwas verändert. Bearbeiten muss man die class.tx_newloginbox_pi3.php so ab zeile 160:
// Get number of records:
$query = $this->pi_list_query('fe_users', 1, 'AND fe_users.usergroup = 1');
debug($query);
$res = $GLOBALS['TYPO3_DB']->sql_query($query);
if ($GLOBALS['TYPO3_DB']->sql_error()) {
t3lib_div::debug(array($GLOBALS['TYPO3_DB']->sql_error(), $query));
}
list($this->internal['res_count']) = $GLOBALS['TYPO3_DB']->sql_fetch_row($res);
// Make listing query, pass query to MySQL:
$msw = $lConf['msw_gruppe'];
$query = $this->pi_list_query('fe_users', 0, 'AND concat(concat(\',\',fe_users.usergroup),\',\') LIKE \'%,'.$msw.',%\'');
In TypoScript kann man nun angeben, welche Gruppe aufgezählten werden soll:
[globalVar = TSFE:id=13]
plugin.tx_newloginbox_pi3.listView.msw_gruppe = 3
[global]
In Zeile 1 gibt man an auf welcher seite die in zeile 2 angegebene Gruppe gelistet werden soll. Auf der entsprechenden Seite ist natürlich auch die extension einzubinden.
Nicht gelöst habe ich allerdings das Problem der einzelnen Darstellung der Userdetails, aber dazu habe ich TS Anföngerforum noch eine Frage gestellt...
Lg,
markus
hab das ganze über eine Bearbeitung der extension gelöst:
flexform_ds_pi3.xml ergänzen:
<field_groupuid>
<tceforms>
<label>LLL:EXT:newloginbox/locallang_db.php:tt_content.pi_flexform.field_groupuid</label>
<config>
<type>input</type>
<size>3</size>
</config>
</tceforms>
</field_groupuid>
class.tx_newloginbox_pi3.php so ab zeile 160 ergänzen (hab noch etwas mehr code hier gepostet, damit man genau sieht wo):
// Initializing the query parameters:
list($this->internal['orderBy'], $this->internal['descFlag']) = explode(':', $this->piVars['sort']);
$this->internal['results_at_a_time'] = t3lib_div::intInRange($lConf['results_at_a_time'], 0, 1000, 3); // Number of results to show in a listing.
$this->internal['maxPages'] = t3lib_div::intInRange($lConf['maxPages'], 0, 1000, 2); // The maximum number of "pages" in the browse-box: "Page 1", 'Page 2', etc.
$this->internal['searchFieldList'] = 'username,name,email,country,city,zip,telephone,address,title';
$this->internal['orderByList'] = 'username,name,email,country,city,zip';
//bearbeitet BEGIN von Markus Schmitz-Weckauf 8.2.2007
$uid = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'field_groupuid');
if ($uid <> '') {
// Get number of records:
$query = $this->pi_list_query('fe_users', 1, 'AND fe_users.usergroup = 1');
$res = $GLOBALS['TYPO3_DB']->sql_query($query);
if ($GLOBALS['TYPO3_DB']->sql_error()) {
t3lib_div::debug(array($GLOBALS['TYPO3_DB']->sql_error(), $query));
}
list($this->internal['res_count']) = $GLOBALS['TYPO3_DB']->sql_fetch_row($res);
// Make listing query, pass query to MySQL:
$query = $this->pi_list_query('fe_users', 0, 'AND concat(concat(\',\',fe_users.usergroup),\',\') LIKE \'%,'.$uid.',%\'');
}
// Der else Teil entspricht dem original
else {
// Get number of records:
$query = $this->pi_list_query('fe_users',1);
$res = mysql(TYPO3_db,$query);
if (mysql_error()) debug(array(mysql_error(),$query));
list($this->internal['res_count']) = mysql_fetch_row($res);
// Make listing query, pass query to MySQL:
$query = $this->pi_list_query('fe_users');
}
// bearbeitet ENDE
$res = $GLOBALS['TYPO3_DB']->sql_query($query);
if ($GLOBALS['TYPO3_DB']->sql_error()) {
t3lib_div::debug(array($GLOBALS['TYPO3_DB']->sql_error(), $query));
}
$this->internal['currentTable'] = 'fe_users';
// Put the whole list together:
$fullTable = ''; // Clear var;
Der Teil zw. den beien Kommentaren von mir ist wichtig.
Im Backend kann man nun die uid der zu listenden gruppe angeben und dann werden nur mitglieder dieser Gruppe angezeigt. Gibt man nichts an, bleibt alles wie beim alten...
natürlich muss man noch in der locallang_db.php einen eintrag machen, dazu folge dem link unten.
LG,
Markus
PS: eventuell auch hier schauen (userdetails direkt anzeigen):
#57437