Tastenkürzel für Formatierung von Forumsbeiträgen

Postet hier Vorschläge oder Kritik zum Forum.
Antworten
Benutzeravatar
ILIANos
Moderator
Beiträge: 1370
Registriert: Do, 4. Jan 2007, 01:36
Wohnort: Mönchengladbach, NRW
Kontaktdaten:

Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von ILIANos » Sa, 8. Nov 2008, 02:09

Hallo zusammen!

Diesmal poste ich in diesem Teil des Forums nur eine kleine Angelegenheit, nix Großes. :D
Ich benutze 1. am PC ausschließlich die Tastatur (nur Maus wo es sich nicht vermeiden lässt) und 2. öfters mal fett/kursiv/unterstrichen in Foren.

Nun habe ich eben gerade im russischen Forum überrascht festgestellt, dass dort beim Schreiben genau die gleichen shortcuts herrschen wie bei Googlemail, wo ich meinen Mail-Account habe:

STRG+B : fett
STRG+I : kursiv
STRG+U : unterstrichen

Frage: Ist es möglich, das auch in unsere Forensoftware einzubauen, kennt sich da jemand aus? Es ist einfach echt praktisch, z.B. das zuletzt geschrieben Wort zu markieren (übrigens mit Strg+Shift+Links, wer's nicht kennt) und dann mit diesen Kombinationen zu formatieren!

Benutzeravatar
Jeak
Administrator
Beiträge: 1175
Registriert: Di, 21. Feb 2006, 20:51
Wohnort: Karlsruhe

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von Jeak » Sa, 8. Nov 2008, 16:48

beim vBulletin is das halt schon drinn......aber soll halt ma wer nach nem plugin suchen^^

wenn ihr eins findet, kann ichs einbaun ;-)

aber zum suchen hab ich leider im moment nicht die zeit :-(

Benutzeravatar
ILIANos
Moderator
Beiträge: 1370
Registriert: Do, 4. Jan 2007, 01:36
Wohnort: Mönchengladbach, NRW
Kontaktdaten:

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von ILIANos » Sa, 8. Nov 2008, 23:48

Wenn mir jemand sagt, wo ich effektiv danach suchen kann, und in welcher Form das dann für ein Forum vorliegen muss...

Benutzeravatar
DiamondDog
Beiträge: 450
Registriert: Di, 26. Feb 2008, 11:05
Wohnort: Hamm
Kontaktdaten:

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von DiamondDog » So, 9. Nov 2008, 11:01

Ich würd sagen suchen über googel und sollte mit PHP funktionieren.
Plugins:
Beeper 2.0: de/aktiviert
DBox 1.5: de/aktiviert
ExMusic 3.0: aktiviert
HistoryBackup 1.5: aktiviert
LED 1.3: aktiviert
OnlineIP 2.0: aktiviert
ProzessXStat 3.5: de/aktiviert
Sea War 0.13: aktiviert
Rrring 4.5: aktiviert
SetXStatus 3.2: aktiviert
UserOnline 2.0: aktiviert
Weather 0.7: aktiviert

Benutzeravatar
TurboPascal
Beiträge: 418
Registriert: Di, 15. Jul 2008, 16:13
Kontaktdaten:

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von TurboPascal » So, 9. Nov 2008, 13:45

ehm Diamond dog das ganze kann gar net mit php realisiert werden. Es wird mit Javascript gelöst.
Wenn man die tastenkombi drückt dann kommt um den markierten Text die gewünschten text.
Hier die Codestelle:

Code: Alles auswählen

/**
* Handle a keypress event in the editor window
*/
vB_Text_Editor_Events.prototype.editdoc_onkeypress = function(e)
{
	if (!e)
	{
		e = window.event;
	}

	if (e.ctrlKey)
	{
		var code = e.charCode ? e.charCode : e.keyCode;
		switch (String.fromCharCode(code).toLowerCase())
		{
			case 'b': cmd = 'bold'; break;
			case 'i': cmd = 'italic'; break;
			case 'u': cmd = 'underline'; break;
			default: return;
		}

		e = do_an_e(e);
		vB_Editor[this.editorid].apply_format(cmd, false, null);
		return false;
	}
	else if (e.keyCode == 9)
	{
		// first lets try post icon, then submit, then just let it proceed making the tab
		// you can't suppress events a tab even on Opera so skip that too.
		var firsticon = fetch_object('rb_iconid_0');
		if (firsticon != null)
		{
			firsticon.focus();
		}
		else if (fetch_object(this.editorid + '_save') != null && !is_opera)
		{
			fetch_object(this.editorid + '_save').focus();
		}
		else if (fetch_object('qr_submit') != null && !is_opera)
		{
			fetch_object('qr_submit').focus();
		}
		else
		{
			return;
		}
		e = do_an_e(e);
	}
};
Man müsste es nur noch umbauen ^^

Edit: hab noch was gefunden http://www.phpbb.com/community/viewtopi ... &t=1215335" onclick="window.open(this.href);return false;

Benutzeravatar
DiamondDog
Beiträge: 450
Registriert: Di, 26. Feb 2008, 11:05
Wohnort: Hamm
Kontaktdaten:

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von DiamondDog » So, 9. Nov 2008, 14:00

@ TurboPascal
Hast natürlich recht sorry weiß au nich wie ich da auf PHP gekommen bin.
Plugins:
Beeper 2.0: de/aktiviert
DBox 1.5: de/aktiviert
ExMusic 3.0: aktiviert
HistoryBackup 1.5: aktiviert
LED 1.3: aktiviert
OnlineIP 2.0: aktiviert
ProzessXStat 3.5: de/aktiviert
Sea War 0.13: aktiviert
Rrring 4.5: aktiviert
SetXStatus 3.2: aktiviert
UserOnline 2.0: aktiviert
Weather 0.7: aktiviert

Benutzeravatar
ovakek
Beiträge: 553
Registriert: Mo, 26. Nov 2007, 11:54
Wohnort: Berlin
Kontaktdaten:

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von ovakek » So, 9. Nov 2008, 14:16

Ich habe mir gestern auch nen Wolf gesucht aber habe leider nichts gefunden.
Das habe ich allerdings in einem phpBB2 Forum im Quelltext gefunden.

Code: Alles auswählen

<script type="text/javascript">
<!--
// bbCode control by
// subBlue design
// www.subBlue.com

// Startup variables
var imageTag = false;
var theSelection = false;

// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;

var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

// Helpline messages
b_help = "Text in fett: [b]Text[/b]  (alt+b)";
i_help = "Text in kursiv: [i]Text[/i]  (alt+i)";
u_help = "Unterstrichener Text: [u]Text[/u]  (alt+u)";
q_help = "Zitat: [quote]Text[/quote]  (alt+q)";
c_help = "Code anzeigen: [code]Code
(alt+c)";
l_help = "Liste:
  • Text
(alt+l)";
o_help = "Geordnete Liste:
  • Text
(alt+o)";
p_help = "Bild einfügen: [img]http://URL_des_Bildes[/img] (alt+p)";
w_help = "URL einfügen: http://URL oder URL Text (alt+w)";
a_help = "Alle offenen BBCodes schließen";
s_help = "Schriftfarbe: Text Tip: Sie können ebenfalls color=#FF0000 benutzen";
f_help = "Schriftgröße: [size=x-small]Kleiner Text[/size]";

// Define the bbCode tags
bbcode = new Array();
bbtags = new Array('','','','','','','[quote]','[/quote]','','
  • ','
','
  • ','
','[img]','[/img]','','');
imageTag = false;

// Shows the help messages in the helpline window
function helpline(help) {
document.post.helpbox.value = eval(help + "_help");
}


// Replacement for arraygensmall.length property
function getarraysize(thearray) {
for (i = 0; i < thearray.length; i++) {
if ((thearray == "undefined") || (thearray == "") || (thearray == null))
return i;
}
return thearray.length;
}

// Replacement for arraygensmall.push(value) not implemented in IE until version 5.5
// Appends element to the array
function arraypush(thearray,value) {
thearray[ getarraysize(thearray) ] = value;
}

// Replacement for arraygensmall.pop() not implemented in IE until version 5.5
// Removes and returns the last element of an array
function arraypop(thearray) {
thearraysize = getarraysize(thearray);
retval = thearray[thearraysize - 1];
delete thearray[thearraysize - 1];
return retval;
}


function checkForm() {

formErrors = false;

if (document.post.message.value.length < 2) {
formErrors = "Sie müssen zu Ihrem Beitrag einen Text eingeben.";
}

if (formErrors) {
alert(formErrors);
return false;
} else {
bbstyle(-1);
//formObj.preview.disabled = true;
//formObj.submit.disabled = true;
return true;
}
}

function emoticon(text) {
var txtarea = document.post.message;
text = ' ' + text + ' ';
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
} else {
txtarea.value += text;
txtarea.focus();
}
}

function bbfontstyle(bbopen, bbclose) {
var txtarea = document.post.message;

if ((clientVer >= 4) && is_ie && is_win) {
theSelection = document.selection.createRange().text;
if (!theSelection) {
txtarea.value += bbopen + bbclose;
txtarea.focus();
return;
}
document.selection.createRange().text = bbopen + theSelection + bbclose;
txtarea.focus();
return;
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
{
mozWrap(txtarea, bbopen, bbclose);
return;
}
else
{
txtarea.value += bbopen + bbclose;
txtarea.focus();
}
storeCaret(txtarea);
}


function bbstyle(bbnumber) {
var txtarea = document.post.message;

txtarea.focus();
donotinsert = false;
theSelection = false;
bblast = 0;

if (bbnumber == -1) { // Close all open tags & default button gensmalls
while (bbcode[0]) {
butnumber = arraypop(bbcode) - 1;
txtarea.value += bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
imageTag = false; // All tags are closed including image tags :D
txtarea.focus();
return;
}

if ((clientVer >= 4) && is_ie && is_win)
{
theSelection = document.selection.createRange().text; // Get text selection
if (theSelection) {
// Add tags around selection
document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
txtarea.focus();
theSelection = '';
return;
}
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
{
mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
return;
}

// Find last occurance of an open tag the same as the one just clicked
for (i = 0; i < bbcode.length; i++) {
if (bbcode == bbnumber+1) {
bblast = i;
donotinsert = true;
}
}

if (donotinsert) { // Close all open tags up to the one just clicked & default button gensmalls
while (bbcode[bblast]) {
butnumber = arraypop(bbcode) - 1;
txtarea.value += bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
imageTag = false;
}
txtarea.focus();
return;
} else { // Open tags

if (imageTag && (bbnumber != 14)) { // Close image tag before adding another
txtarea.value += bbtags[15];
lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list
document.post.addbbcode14.value = "Img"; // Return button back to normal state
imageTag = false;
}

// Open tag
txtarea.value += bbtags[bbnumber];
if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
arraypush(bbcode,bbnumber+1);
eval('document.post.addbbcode'+bbnumber+'.value += "*"');
txtarea.focus();
return;
}
storeCaret(txtarea);
}

// From http://www.massless.org/mozedit/
function mozWrap(txtarea, open, close)
{
var selLength = txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
if (selEnd == 1 || selEnd == 2)
selEnd = selLength;

var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + open + s2 + close + s3;
return;
}

// Insert at Claret position. Code from
// http://www.faqts.com/knowledge_base/vie ... 52/fid/130
function storeCaret(textEl) {
if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

//-->
</script>
[/code]

Die Buttons sehen dann so aus:

Code: Alles auswählen

<input type="button" class="button" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 40px" onclick="bbstyle(0)" onmouseover="helpline('b')" />
Vielleicht hilft das ja schon weiter.
<3 dNb

Benutzeravatar
ILIANos
Moderator
Beiträge: 1370
Registriert: Do, 4. Jan 2007, 01:36
Wohnort: Mönchengladbach, NRW
Kontaktdaten:

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von ILIANos » Sa, 15. Nov 2008, 14:14

Und wäre es möglich, das umzusetzen? (Jeak?)

Benutzeravatar
Jeak
Administrator
Beiträge: 1175
Registriert: Di, 21. Feb 2006, 20:51
Wohnort: Karlsruhe

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von Jeak » Sa, 15. Nov 2008, 21:12

zur zeit leider nich, du :-(
hab echt grad null zeit......in den weihnachtsferien vll *g*
aber, wenn mir einer was gibt, das ich nur noch einbauen muss, würd das schon noch passen, denk ich.
aber kann mir nich noch gedanken drüber amchen, was ich wie wo einfüg und editier...sorry!

Benutzeravatar
ILIANos
Moderator
Beiträge: 1370
Registriert: Do, 4. Jan 2007, 01:36
Wohnort: Mönchengladbach, NRW
Kontaktdaten:

Re: Tastenkürzel für Formatierung von Forumsbeiträgen

Beitrag von ILIANos » So, 16. Nov 2008, 01:55

Ok, dann ist nicht schlimm, hat ja keine Eile, war nur als allgemeiner Verbesserungsvorschlag gedacht, von jemandem der sowieso kaum was vom Kern der phpBB-Software versteht ;-)

Antworten