Editor interne Links falsch

Gesperrt
barni
Beiträge: 127
Registriert: Fr 28. Okt 2005, 20:54
Kontaktdaten:

Editor interne Links falsch

Beitrag von barni » Di 6. Okt 2009, 14:50

Hallo Forum,

habe dazu leider nichts hilfreiches gefunden.
Habe hier ein Upgrade von 4.6.23 auf 4.8.12 und ein Problem mit dem Wysiwyg.
Wenn ich über den Editor Bilder einfüge ist alles ok.
Wenn ich aber z.B ein PDF aus der Dateiverwaltung hochladen möchte, lautet der Link nach dem Einfügen dann http://www.domain.de/cms/upload/pdf/datei.pdf anstatt (wie richtig) http://www.domain.de/html/cms/upload/datei.pdf.


Und zwar ist die Seite so aufgebaut (etwas bescheuert, aber na ja - ich wars niciht)

FTP
Rootverzeichnis
--html
----cms
----contenido
----...ect...
In den Mandateneinstellungen steht:

Code: Alles auswählen

Serverpfad: /home/strato/www/wo/www.domain.de/htdocs/html/cms/
Mandantenpfad: http://www.domain.de/html/cms/
In der contenido/includes/config steht:

Code: Alles auswählen

/* The root server path where all frontends reside */
$cfg['path']['frontend']                = '/mnt/web6/31/95/5604995/htdocs/html/cms/';
In der cms/config.php steht:

Code: Alles auswählen

$contenido_path = "../contenido/";
Ich kann es auch nicht im HTML Bearbeitungsmodul manuell ändern auf http://www.domain.de/html/cms/uploard/pdf/datei.pdf .
Sobald ich speichere macht er "../../cms/upload/pdf/datei.pdf" daraus." Und da fehlt ihm das /html/ in der Domain.


Habe schon mit verschieden Einstellungen rumgespielt, komm aber nicht drauf.
Kann mir jemand einen Gedankenanstoß geben?

Danke euch!
Barni
ich bin genauso hilflos wie ich tu ;)

JuePoe
Beiträge: 92
Registriert: Mi 27. Jul 2005, 13:02
Wohnort: Hamburg + Wendland
Kontaktdaten:

Re: Editor interne Links falsch STRATO

Beitrag von JuePoe » Di 6. Okt 2009, 17:23

Hallo, zusammen.
ich hatte ein Problem mit einer Installation der Ver. 4.8.12 auf einem Strato-Server.
Das Problem ergab sich daraus, dass Strato 2 verschiedene DOCUMENT_ROOTS ausgibt:
1. $_SERVER['DOCUMENT_ROOT'] : /home/strato/www/[2 Zeichen des Domainnamen]/www.[domain-Name].de/htdocs
2: dirname(__FILE__) : /mnt/web7/[Ziffern]/[Ziffern]/[Ziffern]/htdocs

Den zweiten soll man nicht nehmen, weil der minütlich wechseln kann (Auskunft der Hotline).
Da dirname(__FILE__) aber in diversen Dokumenten auftaucht, kommt eine Menge Arbeit auf euch zu.
dirname(__FILE__) taucht in folgenden Files auf:
Command.php
config.php (Achtung: von tiny3)
Contenido_UrlBuilderFactory.class.php
editor.php (von tiny3)
/contenido/external/backendedit/front_content.php
list.php
main.loginform.php
prepend.php
startup.php
Falls ihr Einfluss habt auf die Providerwahl: nicht Strato, solange die Files nicht auf Document_root vereinheitlicht sind.
Beste Grüße
J. Pötschik
dialog im netz Hamburg + Wendland

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Re: Editor interne Links falsch

Beitrag von langwebdesign » Fr 9. Okt 2009, 14:12

Hallo Zusammen,

ich hab das gleiche Problem, jedoch auf meinem eigenen Linux Server.
Das was du schreibst mit dem DOCUMENT_ROOT kann ich nicht ganz nachvollziehen
Der document root gibt dir das Basis Verzeichnis des Web Servers zurück, und dirname(__FILE__) den Pfad zur Datei aus der der Befehl aufgerufen wird.

Hab das mal in einer Testdatei im cms/upload gemacht und das kommt dabei raus:

Document_Root: /srv/www/htdocs
Dirname: /srv/www/htdocs/contenido/cms/upload


Das Problem glaube ich ist das ../../cms/ vor das upload/bildname.jpg gesetzt wird, den mit dem base href im Header würde der Link dann passen.

hat noch jemand eine Idee wie das behoben werden kann?

mfg stephan
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Re: Editor interne Links falsch

Beitrag von langwebdesign » Fr 9. Okt 2009, 15:48

Hallo,

hab mal etwas im Contenido gesucht und folgendes gefunden:

im tinymce.tpl.html gibts einen bereich:

Code: Alles auswählen

<!-- Needs to be seperate script tags! -->
<script language="JavaScript" type="text/javascript">
tinyMCE.init({
	{CONFIG}
});
</script>
dort wird die Config des tinyMCE beim editieren geladen.

Im Quelltext des Backends sieht das dann so aus:

Code: Alles auswählen

<!-- Needs to be seperate script tags! -->
<script language="JavaScript" type="text/javascript">
tinyMCE.init({
	'mode': 'exact',
	'content_css': 'http://intranet/contenido/cms/css/style_tiny.css',
	'theme': 'advanced',
	'theme_advanced_toolbar_location': 'top',
	'theme_advanced_path_location': 'bottom',
	'remove_script_host': false,
	'file_browser_callback': 'myCustomFileBrowser',
	'urlconverter_callback': 'CustomURLConverter',
	'theme_advanced_resizing': true,
	'pagebreak_separator': '<!-- my page break -->',
	'apply_source_formatting': true,
	'remove_linebreaks': false,
	'convert_urls': true,
	'relative_urls': true,
	'elements': 'CMS_HTML',
	'language': 'de',
	'cleanup_callback': '',
	'width': '100%',
	'height': '480px',
	'directionality': 'ltr',
	'theme_advanced_toolbar_align': 'left',
	'plugin_insertdate_dateFormat': '%Y-%m-%d',
	'plugin_insertdate_timeFormat': '%H:%M:%S',
	'theme_advanced_buttons1': 'cut,copy,paste,pastetext,pasteword,|,search,replace,|,undo,redo,|,bold,italic,underline,strikethrough,sub,sup,|,insertdate,inserttime,preview,|,styleselect,|,visualchars,nonbreaking,template,pagebreak,|,help,|,fullscreen',
	'theme_advanced_buttons2': 'link,unlink,anchor,image,media,advhr,|,bullist,numlist,|,outdent,indent,blockquote,|,justifyleft,justifycenter,justifyright,justifyfull,removeformat,|,forecolor,backcolor,|,ltr,rtl,|,visualaid,charmap,cleanup,|,code',
	'theme_advanced_buttons3': 'tablecontrols,|,formatselect,fontselect,fontsizeselect,|,styleprops,|,cite,abbr,acronym,del,ins,attribs',
	'plugins': 'safari,table,save,advhr,advimage,advlink,pagebreak,style,layer,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups',
	'valid_elements': '+a[name|href|target|title],strong/b[class],em/i[class],strike[class],u[class],p[dir|class|align],ol,ul,li,br,img[class|src|border=0|alt|title|hspace|vspace|width|height|align],sub,sup,blockquote[dir|style],table[border=0|cellspacing|cellpadding|width|height|class|align|style],tr[class|rowspan|width|height|align|valign|style],td[dir|class|colspan|rowspan|width|height|align|valign|style],div[dir|class|align],span[class|align],pre[class|align],address[class|align],h1[dir|class|align],h2[dir|class|align],h3[dir|class|align],h4[dir|class|align],h5[dir|class|align],h6[dir|class|align],hr',
	'extended_valid_elements': 'form[name|action|method],textarea[name|style|cols|rows],input[type|name|value|style|onclick],a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]',
	'contenido_background_color': 'white',
	'article_url_suffix': 'front_content.php?idart=20',
	'setupcontent_callback': 'myCustomSetupContent',
	'save_callback': 'cutFullpath'
});
</script>
da dort
'convert_urls': true,
'relative_urls': true,


gesetzt ist müsste doch auch ein document_base_url rein oder?

wie kann ich jetzt die Config bearbeiten die da geladen wird?
oder bin ich auf dem Holzweg?

mfg stephan
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Re: Editor interne Links falsch

Beitrag von langwebdesign » Mo 12. Okt 2009, 06:59

So weiter gehts,

hab jetzt raus wie ich die Config beim TinyMCE ändern kann: http://forum.contenido.org/viewtopic.ph ... 40&start=0

hab folgendes in der Mandanten Einstellung hinzugefügt:
tinymce document_base_url http://intranet/contenido/cms/
und auch noch mit verschiedenen Kombinationen mit
tinymce convert_urls false
tinymce relative_urls false

getestet, die Einträge sind jedes mal richtig im Quelltext aufgetaucht, am Verhalten hat sich aber nichts geändert.

Es wird anscheinend auch ein für Contenido angepasster URLConverter verwendet:

Code: Alles auswählen

		function CustomURLConverter(url, node, on_save) {
			if (node.nodeName  != 'IMG' && node != 'img') {
		        var oEd = new tinymce.Editor('contenido', '');
		        url = oEd.convertURL(url, node, on_save);
			} else {
				var src = url;
				
				if (!src.match(/^https?:\/\//g)) {
					url = frontend_path+src;
				}
			}
	        return url;
		}
aus dem werd ich auch nicht schlau.

noch ein paar infos zur Umgebung:

Apache/2.2.4 (Linux/SUSE)
PHP Version 5.2.4
register_globals Off
Server Root /srv/www
SERVER_NAME intranet
SERVER_ADDR 172.20.8.101
SERVER_PORT 80
DOCUMENT_ROOT /srv/www/htdocs
SCRIPT_FILENAME /srv/www/htdocs/phpinfo.php

Aus der contenido Config.php

Code: Alles auswählen

/* The root server path to the contenido backend */
$cfg['path']['contenido']               = '/srv/www/htdocs/contenido/contenido/';

/* The web server path to the contenido backend */
$cfg['path']['contenido_fullhtml']      = 'http://intranet/contenido/contenido/';

/* The root server path where all frontends reside */
$cfg['path']['frontend']                = '/srv/www/htdocs/contenido/';

/* The root server path to the conlib directory */
$cfg['path']['phplib']                  = '/srv/www/htdocs/contenido/conlib/';

/* The root server path to the pear directory */
$cfg['path']['pear']                    = '/srv/www/htdocs/contenido/pear/';

/* The server path to the desired WYSIWYG-Editor */
$cfg['path']['wysiwyg']                 = '/srv/www/htdocs/contenido/contenido/external/wysiwyg/tinymce3/';

/* The web path to the desired WYSIWYG-Editor */
$cfg['path']['wysiwyg_html']            = 'http://intranet/contenido/contenido/external/wysiwyg/tinymce3/';

/* The server path to all WYSIWYG-Editors */
$cfg['path']['all_wysiwyg']                 = '/srv/www/htdocs/contenido/contenido/external/wysiwyg/';

/* The web path to all WYSIWYG-Editors */
$cfg['path']['all_wysiwyg_html']            = 'http://intranet/contenido/contenido/external/wysiwyg/';
ich hoffe jemand der sich damit auskennt macht aus meinem Monolog mal eine Konversation *g*

mfg stephan
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Re: Editor interne Links falsch

Beitrag von langwebdesign » Di 13. Okt 2009, 11:54

weil ich ja so gerne mit mir selbst rede/schreibe:

hier der dirty weg um das Problem erst mal zu umgehen:

in der Datei contenido/includes/include.upl_files_overview.php wird der Pfad beim Auswählen einer Datei via Javascript zurückgegeben.
Original:

Code: Alles auswählen

$mstr = '<a href="javascript://" onclick="javascript:parent.parent.frames[\'left\'].frames[\'left_top\'].document.getElementById(\'selectedfile\').value= \''.$cfgClient[$client]['htmlpath']['frontend'].$cfgClient[$client]["upl"]["frontendpath"].$path.$data.'\'; window.returnValue=\''.$cfgClient[$client]['htmlpath']['frontend'].$cfgClient[$client]["upl"]["frontendpath"].$path.$data.'\'; window.close();"><img src="'.$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"].'but_ok.gif" title="'.i18n("Use file").'">&nbsp;'.$data.'</a>';
Dort ist die Ausgabe des Pfades anzupassen um nur noch den zur base href gültigen relativen Pfad an den TinyMCE zu liefern:

Code: Alles auswählen

$mstr = '<a href="javascript://" onclick="javascript:parent.parent.frames[\'left\'].frames[\'left_top\'].document.getElementById(\'selectedfile\').value= \''.$cfgClient[$client]["upl"]["frontendpath"].$path.$data.'\'; window.returnValue=\''.$cfgClient[$client]["upl"]["frontendpath"].$path.$data.'\'; window.close();"><img src="'.$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"].'but_ok.gif" title="'.i18n("Use file").'">&nbsp;'.$data.'</a>';
Konkret habe ich zweimal $cfgClient[$client]['htmlpath']['frontend']. entfernt.

Dann wird der Pfad auch beim speichern vom TinyMCE nicht mehr verändert.
Leider ist das ganze nicht wirklich Update sicher und es muss ja auch eine saubere Lösung dazu geben, hoffe es meldet sich dazu noch jemand.

mfg Stephan Lang
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

barni
Beiträge: 127
Registriert: Fr 28. Okt 2005, 20:54
Kontaktdaten:

Re: Editor interne Links falsch

Beitrag von barni » Di 13. Okt 2009, 12:52

Hallo,

das werde ich nachher mal probieren. Scheint aufs erste recht gelungen. Danke für den Tip!
ich bin genauso hilflos wie ich tu ;)

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Re: Editor interne Links falsch

Beitrag von mko » Fr 4. Dez 2009, 09:55

Habe das gleiche Problem - gibt es hierzu schon eine "saubere" Lösung?

Gesperrt