WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 27.09.2015 06:52:04

norhei
Developer

Pfade automatisch Erstellen

Es wäre schön wenn wir auf die Pfadangaben in der config.php verzichten könnten(Andere CMS können das auch). Aber alle Definitionen erhalten ein if(defined()) damit man sie auch manuell setzen kann. Ich habe da mal was zusammengestellt , bitte die Meinungen.

It would be cool if could remove the Path settings in config.php. (many other CMS do not need these). In addition we schould keep an if(defined()) in each definition so we can set it manually if we want. I just made a little collection of ideas , please comment.

// store if we are on http or https
if(isset ($_SERVER['HTTPS']) AND 'on' == $_SERVER['HTTPS'] and !defined('WB_PATH')) 
    define ("WB_PROTOCOL", "https://");
else
    define ("WB_PROTOCOL", "http://");

// get the base path
if( !defined('WB_PATH')) { define('WB_PATH', realpath(dirname(dirname(__FILE__)))); }

// get the relative path where the WB main dir resides
// we need some extra checking here as 1und1 for example gives invalid paths for docroot and 
// __file__ on managed servers cause of symlinks used
if( !defined('WB_REL')) {
	$WB_REL=dirname(dirname(str_replace(realpath($_SERVER["DOCUMENT_ROOT"]),"",realpath(__file__))));
	if ($WB_REL=="/" or $WB_REL=='\\') {define('WB_REL',"" );}
	else {define('WB_REL',$WB_REL );}
	unset ($WB_REL); // cleanup global space
}

// set WB_URL
if( !defined('WB_URL')) { define('WB_URL', WB_PROTOCOL.$_SERVER["HTTP_HOST"]. WB_REL);}

Beitrag geändert von norhei (27.09.2015 06:52:33)

Offline

#2 27.09.2015 07:18:23

florian
Administrator

Re: Pfade automatisch Erstellen

Worin besteht der Vorteil? Bloß weil andere das können, muss WBCE dem nicht hinterherhecheln.
Momentan sehe ich eher Nachteile, nämlich dass sich die config.php in ein unlesbares Codemonster verwandelt und wir uns mutwillig neue Problemstellen ("we need some extra checking here") einhandeln.

Daher zunächst -1 von mir, lasse mich aber gern mit Argumenten umstimmen.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 27.09.2015 08:00:12

norhei
Developer

Re: Pfade automatisch Erstellen

Also erst mal in die config.php gehört das nicht , da würde die Konstanten Definitionen einfach nur wegfallen. Das gehört in die initialize.php und faktisch wird dort ja schon WB_PATH definiert(neben vielen anderen Konstanten).   Auch bei WB wurde in den Vorabversionen  oft WB_REL und gelegentlich auch WB_URL mit generiert.

Also im Endeffekt muss man sich noch weniger Gedanken bei der Installation machen und kann sich nicht vertun. Bei einem Umzug funktioniert alles sofort , ohne das man was ändern muss. Die Konstante WB_REL also der relative Pfad (vom Webroot) wird bei WB an vielen Stellen mehrfach zusammengebastelt aber es wär schon praktischer den einfach einmal zu haben(zum Beispiel media_rel im WYSIWYG für die relativen Angaben zur Bild URL konsequenter weise müsste man das dann in jedem Modul machen ... ). WB_PROTOCOL ist eigentlich nur ein Helper , allerdings  weiß man damit eben auch Systemweit ob grade http oder https läuft, das ist recht nützlich beim zusammenbau von Links und auch das SEO Modul dürfte davon profitieren.

Ach ja, und wenn man WB als Multidomainsystem verwenden will, ist das Vorraussetzung die WB_URL nach der aktuellen Domain zu setzen. Und auch Multidomain wurde im WB Forum schon öffter  nachgefragt. (Deswegen hatte ich ja den Multidomain Patch geschrieben)

Offline

#4 28.09.2015 15:12:33

webbird
Administrator

Re: Pfade automatisch Erstellen

Vorsicht mit dirname() und realpath(). In Umgebungen mit Softlinks und/oder Netzlaufwerken fliegt einem das leicht um die Ohren. Wir haben bei BC gerade den Installer deswegen aufgebohrt; dieser vergleicht jetzt $_SERVER mit dirname() und setzt bei Abweichung den Pfad aus $_SERVER.

An anderer Stelle (hatte nichts mit WB oder BC zu tun) hatte ich schon mal das Problem, daß realpath() nicht zusammen mit Netzlaufwerken mochte. Könnte allerdings sein, daß das im PHP selbst gefixt wurde, ist schon lange her.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#5 28.09.2015 22:43:21

norhei
Developer

Re: Pfade automatisch Erstellen

Ich weis dirname() ist mir wegen Symlinks um die Ohren geflogen(1und1 managed server) deswegen realpath() .  Sowas muss halt getestet werden ...
Schlimmstenfalls bleibt noch die manuelle Möglichkeit in der Config.  Poste doch mal Eure Lösung ?

Offline

#6 29.09.2015 09:27:48

webbird
Administrator

Re: Pfade automatisch Erstellen

Da gibt's nix zu posten, wie es geht, steht oben, und im Zweifel schreiben wir halt den absoluten Pfad in die config.php. (Statt dirname(__FILE__).)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#7 29.09.2015 11:32:15

norhei
Developer

Re: Pfade automatisch Erstellen

Ah ok ,  naja, das Problem das sich $SERVER und dirname(__FILE__) unterschieden ,hatte ich auch , das lässt sich aber mit realpath() beheben. Wie du schön sagtest, das passiert wen der Server Symlinks benutzt.

Offline

#8 29.09.2015 11:36:43

webbird
Administrator

Re: Pfade automatisch Erstellen

Wie gesagt, ich hatte mit realpath() schon mal Probleme, aber das ist schon länger her und eventuell inzwischen behoben. Vielleicht einfach im Hinterkopf behalten.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#9 29.09.2015 12:17:42

norhei
Developer

Re: Pfade automatisch Erstellen

Auf jeden Fal! Denke grade noch über nen Extra Check nach.

Offline

Fußzeile des Forums

up