Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Zitate
#1
Hallo,
es gibt ein Problem mit den Zitaten.
Also:

Wenn der Schreiber vor mir mit einem Zitat geantwortet hat,
und ich seinen Text Zitieren will, erscheinen alle beiden Zitate.
Wie kann ich das ändern das nur eins erscheint (Also das letzte)

Ist zwar schlecht erklärt, aber egal Big Grin

Gruß
Zitieren
#2
Das ist nur mit Codeänderungen möglich, du müsstest den Text, bevor er zwischen die Quotetags gesetzt wird parsen und alles zwischen den bereits bestehenden Quotetags entfernen.
Zitieren
#3
http://mods.mybboard.net/view/imei-no-qu...otes-2.0.1
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#4
Ah, Danke. Smile
Zitieren
#5
Hey leute,
ich habe auch ein kleines Problem seit dem Update auf 1.4.11.

Meine Zitate werden folgendermasen angezeigt:

'Oli' pid='5602' dateline='1263031442' schrieb

Ist dafür eine php datei oder ein Templade zuständig?
Wo kann ich es ändern damit wie normal

wWs schrieb:text

angezeigt wird?
Achtung
 nehmen Sie diese Beiträge nicht ernst! Das MyBB wissen beruht auf
(letzter Stand: MyBB 1.2.8)
Zitieren
#6
Da stimmt etwas mit dem Parser nicht... Hast du etwas bearbeitet oder Plugins installiert?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
Ja ich habe mycodes erstellt und habe dann die editor.js geändert.
Damit das in der Antwortbox angezeigt wird.

Kann es daran liegen.
Achtung
 nehmen Sie diese Beiträge nicht ernst! Das MyBB wissen beruht auf
(letzter Stand: MyBB 1.2.8)
Zitieren
#8
Wenn du keinen BBCode mit quote erstellt hast, sollte es kein Problem sein.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#9
Das habe ich nicht gemacht sie heißen alle [Video: http://]

Habe ich vielleicht was in der .js falsch gemacht?

PHP-Code:
var messageEditor = Class.create();

messageEditor.prototype = {
openTags: new Array(),
toolbarHeight: 0,
currentTheme: '',
themePath: '',
openDropDownMenu: null,

setTheme: function(theme)
{
if(
this.currentTheme != '' || $('editorTheme')) {
$(
'editorTheme').remove();
}

var
stylesheet = document.createElement('link');
stylesheet.setAttribute('rel', 'stylesheet');
stylesheet.setAttribute('type', 'text/css');
stylesheet.setAttribute('href', this.baseURL + 'editor_themes/'+theme+'/stylesheet.css');
document.getElementsByTagName('head')[0].appendChild(stylesheet);
this.currentTheme = theme;
this.themePath = this.baseURL + 'editor_themes/'+theme;
},

initialize: function(textarea, options)
{
// Sorry Konqueror, but due to a browser bug out of control with textarea values
// you do not get to use the fancy editor.

if(MyBB.browser == "konqueror" || (typeof(mybb_editor_disabled) != "undefined" && mybb_editor_disabled == true))
{
return
false;
}

// Establish the base path to this javascript file
$$('script').each(function(script) {
if(
script.src && script.src.indexOf('editor.js') != -1) {
this.baseURL = script.src.replace(/editor\.js(.*?)$/, '');
}
},
this);

this.options = options;

if(
this.options)
{
if(!
this.options.lang)
{
return
false;
}

if(!
this.options.rtl)
{
this.options.rtl = 0;
}
}

if(
this.options && this.options.theme)
{
this.setTheme(this.options.theme);
}
else
{
this.setTheme('default');
}

// Defines an array of videos to be shown in the video drop down.
this.video = new Object();
this.video["jtv"] = "<img src=\"http://juggling.tv/favicon.ico\" alt=\"jtv\"> JungglingTV";
this.video["youtube"] = "<img src=\"http://s.ytimg.com/yt/favicon-vfl86270.ico\" alt=\"YouTube\"> YouTube";
this.video["myvideo"] = "<img src=\"http://myvideo.de/favicon.ico\" alt=\"MyVideo\"> MyVideo";
this.video["clipfish"] = "Clipfish";
this.video["sevenload"] = "<img src=\"http://de.sevenload.com/favicon.ico\" alt=\"sevenload\"> Sevenload";
this.video["vimeo"] = "<img src=\"http://vimeo.com/favicon.ico\" alt=\"Vimeo\"> Vimeo";
this.video["google"] = "<img src=\"http://video.google.com/favicon.ico\" alt=\"Google\"> Google";

// Defines an array of fonts to be shown in the font drop down.
this.fonts = new Object();
this.fonts["Arial"] = "<span style=\"font-family:Arial;\">Arial</span>";
this.fonts["Courier"] = "<span style=\"font-family:Courier;\">Courier</span>";
this.fonts["Impact"] = "<span style=\"font-family:Impact;\">Impact</span>";
this.fonts["Tahoma"] = "<span style=\"font-family:Tahoma;\">Tahoma</span>";
this.fonts["Times New Roman"] = "<span style=\"font-family:'Times New Roman';\">Times New Roman</span>";
this.fonts["Trebuchet MS"] = "<span style=\"font-family:'Trebuchet MS';\">Trebuchet MS</span>";
this.fonts["Verdana"] = "<span style=\"font-family:Verdana;\">Verdana</span>";

// An array of font sizes to be shown.
this.sizes = new Object();
this.sizes["xx-small"] = this.options.lang.size_xx_small;
this.sizes["x-small"] = this.options.lang.size_x_small;
this.sizes["small"] = this.options.lang.size_small;
this.sizes["medium"] = this.options.lang.size_medium;
this.sizes["large"] = this.options.lang.size_large;
this.sizes["x-large"] = this.options.lang.size_x_large;
this.sizes["xx-large"] = this.options.lang.size_xx_large;

// An array of colours to be shown.
this.colors = new Object();
this.colors[1] = "#800000";
this.colors[2] = "#8B4513";
this.colors[3] = "#006400";
this.colors[4] = "#2F4F4F";
this.colors[5] = "#000080";
this.colors[6] = "#4B0082";
this.colors[7] = "#800080";
this.colors[8] = "#000000";
this.colors[9] = "#FF0000";
this.colors[10] = "#DAA520";
this.colors[11] = "#6B8E23";
this.colors[12] = "#708090";
this.colors[13] = "#0000CD";
this.colors[14] = "#483D8B";
this.colors[15] = "#C71585";
this.colors[16] = "#696969";
this.colors[17] = "#FF4500";
this.colors[18] = "#FFA500";
this.colors[19] = "#808000";
this.colors[20] = "#4682B4";
this.colors[21] = "#1E90FF";
this.colors[22] = "#9400D3";
this.colors[23] = "#FF1493";
this.colors[24] = "#A9A9A9";
this.colors[25] = "#FF6347";
this.colors[26] = "#FFD700";
this.colors[27] = "#32CD32";
this.colors[28] = "#87CEEB";
this.colors[29] = "#00BFFF";
this.colors[30] = "#9370DB";
this.colors[31] = "#FF69B4";
this.colors[32] = "#DCDCDC";
this.colors[33] = "#FFDAB9";
this.colors[34] = "#FFFFE0";
this.colors[35] = "#98FB98";
this.colors[36] = "#E0FFFF";
this.colors[37] = "#87CEFA";
this.colors[38] = "#E6E6FA";
this.colors[39] = "#DDA0DD";
this.colors[40] = "#FFFFFF";


// Here we get the ID of the textarea we're replacing and store it.
this.textarea = textarea;

// Only swap it over once the page has loaded (add event)
if(MyBB.page_loaded == 1)
{
this.showEditor();
}
else
{
Event.observe(document, "dom:loaded", this.showEditor.bindAsEventListener(this));
}
},

showEditor: function()
{
// Assign the old textarea to a variable for later use.
oldTextarea = $(this.textarea);

// Now this.textarea becomes the new textarea ID
this.textarea += "_new";

// Begin the creation of our new editor.

this.editor = document.createElement("div");
this.editor.style.position = "relative";
this.editor.style.display = "none";
this.editor.className = "messageEditor";

// Append the new editor
oldTextarea.parentNode.insertBefore(this.editor, oldTextarea);

// Determine the overall height and width - messy, but works
w = oldTextarea.getDimensions().width+"px";
if(!
w || parseInt(w) < 400)
{
w = "500px";
}
if(
this.options && this.options.height)
{
h = this.options.height;
}
else if(
oldTextarea.offsetHeight)
{
h = oldTextarea.offsetHeight+"px";
}
else if(
oldTextarea.clientHeight)
{
h = oldTextarea.clientHeight+"px";
}
else if(
oldTextarea.style.height)
{
h = oldTextarea.style.height;
}
else
{
h = "400px";
}
this.editor.style.width = w;
this.editor.style.height = h;

this.createToolbarContainer('top');

this.createToolbar('closetags', {
container: 'top',
alignment: 'right',
items: [
{
type: 'button', name: 'close_tags', insert: 'zzzz', sprite: 'close_tags', width: 80, style: {visibility: 'hidden'}}
]
});
this.createToolbar('topformatting', {
container: 'top',
items: [
{
type: 'dropdown', name: 'video', insert: 'video', title: 'Videos', options: this.video},
{
type: 'dropdown', name: 'font', insert: 'font', title: this.options.lang.font, options: this.fonts},
{
type: 'dropdown', name: 'size', insert: 'size', title: this.options.lang.size, options: this.sizes},
{
type: 'button', name: 'color', insert: 'color', dropdown: true, color_select: true, image: 'color.gif', draw_option: this.drawColorOption, options: this.colors} ]
});

this.createToolbarContainer('bottom');

this.createToolbar('insertables', {
container: 'bottom',
alignment: 'right',
items: [
{
type: 'button', name: 'list_num', sprite: 'list_num', insert: 'list', extra: 1, title: this.options.lang.title_numlist},
{
type: 'button', name: 'list_bullet', sprite: 'list_bullet', insert: 'list', title: this.options.lang.title_bulletlist},
{
type: 'separator'},
{
type: 'button', name: 'img', sprite: 'image', insert: 'image', extra: 1, title: this.options.lang.title_image},
{
type: 'button', name: 'url', sprite: 'link', insert: 'url', title: this.options.lang.title_hyperlink},
{
type: 'button', name: 'email', sprite: 'email', insert: 'email', extra: 1, title: this.options.lang.title_email},
{
type: 'separator'},
{
type: 'button', name: 'quote', sprite: 'quote', insert: 'quote', title: this.options.lang.title_quote},
{
type: 'button', name: 'code', sprite: 'code', insert: 'code', title: this.options.lang.title_code},
{
type: 'button', name: 'php', sprite: 'php', insert: 'php', title: this.options.lang.title_php}
]
});
this.createToolbar('formatting', {
container: 'bottom',
items: [
{
type: 'button', name: 'b', sprite: 'bold', insert: 'b', title: this.options.lang.title_bold},
{
type: 'button', name: 'i', sprite: 'italic', insert: 'i', title: this.options.lang.title_italic},
{
type: 'button', name: 'u', sprite: 'underline', insert: 'u', title: this.options.lang.title_underline},
{
type: 'separator'},
{
type: 'button', name: 'align_left', sprite: 'align_left', insert: 'align', extra: 'left', title: this.options.lang.title_left},
{
type: 'button', name: 'align_center', sprite: 'align_center', insert: 'align', extra: 'center', title: this.options.lang.title_center},
{
type: 'button', name: 'align_right', sprite: 'align_right', insert: 'align', extra: 'right', title: this.options.lang.title_right},
{
type: 'button', name: 'align_justify', sprite: 'align_justify', insert: 'align', extra: 'justify', title: this.options.lang.title_justify}
]
});

// Create our new text area
areaContainer = document.createElement("div");
areaContainer.style.clear = "both";

// Set the width/height of the area
subtract = 16;
if(
MyBB.browser == 'ie') subtract += 5;
subtract2 = 7;
if(
MyBB.browser == 'ie') subtract2 += 6;
areaContainer.style.height = parseInt(Element.getDimensions(this.editor).height)-this.toolbarHeight-subtract+"px";
areaContainer.style.width = parseInt(Element.getDimensions(this.editor).width)-subtract2+"px";

// Create text area
textInput = document.createElement("textarea");
textInput.setAttribute("cols", oldTextarea.getAttribute("cols"));
textInput.setAttribute("rows", oldTextarea.getAttribute("rows"));
textInput.id = this.textarea;
textInput.name = oldTextarea.name+"_new";
textInput.style.height = parseInt(areaContainer.style.height)+"px";
textInput.style.width = parseInt(areaContainer.style.width)+"px";

if(
oldTextarea.value != '')
{
textInput.value = oldTextarea.value;
}

if(
oldTextarea.tabIndex)
{
textInput.tabIndex = oldTextarea.tabIndex;
}

areaContainer.appendChild(textInput);
this.editor.appendChild(areaContainer);

if(
oldTextarea.form)
{
Event.observe(oldTextarea.form, "submit", this.closeTags.bindAsEventListener(this));
Event.observe(oldTextarea.form, "submit", this.updateOldArea.bindAsEventListener(this));
}

// Hide the old editor
oldTextarea.style.visibility = "hidden";
oldTextarea.style.position = "absolute";
oldTextarea.style.top = "-1000px";
oldTextarea.id += "_old";
this.oldTextarea = oldTextarea;

this.editor.style.display = "";
Event.observe(textInput, "keyup", this.updateOldArea.bindAsEventListener(this));

if(
MyBB.browser == 'ie') {
Event.observe($(this.textarea), 'focus', function() {
this.trackingCaret = true;
}.
bindAsEventListener(this));
Event.observe($(this.textarea), 'blur', function() {
this.trackingCaret = false;
}.
bindAsEventListener(this));
Event.observe($(this.textarea), 'mousedown', function() {
this.trackingCaret = true;
this.storeCaret();
}.
bindAsEventListener(this));
}

Event.observe(textInput, "blur", this.updateOldArea.bindAsEventListener(this));
},

drawColorOption: function(option)
{
var
item = document.createElement('li');
item.extra = option.value;
item.className = 'editor_dropdown_color_item';
item.innerHTML = '<a style="background-color: '+option.value+'"></a>';
return
item;
},

createToolbarContainer: function(name)
{
if($(
'editor_toolbar_container_'+name)) return;

var
container = document.createElement("div");
container.id = 'editor_toolbar_container_'+name;
container.className = 'toolbar_container';

this.editor.appendChild(container);

this.toolbarHeight += 28;

return
container;
},

createToolbar: function(name, options)
{
if(
typeof(options.container) == 'undefined')
{
options.container = this.createToolbarContainer('auto_'+name);
}
else {
options.container = $('editor_toolbar_container_'+options.container);
if(!
options.container) return;
}

if($(
'editor_toolbar_'+name)) return;

var
toolbar = document.createElement('div');
toolbar.id = 'editor_toolbar_'+name;
toolbar.className = 'toolbar';

var
clear = document.createElement('br');
clear.style.clear = 'both';
toolbar.appendChild(clear);

if(
options.alignment && options.alignment == 'right') {
toolbar.className += ' float_right';
}
options.container.appendChild(toolbar);
if(
typeof(options.items) == 'object') {
for(var
i = 0; i < options.items.length; ++i) {
this.addToolbarItem(toolbar, options.items[i]);
}
}
// add closing item
if(toolbar.lastChild.previousSibling)
toolbar.lastChild.previousSibling.className += ' toolbar_button_group_last';
},

setElementState: function(element, state) {
element.addClassName('toolbar_'+state);

if(
element.hasClassName('toolbar_button_group_first')) {
if(
state == 'clicked') {
append = 'toolbar_clicked';
}
else if(
state == 'hover') {
append = 'toolbar_hover';
}
append += '_button_group_first';
element.addClassName(append);
}

if(
element.hasClassName('toolbar_button_group_last')) {
if(
state == 'clicked') {
append = 'toolbar_clicked';
}
else if(
state == 'hover') {
append = 'toolbar_hover';
}
append += '_button_group_last';
element.addClassName(append);
}
},

removeElementState: function(element, state)
{
element.removeClassName('toolbar_'+state);

if(
element.hasClassName('toolbar_button_group_first')) {
if(
state == 'clicked') {
append = 'toolbar_clicked';
}
else if(
state == 'hover') {
append = 'toolbar_hover';
}
append += '_button_group_first';
element.removeClassName(append);
}

if(
element.hasClassName('toolbar_button_group_last')) {
if(
state == 'clicked') {
append = 'toolbar_clicked';
}
else if(
state == 'hover') {
append = 'toolbar_hover';
}
append += '_button_group_last';
element.removeClassName(append);
}
},

dropDownMenuItemClick: function(e)
{
this.restartEditorSelection();
element = Event.element(e);

if(!
element)
return;

if(!
element.extra)
element = element.up('li');

var
mnu = element.up('ul');
var
dropdown = this.getElementToolbarItem(mnu);
var
label = dropdown.down('.editor_dropdown_label');

if(!
dropdown.insertText || (mnu.activeItem && mnu.activeItem == element))
return;

this.insertMyCode(dropdown.insertText, element.extra);
mnu.lastItemValue = element.extra;

if(
this.getSelectedText($(this.textarea)))
{
this.setDropDownMenuActiveItem(dropdown, 0);
}
else
{
if(
label)
{
label.innerHTML = element.innerHTML;
label.style.overflow = 'hidden';
}
var
sel_color = dropdown.down('.editor_button_color_selected')
if(
sel_color)
{
sel_color.style.backgroundColor = element.extra;
var
use_default = dropdown.down('.editor_dropdown_color_item_default');
if(
use_default) use_default.style.display = '';
}
mnu.activeItem = element;
element.addClassName('editor_dropdown_menu_item_active');
}
this.hideOpenDropDownMenu();
Event.stop(e);
},

setDropDownMenuActiveItem: function(element, index)
{
if(
element == null)
{
return;
}
var
mnu = element.down('ul');
var
label = element.down('.editor_dropdown_label');

if(
mnu.activeItem)
{
mnu.activeItem.removeClassName('editor_dropdown_menu_item_active');
mnu.activeItem = null;
}

if(
index > 0)
{
var
item = mnu.childNodes[index];
if(!
item) return;
mnu.activeItem = item;
if(
label)
{
label.innerHTML = item.innerHTML;
}

var
sel_color = element.down('.editor_dropdown_color_selected')
if(
sel_color)
{
sel_color.style.backgroundColor = item.style.backgroundColor;
mnu.lastItemValue = item.insertExtra;
var
use_default = element.down('.editor_dropdown_color_item_default');
if(
use_default) use_default.style.display = '';
}
item.addClassName('editor_dropdown_menu_item_active');
}
else
{
if(
label)
{
label.innerHTML = mnu.childNodes[0].innerHTML;
}

var
sel_color = element.down('.editor_button_color_selected')
if(
sel_color)
{
//sel_color.style.backgroundColor = '';
var use_default = element.down('.editor_dropdown_color_item_default');
if(
use_default) use_default.style.display = 'none';
}
this.removeElementState(element, 'clicked');
}
},

createDropDownMenu: function(options)
{
var
dropdown = document.createElement('div');
dropdown.itemType = options.type;
if(
options.image || options.sprite)
dropdown.className = 'toolbar_dropdown_image';
else
dropdown.className = 'toolbar_dropdown';

dropdown.className += ' editor_dropdown toolbar_dropdown_'+options.name;
dropdown.id = 'editor_item_'+options.name;

Event.observe(dropdown, 'mouseover', function()
{
this.storeCaret();
dropdown.addClassName('toolbar_dropdown_over');
}.
bindAsEventListener(this));
Event.observe(dropdown, 'mouseout', function()
{
this.storeCaret();
dropdown.removeClassName('toolbar_dropdown_over');
}.
bindAsEventListener(this));
dropdown.insertText = options.insert;

// create the dropdown label container
var label = document.createElement('div');
label.className = 'editor_dropdown_label';
if(
options.title)
{
label.innerHTML = options.title;
}
else
{
label.innerHTML = '&nbsp;';
}
dropdown.appendChild(label)

// create the arrow
var arrow = document.createElement('div');
arrow.className = 'editor_dropdown_arrow';
dropdown.appendChild(arrow);

// create the menu item container
var mnu = this.buildDropDownMenu(options);

Event.observe(dropdown, 'click', this.toggleDropDownMenu.bindAsEventListener(this));
dropdown.appendChild(mnu);
return
dropdown;
},

buildDropDownMenu: function(options)
{
var
mnu = document.createElement('ul');
mnu.className = 'editor_dropdown_menu';
mnu.style.display = 'none';

// create the first item
if(options.title)
{
var
item = document.createElement('li');
item.className = 'editor_dropdown_menu_title';
item.innerHTML = options.title;
mnu.appendChild(item);
Event.observe(item, 'click', function()
{
if(
mnu.activeItem)
{
this.restartEditorSelection();
this.insertMyCode(dropdown.insertText, '-');
}
this.setDropDownMenuActiveItem(dropdown, 0);
}.
bindAsEventListener(this));
}

$H(options.options).each(function(option)
{
if(
options.draw_option)
{
item = options.draw_option(option)
}
else
{
var
item = document.createElement('li');
item.innerHTML = option.value;

var
content = document.createElement('span');
item.appendChild(content);
item.extra = option.key;
}
Event.observe(item, 'click', this.dropDownMenuItemClick.bindAsEventListener(this));
Event.observe(item, 'mouseover', function()
{
item.addClassName('editor_dropdown_menu_item_over');
});
Event.observe(item, 'mouseout', function()
{
item.removeClassName('editor_dropdown_menu_item_over');
});
mnu.appendChild(item);
},
this);
return
mnu;
},

toggleDropDownMenu: function(e)
{
element = Event.element(e);
if(!
element)
return;
if(!
element.itemType)
element = this.getElementToolbarItem(element);

var
mnu = $(element).down('ul');

// This menu is already open, close it
if(mnu.style.display != 'none')
{
mnu.style.display = 'none';
element.removeClassName('editor_dropdown_menu_open');
this.removeElementState(element, 'clicked');
this.openDropDownMenu = null;
Event.stopObserving(document, 'click', this.hideOpenDropDownMenu.bindAsEventListener(this));
}
// Opening this menu
else
{
// If a menu is already open, close it first
this.showDropDownMenu(mnu);
}
this.removeElementState(element, 'clicked');
Event.stop(e);
},

showDropDownMenu: function(mnu)
{
this.hideOpenDropDownMenu();
mnu.style.display = '';
element = this.getElementToolbarItem(mnu);
element.addClassName('editor_dropdown_menu_open');
this.setElementState(element, 'clicked');
this.openDropDownMenu = mnu;
Event.observe(document, 'click', this.hideOpenDropDownMenu.bindAsEventListener(this));
},

hideOpenDropDownMenu: function()
{
if(!
this.openDropDownMenu) return;
this.openDropDownMenu.style.display = 'none';
this.getElementToolbarItem(this.openDropDownMenu).removeClassName('editor_dropdown_menu_open');
var
dropDown = this.getElementToolbarItem(this.openDropDownMenu);
this.removeElementState(element, 'clicked');
this.openDropDownMenu = null;
Event.stopObserving(document, 'click', this.hideOpenDropDownMenu.bindAsEventListener(this));
},

getElementToolbarItem: function(elem)
{
var
parent = elem;
do {
if(
parent.insertText) return parent;
parent = parent.parentNode;
} while($(
parent));

return
false;
},

storeCaret: function()
{
if(
MyBB.browser != 'ie' || !this.trackingCaret)
{
return;
}

var
range = document.selection.createRange();
var
range_all = document.body.createTextRange();
range_all.moveToElementText($(this.textarea));
for(var
sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
range_all.moveStart('character', 1);

var
range_all = document.body.createTextRange();
range_all.moveToElementText($(this.textarea));
for(var
sel_end = 0; range_all.compareEndPoints('StartToEnd', range) < 0; sel_end++)
range_all.moveStart('character', 1);

this.lastCaretS = sel_start;
this.lastCaretE = sel_end;
},

restartEditorSelection: function()
{
if(
MyBB.browser != 'ie')
{
return;
}

var
range = $(this.textarea).createTextRange();
range.collapse(true);
range.moveStart('character', this.lastCaretS);
range.moveEnd('character', this.lastCaretE - this.lastCaretS);
range.select();
},

addToolbarItem: function(toolbar, options)
{
if(
typeof(toolbar) == 'string')
{
toolbar = $('editor_toolbar_'+toolbar);
}

if(!$(
toolbar)) return;

// Does this item already exist?
if($('editor_item_'+options.name)) return;

insert_first_class = false;

// Is this the first item? childnodes = 1 (closing br) or lastchild.previousSibling = sep
if(toolbar.childNodes.length == 1 || (toolbar.lastChild.previousSibling && toolbar.lastChild.previousSibling.className.indexOf('toolbar_sep') > -1 || (toolbar.lastChild.previousSibling.className.indexOf('editor_dropdown') > -1 && options.type != 'dropdown')))
{
insert_first_class = true;
}

if(
options.type == "dropdown")
{
var
dropdown = this.createDropDownMenu(options);
if(
dropdown)
toolbar.insertBefore(dropdown, toolbar.lastChild);

if(
insert_first_class == true)
dropdown.className += ' toolbar_dropdown_group_first';
}
else if(
options.type == 'button')
{
var
button = this.createToolbarButton(options)
toolbar.insertBefore(button, toolbar.lastChild);

if(
insert_first_class == true)
button.className += ' toolbar_button_group_first';
}
else if(
options.type == 'separator')
{
if(
toolbar.lastChild.previousSibling && !$(toolbar.lastChild.previousSibling).hasClassName('toolbar_dropdown'))
{
toolbar.lastChild.previousSibling.className += ' toolbar_button_group_last';
}
var
separator = document.createElement("span");
separator.itemType = options.type;
separator.className = "toolbar_sep";
toolbar.insertBefore(separator, toolbar.lastChild);
}
},

createToolbarButton: function(options)
{
var
button = document.createElement('span');
button.itemType = options.type;
button.id = 'editor_item_'+options.name;
if(
typeof(options.title) != 'undefined')
{
button.title = options.title;
}
button.className = 'toolbar_button toolbar_normal toolbar_button_'+options.name;

if(
typeof(options.style) == 'object')
{
$H(options.style).each(function(item) {
eval(
'button.style.'+item.key+' = "'+item.value+'";');
});
}
button.insertText = options.insert;
button.insertExtra = '';
if(
typeof(options.extra) != 'undefined')
button.insertExtra = options.extra;

if(
typeof(options.sprite) != 'undefined')
{
var
img = document.createElement('span');
img.className = 'toolbar_sprite toolbar_sprite_'+options.sprite;
}
else
{
var
img = document.createElement('img');
img.src = this.themePath + "/images/" + options.image;
}
button.appendChild(img);

if(
options.dropdown)
{
if(
options.color_select == true)
{
var
sel = document.createElement('em');
sel.className = 'editor_button_color_selected';
button.appendChild(sel);
}
// create the arrow
var arrow = document.createElement('u');
arrow.className = 'toolbar_button_arrow';
button.appendChild(arrow);
button.className += ' toolbar_button_with_arrow';
}

var
end = document.createElement('strong');
button.appendChild(end);

// Create the actual drop down menu
if(options.dropdown)
{
// create the menu item container
var mnu = this.buildDropDownMenu(options);

Event.observe(arrow, 'click', this.toggleDropDownMenu.bindAsEventListener(this));
Event.observe(arrow, 'mouseover', function(e)
{
elem = Event.element(e);
if(!
elem) return;
elem.parentNode.addClassName('toolbar_button_over_arrow');
});
Event.observe(arrow, 'mouseout', function(e)
{
elem = Event.element(e);
if(!
elem) return;
elem.parentNode.removeClassName('toolbar_button_over_arrow');
});
button.appendChild(mnu);
button.dropdown = true;
button.menu = mnu;
}

// Does this button have enabled/disabled states?
if(options.disabled_img || options.disabled_sprite)
{
button.disable = function()
{
if(
button.disabled == true) return;

if(
options.disabled_sprite)
{
img.removeClassName('toolbar_sprite_'+options.sprite);
img.addClassName('toolbar_sprite_disabled_'+options.disabled_sprite);
}
else
img.src = this.themePath + '/images/' + options.disabled_img;

button.disabled = true;
};

button.enable = function()
{
if(!
button.disabled) return;

if(
options.disabled_sprite)
{
img.removeClassName('toolbar_sprite_disabled_'+options.disabled_sprite);
img.addClassName('toolbar_sprite_'+options.sprite);
}
else
img.src = this.themePath + '/images/' + options.image;

button.enabled = true;
};

if(
options.disabled && options.disabled == true)
{
button.disable();
button.disabled = true;
}
else
button.disabled = false;
}

Event.observe(button, "mouseover", this.toolbarItemHover.bindAsEventListener(this));
Event.observe(button, "mouseout", this.toolbarItemOut.bindAsEventListener(this));
Event.observe(button, "click", this.toolbarItemClick.bindAsEventListener(this));
return
button;
},

updateOldArea: function(e)
{
this.oldTextarea.value = $(this.textarea).value;
},

toolbarItemOut: function(e)
{
this.storeCaret();
element = Event.element(e);

if(!
element)
return
false;

if(!
element.itemType)
element = this.getElementToolbarItem(element);

if(
element.disabled)
return;

if(
typeof(element.insertText) != 'undefined')
{
if(
element.insertExtra)
{
insertCode = element.insertText+"_"+element.insertExtra;
}
else
{
insertCode = element.insertText;
}

if(
this.openTags.indexOf(insertCode) != -1 || element.className.indexOf('editor_dropdown_menu_open') > -1)
{
this.setElementState(element, 'clicked');
}
}
this.removeElementState(element, 'hover');
},

toolbarItemHover: function(e)
{
this.storeCaret();
element = Event.element(e);
if(!
element)
return
false;

if(!
element.itemType)
element = this.getElementToolbarItem(element);

if(
element.disabled)
return;

if(!
element.className || element.className.indexOf('toolbar_clicked') == -1)
this.setElementState(element, 'hover');
},

toolbarItemClick: function(e)
{
element = Event.element(e);

if(!
element)
return
false;

if(!
element.itemType)
element = this.getElementToolbarItem(element);

if(
element.disabled)
return;

if(
element.dropdown && element.menu)
{
if(!
element.menu.activeItem)
{
Event.stop(e);
if(!
element.menu.lastItemValue)
{
this.showDropDownMenu(element.menu);
}
else
{
this.insertMyCode(element.insertText, element.menu.lastItemValue);
}

return;
}
}

if(
element.id == "editor_item_close_tags")
{
this.closeTags();
}
else
{
if(
typeof(element.insertExtra) != 'undefined')
this.insertMyCode(element.insertText, element.insertExtra);
else
this.insertMyCode(element.insertText);
}
},

insertList: function(type)
{
list =
"";

do
{
listItem = prompt(this.options.lang.enter_list_item, "");

if(
listItem != "" && listItem != null)
{
list = list+
"[*]"+listItem+"\n";
}
}
while(
listItem != "" && listItem != null);

if(list ==
"")
{
return
false;
}

if(
type)
{
list =
"[list="+type+"]\n"+list;
}
else
{
list =
"[list]\n"+list;
}

list = list+
"[/list]\n";
this.performInsert(list, "", true, false);
},

insertURL: function()
{
selectedText = this.getSelectedText($(this.textarea));
url = prompt(this.options.lang.enter_url, "http://");

if(
url)
{
if(!
selectedText)
{
title = prompt(this.options.lang.enter_url_title, "");
}
else
{
title = selectedText;
}

if(
title)
{
this.performInsert("[url="+url+"]"+title+"[/url]", "", true, false);
}
else
{
this.performInsert("[url]"+url+"[/url]", "", true, false);
}
}
},

insertEmail: function()
{
selectedText = this.getSelectedText($(this.textarea));
email = prompt(this.options.lang.enter_email, "");

if(
email)
{
if(!
selectedText)
{
title = prompt(this.options.lang.enter_email_title, "");
}
else
{
title = selectedText;
}

if(
title)
{
this.performInsert("[email="+email+"]"+title+"[/email]", "", true, false);
}
else
{
this.performInsert("[email]"+email+"[/email]", "", true, false);
}
}
},

insertIMG: function()
{
image = prompt(this.options.lang.enter_image, "http://");

if(
image)
{
this.performInsert("[img]"+image+"[/img]", "", true);
}
},

insertMyCode: function(code, extra)
{
this.restartEditorSelection();

switch(
code)
{
case
"list":
this.insertList(extra);
break;
case
"url":
this.insertURL();
break;
case
"image":
this.insertIMG();
break;
case
"email":
this.insertEmail();
break;
default:
var
already_open = false;
var
no_insert = false;
if(
extra)
{
var
full_tag = code+"_"+extra;
}
else
{
var
full_tag = code;
}

var
newTags = new Array();
this.openTags.each(function(tag)
{
exploded_tag = tag.split("_");
if(
exploded_tag[0] == code)
{
already_open = true;
this.performInsert("[/"+exploded_tag[0]+"]", "", false);
var
elem = $('editor_item_'+exploded_tag[0]);

if(
elem)
{
this.removeElementState(elem, 'clicked');
}

if(
elem && (elem.itemType == "dropdown" || elem.dropdown || elem.menu))
{
this.setDropDownMenuActiveItem(elem, 0);
}

if(
tag == full_tag)
{
no_insert = true;
}
}
else
{
newTags[newTags.length] = tag;
}
}.
bind(this));

this.openTags = newTags;
var
do_insert = false;

if(
extra != "" && extra != "-" && no_insert == false)
{
start_tag = "["+code+"="+extra+"]";
end_tag = "[/"+code+"]";
do_insert = true;
}
else if(!
extra && already_open == false)
{
start_tag = "["+code+"]";
end_tag = "[/"+code+"]";
do_insert = true;
}

if(
do_insert == true)
{
if(!
this.performInsert(start_tag, end_tag, true))
{
this.openTags.push(full_tag);
$(
'editor_item_close_tags').style.visibility = '';
}
else if($(
'editor_item_'+full_tag))
{
this.removeElementState($('editor_item_'+full_tag), 'clicked');
}
else if($(
'editor_item_'+code))
{
elem = $('editor_item_'+code);
if(
elem.type == "dropdown" || elem.dropdown || elem.menu)
this.setDropDownMenuActiveItem($('editor_item_'+start_tag), 0);
}
}
}

if(
this.openTags.length == 0)
{
$(
'editor_item_close_tags').style.visibility = 'hidden';
}
},

getSelectedText: function(element)
{
element.focus();
if(
document.selection)
{
var
selection = document.selection;
var
range = selection.createRange();

if((
selection.type == "Text" || selection.type == "None") && range != null)
{
return
range.text;
}
}
else if(
element.selectionEnd)
{
var
select_start = element.selectionStart;
var
select_end = element.selectionEnd;
if(
select_end <= 0)
{
select_end = element.textLength;
}
var
start = element.value.substring(0, select_start);
var
middle = element.value.substring(select_start, select_end);
return
middle;
}
},

performInsert: function(open_tag, close_tag, is_single, ignore_selection)
{
var
is_closed = true;

if(!
ignore_selection)
{
var
ignore_selection = false;
}

if(!
close_tag)
{
var
close_tag = "";
}
var
textarea = $(this.textarea);
textarea.focus();

if(
document.selection)
{
var
selection = document.selection;
var
range = selection.createRange();

if(
ignore_selection != false)
{
selection.collapse;
}

if((
selection.type == "Text" || selection.type == "None") && range != null && ignore_selection != true)
{
if(
close_tag != "" && range.text.length > 0)
{
var
keep_selected = true;
range.text = open_tag+range.text+close_tag;
}
else
{
var
keep_selected = false;

if(
is_single)
{
is_closed = false;
}
range.text = open_tag;
}
range.select();
}
else
{
textarea.value += open_tag;
}
}
else if(
typeof(textarea.selectionEnd) != 'undefined')
{
var
select_start = textarea.selectionStart;
var
select_end = textarea.selectionEnd;
var
scroll_top = textarea.scrollTop;

var
start = textarea.value.substring(0, select_start);
var
middle = textarea.value.substring(select_start, select_end);
var
end = textarea.value.substring(select_end, textarea.textLength);

if(
select_end - select_start > 0 && ignore_selection != true && close_tag != "")
{
var
keep_selected = true;
middle = open_tag+middle+close_tag;
}
else
{
var
keep_selected = false;
if(
is_single)
{
is_closed = false;
}
middle = open_tag;
}

textarea.value = start+middle+end;

if(
keep_selected == true && ignore_selection != true)
{
textarea.selectionStart = select_start;
textarea.selectionEnd = select_start + middle.length;
}
else if(
ignore_selection != true)
{
textarea.selectionStart = select_start + middle.length;
textarea.selectionEnd = textarea.selectionStart;
}
textarea.scrollTop = scroll_top;
}
else
{
textarea.value += open_tag;

if(
is_single)
{
is_closed = false;
}
}
this.updateOldArea();
textarea.focus();
this.trackingCaret = true;
this.storeCaret();
this.trackingCaret = false;
return
is_closed;
},

closeTags: function()
{
if(
this.openTags[0])
{
while(
this.openTags[0])
{
tag = this.openTags.pop();
exploded_tag = tag.split("_");
this.performInsert("[/"+exploded_tag[0]+"]", "", false);

if($(
'editor_item_'+exploded_tag[0]))
{
tag = $('editor_item_'+exploded_tag[0]);
}
else
{
tag = $('editor_item_'+tag);
}
if(
tag)
{
if(
tag.itemType == "dropdown" || tag.dropdown || tag.menu)
{
this.setDropDownMenuActiveItem(tag, 0);
}
else
{
this.removeElementState(tag, 'clicked');
}
}
}
}
$(
this.textarea).focus();
$(
'editor_item_close_tags').style.visibility = 'hidden';
this.openTags = new Array();
},

bindSmilieInserter: function(id)
{
if(!$(
id))
{
return
false;
}

var
smilies = $(id).select('.smilie');

if(
smilies.length > 0)
{
smilies.each(function(smilie)
{
smilie.onclick = this.insertSmilie.bindAsEventListener(this);
smilie.style.cursor = "pointer";
}.
bind(this));
}
},

openGetMoreSmilies: function(editor)
{
MyBB.popupWindow('misc.php?action=smilies&popup=true&editor='+editor, 'sminsert', 240, 280);
},

insertSmilie: function(e)
{
element = Event.element(e);

if(!
element || !element.alt)
{
return
false;
}
this.performInsert(element.alt, "", true, false);
},

insertAttachment: function(aid)
{
this.performInsert("[attachment="+aid+"]", "", true, false);
}
};
Achtung
 nehmen Sie diese Beiträge nicht ernst! Das MyBB wissen beruht auf
(letzter Stand: MyBB 1.2.8)
Zitieren
#10
(09.01.2010, 19:45)wWs schrieb: Ist dafür eine php datei oder ein Templade zuständig?
Für die Umwandlung ist die Datei inc/class_parser.php zuständig. Lade diese Datei bitte neu hoch. Wenn das nicht funktioniert, poste bitte einen Link dazu.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  zitate box sleepoholic 4 2.243 22.12.2007, 21:31
Letzter Beitrag: sleepoholic