Probleme mit userFunc [Gelöst]

  • TheFreeman TheFreema...
    Jedi-Meister
    0 x
    501 Beiträge
    0 Hilfreiche Beiträge
    09. 01. 2012, 14:23

    Hallo,

    ich habe Probleme mit meiner userFunc.

    Ich möchte gerne Mobile-Geräte auf eine seperate PID umleiten.
    Dazu habe ich in die localconf.php folgende Funktion eingebaut:

    1. function user_checkMobile() {
    2. if(preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge|
    3. maemo|midp|mmp|mobile safari|opera mini|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up
    4. \.(browser|link)|vodafone|wap|linux|windows(ce|phone)|xda|xiino/i',$_SERVER['HTTP_USER_AGENT']) ||
    5. preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|awa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|
    6. ar(ch|go)|as(te|us)|attw|au(di|\-m|r|s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm
    7. \-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|
    8. \-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1u|g560|gene|gf
    9. \-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-|
    10. |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|
    11. \-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt
    12. |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m
    13. \-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-||o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|
    14. 5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|
    15. \-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i
    16. \-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh
    17. \-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18-)|ta(gt|lk)|tcl
    18. \-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|
    19. \-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98-)|w3c(\-|)|webc|whit|wi(g|nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas
    20. \-|your|zeto|zte\-/i',substr($_SERVER['HTTP_USER_AGENT'],0,4)))
    21. {
    22. header('Location: http://www.meinedomain.de/mobile.html');
    23. }
    24. }

    Im Root-Setup steht:

    1. [userFunc = user_checkMobile]
    2. # tu nichts!
    3. [end]

    Der Filter funktioniert super. Nur leitet das System im LOOP auf die Seite mit der PID 30 (mobile.html). Aber auf der PID 30 liegt ein weiteres ROOT-Template, wo im Setup NICHTS von der userFunc auftaucht. daher verstehe ich das nicht, warum das so ist. Ich kann keinen Fehler finden.

    Bin am verzweifeln. :o


  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    09. 01. 2012, 15:34

    Hallo,

    es sieht so aus, als ob das Template von ROOT vererbt wird.
    Versuch mal bitte in den Seiteneigenschaften von der Seite PID 30,
    unter Options > Clear: Constants und Setup beide Haken zu setzen.

    VG,
    LuP

  • TheFreeman TheFreema...
    Jedi-Meister
    0 x
    501 Beiträge
    0 Hilfreiche Beiträge
    09. 01. 2012, 16:54

    Hi,

    also clear constants, clear setup & wurzelebene ist aktiviert.
    Das ist auch der Grund, warum ich nicht weiter weiss. 8-)

    LG Daniel

  • Chrissli Chrissli
    Jedi-General
    0 x
    1015 Beiträge
    28 Hilfreiche Beiträge
    09. 01. 2012, 23:57

    Boah,
    die RegExp ist ja dicke, und die funktionoert (oO) ??

    Egal,
    schau doch mal unter Templates im ObjectBrowser
    der Unterseite das Setup durch, ob hier vielleicht doch etwas
    geerbt wird

    God's in his heaven, all's right with the world

  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    12. 01. 2012, 09:38

    Versuch mal

    1. [userFunc = user_checkMobile()]

    also mit Klammern am Ende.

  • TheFreeman TheFreema...
    Jedi-Meister
    0 x
    501 Beiträge
    0 Hilfreiche Beiträge
    12. 01. 2012, 10:19

    Danke für den Tip.
    Habe jetzt aber einfach meine Lösung weggeschmissen und mir die
    Extension cwmobileredirect installiert und Ihr werdet es nicht
    glauben, aber auch hier entsteht ein Loop.#angry#

    Also muss der Fehler woanders liegen. Ich finde den aber nicht.
    Bitte um Hilfe.:o

  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    12. 01. 2012, 10:37

    Ach wie dumm von mir, habe die Frage zu schnell überflogen und falsch verstanden.

    Hast Du im TS-Setup der Seite mobile.html auch simulatestatic aktiviert?

  • TheFreeman TheFreema...
    Jedi-Meister
    0 x
    501 Beiträge
    0 Hilfreiche Beiträge
    12. 01. 2012, 10:52

    Nein, ich benutze realURL, daher habe ich folgende Konfig:
    config.simulateStaticDocuments = 0

  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    12. 01. 2012, 11:03

    Naja gut, dann halt RealURL. Hast Du auf der Seite mobile.html realurl aktiviert? Hast Du schonmal die Weiterleitungs-Extension und -Script weggelassen und geschaut, ob die URL dann korrekt aufgerufen werden kann? Nicht dass die Seite aufgrund falscher URL-Konfiguration nicht gefunden wird und dann deshalb immer wieder auf eine Fehlerseite umgeleitet wird (oder je nach Standardkonfiguration die Startseite) und diese wieder versucht auf die mobile.html weiterzuleiten usw.

  • TheFreeman TheFreema...
    Jedi-Meister
    0 x
    501 Beiträge
    0 Hilfreiche Beiträge
    12. 01. 2012, 11:30

    Hmm...nein, ohne der Extension klappen die URLs und auch die
    Navigation in den beiden Bereichen, wie es soll.