Open Webmeteor opened 8 years ago
Es nutzt ja keinem Entwickler, besonders den Anfängern etwas eine komplexe regex auszutüfteln, damit die Url's in beide Richtungen per PHP umgeschrieben werden. Belastet zudem auch den Server etwas mehr.
Man könnte das ganze auch noch per Datenbank steuern. Man hätte dann dort den eindeutigen Permalink drin stehen. Nur halte ich eine solche Lösung für noch weniger praktikabel.
Meine Lösung finde ich nicht schlecht. Und da du das PHPDoc einführen möchtest, ist doch eine Dokumentation im Script vorhanden.
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft. https://www.avast.com/antivirus
Okay, versuchen wir es. Vielleicht ist das System besser als ich es momentan erkenne. Wenn du magst, kannst du ja einen PR aufmachen und schon mal anfangen alles wesentliche einzubauen. Wenn die ersten Elemente umgeschrieben sind, schaue ich mir dort das Vorgehen ab und unterstütze dich/euch.
So würde dann die index.php aussehen:
`require_once "maincore.php"; /**
$request = str_replace('.html', "", $_SERVER['REQUEST_URI']); $request = str_replace($settings['side_path'], "", $request); $request = preg_replace('/?/', "", $request);
$params = explode("/", $request);
// we use it for .css, .js and other html links /**
// load the page we want if(file_exists($params[0].'php')) require_once $params[0].'php'; elseif (file_exists(INFUIONS.$params[0].'/'.$params[1].'php')) require_once INFUIONS.$params[0].'/'.$params[1].'php'; elseif ($params[0]=='index') require_once $settings['opening_page']; /**
Wobei die neue Konstante ja eher in die maincore.php gehört. Dort müsste dann auch die Funktion für Entwickler rein, die die Links generiert. So haben wir jetzt 1 feststehenden Wert für die Coredateien und 2 feststehende Werte für die Entwickler von Infusionen. Beim Rest ist dann jeder frei, wie was belegen will.
Hat jetzt den Vorteil, dass man keine extra Rewriter schreiben muss. der Rest kann dann in den einzelnen Dateien ganz am Anfang deklariert werden.
Ob es mit der Konstanten da klappt, habe ich noch nicht getestet. Der Codeschnippsel stammt aus einem anderen CMS.
und hier noch eine Änderung als Beispiel die viewpage.php `if(!defined(IN_FUSION)) header('location: index.html');
require_once THEMES."templates/header.php"; require_once INCLUDES."comments_include.php"; require_once INCLUDES."ratings_include.php"; include LOCALE.LOCALESET."custom_pages.php";
/**
if (!isset($params[1]) || !isnum($params[1])) { redirect("index.html"); }else{ $_GET['page_id'] = $params[1]; } if (!isset($params[3]) || !isnum($params[3])) { $_GET['rowstart'] = 0; }else{ $_GET['rowstart'] = $params[3]; }`
Bleibt also noch genauso "übersichtlich" wie vorher.
habe jetzt mal ein paar files in den pull request geschoben. sind noch nicht alle zu 100% fertig. Aber so lässtsich ja schonmal erkennen, wie ich es mir so denke. Wenn denn alle mit dieser wohl etwas einfacheren Lösung einverstanden sind, dann mache ich gerne weiter. Lässt sich sicherlich auch noch etwas verfeinern. Getestet ist das ganze bisher auf PHP 5.5 shared Hosting
Nach welcher Art?
Und muss zwingend ein Fallback für mod_rewrite off da sein? Ich denke es gibt mittlerweile keinen Hoster mehr, der mod_rewrite nicht zur Verfügung stellt.