Home
Download
Add-ons
Help
Forum
Organisation
Project
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email?
May 26, 2012, 09:50:37 PM
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Search:
Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter
hier
und auf unserer
neuen Webseite
.
155554
Posts in
21715
Topics by
7737
Members
Latest Member:
gx-world
WebsiteBaker Community Forum
Deutsch (German)
Hilfe/Support
(Moderator:
badknight
)
Websitebaker mit dynamischer WB_URL laufen lassen
Pages: [
1
]
Go Down
Author
Topic: Websitebaker mit dynamischer WB_URL laufen lassen (Read 535 times)
janosch94
Offline
Posts: 185
Websitebaker mit dynamischer WB_URL laufen lassen
«
on:
December 15, 2011, 07:16:19 AM »
Hallo & guten Morgen liebe Community
ich stehe vor einem relativ komplexen Problem und möchte nun wissen ob so etwas mit Websitebaker überhaupt möglich ist ohne da jetzt den ganzen Core umzuprogrammieren. Codezeilen anzupassen wäre kein Problem, weil ich mich mit PHP gut auskenne.
Es geht um folgendes:
Bin Azubi und mache in meiner Firma das Intranet neu. Das CMS dahinter: natürlich Websitebaker (Version 2.8.2)
Unser Intranet muss auch von ein paar Außenstellen und unter anderem von zu Hause aus aufgerufen werden. Der Webserver steht in einer DMZ wo man von innen und außen hinkommt. Von außen läuft der Zugriff über eine Art Proxy.
Die Funktionsweise des Proxy ist mir bis jetzt noch nicht bekannt. Also ob er jetzt die Seiten aufruft als wäre es Intern oder ob er die Seiten mit der externen URL aufruft...mehr Infos gibt es im Laufe des Tages
Auf jeden Fall werden die Links im CMS ja immer "hart absolut" erstellt. Wenn ich ein Bild im WYSIWG-Editor einfüge bekommt es im src-Attribut immer die volle URL. Also intern:
http://intranetserver/media/bild.jpg
wenn man das jetzt von extern aufruft gibt es logischweise keinen Server, der den Namen Intranetserver trägt.
Und darin liegt mein Problem :/ Kann man die Erstellung der Links generell nur als Pfade einstellen?
Anstatt
http://intranetserver/media/bild.jpg
müsste der Pfad nur so lauten
/media/bild.jpg
Hat jemand da schon ein paar Erfahrungen sammeln können ? Wäre nett wenn ihr da mal berichten könnt, ob und wie das funktioniert
Vielen Dank!
MfG
Jan
Logged
Wie kastriert man Windows-User? Man schneidet das Mauskabel durch.
dbs
WebsiteBaker Org e.V.
Offline
Posts: 3719
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #1 on:
December 15, 2011, 07:41:18 AM »
Moin,
schau mal hier rein:
http://www.websitebaker2.org/forum/index.php/topic,20841.msg140994.html#msg140994
oder hier:
http://www.websitebaker2.org/forum/index.php/topic,21062.msg142207.html#msg142207
Hoffe es hilft dir weiter.
dbs
«
Last Edit: December 15, 2011, 07:42:52 AM by dbs
»
Logged
DarkViper
Development Team
Offline
Posts: 1254
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #2 on:
December 15, 2011, 10:22:46 AM »
Quote from: janosch94 on December 15, 2011, 07:16:19 AM
Auf jeden Fall werden die Links im CMS ja immer "hart absolut" erstellt. Wenn ich ein Bild im WYSIWG-Editor einfüge bekommt es im src-Attribut immer die volle URL. Also intern:
http://intranetserver/media/bild.jpg
In der Regel werden Links immer zur Laufzeit mit WB_URL zusammengestellt. Ausnahme ist hauptsächlich das WYSIWYG-Modul, das die erzeugten, absoluten URLs in der Datenbank speichert. Um das zu korrigieren, ist der von dbs vorgeschlagene Patch notwendig (
WYSIWYG and WB_URL fix
). Falls noch irgendein anderes Modul die selben Probleme bereitet, so muss das sinngemäss zum WYSIWYG-Modul gepatcht werden.
Zusätzlich kannst Du in der 2.8.2(SP2) auch noch im Backend den Outputfilter auf relative URLs einstellen.
Quote from: janosch94 on December 15, 2011, 07:16:19 AM
Die Funktionsweise des Proxy ist mir bis jetzt noch nicht bekannt. Also ob er jetzt die Seiten aufruft als wäre es Intern oder ob er die Seiten mit der externen URL aufruft...mehr Infos gibt es im Laufe des Tages
vereinfacht gesagt nutzt der Proxy auf der internen Seite normalerweise meist die selbe URL, die Du auch beim internen Aufruf nutzt. Sollte das nicht der Fall sein, kann ich Dir noch einen weiteren Patch geben, der dann auch WB_URL entsprechend anpasst.
Logged
Anleitungen lesen und selber nachdenken ist anstrengend... Da lass ich doch lieber andere für mich denken...
In
1984
: Nineteen Eighty-Four is a unrealistic utopia!!
In
2012
: Nineteen Eighty-Four is a little piece only of our reality!!
janosch94
Offline
Posts: 185
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #3 on:
December 15, 2011, 03:35:32 PM »
Servus,
vielen Dank schon einmal! Ich werde mir die Links in den nächsten Tagen mal anschauen und bei Bedarf dann melden
MfG
Jan
Logged
Wie kastriert man Windows-User? Man schneidet das Mauskabel durch.
janosch94
Offline
Posts: 185
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #4 on:
January 13, 2012, 10:44:18 AM »
So liebe Community der Reverse Proxy wurde jetzt von unserem IT-Partner eingerichtet und ich kann jetzt endlich mal produktiv testen.
Folgendes Szenario steht bis jetzt:
Interner Aufruf - funktioniert ohne Probleme
Externer Aufruf - funktioniert eingeschränkt, Grundfunktionen funktionieren aber alle
Intern wird der Server über den DNS-Namen angesprochen. Wenn man von intern aufruft liegt alles direkt unterhalb des Hostnames. Also :
http://intranetserver/pages/home.php
Von extern wird der Server über einen anderen Server aufgerufen. Das technische dahinter ist eigentlich unwichtig
Wichtig ist, dass die Seiten dann nicht direkt unter dem Root aufgerufen werden. Nämlich so:
https://www.bliblablub.de/intern/pages/home.php
Ich konnte viele Hindernisse durch das dynamische setzen der WB_URL folgendermaßen lösen
:
Code:
if($_SERVER['REMOTE_ADDR'] == "xxx.xxx.xxx.xxx") {
define('WB_URL', 'https://www.bliblablub.de/intern');
define('ADMIN_PATH', WB_PATH.'/admin');
define('ADMIN_URL', 'https://www.bliblablub.de/intern/admin');
} else {
define('WB_URL', 'http://intranetserver');
define('ADMIN_PATH', WB_PATH.'/admin');
define('ADMIN_URL', 'http://intranetserver/admin');
}
Außerdem werden relative Links durch ein
<base href="
https://www.bliblablub.de/intern
">
im Head richtig hingebogen.
Nun aber mein Problem...der Editor müsste beim Einfügen von Bildern oder Medien nicht den absoluten Pfad nehmen sondern einen relativen.
Falsch:
http://WB_URL/media/weihnachtsfeier/bild1.jpg
Richtig: media/weihnachtsfeier/bild1.jpg
Gibt es dafür schon Workarounds @DarkViper?
Wäre euch sehr sehr dankbar wenn ihr mir vielleicht ein paar Denkanstöße geben könntet! PHP-Kenntnisse habe ich und ich scheue mich auch nicht in den Dateien vom WYSIWG-Editor rumzuwerkeln
Gruß
Jan
Logged
Wie kastriert man Windows-User? Man schneidet das Mauskabel durch.
ruebenwurzel
WebsiteBaker Org e.V.
Offline
Posts: 7973
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #5 on:
January 13, 2012, 11:09:24 AM »
Hallo,
man kann den FCKEditor dazu bringen statt der vollen URL relative URL's zu benutzen. Die dazugehörenden Einstellungen findest du in den Zeilen 54-72 der /modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php:
Code:
// Path to user files relative to the document root.
// $Config['UserFilesPath'] = '/userfiles/' ;
$Config['UserFilesPath'] = WB_URL.MEDIA_DIRECTORY.'/' ;
// use home folder of current user as document root if available
if(isset($_SESSION['HOME_FOLDER']) && file_exists($wb_path .MEDIA_DIRECTORY .$_SESSION['HOME_FOLDER'])){
$Config['UserFilesPath'] = $Config['UserFilesPath'].$_SESSION['HOME_FOLDER'];
}
// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Useful if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
// $Config['UserFilesAbsolutePath'] = '' ;
$Config['UserFilesAbsolutePath'] = $wb_path .MEDIA_DIRECTORY.'/' ;
// use home folder of current user as document root if available
if(isset($_SESSION['HOME_FOLDER']) && file_exists($wb_path .MEDIA_DIRECTORY .$_SESSION['HOME_FOLDER'])){
$Config['UserFilesAbsolutePath'] = $Config['UserFilesAbsolutePath'].$_SESSION['HOME_FOLDER'].'/';
}
Lösche mal einfach das WB_URL in Zeile 56, das sollte eigentlich genügen. Nachteil, die Veränderungen wirken sich nur auf Dateien aus, die nach der Änderung gespeichert werden. Für alle bestehenden Pfade hast due zwei Möglichkeiten. Entweder die Datenbank exportieren, mit einem Editor die Pfade anpassen und dann wieder importieren, oder im WB backend alle Seiten in denen Dateien aus dem Medienordner enthalten sind nochmals neu zu speichern.
Hast du im WB backend beim Frontend-Outputfilter WB schon auf "relative Urls" umgestellt?
Gruß
Matthias
Logged
janosch94
Offline
Posts: 185
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #6 on:
January 13, 2012, 11:24:21 AM »
Hallo Matthias,
danke! genau sowas hab ich gesucht!
Habe die WB_URL gleich mal entfernt, musste aber jetzt feststellen das die Bilder im Backend nicht angezeigt werden - was ja auch logisch ist.
Darauf hin habe ich das da gefunden:
http://docs.cksource.com/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options/BaseHref
Da werde ich mir dann wieder was zurecht basteln müssen dass je nach IP-Adresse eine andere FCKEditor-Config einbindet. Ich könnte es aber auch erstmal verschmerzen wenn die Bearbeitung von extern nicht ginge, weil extern sowieso nur die Außenstellen aufs Frontend schauen und nie etwas bearbeiten müssen.
Den Frontend-Filter habe ich nun auch aktiv
Mal schauen ob der ein paar Links umschreiben kann.
// EDIT:
Wo ist denn die Variable MEDIA_DIRECTORY festgelegt? Weil da ist der Slash am Anfang noch drin - der müsste weg
«
Last Edit: January 13, 2012, 11:30:38 AM by janosch94
»
Logged
Wie kastriert man Windows-User? Man schneidet das Mauskabel durch.
DarkViper
Development Team
Offline
Posts: 1254
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #7 on:
January 13, 2012, 12:33:53 PM »
Quote from: janosch94 on January 13, 2012, 11:24:21 AM
Wo ist denn die Variable MEDIA_DIRECTORY festgelegt? Weil da ist der Slash am Anfang noch drin - der müsste weg
MEDIA_DIRECTORY ist keine Variable, sondern eine Konstante (also einmal definiert und zur Laufzeit nicht mehr änderbar), die an vielen Stellen des Cores und auch in sehr vielen Modulen benutzt wird. Eine Änderung der Definition würde an einer Unmenge von Stellen schwere Fehler verursachen.
Deine aktuelle Lösung mag, oberflächlich betrachtet, im Augenblick funktionieren, verursacht jedoch spätestens beim nächsten Update oder beim Wechseln des Editors (CK-Editor/TinyMC/ etc.) wieder tierische Probleme.
Die augenblicklich sinnvollste Lösung ist der von mir bereits
weiter oben angegebene Patch
des WYSIWYG-Modules. Dieser sorgt dafür, dass die URLs bei allen denkbaren Editoren automatisch angepasst werden. Da dieser Patch auch bereits Bestandteil von WB 2.9.x ist, wird es auch keinerlei Probleme bei späteren Upgrades geben. Bereits bestehende Seiten müssen nur einmal kurz aufgerufen und neu abgespeichert werden um die Datenbankeinträge zu konvertieren.
Was jetzt die unterschiedlichen URLs (intern/extern) angeht: Es ist sinnfrei, das irgendwo dazwischen zu frickeln und dadurch eventuell systemweite Inkonsistenzen zu erzeugen. Der einzig sinnvolle Weg ist es, die Ursache an der Wurzel zu packen und dort zu korrigieren, so dass das komplette System von festen URLs unabhängig wird. Die Modifikation der config.php ist dazu der beste Weg:
Code: (/wb/config.php)
<?php
/* ... */
if (
strtolower
(
$_SERVER
[
'SERVER_NAME'
]) ==
'intranetserver'
) {
define
(
'WB_URL'
,
'http://intranetserver'
);
}else {
define
(
'WB_URL'
,
'https://bliblablub.de/intern'
);
}
define
(
'WB_PATH'
,
dirname
(
__FILE__
));
define
(
'ADMIN_URL'
,
WB_URL
.
'/admin'
);
define
(
'ADMIN_PATH'
,
WB_PATH
.
'/admin'
);
require_once(
WB_PATH
.
'/framework/initialize.php'
);
?>
(
die Bedingung kann selbstverständlich auch über die ServerIP oder das Protokoll ausgewertet werden.
)
Die Kombination von Patch im WYSIWYG-Modul und config.php ist absolut Zukunftssicher, da die WB 2.9.x bereits eine dynamische Einstellung der URLs enthält.
//edit
Der
<base href="
https://www.bliblablub.de/intern
">
- Eintrag im HTML muss entfernt werden, da sonst bei z.B. internen Aufrufen die falsche URL vorbesetzt ist.
«
Last Edit: January 13, 2012, 12:48:11 PM by DarkViper
»
Logged
Anleitungen lesen und selber nachdenken ist anstrengend... Da lass ich doch lieber andere für mich denken...
In
1984
: Nineteen Eighty-Four is a unrealistic utopia!!
In
2012
: Nineteen Eighty-Four is a little piece only of our reality!!
janosch94
Offline
Posts: 185
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #8 on:
January 16, 2012, 08:09:08 AM »
DarkViper der Patch ist schon für 2.8.2 geeignet oder? Diese Systemvariable MEDIA_REL gibt es nämlich jetzt nur in den drei geänderten Dateien.
Bei mir geschieht nach dem Einfügen der drei Codezeilen aus dem
URL-Fix-Thread
nichts. Die URLs bleiben weiterhin absolut definiert.
Quote
Deine aktuelle Lösung mag, oberflächlich betrachtet, im Augenblick funktionieren, verursacht jedoch spätestens beim nächsten Update oder beim Wechseln des Editors (CK-Editor/TinyMC/ etc.) wieder tierische Probleme.
Gut naja ich müsste dann eine Datei ändern. Das ginge doch noch...
Deine Lösung für die config.php ist natürlich kürzer und besser als meine.
Wie kriege ich jetzt aber diesen blöden Slash in der Konstante MEDIA_DIRECTORY weg? :/
Logged
Wie kastriert man Windows-User? Man schneidet das Mauskabel durch.
DarkViper
Development Team
Offline
Posts: 1254
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #9 on:
January 16, 2012, 09:04:37 AM »
Quote from: janosch94 on January 16, 2012, 08:09:08 AM
DarkViper der Patch ist schon für 2.8.2 geeignet oder? Diese Systemvariable MEDIA_REL gibt es nämlich jetzt nur in den drei geänderten Dateien.
Der Patch hat nichts mit der Version von WB zu tun, da er nur innerhalb des WYSIWYG-Modules arbeitet.
{SYSVAR:MEDIA_REL} ist keine Systemvariable, sondern einfach nur ein Platzhalter innerhalb des WYSIWYG-Modules, der anstelle der absoluten Domain in der Datenbank gespeichert wird,
Quote from: janosch94 on January 16, 2012, 08:09:08 AM
Bei mir geschieht nach dem Einfügen der drei Codezeilen aus dem
URL-Fix-Thread
nichts. Die URLs bleiben weiterhin absolut definiert.
Das ist vollkommen in Ordnung so.
Der Patch arbeitet vollständig transparent. Er sorgt einfach dafür, dass in der Datenbank keine absolute Domain mehr gespeichert wird, und bei der Ausgabe immer der Wert von WB_URL für die Media-Links benutzt wird.
Beispiel:
in der Tabelle wysiwyg ist für ein Bild "
{SYSVAR:MEDIA_REL}/album/geburtstagstorte.jpg
" gespeichert.
in WB_URL steht "
http://intranetserver
"
zum Browser wird dann "
http://www.example.com/media/album/geburtstagstorte.jpg
" gesendet.
in WB_URL steht "
https://bliblablub.de/intern
"
zum Browser wird dann "
https://bliblablub.de/intern/media/album/geburtstagstorte.jpg
" gesendet.
Sollen relative URLs zum Browser geschickt werden, dann einfach nur zusätzlich im Backend unter
AdminTools » Frontend Output Filter
den Eintrag "
Frontendausgabe mit relativen Urls
" aktivieren.
Quote from: janosch94 on January 16, 2012, 08:09:08 AM
Wie kriege ich jetzt aber diesen blöden Slash in der Konstante MEDIA_DIRECTORY weg? :/
Der Slash in der Konstanten darf auf gar keinen Fall entfernt werden, da sonst im gesamten WebsiteBaker und in allen Modulen nichts mehr funktionieren wird, was irgendwie auf das Mediaverzeichnis zugreifen muss.
Du kannst Dir höchstens den Wert der Konstanten in eine eigene Variable kopieren (
$meinMedia = MEDIA_DIRECTORY;
) und da dann den Slash entfernen. PHP bietet dafür mindestens ein halbes Dutzend Funktionen an.
Stringbearbeitung in PHP
Logged
Anleitungen lesen und selber nachdenken ist anstrengend... Da lass ich doch lieber andere für mich denken...
In
1984
: Nineteen Eighty-Four is a unrealistic utopia!!
In
2012
: Nineteen Eighty-Four is a little piece only of our reality!!
janosch94
Offline
Posts: 185
Re: Websitebaker mit dynamischer WB_URL laufen lassen
«
Reply #10 on:
January 16, 2012, 09:18:56 AM »
Quote from: DarkViper on January 16, 2012, 09:04:37 AM
Quote from: janosch94 on January 16, 2012, 08:09:08 AM
Bei mir geschieht nach dem Einfügen der drei Codezeilen aus dem
URL-Fix-Thread
nichts. Die URLs bleiben weiterhin absolut definiert.
Das ist vollkommen in Ordnung so.
Der Patch arbeitet vollständig transparent. Er sorgt einfach dafür, dass in der Datenbank keine absolute Domain mehr gespeichert wird, und bei der Ausgabe immer der Wert von WB_URL für die Media-Links benutzt wird.
Beispiel:
in der Tabelle wysiwyg ist für ein Bild "
{SYSVAR:MEDIA_REL}/album/geburtstagstorte.jpg
" gespeichert.
in WB_URL steht "
http://intranetserver
"
zum Browser wird dann "
http://www.example.com/media/album/geburtstagstorte.jpg
" gesendet.
in WB_URL steht "
https://bliblablub.de/intern
"
zum Browser wird dann "
https://bliblablub.de/intern/media/album/geburtstagstorte.jpg
" gesendet.
Sollen relative URLs zum Browser geschickt werden, dann einfach nur zusätzlich im Backend unter
AdminTools » Frontend Output Filter
den Eintrag "
Frontendausgabe mit relativen Urls
" aktivieren.
Ach Mensch jetzt wird mirs klar!
Hab da wieder um tausend Ecken gedacht und mich gefragt was dieses blöde Etwas denn eigentlich macht. Werde nun ein wenig Probieren & mich melden wenn´s irgendwo hakt!
Danke schonmal
MfG
Jan
Logged
Wie kastriert man Windows-User? Man schneidet das Mauskabel durch.
Pages: [
1
]
Go Up
Jump to:
Please select a destination:
-----------------------------
General
-----------------------------
=> General Announcements
=> Security Announcements
=> Documentation
=> WebsiteBaker Website Showcase
=> Guest Area & Off-Topic
-----------------------------
English
-----------------------------
=> WebsiteBaker 2.9
===> Announcements
===> Help/Support
=====> Modules / Extensions
===> Suggestions
===> Software bugs
=> Help & Support
=> Modules
=> Droplets (PHP code for use with Droplet module) & Snippets (raw PHP code)
=> jQuery
=> Templates, Menus & Design
=> WebsiteBaker Language Files
=> WebsiteBaker 2.x discussion
=> WebsiteBaker 3
=> Archive (posts up to 2007)
-----------------------------
Deutsch (German)
-----------------------------
=> Ankündigungen
=> WebsiteBaker 2.9
===> Ankündigungen
===> Hilfe/Support
=====> Module / Extensions
===> Vorschläge
===> Softwarefehler
===> Erfahrungs und Testberichte
=> Hilfe/Support
=> Module & Snippets
=> Templates & Design
=> Tutorials
=> jQuery
=> Diskussion über WB
=> Off-Topic
=> Archiv für Themen bis 2007
-----------------------------
Nederlands (Dutch)
-----------------------------
=> Aankondigingen
=> Hulp & Ondersteuning
=> Niet-Terzake (Off Topic)
-----------------------------
Francais (French)
-----------------------------
=> Help/Support
-----------------------------
Italiano (Italian)
-----------------------------
=> Help/Support
-----------------------------
Bakery (WB shop module)
-----------------------------
=> Bakery English
=> Bakery Deutsch
-----------------------------
KeepInTouch (Multi Contact Module)
-----------------------------
=> KeepInTouch English
=> KeepInTouch Deutsch
Loading...