Condition: Inhaltselement ein/ausblenden

  • workfare workfare
    R2-D2
    0 x
    113 Beiträge
    0 Hilfreiche Beiträge
    20. 07. 2006, 16:46

    Hallo Liste,
    ich habe eine Downloadseite mit Windowssoftware. Regelmässig laden sich Mac-User die Software runter und beschweren sich dann (natürlich: Auf der Seite steht dick und fett: Windows, aber ...)
    Also muss eine condition für die eine Seite her:
    [TS][globalVar = TSFE:id=5] && [system = mac]
    page.10.marks.INHALT >
    page.10 = HTML
    page.10 {
    value = <div class="SublineOrange" align="right">Sie haben einen Mac! Unsere Software ist für Windows!</div><a href="javascript:history.back()">ZURÜCK</a>
    }
    [global][/TS]
    Das funktioniert, ist mir aber zu grob! Lieber wäre mir, ich könnte bei Erfüllen der Bedingung ein Inhaltselement, dass zuvor unsichtbar war, sichtbar schalten (fette Warnung, Popup ect...).
    Aber ich habe keinen Plan wie.
    Vorschläge?
    Bedank
    /
    Jens


  • 1
  • jochen jochen
    R2-D2
    0 x
    113 Beiträge
    0 Hilfreiche Beiträge
    20. 07. 2006, 22:25

    Hi workfare,

    wenn das Problem ist, dass Du die Meldung für Mac-User in ein Inhaltselement schreiben willst statt direkt im TypoScript, dann könntest Du es folgendermaßen lösen: Du erstellt z.B. in einem SysOrdner das Inhaltselement mit der Meldung und merkst Dir dessen ID. Im TypoScript verwendest Du dann Deine Bedingung, um entweder die Downloads (für Windows-User) oder das Inhaltselement mit der Meldung anzuzeigen. Sollte in etwa so funktionieren:
    [TS][system = mac]
    ### Inhaltselement (z.B. ID 42) mit Meldung für Mac-User einbinden
    temp.msg_or_download = RECORDS
    temp.msg_or_download {
    tables = tt_content
    ### Inhaltselement mit ID 42 ist Quelle
    source = 42
    }
    [else]### Hier die Downloads für Windows-User
    temp.msg_or_download = ...
    [global]...
    page.10 < temp.msg_or_download
    ...
    [/TS]

    Grüße
    Jochen

  • workfare workfare
    R2-D2
    0 x
    113 Beiträge
    0 Hilfreiche Beiträge
    25. 07. 2006, 11:46

    Hi Jochen und Bedank!
    Ich habe ein Inhaltselement in einem Sysordner angelegt und mir per PhPMyAdmin die UID rausgefummelt und eingetragen, leider passiert nix!
    [TS][globalVar = TSFE:id=5] && [system = mac]
    ### Inhaltselement (z.B. ID 42) mit Meldung für Mac-User einbinden
    temp.msg_or_download = RECORDS
    temp.msg_or_download {
    tables = tt_content
    ### Inhaltselement mit ID 715 ist Quelle
    source = 715
    }
    [else]### Hier die Downloads für Windows-User
    temp.msg_or_download = {
    tables = tt_content
    ### Inhaltselement mit ID 45 ist Quelle
    source = 45
    }
    [global][/TS]
    Resultat: Nix passiert
    Siehst du den Fehler?
    Auf jeden Fall erstmal Danke Schön, dass kann man ja immer mal gebrauchen ...

  • Proximo Proximo
    Jedi-Ratsmitglied
    0 x
    563 Beiträge
    0 Hilfreiche Beiträge
    25. 07. 2006, 16:21

    Ich hab mir das mal so gedacht:

    [TS]### Hier die Downloads für Windows-User
    temp.msg_or_download = RECORDS
    temp.msg_or_download = {
    tables = tt_content
    ### Inhaltselement mit ID 45 ist Quelle
    source = 45
    dontCheckPid = 1
    }
    [PIDinRootline = 5] && [system = mac]
    ### Inhaltselement (z.B. ID 42) mit Meldung für Mac-User einbinden
    ### Inhaltselement mit ID 715 ist Quelle
    temp.msg_or_download.source = 715
    [global]page.10 < temp.msg_or_download[/TS]

    Das dumme ist nur, dass ich keine Ahnung von deinem Seitenaufbau habe/nicht weiß ob ich "PIDinRootline" verwenden kann... oder ob ich ein Gegenargument setzten muß.

    Prizipiell sollte es aber so funktionen...

    MFG Proximo

    EDIT: Schön ist die Lösung nicht, ich würde mir was anderes überlegen, dass WENIGSTENS mit Spalten stat ID arbeitet

  • workfare workfare
    R2-D2
    0 x
    113 Beiträge
    0 Hilfreiche Beiträge
    26. 07. 2006, 14:06

    Danke Proximo!
    Aber das will auch nicht werden ...
    Ich habe das in ein Extensiontemplates gebaut. Auf der entsprechenden Seite liegt das Inhaltselement TEXT mit der UID 45. In diesem Text befindet sich das Link zum Download. Vermutlich habe ich mich da unpräzise ausgedrückt. Der eigentliche Download findet ausserhalb von typo3 statt (php mit Registrierung usw). 714 ist ein dhtml-pop up mit der Warnung, aber mir würde auch ein einfaches Stück Text reichen, kann man da nicht was mit "hide" / "unhide" machen?
    [TS]### Hier die Downloads für Windows-User
    temp.msg_or_download = RECORDS
    temp.msg_or_download = {
    tables = tt_content
    ### Inhaltselement mit ID 45 ist Quelle
    source = 45
    dontCheckPid = 1
    }
    [PIDinRootline = 5] && [system = mac]
    # Inhaltselement (z.B. ID 42) mit Meldung für Mac-User einbinden
    ### Inhaltselement mit ID 714 ist Quelle
    temp.msg_or_download.source = 714
    [global]page.10.marks.INHALT < temp.msg_or_download
    [/TS]
    Blöde Frage: Das page.10 usw macht mir die Seite leer, aber es ist doch richtige den Marker mit temp.usw zu füllen, oder?
    PIDinRootline sollte kein Problem sein
    Bedank
    /
    jens

  • workfare workfare
    R2-D2
    0 x
    113 Beiträge
    0 Hilfreiche Beiträge
    27. 07. 2006, 17:53

    unelegante Lösung, aber Sie funktioniert:
    Wenn ein Mac User die Downloadseite aufruft, schiebe ich ihm/ihr eine andere unter (mit der ID 149) mit den entsprechenden Informationen:
    [TS][system = mac]
    page.10.marks.INHALT >
    page.10.marks.INHALT = CONTENT
    page.10.marks.INHALT.table = tt_content
    page.10.marks.INHALT.select.pidInList = 149
    page.10.marks.INHALT.select.languageField = sys_language_uid
    page.10.marks.INHALT.select.where = colPos = 0
    page.10.marks.INHALT.select.orderBy = sorting
    [global][/TS]
    Die Lösung mit den Inhaltselementen wäre natürlich eleganter gewesen, habe ich aber nicht hinbekommen ....

  • n00k n00k
    Sternenflotten-Admiral
    0 x
    181 Beiträge
    0 Hilfreiche Beiträge
    22. 12. 2009, 16:21

    Hallo zusammen,

    ich hätte dazu auch mal eine Frage.
    Angenommen ich möchte nun eine Inhaltselement via Condition einblenden, welches zwischen anderen Elementen auf der Seite steht.
    Sprich ich habe die Spalte "Normal" mit 4 Elementen und das 2. möchte ich ausgeblendet haben, bzw. mit Condition dann wieder einblenden.
    Geht das?

    Ich dachte daran, das hidden-Feld auf 0 zu setzen, wenn die Condition ausgeführt wird. Im Normalfall wäre das CE dann hidden=1 oder so.

    Vielen Dank.

  • Michaelh74 Michaelh7...
    Jedi-General
    0 x
    1519 Beiträge
    0 Hilfreiche Beiträge
    26. 12. 2009, 17:57

    Das geht noch etwas kürzer:
    [TS][system = mac]
    page.10.marks.INHALT < styles.content.get
    page.10.marks.INHALT.select.pidInList = 149
    [global][/TS]

    Alternativ kann Du auch eine Spalte für WIN und eine für PC verwenden:
    [TS]# default
    page.10.marks.INHALT < styles.content.get
    page.10.marks.INHALT.select.pidInList = 149
    [system = mac]
    page.10.marks.INHALT < styles.content.getRight
    [global][/TS]

    Gruß
    Michael

  • 1