[TYPO3-german] removeFromList

Stefan Neufeind typo3.neufeind at speedpartner.de
Fri Mar 8 21:33:07 CET 2013


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


More information about the TYPO3-german mailing list