ilch Forum » Ilch Clan 1.1 » Allgemein » Browserweiche Design

Geschlossen
  1. #1
    User Pic
    mic_pt Mitglied
    Registriert seit
    03.01.2008
    Beiträge
    319
    Beitragswertungen
    19 Beitragspunkte
    Moin moin,

    ich wollte mal die Pros fragen ob es möglich ist mittels einer Browserweiche bzw. dem User_Agent die designwahl festzulegen.

    Wir haben bei uns in der Community mittlerweile einige die tablets und Smartphones nutzen. Da diese ja Flash und Slider unheimlich gerne haben *hehe* hab ich ein zweites cleanes design angelegt welches "mobile"-freundlich ist.

    Nun können die User entweder das Design-Dropdown nutzen oder einen zweiten User für die Mobile version anlegen (Damit sie nicht immer Designs switchen müssen wenn von Mobile zu PC und umgekehrt)

    die abfrage über den User_agent würde ich noch hinbekommen - aber wie kann man dann ilch beibringen das er davon abhängig ein Design wählen soll?


    danke fürs draufschauen zwinker
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.634
    Beitragswertungen
    1193 Beitragspunkte
    Evtl. könnte man in der include/includes/class/design.php bei der Funktion htmlfile() diese Abfrage einbauen und somit bei einem mobilen Gerät automatisch beispielsweise index_mobile.htm aufrufen lassen!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    In der tpl.php gibt es die Funktion get_design, die festlegt bzw auswertet, welches Design verwendet wird.

    Dort siehst du auch, dass die $_SESSION['authgfx'] Variable ausgelesen wird, dort steht das zu verwendende Design drin.

    Gesetzt wird diese Variable in der Funktion user_set_user_online() in der func/user.php, dort solltest du deine Weiche einbauen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    mic_pt Mitglied
    Registriert seit
    03.01.2008
    Beiträge
    319
    Beitragswertungen
    19 Beitragspunkte
    Danke für eure Tips.

    Ich bin jetzt ein stück weiter :

    function check_mobi($useragent) {
    
        if(preg_match('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|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\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-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(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |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\-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|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|\-([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\-)|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\-|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\-|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]|\-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\-|your|zeto|zte\-/i',substr($useragent,0,4))) { return true; }
    
      }
    
    function user_set_user_online () {
      global $allgAr;
      if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        db_query("INSERT INTO prefix_online (sid,uptime,ipa) VALUES ('".session_id()."',now(),'".getip()."')");
      }
    
      if (check_mobi($_SERVER['HTTP_USER_AGENT'])) { $_SESSION['authgfx'] = 'mobile'; } else { $_SESSION['authgfx'] = $allgAr['gfx'];}
    
    }


    Aber das ist es noch nicht. Es funktioniert leider nicht. Ich habe eine Box zum testen erstellt die anzeigt ob es ein mobiler Browser ist oder nicht. dort wird alles richtig erkannt. Die Funktion funktioniert aus der user.php heraus.

    Es kann also dann nur am zuweisen des neuen Designs(mobile) zu liegen. Dort habe ich mangels wissen es versucht so zu lösen :

    if (check_mobi($_SERVER['HTTP_USER_AGENT'])) { $_SESSION['authgfx'] = 'mobile'; } else { $_SESSION['authgfx'] = $allgAr['gfx'];}


    Aber kein erfolg .. egal ob ich $_SESSION['authgfx'] = 'mobile'; oder $allgAr['gfx'] = 'mobile'; benutze.


    Hilfe .. lächeln
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.634
    Beitragswertungen
    1193 Beitragspunkte
    Hast Du dann auch das Verzeichnis/Design include/designs/mobile/index.htm ?


    Zuletzt modifiziert von Lord|Schirmer am 22.02.2013 - 20:45:11
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    mic_pt Mitglied
    Registriert seit
    03.01.2008
    Beiträge
    319
    Beitragswertungen
    19 Beitragspunkte
    klar lächeln

    dort liegt ein funktionierendes design. Ich kann auch von hand switchen. Nur weiss ich nicht wie man in der Wenn Dann abfrage den befehl zum designwechseln setzt.
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.634
    Beitragswertungen
    1193 Beitragspunkte
    Meiner Meinung nach hast es schon richtig gemacht ... ich weis jetzt nur nicht ob die Funktion check_mobi(); auch ein mobiles Endgerät erkennt.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    mic_pt Mitglied
    Registriert seit
    03.01.2008
    Beiträge
    319
    Beitragswertungen
    19 Beitragspunkte
    *hehe* das ist ja mal nen ding ... also auf dem Galaxy funktioniert es .. mein Ipad bleibt stur auf dem alten design.

    Ich glaube du hast recht und der fehler liegt irgendwo im detail der erkennung. Was mich wundert da wenn ich statt des umschaltens den Text ausgeben lasse mobil/nicht mobil .. auf dem Ipad ein Mobil steht.

    Ich melde mich nochmal wenn ich den fehler gefunden hab zwinker

    danke nochmal an die hilfe
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    mic_pt Mitglied
    Registriert seit
    03.01.2008
    Beiträge
    319
    Beitragswertungen
    19 Beitragspunkte
    ok es funktioniert doch .. gibt bloß probleme wenn man mit angemeldeten benutzer an beiden geräten gleichzeitig sitzt *hehe*

    So falls es noch einer benutzen will :

    In der /include/func/user.php ab zeile 57

    function user_set_user_online () {
      global $allgAr;
      if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        db_query("INSERT INTO prefix_online (sid,uptime,ipa) VALUES ('".session_id()."',now(),'".getip()."')");
      }
      $_SESSION['authgfx'] = $allgAr['gfx'];
    }


    ERSETZEN DURCH

    function check_mobi($useragent) {
    
        if(preg_match('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|pad|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|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\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-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(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |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\-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|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|\-([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\-)|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\-|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\-|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]|\-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\-|your|zeto|zte\-/i',substr($useragent,0,4))) { return true; }
    
      }
    
    function user_set_user_online () {
      global $allgAr;
      if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        db_query("INSERT INTO prefix_online (sid,uptime,ipa) VALUES ('".session_id()."',now(),'".getip()."')");
      }
    
      if (check_mobi($_SERVER['HTTP_USER_AGENT'])) { $_SESSION['authgfx'] = 'mobile'; } else { $_SESSION['authgfx'] = $allgAr['gfx'];}
    
    }


    Dann braucht ihr natürlich noch ein Design für mobile Endgeräte. Wenn ihr den Code 1zu1 übernimmt MUSS das mobile Design "mobile" heissen. Ansonsten ändert den namen (fett markiert) in den eures Designs um :

    if (check_mobi($_SERVER['HTTP_USER_AGENT'])) { $_SESSION['authgfx'] = 'mobile'; } else { $_SESSION['authgfx'] = $allgAr['gfx'];}

    Dann werden Smartphones, Tablet und Co auf das andere Design umgeleitet. Dort sollte dann ein sauberes und schlichtes Design liegen, ohne Flash, Slider und krimskram zwinker
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Alternative Lösung
    externer Link

    Funktioniert nach dem selben Prinzip.


    Zuletzt modifiziert von Revolution am 22.02.2013 - 22:09:43
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten