Probleme mit einigen Befehlen im cms

Gesperrt
Ina
Beiträge: 25
Registriert: Mi 6. Jul 2005, 12:19
Wohnort: Ostritz
Kontaktdaten:

Probleme mit einigen Befehlen im cms

Beitrag von Ina » Mo 8. Mär 2010, 13:54

Hallo liebe Contenido Gemeinde.
Ich habe mal ein paar Fragen die sich mir selbst nicht erklären und auch die Suche hat keine Erfolge ergeben.
Und zwar:
In den alten Contenido-Versionen war es nie ein Problem innerhalb des Texteditors ein Bild zB links neben dem Text oder rechts neben dem Text anzuordnen ohne das jemand html Kenntnisse brauchte.
Auf Aussehen, Bild links angeben und fertig.
Halte ich für entsprechende Kunden für sehr wichtig.
Bei der Version 4.8.12 geht das bei mir aber nicht. Ebenso wie ich ein Bild welches ich in den Container setze nicht mittig anordnen kann damit es zentriert ist.
Ebenso verhält es sich mit dem Trennungsstrich, der wenn ich ihn mittig anordnen möchte dennoch wieder zurück nach links springt in der Vorschau.
Ist das ein Bug und ich muss etwas ausführen damit das allgemein behoben ist, oder ist das nur bei mir so?

Ich meine ich kann mich da notfalls mit html Befehlen oder zusätzlichen css Erweiterungen behelfen, aber das ist ja nicht Sinn und Zweck der Sache oder?
Ich gehe bei den Dingen immer von leuten aus die wirklich nicht wissen was sie da machen sollen und das Bild einfach nur links setzen möchten.

Wäre schön wenn jemand antwortet der das Problem auch hat/kennt und weiß wie ich es am Besten für meine "nicht Programmiertechnisch Begabten User" beseitige.
LG Ina

McHubi
Beiträge: 1210
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von McHubi » Mo 8. Mär 2010, 16:47

Hallo Ina,

bekommst Du denn im Tiny die Icons angezeigt (sprich Bild einfügen, rechts-/ linksbündig, Blocksatz)? Wenn die auch bereits fehlen, dann weist das auf eine Konfiguration der Tiny-Symbolleisten in den Mandanteneinstellungen oder direkt in einer tiny-Datei hin (Name fällt mir jetzt spontan nicht ein).

An sich sind diese Funktionen ganz normal möglich...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

xmurrix
Beiträge: 3149
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von xmurrix » Mo 8. Mär 2010, 16:47

Hallo Ina,

das geht eigentlich auch in der neuen Version über die Schaltfläche "Bild einfügen/ersetzen" unter Reiter "Aussehen" Punkt "Ausrichtung".

Vielleicht ist es ja auch ein Layoutproblem. Willst du Bilder Zentrieren, so sollte das Bild in einem Blockelement sein, das idealerweise eine feste Breite hat.

Grüße
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Ina
Beiträge: 25
Registriert: Mi 6. Jul 2005, 12:19
Wohnort: Ostritz
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von Ina » Di 9. Mär 2010, 07:21

Ja die Icons sehe ich alle, und er macht es ja auch wenn ich im Editor bin. Aber dann gehe ich in die Vorschau und er hat es nicht umgesetzt.
Ich möchte zb wenn ich den Trenner setze das der mittig ist, also gehe ich oben normal auf zentrieren, das macht er dann auch, aber wenn ich nachsehe ists nicht passiert.
Und wenn ich zb einen Text schreibe, das Bild an den Text setze auf ausrichtung und links angebe, dann macht er das ebenfalls im Editor und gehe ich in die Vorschau ist es wieder oberhalb des Textes.
Ich habe mir in den letzten Projekten immer mit zusätzlichen Klassen im css beholfen, aber das Problem ist, mein derzeitiges Projekt ist eine Seite wo mehrere Leute wirklich so einfach wie möglich agieren können müssen und deshalb ist die Funktion so wichtig.
Wenn ihr möchtet mach ich auch gerne mal Screens von Editor und Vorschau, vielleicht drück ich mich ja nicht gut genug aus?
Ich hab dieses Problem seit der neuen Version wie gesagt, vorher hatte ich das nie. Und das es am Layout liegt, kann ich mir nicht vorstellen, aber wenn, wonach müsste ich dann im Layout suchen?
Wäre für weitere Ideen sehr dankbar.

McHubi
Beiträge: 1210
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von McHubi » Di 9. Mär 2010, 07:45

Moin,

vielleicht ne ganz blöde Frage, aber: Hast Du vor dem Wechsel auf den Reiter Vorschau auch abgespeichert? :|

Was die Bilder betrifft, würde ich Dir raten das per css zu machen. Aus folgendem Grund: Du kannst den Abstand zum Text nur einmal horizontal und vertikal angeben. Über die Tiny-Ausrichtung kannst Du zwar sagen 10px Abstand horizontal, das gilt dann aber für beide Seiten. Sieht zum Beispiel bei rechts umflossenen Bildern schnell etwas blöd aus, wenn das Bild links im Vergleich zum Text ein wenig mehr eingerückt ist. Ich löse das per css für ein rechts oder links floatendes Bild (Beispiel: img.bild_links_floatend {float: left; margin: 10px 10px 10px 0px;})
Und ob Du jetzt die Klasse auswählst oder rechts/ links umfließen ist letztlich wurscht.
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Ina
Beiträge: 25
Registriert: Mi 6. Jul 2005, 12:19
Wohnort: Ostritz
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von Ina » Di 9. Mär 2010, 13:17

*lach*,
na klar hab ich gespeichert.
Ja so habe ichs ja bisher auch gelöst. Nur ich finds halt Schade das es nicht mehr auf die "alte Weise" gehen will, und versteh nicht wieso. Und naja, das wurmt mich dann.
LG Ina

rochus
Beiträge: 5
Registriert: Do 7. Okt 2004, 11:02
Wohnort: Hamburg
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von rochus » Di 9. Mär 2010, 16:41

Hi,
hast Du auch entsprechende Einstellungen beim Mandanten gemacht? Die Einstellungen in der Version 4.8.x haben sich geändert.
Als Beispiel:
Typ: tinymce
Name: extended_valid_elements
Wert: *[*]
Siehe auch http://forum.contenido.org/viewtopic.ph ... 3A+tinymce und
http://forum.contenido.org/viewtopic.ph ... d_elements

Grüße
rochus

Ina
Beiträge: 25
Registriert: Mi 6. Jul 2005, 12:19
Wohnort: Ostritz
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von Ina » Mi 10. Mär 2010, 10:28

Huhu,
ja so steht es bei mir drin:
tinymce extended_valid_elements *[*]
tinymce valid_elements *[*]

Und wenn ich das in den Artikeln richtig nachgelesen habe, müsste das doch seine Richtigkeit haben, oder?
Ich habe mir inzwischen mit dem einfügen von 2 Klassen geholfen, aber dennoch würde ich gerne auf die Lösung kommen woran es bei mir scheitert. Damit ich das nicht jedesmal wieder vor meinen Augen habe.
Freue mich aber über jede Anregung.

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von OliverL » Di 30. Mär 2010, 16:18

Hi,

Wenn ich das richtig verstanden habe hast du ...
1. Text/Bild im Tiny ausgerichtet links/center/rechts oder so
1.1. Der Tiny zeigt die änderungen an.
2. Vorschau zeigt die Ausrichtung nicht an.

?. Nach dem wieder öffnen, wird dann die Ausrichtung wieder richtig angezeigt? --> Wenn nicht liegt das am Tiny der Attribute killt

?. Im HTML steht da <img align="left"> oder <img style="flaot:left;"> ? --> bei einem ' align="left"' könnte der Wert durch ein css float: left; vererbt und überschreiben. Dann deine css-Datei prüfen z.B. p { text-align:left; }

?. wenn du in der Vorschau bist existiert irgend ein Tag im Image das die Ausrichtung macht? --> eventuel eine XHTML ausgabe die kein align mehr erlaubt

-- einfach mal nen Link posten --

mfg OliverL

php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von php0815 » Mi 28. Apr 2010, 12:11

Habe das gleiche Problem mit der Version 4.8.12
OliverL hat geschrieben:?. Nach dem wieder öffnen, wird dann die Ausrichtung wieder richtig angezeigt? --> Wenn nicht liegt das am Tiny der Attribute killt
Während man im Tiny arbeitet wird es richtig angezeigt. Sobald man Speichert mit "Speichern und im Editor bleiben" oder "Speichern und Editor schließen" wird es wieder zurückgesetzt. Das Bild wird wieder ohne Attribute angezeigt.

Bei Bild einfügen/bearbeiten -> Aussehen -> steht dann auch nichts mehr von Links oder Rechts sondern ist wieder zurückgesetzt auf "--Nicht gesetzt--".
OliverL hat geschrieben:?. Im HTML steht da <img align="left"> oder <img style="flaot:left;"> ? --> bei einem ' align="left"' könnte der Wert durch ein css float: left; vererbt und überschreiben. Dann deine css-Datei prüfen z.B. p { text-align:left; }
So was habe ich nicht gefunden.
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von OliverL » Mi 28. Apr 2010, 16:00

Hi,

Ist es möglich zugang zum System zubekommen? oder WWW-Adresse des Frontend?

Ich hatte das Problem leider noch nie. Es kann sein das der Doctyp nicht korrekt ist und der Browser zwanghaft den Code valide umschreibt.
oder ander Konfigurationen im Mandaten stehen oder oder oder


mfg Oli


@php0815: <img align="left"> ist in kurzerform der HTML-Befehl für ein Bild mit linker Ausrichtung. Passen würde auch <img ... align="left"> oder <img src="..." align="left" /> oder oder oder

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von OliverL » Do 29. Apr 2010, 08:23

Ok, hab mir das angeguckt und folgende Mandanten-Einstellungen gemacht.

Typ
Name
Wert


tinymce
extended_valid_elements
*[*]

tinymce
valid_elements
*[*]

Das ganze erlaubt alle HTML-Befehle und sollte einiges lösen.
Ist auch kein Bug sondern nur eine kleine Einstellung.

mfg Oliver

@php0815: Einstellungen hab ich drin gelassen und das Bild unter "test" ist jetzt rechts.

php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von php0815 » Do 29. Apr 2010, 11:41

:D Danke

Da wäre ich nie drauf gekommen.
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.

bayano26
Beiträge: 1
Registriert: So 5. Dez 2010, 18:24
Kontaktdaten:

Re: Probleme mit einigen Befehlen im cms

Beitrag von bayano26 » So 5. Dez 2010, 18:28

how can i solved this problem: text align center or right dose not work with the latest contenido editor window

Code: Alles auswählen

<?php
/**
 * Project: 
 * Contenido Content Management System
 * 
 * Description: 
 * The object cTinyMCEEditor is a wrapper class to the TinyMCE WYSIWYG Editor.
 * Attributes can be defined to generate JavaScript options and functions to initialise the global
 * tinyMCE object in file ./contenido/external/wysiwyg/tinymce2/tinymce.tpl.html.
 * 
 * All settings accepted by tinyMCE and its plugins may be specified using system, client
 * group or user property/setting.
 * 
 * The following parameters will be always set on initialization (even, if they have been specified
 * as property. They can be set using setSetting later on, if needed):
 * document_base_url
 * cleanup_callback (-> XHTML)
 * file_browser_callback
 * external_link_list_url
 * external_image_list_url
 * flash_external_list_url
 * 
 * Requirements: 
 * @con_php_req 5
 * @con_template 
 * /docs/techref/backend/backend.customizing.html
 * @con_notice 
 * The following settings are only used in Contenido:
 * contenido_toolbar_mode: full, simple, mini, custom
 * contenido_lists: link,image,flash
 * contenido_height_html
 * contenido_height_head
 * See backend.customizing.html for details 
 *
 * @package    Contenido Backend <Area>
 * @version    1.2.1
 * @author     Timo Hummel
 * @copyright  four for business AG <www.4fb.de>
 * @license    http://www.contenido.org/license/LIZENZ.txt
 * @link       http://www.4fb.de
 * @link       http://www.contenido.org
 * @since      file available since contenido release <Contenido Version>
 * @deprecated file deprecated in contenido release <Contenido Version>
 * 
 * {@internal 
 *   created  <date>
 *   modified 2007-06-13 Björn Behrens/Stefan??? Using setting by type to use all tinyMCE settings (even, if they are not covered here)
 *   
 *   modified 2006-10-24 Willi Man, added new tinyMCE attribute 'article_url_suffix'.
 *   It will be used in plugin advlink ./contenido/external/wysiwyg/tinymce2/jscripts/tiny_mce/plugins/advlink/jscripts/functions.js
 *   to build the anchorlist.  
 *   
 *   modified 2008-07-04, bilal arslan, added security fix
 *   
 *   modified 2008-07-21, Ingo van Peeren, fixed path for property 'content_css' default value  
 *   modified 2009-11-06, Murat Purc, replaced deprecated functions (PHP 5.3 ready)
 *   modified 2010-09-03, Murat Purc, fixed invalid inline editor option, see [#CON-345]
 *
 *   $Id: editorclass.php 739 2008-08-27 10:37:54Z timo.trautmann $:
 * }}
 * 
 */
 if(!defined('CON_FRAMEWORK')) {
   die('Illegal call');
}

cInclude("classes",  "class.wysiwyg_editor.php");
cInclude("includes", "functions.lang.php");

class cTinyMCEEditor extends cWYSIWYGEditor
{	
	/** Stores base url of page
	 *  @access private
	 */
	var $_sBaseURL;
	
	/** Stores, if GZIP compression will be used
	 * @access private
	 */
	var $_bUseGZIP = false;
	
	function cTinyMCEEditor ($sEditorName, $sEditorContent)
	{
		global $belang, $cfg, $cfgClient, $client, $lang;
		
		cWYSIWYGEditor::cWYSIWYGEditor($sEditorName, $sEditorContent);
		$this->_setEditor("tinymce3");
		
		// Retrieve all settings for tinymce
		$this->_aSettings = getEffectiveSettingsByType("tinymce");

		// For compatibility, read settings in previous syntax also (< V4.7, type "wysiwyg" vs. "tinymce")
		$this->_aSettings = array_merge(getEffectiveSettingsByType("wysiwyg"), $this->_aSettings);

		$this->setSetting("article_url_suffix", 'front_content.php?idart='.$idart, true); # modified 23.10.2006	
		
		// Default values
		$this->setSetting("mode", "exact");
		$aPathFragments = explode('/', $cfgClient[$client]["path"]["htmlpath"]);
		$this->setSetting("content_css", $cfgClient[$client]["path"]["htmlpath"]."css/style_tiny.css"); 

		$this->setSetting("theme", "advanced");
		$this->setSetting("theme_advanced_toolbar_location", "top");
		$this->setSetting("theme_advanced_path_location", "bottom");
		$this->setSetting("remove_script_host", false);
		$this->setSetting("file_browser_callback", "myCustomFileBrowser", true);
		$this->setSetting("urlconverter_callback", "CustomURLConverter");
		// New in V3.x
		$this->setSetting("theme_advanced_resizing", true);
		$this->setSetting("pagebreak_separator", "<!-- my page break -->"); // needs pagebreak plugin
		// Source formatting (ugh!)
		$this->setSetting("apply_source_formatting", true);
		$this->setSetting("remove_linebreaks", false); // Remove linebreaks - GREAT idea...
				
		// Convert URLs and Relative URLs default
		$this->setSetting("convert_urls", true);
		$this->setSetting("relative_urls", true);		

		// Editor name (a comma spearated list of instances)
		$this->setSetting("elements", $sEditorName);
		
		// Editor language
		$aLangs = i18nGetAvailableLanguages();
		$this->setSetting("language", $aLangs[$belang][4]);
		unset ($aLangs);
		
		// Set document base URL
		//$this->setSetting("document_base_url", $cfgClient[$client]["path"]["htmlpath"], true);
				
		// The following "base URL" is the URL used to reference JS script files
		// - it is not the base href value 
		$this->setBaseURL(preg_replace('/^https?:\/\/[^\/]+(.*)$/', '$1', $this->getEditorPath()));
		
		// XHTML
		if (getEffectiveSetting("generator", "xhtml", false) == "true")
		{
			$this->setXHTMLMode(true);
		} else {
			$this->setXHTMLMode(false);
		}
		
		// GZIP
		if ($this->_aSettings["contenido_gzip"] == "true")
		{
			$this->setGZIPMode(true);
		} else {
			$this->setGZIPMode(false);
		}
		
		// Stylesheet file, for compatibility
		if (!array_key_exists("content_css", $this->_aSettings) && array_key_exists("tinymce-stylesheet-file", $this->_aSettings))
		{
			$this->setSetting("content_css", $this->_aSettings["tinymce-stylesheet-file"], true);
		}
		
		// Set lists (for links, images and flash elements)
		$this->setLists();
				
		// Set user defined styles (be sure, that previous and SPAW syntax works)
		$this->setUserDefinedStyles();
		
		// Width and height
		$this->setSetting("width", "100%");
		$this->setSetting("height", "480px");
		
		// Text direction (rtl = right to left)
		$sDirection = langGetTextDirection($lang);
		$this->setSetting("directionality", $sDirection);
		
		if ($sDirection == "rtl")
		{
			$this->setSetting("theme_advanced_toolbar_align", "right", true);
		} else {
			$this->setSetting("theme_advanced_toolbar_align", "left", true);
		}
		
		// Date and time formats
		$this->setSetting("plugin_insertdate_dateFormat", $this->convertFormat(getEffectiveSetting("backend", "timeformat_date", "Y-m-d")));
		$this->setSetting("plugin_insertdate_timeFormat", $this->convertFormat(getEffectiveSetting("backend", "timeformat_time", "H:i:s")));

		// Setting the toolbar (toolbar_mode and tinymce-toolbar-mode accepted)
		$sMode = "full";
		if (array_key_exists("tinymce-toolbar-mode", $this->_aSettings))
		{
			$sMode = $this->_aSettings["tinymce-toolbar-mode"];
		}
		if (array_key_exists("contenido_toolbar_mode", $this->_aSettings))
		{
			$sMode = $this->_aSettings["contenido_toolbar_mode"];
		}
		$this->setToolbar(trim(strtolower($sMode)));

		// Valid elements, for compatibility also accepts "tinymce-valid-elements"
		if (!array_key_exists("valid_elements", $this->_aSettings) && 
			 array_key_exists("tinymce-valid-elements", $this->_aSettings))
		{
			$this->setSetting("valid_elements", $this->_aSettings["tinymce-valid-elements"], true);
		}
		$this->setSetting("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, for compatibility also accepts "tinymce-extended-valid-elements"
		if (!array_key_exists("extended_valid_elements", $this->_aSettings) && 
			 array_key_exists("tinymce-extended-valid-elements", $this->_aSettings))
		{
			$this->setSetting("extended_valid_elements", $this->_aSettings["tinymce-extended-valid-elements"]);
		}
		$this->setSetting("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]");
		
		// Background color
		if (!array_key_exists("contenido_background_color", $this->_aSettings))
		{
			if (array_key_exists("tinymce-backgroundcolor", $this->_aSettings))
			{
				$this->setSetting("contenido_background_color", $this->_aSettings["tinymce-backgroundcolor"], true);
			} else {
				$this->setSetting("contenido_background_color", "white", true);
			}
		}

		// Clean all possible URLs
		$this->cleanURLs();

		// Remove Contenido specific settings
		// contenido_background_color is used in getEditor
		unset(
			$this->_aSettings["contenido_toolbar_mode"],
			$this->_aSettings["contenido_lists"]
		);
		// Remove obsolete, deprecated values
		unset(
			$this->_aSettings["tinymce-stylesheet-file"],
			$this->_aSettings["tinymce-valid-elements"],
			$this->_aSettings["tinymce-extended-valid-elements"],
			$this->_aSettings["tinymce-lists"],
			$this->_aSettings["tinymce-styles"],
			$this->_aSettings["tinymce-toolbar-mode"],
			$this->_aSettings["tinymce-toolbar1"],
			$this->_aSettings["tinymce-toolbar2"],
			$this->_aSettings["tinymce-toolbar3"],
			$this->_aSettings["tinymce-plugins"]
		);
	}

	function convertFormat ($sInput)
	{
		$aFormatCodes = array(
			"y" => "%y",
			"Y" => "%Y",
			"d" => "%d",
			"m" => "%m",
			"H" => "%H",
			"h" => "%I",
			"i" => "%M",
			"s" => "%S",
			"a" => "%P",
			"A" => "%P"
		);
		
		foreach ($aFormatCodes as $sFormatCode => $sReplacement)
		{
			$sInput = str_replace($sFormatCode, $sReplacement, $sInput);
		}
		
		return ($sInput);
	}

	function setUserDefinedStyles()
	{
		$sStyles = "";
		
		if(array_key_exists("theme_advanced_styles", $this->_aSettings))
		{
			$sStyles = $this->_aSettings["theme_advanced_styles"];
		} else if(array_key_exists("tinymce-styles", $this->_aSettings))
		{
			$sStyles = $this->_aSettings["tinymce-styles"];
		}
		
		if ($sStyles)
		{
			$this->setSetting("theme_advanced_styles", preg_replace('/;$/i', '', str_replace("|","=", trim($sStyles))), true);
		}
	}
	
	/**
	 * The special name "contenido_lists", for compatibility also accepts "tinymce-lists"
	 * @param string	sLists	Deprecated, for compatibility, only
	 */
	function setLists($sLists = "")
	{
		global $lang, $client;
		
		if ($sLists == "")
		{				
			if (array_key_exists("contenido_lists", $this->_aSettings))
			{
				$sLists = $this->_aSettings["contenido_lists"];
			}
			else if (array_key_exists("tinymce-lists", $this->_aSettings))
			{
				$sLists = $this->_aSettings["tinymce-lists"];
			}
		}
		
		$aLists = array();
		$aLists = explode(",", strtolower(str_replace(" ", "", $sLists)));
		
		if (in_array("link", $aLists))
		{
			$this->setSetting("external_link_list_url", $this->_sBaseURL."list.php?mode=link&lang=".$lang."&client=".$client."#", true);
		}
		if(in_array("image", $aLists))
		{
			$this->setSetting("external_image_list_url", $this->_sBaseURL."list.php?mode=image&lang=".$lang."&client=".$client."#", true);
		}
		if (in_array("flash", $aLists))
		{
			$this->setSetting("flash_external_list_url", $this->_sBaseURL."list.php?mode=flash&lang=".$lang."&client=".$client."#", true);
		}
		if (in_array("media", $aLists))
		{
			$this->setSetting("media_external_list_url", $this->_sBaseURL."list.php?mode=media&lang=".$lang."&client=".$client."#", true);
		}
	}
	
	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setToolbarMode ($sMode)
	{
		$this->setToolbar($sMode);
	}

	function setXHTMLMode ($bEnabled = true)
	{
		if ($bEnabled) {
			$this->setSetting("cleanup_callback", "", true);
		} else {
			$this->setSetting("cleanup_callback", "CustomCleanupContent", true);
		}	
	}

	function setGZIPMode ($bEnabled = true)
	{
		if ($bEnabled) {
			$this->_bUseGZIP = true;
		} else {
			$this->_bUseGZIP = false;
		}	
	}
	
	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setCustomToolbar ($sToolbar1, $sToolbar2, $sToolbar3, $sPlugins)
	{
		$this->setSetting("toolbar_mode", "custom", true);
		$this->setSetting("theme_advanced_buttons1", $sToolbar1, true);
		$this->setSetting("theme_advanced_buttons2", $sToolbar2, true);
		$this->setSetting("theme_advanced_buttons3", $sToolbar3, true);
		$this->setSetting("plugins", $sPlugins, true);
	}

	/**
	 * For compatibility also accepts "tinymce-toolbar-mode", "tinymce-toolbar1-3" and "tinymce-plugins"
	 */
	function setToolbar($sMode = "")
	{
		global $cfg, $cfgClient, $client;
		
		switch ($sMode)
		{
			case "full": // Show all options
				$this->setSetting("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", true);
				$this->setSetting("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", true);
				$this->setSetting("theme_advanced_buttons3", "tablecontrols,|,formatselect,fontselect,fontsizeselect,|,styleprops,|,cite,abbr,acronym,del,ins,attribs", true);
				//safari,table,save,advhr,advimage,advlink,pagebreak,style,layer,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template
				$this->setSetting("plugins", "safari,table,save,advhr,advimage,advlink,pagebreak,style,layer,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups", true);
                $this->setSetting("theme_advanced_toolbar_align", "left", true);
                
                $aCustSettings = getEffectiveSettingsByType("tinymce");
                foreach ($aCustSettings as $sKey => $sValue) {
                    $this->setSetting($sKey, $sValue, true);
                }
                
                break;
                
            case "fullscreen": // Show all options
				$this->setSetting("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", true);
				$this->setSetting("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", true);
				$this->setSetting("theme_advanced_buttons3", "tablecontrols,|,formatselect,fontselect,fontsizeselect,|,styleprops,|,cite,abbr,acronym,del,ins,attribs", true);
				//safari,table,save,advhr,advimage,advlink,pagebreak,style,layer,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template
				$this->setSetting("plugins", "safari,table,save,advhr,advimage,advlink,pagebreak,style,layer,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups", true);
                $this->setSetting("theme_advanced_toolbar_align", "left", true);
                
                $aCustSettings = getEffectiveSettingsByType("tinymce_fullscreen");
                foreach ($aCustSettings as $sKey => $sValue) {
                    $this->setSetting($sKey, $sValue, true);
                }
                
                break;

			case "simple": // Does not show font and table options
				$this->setSetting("theme_advanced_buttons1", "cut,copy,paste,pastetext,pasteword,|,search,replace,|,undo,redo,|,bold,italic,underline,strikethrough,sub,sup,|,insertdate,inserttime,preview,|,styleselect", true);
				$this->setSetting("theme_advanced_buttons2", "link,unlink,anchor,image,flash,advhr,|,bullist,numlist,|,outdent,indent,|,justifyleft,justifycenter,justifyright,justifyfull,removeformat,|,forecolor,backcolor,|,ltr,rtl,|,visualaid,charmap,cleanup,|,code", true);
				$this->setSetting("theme_advanced_buttons3", "", true);
				$this->setSetting("plugins", "advhr,advimage,advlink,insertdatetime,preview,flash,searchreplace,print,contextmenu,paste,directionality", true);
				
                $aCustSettings = getEffectiveSettingsByType("tinymce_simple");
                foreach ($aCustSettings as $sKey => $sValue) {
                    $this->setSetting($sKey, $sValue, true);
                }
                
                break;

			case "mini": // Minimal toolbar
				$this->setSetting("theme_advanced_buttons1", "undo,redo,|,bold,italic,underline,strikethrough,|,link", true);
				$this->setSetting("theme_advanced_buttons2", "", true);
				$this->setSetting("theme_advanced_buttons3", "", true);
				
                $aCustSettings = getEffectiveSettingsByType("tinymce_mini");
                foreach ($aCustSettings as $sKey => $sValue) {
                    $this->setSetting($sKey, $sValue, true);
                }
                
				break;
				
			case "custom": // Custom toolbar
				// tinymce-toolbar1/2/3 and tinymce-plugins are only mentioned for compatibility
				// They are ignored, if theme_advanced_buttons1/2/3 and plugins have been already
				// specified
				$this->setSetting("theme_advanced_buttons1", $this->_aSettings["tinymce-toolbar1"]);
				$this->setSetting("theme_advanced_buttons2", $this->_aSettings["tinymce-toolbar2"]);
				$this->setSetting("theme_advanced_buttons3", $this->_aSettings["tinymce-toolbar3"]);
				$this->setSetting("plugins", $this->_aSettings["tinymce-plugins"]);
                $this->setSetting("theme_advanced_toolbar_location", "bottom");
                
                $aCustSettings = getEffectiveSettingsByType("tinymce_custom");
                foreach ($aCustSettings as $sKey => $sValue) {
                    $this->setSetting($sKey, $sValue, true);
                }
                
				break;
                
            case "inline_edit":
                $this->setSetting("theme_advanced_buttons1", "bold,italic,underline,strikethrough,separator,undo,separator,bullist,numlist,separator,forecolor,backcolor,separator,justifyleft,justifycenter,justifyright,separator,fullscreen,separator,save,close", true);
				$this->setSetting("theme_advanced_buttons2", "", true);
				$this->setSetting("theme_advanced_buttons3", "", true);

				$this->setSetting("setupcontent_callback", "myCustomSetupContent", true);
				
                $this->unsetSetting("width");              
                
                $this->setSetting("height", "210px", true);
				$this->setSetting("plugins", "table,inlinepopups,fullscreen,-close", true);
                $this->setSetting("mode", "exact", true);
                $this->setSetting("elements", "*", true);
				$this->setSetting("content_css", $cfgClient[$client]["path"]["htmlpath"]."css/style_tiny.css", true); 
                
				if (!array_key_exists("auto_resize", $this->_aSettings)) 
					$this->setSetting("auto_resize", "false", true);
				
				if (!array_key_exists("theme_advanced_toolbar_location", $this->_aSettings)) 
					$this->setSetting("theme_advanced_toolbar_location", "top", true);
				
				if (!array_key_exists("theme_advanced_resizing_use_cookie", $this->_aSettings)) 
					$this->setSetting("theme_advanced_resizing_use_cookie", "false", true);
					
				if (!array_key_exists("theme_advanced_toolbar_align", $this->_aSettings))
					$this->setSetting("theme_advanced_toolbar_align", "center", true);
                
                $aCustSettings = getEffectiveSettingsByType("tinymce_inline");
                foreach ($aCustSettings as $sKey => $sValue) {
                    $this->setSetting($sKey, $sValue, true);
                }
                
				break;
				
		   default: // Default options
		      $this->setSetting("theme_advanced_buttons1", "undo,redo,|,bold,italic,underline,strikethrough,|,link,unlink,anchor,image,flash,advhr,|,tablecontrols", true);
		      $this->setSetting("theme_advanced_buttons2", "styleselect,|,bullist,numlist,|,outdent,indent,|,justifyleft,justifycenter,justifyright,justifyfull,removeformat,|,forecolor,backcolor,|,sub,sup,|,code", true);
		      $this->setSetting("theme_advanced_buttons3", "", true);
		      $this->setSetting("plugins", "table,advhr,advimage,advlink,flash,searchreplace,contextmenu,paste", true);
              
              $aCustSettings = getEffectiveSettingsByType("tinymce_default");
              foreach ($aCustSettings as $sKey => $sValue) {
                $this->setSetting($sKey, $sValue, true);
              }
		}
	}
	
	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setStylesheet ($sStylesheet)
	{
		$this->setSetting("content_css", $sStylesheet, true);
	}
	
	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setStyles ($sStyles)
	{
		$this->setSetting("theme_advanced_styles", $sStyles, true);
	}

	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setWidth ($iWidth)
	{
		$this->setSetting("width", $iWidth, true);	
	}

	/**
	 * @deprecated V4.7 - 13.06.2007
	 */		
	function setHeight ($iHeight)
	{
		$this->setSetting("width", $iHeight, true);	
	}
	
	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setDocumentBaseURL ($sDocumentBaseURL)
	{
		$this->setSetting("document_base_url", $sDocumentBaseURL, true);
	}

	function cleanURLs()
	{
		global $sess;

		// Add the path to the following values
		$aParameters = array(
						//builtin
						'content_css',
						'popups_css',
						'popups_css_add',
						'editor_css',
						// plugins
						'plugin_preview_pageurl', //preview plugin
						'media_external_list_url', //media plugin
						'template_external_list_url' //template plugin
		);
		
		foreach ($aParameters as $sParameter)
		{
			if (array_key_exists($sParameter, $this->_aSettings))
			{
				$this->setSetting($sParameter, $this->addPath($this->_aSettings[$sParameter]), true);
			}
		}

		// Session for template and media support files that are written in PHP
		$aParameters = array(
					'media_external_list_url', //media plugin
					'template_external_list_url' //template plugin
		);
		
		foreach ($aParameters as $sParameter)
		{
			if (array_key_exists($sParameter, $this->_aSettings) && 
				preg_match('/\\.php$/i', $this->_aSettings[$sParameter]))
			{
				$this->setSetting($sParameter, $this->_aSettings[$sParameter].'?contenido='.$sess->id, true);
			}
		}
	}

	function addPath ($sFile)
	{
		global $cfgClient, $client, $_SERVER;

		// Quick and dirty hack
		if (!preg_match('/^(http|https):\/\/((?:[a-zA-Z0-9_-]+\.?)+):?(\d*)/', $sFile))
		{
			if (preg_match('/^\//', $sFile))
			{
				$sFile = "http://".$_SERVER['HTTP_HOST'].$sFile;
			} else {
				$sFile = $cfgClient[$client]["htmlpath"]["frontend"].$sFile;
			}
		}
		return $sFile;
	}

	function setBaseURL ($sBaseUrl)
	{
		$this->_sBaseURL = $sBaseUrl;	
	}

	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setConvertURLs ($sConvertUrls)
	{
		$this->setSetting("convert_urls", $sConvertUrls, true);
	}

	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setRelativeURLs ($sRelativeUrls)
	{
		$this->setSetting("relative_urls", $sRelativeUrls, true);	
	}

	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setEditorLanguage ($sLanguage)
	{
		if ($sLanguage != "")
		{
			$this->setSetting("language", $sLanguage, true);	
		}	
	}
	
	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setTextDirection ($sDirection)
	{
		$this->setSetting("directionality", $sDirection, true);
		
		if ($sDirection == "rtl")
		{
			$this->setSetting("theme_advanced_toolbar_align", "right", true);
		} else {
			$this->setSetting("theme_advanced_toolbar_align", "left", true);
		}
	}

	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setToolbarAlign ($sToolbarAlign)
	{
		if ($sToolbarAlign == 'right')
		{
			$this->setSetting("theme_advanced_toolbar_align", "right", true);
		} else
		{
			$this->setSetting("theme_advanced_toolbar_align", "left", true);
		}
	}	
		
	function getScripts ()
	{
		if ($this->_bUseGZIP)
		{
			$sReturn = "\n<!-- tinyMCE -->\n".'<script language="javascript" type="text/javascript" src="'.$this->_sBaseURL.'jscripts/tiny_mce/tiny_mce_gzip.js"></script>';
		} else {
			$sReturn = "\n<!-- tinyMCE -->\n".'<script language="javascript" type="text/javascript" src="'.$this->_sBaseURL.'jscripts/tiny_mce/tiny_mce.js"></script>';
		}
		
		return $sReturn;	
	}
	
	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setTimeformat ($sTimeformat)
	{	
		$this->setSetting("plugin_insertdate_timeFormat", $this->convertFormat($sTimeformat), true);
	}

	/**
	 * @deprecated V4.7 - 13.06.2007
	 */
	function setDateformat ($sDateformat)
	{
		$this->setSetting("plugin_insertdate_dateFormat", $this->convertFormat($sDateformat), true);
	}
	
	function getEditor ()
	{
		global $sess, $cfg, $lang, $client, $idart, $cfgClient;
		
		// TODO: Check functionality - doesn't seem to have any effect...
		$browserparameters = array("restrict_imagebrowser" => array("jpg", "gif", "jpeg", "png"));
		$sess->register("browserparameters");
		
		// Contenido-specific: Set article_url_suffix setting as it is used in plugins/advlink/jscripts/functions.js on anchor tags
		$this->setSetting("setupcontent_callback", 'myCustomSetupContent', true);
		$this->setSetting("save_callback", 'cutFullpath', true);
		

		// Set browser windows
		// Difference between file and image browser is with (file) or without categories/articles (image)			
		$oTemplate = new Template;
		$oTemplate->set('s', 'IMAGEBROWSER', $cfg["path"]["contenido_fullhtml"] .'frameset.php?area=upl&contenido='.$sess->id.'&appendparameters=imagebrowser');
		$oTemplate->set('s', 'FILEBROWSER',	 $cfg["path"]["contenido_fullhtml"] .'frameset.php?area=upl&contenido='.$sess->id.'&appendparameters=filebrowser');
		$oTemplate->set('s', 'FLASHBROWSER', $cfg["path"]["contenido_fullhtml"] .'frameset.php?area=upl&contenido='.$sess->id.'&appendparameters=imagebrowser');
		$oTemplate->set('s', 'MEDIABROWSER', $cfg["path"]["contenido_fullhtml"] .'frameset.php?area=upl&contenido='.$sess->id.'&appendparameters=imagebrowser');
		$oTemplate->set('s', 'FRONTEND_PATH', $cfgClient[$client]["path"]["htmlpath"]); 
		// GZIP support options
		if ($this->_bUseGZIP)
		{
			$sGZIPScript = 	"<script language=\"JavaScript\" type=\"text/javascript\">\n".
							"	tinyMCE_GZ.init({ \n".
							"	plugins : '" . $this->_aSettings["plugins"] . "', \n".
							"	themes : '" . $this->_aSettings["theme"] . "', \n".
							"	languages : '" . $this->_aSettings["language"] . "', \n".
							"	disk_cache : true, \n".
							"	debug : false \n".
							"});\n".
							"</script>\n";
			$oTemplate->set('s', 'COMPRESSOR',  $sGZIPScript);
		} else {
			$oTemplate->set('s', 'COMPRESSOR',  '');
		}

		// Calculate the configuration
		$sConfig = '';
		
		foreach ($this->_aSettings as $sKey => $sValue)
		{
			if (is_bool($sValue))
			{
				if ($sValue === true)
				{
					$sValue = "true";
				} else {
					$sValue = "false";
				}
			}
			
			if ($sValue == "true" || $sValue == "false" ||
				$sKey == "oninit" || $sKey == "onpageload")
			{
				$sConfig .= "'$sKey': ".$sValue;
			} else {
				$sConfig .= "'$sKey': '".$sValue."'";
			}
			$sConfig .= ",\n\t";
		}
		
		$sConfig = substr($sConfig, 0, -3);
		$oTemplate->set('s', 'CONFIG', $sConfig);
			
		$oTxtEditor = new cHTMLTextarea($this->_sEditorName, $this->_sEditorContent);
		$oTxtEditor->setId($this->_sEditorName);
		
		$sBgColor = $this->_aSettings["contenido_background_color"];
		
		$oTxtEditor->setStyle("width: ".$this->_aSettings["width"]."; height: ".$this->_aSettings["height"]."; background-color: ".$sBgColor.";");

		$sReturn  = $oTemplate->generate($cfg['path']['all_wysiwyg'] . $this->_sEditor . "/tinymce.tpl.html", true);
		$sReturn .= $oTxtEditor->render();
		
		return $sReturn;
	}
    
    function getConfigInlineEdit() {
        $sConfig = '';
        $this->setToolbar('inline_edit');
		
		foreach ($this->_aSettings as $sKey => $sValue)
		{
			if (is_bool($sValue))
			{
				if ($sValue === true)
				{
					$sValue = "true";
				} else {
					$sValue = "false";
				}
			}
			
			if ($sValue == "true" || $sValue == "false" ||
				$sKey == "oninit" || $sKey == "onpageload")
			{
				$sConfig .= "'$sKey': ".$sValue;
			} else {
				$sConfig .= "'$sKey': '".$sValue."'";
			}
			$sConfig .= ",\n\t";
		}
		
		$sConfig = substr($sConfig, 0, -3);
        
        return $sConfig;
    }
    
    function getConfigFullscreen() {
        $sConfig = '';
        $this->setToolbar('fullscreen');
        
        $sConfig .= "'theme_advanced_buttons1': '".$this->_aSettings['theme_advanced_buttons1']."',\n";
        $sConfig .= "'theme_advanced_buttons2': '".$this->_aSettings['theme_advanced_buttons2']."',\n";
        $sConfig .= "'theme_advanced_buttons3': '".$this->_aSettings['theme_advanced_buttons3']."',\n";
        $sConfig .= "'theme_advanced_toolbar_align': '".$this->_aSettings['theme_advanced_toolbar_align']."',\n";
        $sConfig .= "'plugins': '".$this->_aSettings['plugins']."'\n";
        
        return $sConfig;
    }
}
?>


Gesperrt