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
Buttons werden nicht (richtig) angezeigt
#1
Moin moin, habe folgendes Problem.

Habe nun nen YouTube Code in mein Forum eingebaut und auch wie schon in einem anderem Thema von mir wird auch hier der Button zu einfügen nicht richtig angezeigt, OBWOHL er in den Themen Ordner drin ist.

Hier mal die Fehler

   

Außerdem passt nun auch das Editorfenster nicht mehr, wie kann ich dieses also in der Breite vergrössern ?

Und wie bekomme ich die Buttons geändert ? Habe nun ja 3 mal nen "B" stehen mit immer ner anderen Funktion Sad

UND ich bin der Anleitung "MyCode erstellen" hier im Forum gefolgt Sad
Zitieren
#2
Darf ich dir als Alternative dieses Plugin vorschlagen? ... https://www.mybb.de/forum/thread-21185.html

Würde dir ´ne Menge Arbeit ersparen Wink
 
The User, Formerly Known As "En-Gedi"
 
Zitieren
#3
Danke dir, scheint aber down zu sein, ICH kann es nicht downloaden Sad
Zitieren
#4
Probier´s etwas später noch mal; der Server von mybboard.net ist momentan nicht zu erreichen.

Passiert eigentlich ganz schön oft in letzter Zeit Confused

[EDIT]

Ich häng´s mal hier mit an, falls du es nicht erwarten kannst ...


Angehängte Dateien
.zip   1376-1234266791-my-youtube-1.1.zip (Größe: 5,48 KB / Downloads: 3)
 
The User, Formerly Known As "En-Gedi"
 
Zitieren
#5
Super, alles klar, danke dir, klappt alles, nur der HIDE Button, welcher auf dem Foto ganz rechts ist, dass DICKE B wird immernoch nicht richtig angezeigt Sad

Da suche ich immer noch den Fehler Sad
Zitieren
#6
Dann such´ mal weiter Wink

Spaß beiseite ... damit habe ich mich noch nie beschäftigt, da mir die vorhandenen Codes ausreichen; kann dir da leider nicht weiterhelfen.

[EDIT]

Um was zu verstecken, gibt es auch ein Plugin: https://www.mybb.de/forum/thread-20205.html

Vielleicht kannst du das verwenden.
 
The User, Formerly Known As "En-Gedi"
 
Zitieren
#7
EIn Hide Plugin zum verstecken habe ich bereits, nur wird der Button nicht angezeigt Sad
Zitieren
#8
Kannst du mal deine editor.js anhängen?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#9
Bitteschön

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 fonts to be shown in the font drop down.
this.fonts = new Object();
this.fonts["Arial"] = "Arial";
this.fonts["Courier"] = "Courier";
this.fonts["Impact"] = "Impact";
this.fonts["Tahoma"] = "Tahoma";
this.fonts["Times New Roman"] = "Times New Roman";
this.fonts["Trebuchet MS"] = "Trebuchet MS";
this.fonts["Verdana"] = "Verdana";

// 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 = "400px";
}
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: '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},
{
type: 'button', name: 'hide', sprite: 'hide', insert: 'hide', title: this.options.lang.title_hide}
]
});
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);
}
};
Zitieren
#10
Hast du in > Doku > "...MyCode erstellen" den Abschnitt "Button per CSS formatieren" beachtet?

Liegt der Button/die Grafik im Verzeichnis ".../jscripts/editor_themes/*Theme*/images"?

Hast du den Browser-Cache gelöscht, damit die Datei "editor.js" neu eingelesen wird?
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Umlaute in Übersicht nicht richtig angezeigt zoellnitzer 1 1.999 09.11.2007, 17:23
Letzter Beitrag: StefanT