[TYPO3-german] removeFromList

SW sw1977 at online.de
Fri Mar 8 21:38:57 CET 2013


Super, danke! Werd ich gleich mal ausprobieren.

Gruß
Susanne

Am 08.03.2013 21:33, schrieb Stefan Neufeind:
> Hi,
>
> hier mal quick-n-dirty mit split und einem CASE. Du kannst ein oder
> mehrere Elemente ausfiltern (einfach leere TEXT-Elemente ausgeben -
> siehe Beispiel "12") oder sie theoretisch auch durch andere Inhalte
> ersetzen. Die anderen Inhalte können ihrerseits natürlich auch wieder
> aus noch einem ganz anderen cObject kommen.
>
> Zum testen auf einer Seite ein tt_content-Element anlegen, in den Titel
> z.B. 17,21,7,9,4,12 einfügen. Hier im Beispiel ist die uid des Elements 429.
>
>
> page = PAGE
> page.10 = RECORDS
> page.10 {
>    tables = tt_content
>    source = 429
>    conf.tt_content = TEXT
>    conf.tt_content {
>      field = header
>      split {
>        token = ,
>        cObjNum = 1
>        1.cObject = CASE
>        1.cObject {
>          key.current = 1
>          12 = TEXT
>          default = TEXT
>          default.current = 1
>          default.wrap = ,
>        }
>      }
>      substring = 1
>    }
> }
>
>
> Es wird die 12 ersetzt, alle anderen Elemente jeweils ausgegeben und mit
> Komma am Anfang ausgegeben. Da du das erste Komma nicht brauchst noch
> ein Substring drüber (erstes Zeichen abschneiden).
>
> Und tut.
>
> PS: Aber glücklicherweise muss man nicht immer alles in TypoScript lösen
> auf dieser Welt :-)
>
>
> Grüße,
>   Stefan
>
> On 03/08/2013 08:39 PM, SW wrote:
>> Hi Stefan,
>>
>> danke für deine Mühe! Das Problem ist, das man nicht weiß, an welcher
>> Stelle in der Liste der rauszuschmeissende Wert steht. Auch nicht, ob er
>> vorne steht oder nicht und auch nicht, wie viele Elemente die Liste hat.
>> Nicht so einfach mit split...
>>
>> Ich probier mal mit meinen registern weiter, vielleicht führt das zum Ziel.
>>
>> Gruß
>> Susanne
>>
>> Am 08.03.2013 20:33, schrieb Stefan Neufeind:
>>> Hi,
>>>
>>> oder mit split deine Elemente teilen und diese dann per condition
>>> Anzeigen/Nicht anzeigen?
>>>
>>> http://wiki.typo3.org/De:TSref/split
>>>
>>> Du hast dort für jenes Element ein ganz normales cObject, auf welches du
>>> if etc. anwenden kannst.
>>>
>>>
>>> Grüße,
>>>    Stefan
>>>
>>> On 03/08/2013 08:30 PM, Stefan Neufeind wrote:
>>>> Hi,
>>>>
>>>> ich dachte an "ersetze ,1, durch ," Und im Fall, daß es am Anfang steht
>>>> natürlich durch nichts. Das wäre z.B. per Regex ja kein Problem. Aber
>>>> auf 4.5 steht replacement noch nicht zur Verfügung.
>>>>
>>>> "Notfalls" einfach erstmal kurz durch ne userFunc schicken und die Logik
>>>> in PHP realisieren? Ja, quick-n-dirty.
>>>>
>>>> Die TypoScript-Lösung sollte sich schon auch ausknobeln lassen. Da hab
>>>> ich nur gerade nicht die Zeit zu :-)
>>>>
>>>>
>>>> Viel Erfolg,
>>>>    Stefan
>>>>
>>>> On 03/08/2013 08:12 PM, SW wrote:
>>>>> Hallo Stefan,
>>>>>
>>>>> replacement oder Regex nützt leider an dieser Stelle nichts, denn wenn
>>>>> ich z.B. die Zahl 1 "rausschmeißen" will, wird ja die 1 dann auch in
>>>>> 10,11,12.... ersetzt.
>>>>>
>>>>> Ach ja, falls es noch wichtig ist: ich nutze Typo3 Version 4.5
>>>>>
>>>>> Gruß
>>>>> Susanne
>>>>>
>>>>> Am 08.03.2013 20:05, schrieb Stefan Neufeind:
>>>>>> On 03/08/2013 07:50 PM, SW wrote:
>>>>>>> ich gebe eine Kommaseparierte Liste aus einem datenbankfeld aus:
>>>>>>>
>>>>>>> 10 = RECORDS
>>>>>>> 10 {
>>>>>>>            tables = meineTabelle
>>>>>>>            source = 123
>>>>>>>            conf.meineTabelle = TEXT
>>>>>>>            conf.meineTabelle.field = meinTabellenfeld
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> Die Ausgabe ist eine kommaseparierte Liste bestehend aus Ziffern:
>>>>>>> 3,7,10,25....
>>>>>>>
>>>>>>> Aus dieser Ausgabe muss ich nun einen Wert entfernen. Substring
>>>>>>> funktioniert nicht, da dieser Wert je nach ausgelesenem Feld nicht
>>>>>>> immer
>>>>>>> an der gleichen Position vorkommt.
>>>>>> [...]
>>>>>>
>>>>>>> hat vielleicht jemand eine Idee?
>>>>>> Vielleicht einfach per .replacement stdWrap? Mit "useRegExp = 1"
>>>>>> kannst
>>>>>> du dort sogar eine Regex nutzen (z.B. für "steht am Anfang oder hat
>>>>>> vorweg ein Komma") und dann einfach den Teilstring durch nichts
>>>>>> ersetzen?
>>>>>>
>>>>>> removeFromList() ist an der Stelle tricky. Aber der Ansatz mit den
>>>>>> Registern klingt nett :-) Ich denke jedoch das ist mit Spatzen auf
>>>>>> Kanonen geschossen.
>>>>>>
>>>>>>
>>>>>> Grüße,
>>>>>>     Stefan
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>



More information about the TYPO3-german mailing list