Hallo Forum,
ich versuche nun seit zwei Tagen die Listenansicht ( exakt so wie unter Web>Liste) in ein von mir geschriebenes Backend-Modul zu integrieren. #angry# Ich arbeite gerade an einem Kunden-Center Modul für TYPO3, bei dem Redakteure neue Kundenseiten im passwortgeschützten Bereich (Frontend) anlegen können, diese mit Inhalten füllen und natürlich im Backend auch sehen sollen welche Inhalte auf den Seiten vorhanden sind ohne dafür auf Web>Seite oder Web>Liste wechseln zu müssen. Dafür habe ich mir als Ansatz überlegt den Hook "interface t3lib_localRecordListGetTableHook" einzusetzen. Damit glaube ich schon auf dem richtigen Weg zu sein bis auf den Umstand dass mir die Liste der auf einer Seite vorhandenen Inhalte eben nicht angezeigt wird.
Der Hook selbst greift auch schon, denn wenn ich einen echo Irgendwas Befehl in die Funktion 'getDBlistQuery' meiner Hook-Klasse 'tx_biscustomercenter_listviewhook' einfüge wird mir dieser über Web>Liste auch im Backend ausgegeben. Der Teufel steckt mal wieder im Detail, er will sich (mir) nur nicht zeigen.
Dieser Hooh wird benutzt:
/typo3/class.db_list_extra.inc, Zeile 372ff
Hier meine Hook-Klasse:
<?php
require_once(PATH_t3lib.'interfaces/interface.t3lib_localrecordlistgettablehook.php');
class tx_biscustomercenter_listviewhook implements t3lib_localRecordListGetTableHook {
/**
* Modfies the db_list-query
* - Adds if need a limitation to the where-clause to get only the own records.
* @param string the current database table
* @param integer the record's unique ID
* @param string an additional WHERE clause
* @param string comma separated list of selected fields
* @param localRecordList parent localRecordList object
*/
public function getDBlistQuery($table, $pageId, &$additionalWhereClause, &$selectedFieldsList, &$parentObject) {
echo("Die Tabelle ".$table."");
echo("mit der PageID ".$pageId."");
echo("mit selectedFields ".$selectedFieldsList."");
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/bis_customercenter/mod3/class.tx_biscustomercenter_listviewhook.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/bis_customercenter/mod3/class.tx_biscustomercenter_listviewhook.php']);
}
?>
Ich hoffe dass einer von euch vielleicht schon mal vor dem gleichen Problem stand und mir einen Wink in die richtige Richtung geben kann.
Besten Dank für Hinweise.
hatte mal vor langer zum testen ein backendmodul angelegt, wo alle datensätze einer tabelle angezeigt wurden. hatte das etwas hard gefrickelt, hat aber funktioniert. es ging um felgen und autos. naja, hier einfach mal der ganze code für die db-abfrage und content-ausgabe - vielleicht hilft dir dieser ansatz:
$res_felgen=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'*', #select
'tx_mwbackend_felgen', #from
'hidden=0 and deleted=0 and pid='.$_GET[id], #where
$groupBy='',
$orderBy=''
#$limit=$this->piVars['pointer']*3 . ',3' #limit
);
while( $row_felgen = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_felgen)) {
$content .='GET:'.$_GET[id].'<br />';
$content .= "<a href=\"http://www.domain.at/testserver/typo3/alt_doc.php?returnUrl=db_list.php%3Fid%3D".$_GET[id]."%26table%3D&edit[tx_mwbackend_felgen][".$row_felgen['uid']."]=edit\" target=\"_blank\" onClick=\"window.open('http://www.domain.at/testserver/typo3/alt_doc.php?returnUrl=db_list.php%3Fid%3D".$_GET[id]."%26table%3D&edit[tx_mwbackend_felgen][".$row_felgen['uid']."]=edit','Datensatz bearbeiten','width=650,height=600,scrollbars');return false\"><img src=\"http://www.domain.at/testserver/typo3/sysext/t3skin/icons/gfx/edit2.gif\" title=\"Datensatz bearbeiten\" alt=\"\" width=\"16\" height=\"16\"></a>";
$content .= $row_felgen['marke']." ".$row_felgen['typ']." ".$row_felgen['dimension']." ".$row_felgen['anschluss']."<br />";
$res_autos=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'*', #select
'tx_mwbackend_auto', #from
'hidden=0 and deleted=0 and anschluss='.$row_felgen['anschluss'], #where
$groupBy='',
$orderBy=''
#$limit=$this->piVars['pointer']*3 . ',3' #limit
);
while( $row_autos = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_autos)) {
$content .= $row_autos['marke']." ".$row_autos['model']." ".$row_autos['anschluss']." ".$row_autos['textfeld']."<br />";
$content .= "<form action=\"\" method=\"post\" enctype=\"multipart/form-data\" name=\"editform\">
<table>
<tr class=\"class-main11\">
<td nowrap=\"nowrap\">Anmerkung:<img name=\"cm_tx_mwbackend_felgenzuordnung_1_marke\" src=\"http://www.domain.at/testserver/typo3/clear.gif\" width=\"7\" height=\"10\" alt=\"\" /></td>
<td valign=\"top\"><input type=\"text\" name=\"name[".$row_autos['uid']."]\" value=\"\" style=\"width:288px;\" class=\"formField1\" maxlength=\"256\" /></td>
<td valign=\"top\"><input type=\"text\" name=\"typ[".$row_autos['uid']."]\" value=\"\" style=\"width:100px;\" class=\"formField1\" maxlength=\"256\" />fff
<input type=\"checkbox\" name=\"box[".$row_autos['uid']."]\" value=\"1\" />fred</td>
<td valign=\"top\" class=\"thumbnails\"><span class=\"nobr\"><a href=\"http://www.domain.at/testserver/typo3/browser.php?mode=file&bparams=name[".$row_autos['uid']."]|||||\" target=\"_blank\" onClick=\"window.open('http://www.domain.at/testserver/typo3/browser.php?mode=file&bparams=name[".$row_autos['uid']."]||||','Datensatz bearbeiten','width=650,height=600,scrollbars');return false\"><img src=\"http://www.domain.at/testserver/typo3/thumbs.php?&dummy=1229315378&file=..%2Fuploads%2Ftx_mwreference%2Fdatenblatt1_03.pdf&md5sum=9a4fe7ac01\" hspace=\"2\" border=\"0\" title=\"../uploads/tx_mwreference/datenblatt1_03.pdf\" align=\"middle\" alt=\"\" /></a> <a href=\"http://www.domain.at/testserver/typo3/browser.php?mode=file&bparams=data[tx_mwreference_referenzen][2][datenblatt]||||\" target=\"_blank\" onClick=\"window.open('http://www.domain.at/testserver/typo3/browser.php?mode=file&bparams=data[tx_mwreference_referenzen][2][datenblatt]||||','Datensatz bearbeiten','width=650,height=600,scrollbars');return false\"><img src=\"http://www.domain.at/testserver/typo3/gfx/fileicons/pdf.gif\" width=\"18\" height=\"16\" class=\"absmiddle\" title=\"datenblatt1_03.pdf (2.9 Kbytes)\" alt=\"\" /></a>datenblatt1_03.pdf</span></td>
</tr>
</table>";
}
}
$content .= "<input name=\"senden\" type=\"submit\" value=\"Daten speichern\">
</form><br /><br />";
if($_POST)
{
#$count = count($row_autos['uid']);
#for($i=1; $count < $i; $i++)
# {
# echo $row_autos['uid'];
# }
echo "<pre>";
print_r ($_POST);
echo "</pre>";
}
//neues element anlegen
$content .= "<a href=\"http://www.domain.at/testserver/typo3/alt_doc.php?returnUrl=db_list.php%3Fid%3D".$_GET[id]."%26table%3D&edit[tx_mwbackend_felgen][".$_GET[id]."]=new\" target=\"_blank\" onClick=\"window.open('http://www.domain.at/testserver/typo3/alt_doc.php?returnUrl=db_list.php%3Fid%3D".$_GET[id]."%26table%3D&edit[tx_mwbackend_felgen][".$_GET[id]."]=new','Datensatz bearbeiten','width=650,height=600,scrollbars');return false\"><img src=\"http://www.domain.at/testserver/typo3/sysext/t3skin/icons/gfx/new_el.gif\" width=\"16\" height=\"16\" title=\"neuen Datensatz erstellen\" alt=\"\" /></a>";
$content .='<div align=center><strong>Menu item #2...</strong> Mein Text</div>';
$this->content.=$this->doc->section('Message #2:',$content,0,1);
Hallo Matin,
danke für Deine schnelle Antwort aber deine Lösung passt für mein Vorhaben leider nicht. Ein Verwaltungsbackend für einzelne Tabellen zu erstellen ist kein Problem, ich möchte aber exakt diese Ansicht (Foto) aus dem Listenmodul in meiner Extension nutzen.
Bild: seoportal.brendlin.com/screenshot.jpg
http://seoportal.brendlin.com/screenshot.jpg
Notfalls werde ich über's Wo-Ende versuchen die gesamte /typo3/db_list.php in mein Modul zu kopieren aber da muß es doch einen smarteren Weg geben Web>Liste wieder zu geben. Bin mir inzwischen auch nicht mehr so sicher ob der gefundene Hook wirklich ans Ziel führt denn bisher konnte ich über diesen nur die Ansicht der 'echten' Web>Liste manipulieren (das funktioniert auch...).
Für weitere Ideen und mögliche Lösungen bin ich immer offen, versuche hier weiterhin eine Lösung zu finden.
Beste Grüße.
Hast du das inzwischen lösen können? Würde mich einfach mal interessieren.