Hallo werte Programmier-Kollegen,
ich bin an eine Betonwand angelangt. Ich habe erst vor kurzem wieder mit Typo3 angefangen und versuche aktuell eine Extension zu schreiben, welche gewisse Datensätze zu tt_news hinzufügt. Hierfür habe ich eine Extension angelegt und deren Ausgabe funktioniert schonmal.
Nun will ich aber noch zusätzlich die Option haben, die Datensätze mit News anzeigen zu lassen.
hierfür habe ich in der Table tt_news schon eine Spalte tx_y7fahrzeugdatenbank_participate angelegt. Dort sollen später als Liste werte hinterlegt werden (mit einer Relationalen Tabelle ist es ordentlicher, aber ich suche erstmal eine Minimal Lösung).
Wenn nun in der Tabelle tx_y7fahrzeugdatenbank_domain_model_fahrzeug ein Item mit der UID ist, soll dieses dann unter der News angezeigt werden. Die Anzeige wäre mit Hilfe von Templates das kleinere problem.
Ich hab eigentlich ein Problem damit den Hook richtig zu implementieren, bzw. noch zu verstehen. Ich wäre also sehr dankbar wenn ich ein paar Wegweiser oder Ideen erhalte hier, wo ich meine Suche fortsetzen soll. Ich versuche mich zwar schon länger mit der API auseinanderzusetzen, dies ist jedoch ein etwas größeres Dokument 😉
Ich wäre also für jede Hilfe sehr dankbar.
Hier noch der Quellcode meiner derzeitigen /Domain/Model/Fahrzeug.php :
function extraItemMarkerProcessor(array $parentMarkerArray, array $row, array $lConf, tx_ttnews $tt_news) {
$this->cObj = $tt_news->local_cObj;
// $query = 'SELECT pid FROM tx_y7fahrzeugdatenbank_domain_model_fahrzeug WHERE name="' . $this->getName() . '"';
$res1 = \TYPO3\CMS\Core\Database::exec_SELECTgetRows('pid','tx_y7fahrzeugdatenbank_domain_model_fahrzeug', 'WHERE name="' . $this->getName() . '"','','','','');
// $query2 = 'SELECT tx_y7fahrzeugdatenbank_participate FROM tt_news';
$res2 = \TYPO3\CMS\Core\Database::exec_SELECTgetRows('tx_y7fahrzeugdatenbank_participate','tt_news','','','','');
echo '<p class="y7debuginfo">Q1: ' . $res1 . ' // Q2: ' . $res2 . '</p>';
if(\TYPO3\CMS\Core\Utility\GeneralUtility::inList($res1[uid], $res2)) {
// some output
echo '<div class="tx_y7fahrzeugdatenbank">Found Entry: ' . $this->getName() . '</div>';
}
}
Dies sind noch ein paar Additionen zur ext_localconf.php
if (TYPO3_MODE!='BE') {
require_once(t3lib_extMgm::extPath('y7_fahrzeugdatenbank'). 'y7_fahrzeugdatenbank/Classes/Domain/Model/Fahrzeug.php');
}
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraItemMarkerHook'][] = 'tx_y7fahrzeugdatenbank';
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraCodesHook'][] = 'tx_y7fahrzeugdatenbank';
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['selectConfHook'][] = 'tx_y7fahrzeugdatenbank';
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraGlobalMarkerHook'][] = 'tx_y7fahrzeugdatenbank';
}