Hi,
hast du hier was ermitteln können? Ich steh genauso aufm Schlauch ;-)
gruß
klapperklaus
Hallo,
ich habe hier ein kleines Verständnisproblem. Ich weiß zwar wie man den ViewHelper form.select nutzt allerdings hab ich bis jetzt immer nur Beispiele gefunden die diese Daten aus einer DB holen quasi sowas wie eine Kategorie. Aber wie bekomme ich diese Informationen aus dem TCA?
in der TCA sage ich ja
Wie hole ich jetzt diese Daten aus dem TCA in den Controller?PHP-Code:'liste' => array(
'exclude' => 0,
'label' => 'LLL:EXT:newbe_test/Resources/Private/Language/locallang_db.xml:tx_newbetest_domain_model_test.liste',
'config' => array(
'type' => 'select',
'items' => array (
array('LLL:EXT:newbe_test/Resources/Private/Language/locallang_db.xml:tx_newbetest_domain_model_test.liste.I0', 0),
array('LLL:EXT:newbe_test/Resources/Private/Language/locallang_db.xml:tx_newbetest_domain_model_test.liste.I1', 1),
array('LLL:EXT:newbe_test/Resources/Private/Language/locallang_db.xml:tx_newbetest_domain_model_test.liste.I2', 2),
array('LLL:EXT:newbe_test/Resources/Private/Language/locallang_db.xml:tx_newbetest_domain_model_test.liste.I3', 3),
),
'size' => 1,
'maxitems' => 1,
'eval' => ''
)
),
Stehe da irgendwie total auf dem Schlauch.
Eventuell weiß ja jemand einen Tipp für mich :)
Viele Grüße
typonewbe
Hi,
hast du hier was ermitteln können? Ich steh genauso aufm Schlauch ;-)
gruß
klapperklaus
Hallo,
ja habe ich hier die Lösung:
Du kannst im Controller die Werte erfragen und dann an den ViewHelper weitergeben.
Die 3te Zeile per foreach durchlaufen in ein neues Array schreiben und dann an ViewHelper übergebn das wars.PHP-Code:$GLOBALS['TSFE']->includeTCA();
$tca = t3lib_div::loadTCA('deineTabelle');
$GLOBALS['TCA']['deineTabelle']['columns']['deinFeld']['config']['items']
Gruß typonewbe
Hallo,
das war ein toller Tip. Ich möchte jetzt noch weitergehen und es in einen ViewHelper packen:
Leider habe ich noch 2 Probleme, vielleicht kennt jemand dafür die Lösungen:PHP-Code:<?php
class Tx_myExt_ViewHelpers_SelectTcaViewHelper extends Tx_Fluid_ViewHelpers_Form_SelectViewHelper {
protected function getOptions() {
$GLOBALS['TSFE']->includeTCA();
$tca = t3lib_div::loadTCA('tx_myExt_domain_model_ticket');
foreach ($GLOBALS['TCA']['tx_myExt_domain_model_ticket']['columns'][$this->arguments['property']]['config']['items'] as $value) {
$options[$value[1]]=$value[0];
}
if ($this->arguments['sortByOptionLabel']) {
asort($options);
}
return $options;
}
}
?>
1) Die Tabelle "tx_myExt_domain_model_ticket" ist noch hartcodiert. Hat jemand eine Idee, wo man die Information automatisch herbekommen könnte, alternativ müsste man es als Argrument mitgeben.
2) Das Argument "options" brauche ich eigentlich nicht mehr, wird aber von der Elternklasse als "required" mitgegeben. Kann man ein Argument aus einem Viewhelper auch wieder entfernen?
Grüße
Skorpjon
Hallo Skorpjon,
ja dafür nen eigenen Viewhelper nehmen ist schon besser. Wenn man die Tabellen etwas dynamischer angeben möchte fällt mir eigentlich nur TypoScript dazu ein.
plugin.tx_yourext {
settings {
tca {
table1 {
name = tx_erstetabelle }
table2 {
name = tx_zweitetabelle
}
}
}
}
Wenn du dann das TypoScript mit:
$this->extbaseFrameworkConfiguration['settings']['tca']['table1']['name']
ausließt haste halt deine/n Name/n zum übergeben.
Mir ist allerdings aufgefallen dass das mit TCA keine so gut Idee war zumindest für mein Projekt. Ich hab mir überlegt das gennerell über TypoScript zu steuern ist vielleicht sogar besser, da man einerseits auch mehr oder weniger statisch arbeiten kann ohne jeden Mist in eine Tabelle zu verfrachten andererseits ist es dynamisch genug wenn man über das TypoScript zusätzliche Werte einträgt.
Beispiel ich benötige eine Kategorie wo selten Änderungen vorgenommen werden, dann schreibe ich es in ein von mir definiertes TS.
plugin.tx_yourext {
settings {
myCategorys {
1 = Hardware
2 = Software
3 = andere
}
}
}
Ich greife dann über den ViewHelper direkt auf das TS zu und durchlaufe einfach als Schleife myCategorys und hole mir alles was ich benötige. Das ist hier zwar gerade on the fly von mir entstanden denke aber noch ausbaufähig mit Labels die man dann in der locallang.xml speichert. Und falls man noch Unterkategorien benötigt ist das ja auch einfach man sollte es nur vorher wissen damit man den ViewHelper demendsprechend programmiert.
plugin.tx_yourext {
settings {
myCategorys {
1 {
name = Hardware
subcat1 {
name = Netzwerkkarte
}
subcat2 {
name = Grafikkarte
}
}
}
}
}
usw. Denke da ist das Potential noch nicht erschöpft.
Hoffe das hilft weiter.
Gruß typonewbe
PS: Frohe Ostern euch alle
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen