Seite 1 von 1

editarea Vollbildmodus

Verfasst: Fr 18. Jul 2008, 12:13
von langwebdesign
Hallo,

Ich hab jetzt auf die schnelle nix dazu gefunden.
Ist es möglich den speichern Button beim Vollbildmodus der EditArea trotzdem anzuzeigen?

mfg Stephan

Verfasst: Fr 18. Jul 2008, 12:54
von tono
Soweit ich weiß bislang nicht. Wäre aber ein super Feature.

Verfasst: Fr 18. Jul 2008, 14:46
von tono
Hier kommt der Hack:

Datei contenido/external/edit_area/class.edit_area.php die function renderScript() austauschen gegen:

Code: Alles auswählen

    function renderScript() {
        //if editor is disabled, there is no need to render this script
        if ($this->bActivated == false) {
            return '';
        }
        
        //if external js file for editor should be included, do this here
        $sJs = '';
        if ($this->bAddScript) {
            $sPath = $this->aCfg['path']['contenido_fullhtml'];
            $sJs .= '<script type="text/javascript" src="'.$sPath.'external/edit_area/edit_area_compressor.php?plugins"></script>'."\n";
            $sJs .= '<script type="text/javascript">
                        function save_callback(id, content) {
                    	var oForm = document.getElementById(id).form;
                    	for (var i = 0; i < oForm.length; ++i) {
                    		var element = oForm.elements[i];
							if(editAreaLoader.getValue(element.id))
							{
								element.value = editAreaLoader.getValue(element.id);
							}
						}
                    	oForm.submit();
                    }
                    </script>';
        }
        
        //define template for edit_area script
        $sJs .= '<script type="text/javascript">
                    function init_editarea_%1$s() { 
                       var oTextarea = document.getElementById("%1$s")
                       if (!oTextarea) {
                           window.setTimeout("init_editarea_%1$s()", 50);
                       } else {
                           var width = oTextarea.offsetWidth;
                           oTextarea.style.width = width+"px";
                           editAreaLoader.init({
                                id: "%1$s"	
                                %2$s
                           })
                       }
                    }
                    
                    window.setTimeout("init_editarea_%1$s()", 50);
                </script>';
        
        //get all stored properties and convert it in order to insert it into edit_area js template
        $sProperties = '';
        foreach ($this->aProperties as $aProperty) {
            if ($aProperty['is_numeric'] == true) {
                $sProperties .= ', '.$aProperty['name'].':'.$aProperty['value']."\n";
            } else {
                $sProperties .= ', '.$aProperty['name'].': "'.$aProperty['value']."\"\n";
            }
        }
        
        //fill js template, using sprintf
        $sTextareaId = $this->sTextareaId;
        $sJsResult = sprintf($sJs, $sTextareaId, $sProperties);
        
        return $sJsResult;
    }
Zwei neue Mandanten/System/Benutzer - Einstellungen:

Code: Alles auswählen

edit_area	begin_toolbar	save
edit_area	save_callback	save_callback
Es erscheint in jeder Edit_Area-Instanz als linkester Button ein Save-Knopf, der das gesamte Modul/Layout/CSS speichert.

Getestet nur mit FF, über IE Feedback freue ich mich, garantiere aber für nichts.

Verfasst: Mo 21. Jul 2008, 06:46
von langwebdesign
Guten Morgen,

so habs gerade eingebaut und funktioniert einwandfrei!
wies im ie is kann ich dir auch nicht sagen.

Frage an die Entwickler: Wird das ins nächste update mit aufgenommen???

noch ne Anregung dazu, ich hab den Editor wie im Thread http://forum.contenido.org/viewtopic.php?t=21932 beschrieben angepasst, könnte nach dem speichern der Editor wieder angezeigt werden wie er vor dem speichern war?

mfg Stephan

Verfasst: Mo 21. Jul 2008, 08:43
von tono
langwebdesign hat geschrieben:Frage an die Entwickler: Wird das ins nächste update mit aufgenommen???
Wenn sich noch ein paar Leute finden, die verifizieren, dass es geht und keine Probleme macht unter anderem auch mit IE, werde ich es einbauen.
langwebdesign hat geschrieben:noch ne Anregung dazu, ich hab den Editor wie im Thread http://forum.contenido.org/viewtopic.php?t=21932 beschrieben angepasst, könnte nach dem speichern der Editor wieder angezeigt werden wie er vor dem speichern war?
Tut das gerade nicht so? Hängt das mit der hier beschriebenen Änderung zusammen, oder war das schon vorher so?

Verfasst: Mo 21. Jul 2008, 08:58
von langwebdesign
Hi,

normalerweise lädt sich die editarea ja immer.
nach dem speichern wird die Seite wieder aufgerufen und die editarea ist wieder da.

selbst beim standard ist es dann so das wenn aus dem Vollbildmodus gespeichert wird die Seite beim neu laden wieder im standard kommt und man den Vollbildmodus wieder einschalten muss!

da ich die editarea nur bei bedarf laden lasse kommt sie nach dem speichern auch nicht mehr.

hier wäre es toll wenn die editarea nach dem speichern über die diskette wieder in den letzten zustand geladen würde.

ich weis jetzt aber nicht wie weit das überhaupt möglich ist.
und wenns nicht geht ist es ja auch nicht so schlimm!

mfg stephan

Verfasst: Mo 21. Jul 2008, 09:49
von timo.trautmann_4fb
Den Speicherbutton habe ich soeben als Standard eingefügt. Ich denke nicht dass er est per Systemeinstellung aktivierbar sein muss. Das Callback Script läuft jedoch im IE nicht. Habe es geringfügig angepasst. Kommt dann mit dem nächsten Release.

Verfasst: Mo 21. Jul 2008, 12:41
von tono
timo.trautmann_4fb hat geschrieben:Das Callback Script läuft jedoch im IE nicht. Habe es geringfügig angepasst.
Danke, ich bin als Macianer nicht so flott mit den Eigenheiten des IE. :wink:

Wenn das standardmäsig drin sein soll lieber statt: (Zeile 123)

Code: Alles auswählen

        $this->setProperty('begin_toolbar', 'save', false);
direkt in der Toolbar ergänzen. (Zeile 127)

Code: Alles auswählen

        $this->setProperty('toolbar', 'save, search, go_to_line, fullscreen, |, undo, redo, |, select_font,|, change_smooth_selection, highlight, reset_highlight, |, charmap, |, help', false);
Eine Idee, wie der Editor seinen Modus behalten könnte: In dem Edit-Formular gibt es ein zusätzliches verstecktes Feld, das den Modus enthält (z.B. JSON) dieses Feld wird mittels des submitForm-Callbacks des Editors gesetzt und bei neu initialisieren wieder ausgewertet.

Langfristig wäre sicherlich die Speicherung des Editor-Inhalts mittels AJAX-Callback der sinnvollere Weg, aber dafür fehlen noch die Schnittstellen.

Verfasst: Mo 21. Jul 2008, 13:31
von timo.trautmann_4fb
Guter Vorschlag, direkt übernommen. :-)

Verfasst: Di 22. Jul 2008, 15:30
von tono
timo.trautmann_4fb hat geschrieben:Guter Vorschlag, direkt übernommen. :-)
Meinst Du die AJAX-Speicherung der Inhalte? Oder nur die Position des Save Knopfes? 8)

Verfasst: Di 22. Jul 2008, 16:29
von timo.trautmann_4fb
Ich meine natürlich deinen Vorschlag, den save Button an geeigneter Stelle zu initialisieren. ;)