WebsiteBaker 2.13.8 is now available!
R.I.P Dietmar (luisehahne) and thank you for all your valuable work for WBhttps://forum.websitebaker.org/index.php/topic,32355.0.html
Suchen nach: ReplaceAbsoluteMedi aUrladmin\settings\save.php(243): $value = $admin->ReplaceAbsoluteMedi aUrl($value);framework\class.wb.php(791): * ReplaceAbsoluteMedi aUrlframework\class.wb.php(797): public function ReplaceAbsoluteMedi aUrl( $sContent)modules\news\save_post.php(128): $short = $admin->ReplaceAbsoluteMedi aUrl($short);modules\news\save_post.php(129): $long = $admin->ReplaceAbsoluteMedi aUrl($long);modules\wysiwyg\save.php(66): $content = $admin->ReplaceAbsoluteMedi aUrl($content);modules\wysiwyg\upgrade.php(38): $sContent = $admin->ReplaceAbsoluteMedi aUrl($aInstance['content']);Es wurden 7 Vorkommen in 5 Datei(en) gefunden.
/** * ReplaceAbsoluteMediaUrl * @param string $sContent * @return string * @description Replace URLs which are pointing into MEDIA_DIRECTORY with an URL * independend placeholder */ public function ReplaceAbsoluteMediaUrl( $sContent) { if( ini_get( 'magic_quotes_gpc') == true) { $sContent = $this->strip_slashes( $sContent); } if( is_string( $sContent)) { $sRelUrl = preg_replace('/^https?:\/\/[^\/]+(.*)/is', '\1', WB_URL); $sDocumentRootUrl = str_replace($sRelUrl, '', WB_URL); $sMediaUrl = WB_URL.MEDIA_DIRECTORY.'/'; $aSearchfor = [ '@(<[^>]*=\s*")('.preg_quote($sMediaUrl). ')([^">]*".*>)@siU', '@(<[^>]*=\s*")('.preg_quote( WB_URL.'/').')([^">]*".*>)@siU', '/(<[^>]*?=\s*\")(\/+)([^\"]*?\"[^>]*?)/is', '/(<[^>]*=\s*")('.preg_quote($sMediaUrl, '/').')([^">]*".*>)/siU' ]; $aReplacements = [ '$1{SYSVAR:AppUrl.MediaDir}$3', '$1{SYSVAR:AppUrl}$3','\1'.$sDocumentRootUrl.'/\3','$1{SYSVAR:MEDIA_REL}$3']; $sContent = preg_replace( $aSearchfor, $aReplacements, $sContent); } return $sContent; }
define('WB_URL', 'https://bXXXX.de'); // no trailing slash or backslash!!
<?php/* *** auto generated config file for 2.12.0 *** WebsiteBaker 2.12.0 *** created at 2018-05-29 02:55:20 UTC */// define('DEBUG', false);define('DB_TYPE', 'mysqli');define('DB_HOST', 'localhost');define('DB_PORT', '3306');define('DB_NAME', 'bXXXXYYYYYY');define('DB_USERNAME', 'SDJFGHJSDHSJDH');define('DB_PASSWORD', 'YYXYXYXYYXY');define('DB_CHARSET', 'utf8_unicode_ci');define('TABLE_PREFIX', 'wb_');define('WB_URL', 'https://bXXXXX.de'); // no trailing slash or backslash!!define('ADMIN_DIRECTORY', 'admin'); // no leading/trailing slash or backslash!! A simple directory name only!!require_once __DIR__.'/framework/initialize.php';// --- end of file ----------------------------------
<?php/** * doFilterReplaceSysvar * @param string to modify * @return string * Convert the {SYSVAR:xxxx} Placeholders into their real value */ function doFilterSysvarMedia($sContent) { return doFilterReplaceSysvar($sContent); } function doFilterReplaceSysvar($sContent) { $aReg = array ( 'AppUrl' => WB_URL.'/', 'MediaDir' => trim(MEDIA_DIRECTORY, '/').'/', 'MEDIA_REL' => WB_URL.'/'.trim(MEDIA_DIRECTORY, '/') ); $aSearches = array(); $aReplacements = array(); // search for all SYSVARs if (preg_match_all('/\{SYSVAR\:([^\}]+)\}/sU', $sContent, $aMatches)) { $aMatches = array_unique($aMatches[1], SORT_STRING); foreach ($aMatches as $sMatch) { $sTmp = ''; $aTmp = preg_split('/\./', $sMatch); foreach ($aTmp as $sSysvar) { if (!isset($aReg[$sSysvar])) { $sTmp = ''; break; } $sTmp .= $aReg[$sSysvar]; } if ($sTmp) { $aSearches[] = '{SYSVAR:'.$sMatch.'}'; $aReplacements[] = $sTmp; } } $sContent = str_replace($aSearches, $aReplacements, $sContent); } return $sContent; }
Suchen nach: doFilterReplaceSysv armodules\output_filter\filters\filterReplaceSysvar.php(3): * doFilterReplaceSysv armodules\output_filter\filters\filterReplaceSysvar.php(9): return doFilterReplaceSysv ar($sContent);modules\output_filter\filters\filterReplaceSysvar.php(12): function doFilterReplaceSysv ar($sContent) {Es wurden 3 Vorkommen in 1 Datei(en) gefunden.Suchen nach: doFilterSysvarMediamodules\output_filter\filters\filterReplaceSysvar.php(8 ): function doFilterSysvarMedia($sContent) {Es wurden 1 Vorkommen in 1 Datei(en) gefunden.
Ich sehe da keindefine('MEDIA_DIRECTORY', 'media');
1. Wenn man den Link (die Seite) nachträglich bearbeiten will, dann ist er (der Link) kaputt: Die Funktion macht aus "https://meineseite.de/media/bild.jpg" das hier: "https://meineseite.de/{SYSVAR:AppUrl.MediaDir}media/bild.jpg"
Das System setzt voraus, das die Pfade, die dort z.b. als Bilderpfade oder interne Links eingefügt wurden, durch Plugins des Editors eingefügt wurden. Für diesen Fall ist abgesichert, das diese Pfade auch korrekt sind und der WB_URL bzw der WB_URL + Media-Verzeichnis entsprechen.Ein interner Filter, der immer im Hintergrund läuft, sorgt dafür, das alle Platzhalter aus der Datenbank mit dem Muster SYSVAR:AppUrl.MediaDir automatisch ersetzt werden, so das im Quelltext einer Wysiwyg-Section der richtige Pfad steht, z.b. eben http://www.meine_seite.de/media/bild1.jpgwobei das blau markierte die WB_URL aus der config.php ist, das grün markierte das Media-Verzeichnis.
PS: ich wollte zu Testzwecken gerade eine ganz neue WSB Installation durch führen, leider bekomme ich sofort folgende Fehler:Error: [450] unable to write 'install presets' into table 'settings'und unter Step 1 Please check the following requirements are met before continuing...Please note: PHP Session Support may appear disabled if your browser does not support cookies.Hier wundert mit "... table 'settings'" - müsste ja nach Standarteinstellung en "... table 'wb_settings'" heissenund der 2. Punkt ist eine irreführende Fehlermeldung. Cookies sind an und es handelt sich um FireFox....
Wenn WYSIWYG den Inhalt zum Bearbeiten der Seite wieder "abholt", dann ersetzt WSB im Hintergrund {SYSVAR:AppUrl}{SYSVAR:AppUrl.MediaDir} wieder in die (derzeit aktruelle) URL und Pfad und man editiert wieder.So weit, so richtig?
OK, gefunden: Ich habe unter "Seitentitel" ein ' eingegeben, das wird nicht abgefangen und verursacht den Fehler.Also müsste bei der Installation noch auf "verbotene" Zeichen untersucht oder escaped werden.
Error: [450] unable to write 'install presets' into table 'settings'und unter Step 1 Please check the following requirements are met before continuing...Please note: PHP Session Support may appear disabled if your browser does not support cookies.Hier wundert mit "... table 'settings'" - müsste ja nach Standarteinstellung en "... table 'wb_settings'" heissen
Wo ich da gerade so "rumsuche":Code: [Select]<?php/** * doFilterReplaceSysvar * @param string to modify * @return string * Convert the {SYSVAR:xxxx} Placeholders into their real value */ function doFilterSysvarMedia($sContent) { }Das ist die Funktion, die aus {SYSVAR:AppUrl.MediaDir} wieder den Pfad machen soll. Aber ich finde nirgends einen passenden Aufruf dazu (nur Definitionen):
<?php/** * doFilterReplaceSysvar * @param string to modify * @return string * Convert the {SYSVAR:xxxx} Placeholders into their real value */ function doFilterSysvarMedia($sContent) { }