• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Switch zu Subdomain bei mobilen Endgeräten realisieren

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.327
Ort
Topkekistan
Jau, darum gehts.

Ich hab hier ne Webseite die nicht responsible fähig ist. Das lässt sich so schnell auch nicht ändern da es dazu keine Zeit gibt und die Seite dazu auch weitreichend geändert werden müsste. Nun hab ich mir mit einem Workaround geholfen.

[src=php]function mobile_or_not($site) {
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|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|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(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|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) {
header('Location: http://m.domain.com/'.$site.'');
exit();
}
}[/src]
Funktioniert auch wunderbar. Hab eine sehr vereinfachte Seite in die Subdomain gepackt. Fein.

Nun wollte ich aber einen Link zur normalen Desktop-Version einbauen. Nur wenn ich auf den Link klicke, vom Handy natürlich, greift ja wieder die Funktion von oben und zack bin ich wieder auf der Mobilen Seite :coffee:

Meien Idee wäre nun gewesen da einen Cookie zu setzen - nur weiß ich nicht ob die Idee so gut ist oder ob es eine einfachere Lösung dafür gibt :unknown:

Habt ihr dazu irgendwelche schlauen Ideen?

Gruß godlike
 

werner

Suchtspielmacher (ehm.)

Registriert
20 Juli 2014
Beiträge
743
Ort
Mannheim
Wenn du es pur mit PHP realisieren willst, ist das der Weg. Für User ohne Cookies wirds haarig. Andere Möglichkeiten wären noch über localStorage (JS) oder eine get variable, die dann aber an jeden internen Link angehängt werden muss. Oder du machst direkt eine PHP Session.
 

eraser

Stinkstiefel

Registriert
21 Juli 2013
Beiträge
3.775
Wenn du an den Link zB ein GET anhängst, kannst du unterscheiden. Oder du überprüfst die verweisende Seite.
 

werner

Suchtspielmacher (ehm.)

Registriert
20 Juli 2014
Beiträge
743
Ort
Mannheim
@eraser dann muss er aber im Quellcode jeden Link ändern. Und das Problem ist natürlich, dass es dann bei Verschicken des Links erst gar nicht überprüft, ob der andere User evtl. ein Mobilgerät hat.
 

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.327
Ort
Topkekistan
  • Thread Starter Thread Starter
  • #5
Gut, das könnte ich evtl mit Modrewrite machen. Ist mir aber evtl zu umständlich bzw. die ganzen "alten" Links würden ja ungültig. Und das sind an die 50000 :(

Denke ich versuche was mit Cookie oder Sessions.

kann ja was zu
[src=php]
if(preg_match('/blahblah')) {
header('Location: http://m.domain.com/'.$site.'');
$mobil = 1;
exit();
} else {
$mobil = 0;
}
[/src]
oder so basteln :unknown:
 

eraser

Stinkstiefel

Registriert
21 Juli 2013
Beiträge
3.775
Ist halt alles eine Frage, wie sauber die Seite programmiert ist. Wenn das alles statisch ist, würde sich ggfl. grundsätzlich mal eine Überarbeitung lohnen.
 

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.327
Ort
Topkekistan
  • Thread Starter Thread Starter
  • #7
Das ist nicht statisch. Daten aus einer bzw. mehreren DBs, URLs werden in Mod-Rewrite angepasst. Darum will ich von den URLs die Finger weg lassen. Ist eh nur eine temporäre Lösung da es eine App dazu geben wird.
 

eraser

Stinkstiefel

Registriert
21 Juli 2013
Beiträge
3.775
Logisch sind die URLs statisch, sonst wäre die Sache ja in ner Minute erledigt. Woher die da kommen, interessiert nicht.

Nicht statisch wäre "$http$domainname$seitenaufruf$lustigesExtra".
 

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.327
Ort
Topkekistan
  • Thread Starter Thread Starter
  • #9
Die URLs werden durch eine Datenbank generiert. blah.com/$var1/$var2/$blubb.html

Ok, da könnte ich dann schon was dran hängen. Aber was wäre dann großartig anders als wenn ich das über ne Subdomain löse? Ich hab die mobile Seite ja so halt schon fertig auf der Subdomain liegen. Wollte nur noch einen Link wegen der Desktopansicht ergänzen. Das Andere läuft so schon ne Weile.
 

virtus

Gehasst

Registriert
24 Apr. 2015
Beiträge
1.689
Ort
AUF DEM MOND
Eventuell kannst du auch eine Marke an die URL hängen #mobile #desktop
Dann kannst du natürlich sonst nicht mehr damit arbeiten. Alternativ ?v=desktop ?v=mobile.
Beides lässt sich auch über JavaScript auslesen/ kontrollieren.
 

keksautomat

Neu angemeldet

Registriert
15 Juli 2013
Beiträge
471
Pack die Logik doch in die .htaccess Datei.
Existiert eine Seite *nicht* in deiner mobilen Seite, so erstellst du einfach eine 404, wo der alte Link (müsste ja im Refererer drin stehen) nochmal auftaucht, und dich auf die Desktop-Seite schickt.

Da du auf die .htaccess wieder gerätst, kannst du dir allerdings auch die Query angucken (GET Parameter) und also auch einen Request dann "durch"lassen, obwohl mobil.
 
Oben