Tabs im Modul-Bereich

Ideen für neue Funktionen in CONTENIDO?
Antworten
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Tabs im Modul-Bereich

Beitrag von HerrB » Mo 26. Jun 2006, 22:24

Das Syntaxhighlighting dürfte noch einen Augenblick brauchen. Aber Tabs in Modul In- und Output kann man schon heute haben (ein Genuss, muss ich sagen - sollte in IE und FF funktionieren, Safari vermutlich nicht):

Quelle: http://l4x.org/Story/261 Und ein herzliches Dankeschön an Jan Dittmer!

contenido/includes/include.mod_edit_form.php:
Unter

Code: Alles auswählen

    	$input->updateAttributes(array("wrap" => "off"));
    	$output->updateAttributes(array("wrap" => "off"));
folgendes einfügen:

Code: Alles auswählen

    	$input->setEvent("onkeydown",	"return insertTab(event,this);");
    	$input->setEvent("onkeyup", 	"return insertTab(event,this);");
    	$input->setEvent("onkeypress",	"return insertTab(event,this);");
    	$output->setEvent("onkeydown",	"return insertTab(event,this);");
    	$output->setEvent("onkeyup", 	"return insertTab(event,this);");
    	$output->setEvent("onkeypress",	"return insertTab(event,this);");
Unter

Code: Alles auswählen

                $form2->custom["submit"]["accesskey"] = '';
folgendes einfügen:

Code: Alles auswählen

				$sAddTab = '<script type="text/javascript">
<!--

/**
* Insert a tab at the current text position in a textarea
* Jan Dittmer, jdittmer@ppp0.net, 2005-05-28
* Inspired by http://www.forum4designers.com/archive22-2004-9-127735.html
* Tested on: 
*   Mozilla Firefox 1.0.3 (Linux)
*   Mozilla 1.7.8 (Linux)
*   Epiphany 1.4.8 (Linux)
*   Internet Explorer 6.0 (Linux)
* Does not work in: 
*   Konqueror (no tab inserted, but focus stays)
*/
function insertTab(event,obj) {
	var tabKeyCode = 9;
	if (event.which) // mozilla
		var keycode = event.which;
	else // ie
		var keycode = event.keyCode;
	if (keycode == tabKeyCode) {
		if (event.type == "keydown") {
			if (obj.setSelectionRange) {
				// mozilla
				var s = obj.selectionStart;
				var e = obj.selectionEnd;
				obj.value = obj.value.substring(0, s) + 
					"\t" + obj.value.substr(e);
				obj.setSelectionRange(s + 1, s + 1);
				obj.focus();
			} else if (obj.createTextRange) {
				// ie
				document.selection.createRange().text="\t"
				obj.onblur = function() { this.focus(); this.onblur = null; };
			} else {
				// unsupported browsers
			}
		}
		if (event.returnValue) // ie ?
			event.returnValue = false;
		if (event.preventDefault) // dom
			event.preventDefault();
		return false; // should work in all browsers
	}
	return true;
}

//--></script>';
				
				$page->addScript("addTab", $sAddTab);
Fertig!

Bitte um Feedback, ob das was Schönes ist...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono » Mo 26. Jun 2006, 22:28

SUUUUUUUUUUUUUUPER! :D

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 26. Sep 2006, 16:18

Mmmh, vermutlich gibt es noch einen kleinen Hacken: Um aus einer Textarea, in die man <tab> eingegeben hat, wieder herauszukommen, muss man zweimal klicken... jemand Zeit, sich mit dem Problem auseinanderzusetzen?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Antworten