Помогите сделать в Tinymce свою кнопку

12
S
На сайте с 16.05.2009
Offline
8
2942

Приветствую всех :smoke:

Необходима помощь с редактором Tinymce.

http://tinymce.moxiecode.com/examples/example_20.php - Здесь прочитал, как сделать свою кнопку, и в принципе все работает.

setup : function(ed) {

// Add a custom button
ed.addButton('mybutton', {
title : 'My button',
image : 'img/example.gif',
onclick : function() {
// Add you own code to execute something on click
ed.focus();
ed.selection.setContent('<strong>Hello world!</strong>');
}
});
}

Но она просто вставляет необходимый текст (или код) или заменяет им выделенный текст и все.

А необходимо сделать, чтобы код вставлялся по обе стороны от выделенного текста.

Например: <div class='yxty'> слева и </div> справа.

S
На сайте с 16.05.2009
Offline
8
#2

я знал, что ответ будет подобный ((

Sqaier добавил 27.06.2010 в 16:06

подскажите поподробнее, лучше сразу код примера))

П
На сайте с 08.06.2007
Offline
63
#3
Sqaier:
я знал, что ответ будет подобный ((

А что непонятно? Вы сами сказали что ваш код работает.

Вам осталось разобраться что такое getContent и подправить то что есть.

Не уверен, но скорее всего вам потом захочется что бы этой кнопочкой можно было возвращать всё на место. Выделил тот же текст, клацнул по кнопке, всё вернулось как было. Но это уже из другой оперы. Решайте проблемы по мере возникновения. Документация по Tinymce довольно подробная.

А вообще, если вы не знаете JavaScript, то вы даже не представляете с какими мелкими, но многочисленными, впрочем решаемыми проблемами вы столкнётесь в Tinymce и работе с ним.

Я например, не возьмусь для вас делать кнопку, хотя мог бы (или скопировать готовую свою). Потому что это по любому повлечёт за собой кучу других вопросов. Отвечать на которые и решать возникшие у вас вопросы у меня просто нет времени.

S
На сайте с 16.05.2009
Offline
8
#4

думаю, что это не такое огромное количество кода, как вы расписываете.

Рассчитывал вообще на какую-либо переменную, которая олицетворяет выделенный текст.

Наподобие как в bueditor делается - %TEXT% там где должен быть выделенный текст, а также js: eDefSelProcessLines в начале, чтобы той же кнопкой вернуть все в начальное состояние...

Как понимаю, это делается не совсем так, но тоже максимум пару строчек.

Особенно мне понравилось ваш ответ, что вы не хотите... скопировать готовую свою. - конечно, ответ в 1000 знаков у вас занял намного меньше времени.

Думаете, если бы мне не нужен был относительно быстро ответ, и у меня было бы больше вопросов, чем это одна кнопка, я бы не стал сам разбираться с документацией? А документацию я и сам находил.

В общем, считаю, что мой вопрос не требует огромных усилий, т. е. большого кода от знающих людей. А скорее всего, большинство сталкивалось с данной необходимостью и у них есть готовые коды. Это считаю и должно быть в ответе.

И кстати, т. к. вы мне так ответили, это еще раз доказывает, что это просто сделать, потому что так люди отвечают, когда что-либо действительно просто и даже объяснять или привести пример этого не хочется.

F
На сайте с 24.04.2009
Offline
45
#5
Sqaier:
Бла бла бла

Из документации.

tinyMCE.execCommand('mceReplaceContent',false,'<b>{$selection}</b>');

http://wiki.moxiecode.com/index.php/TinyMCE:Commands

Сразу видно как доку читали.

[Удален]
#6

Кнопку создавать уметь - это хорошо. Но не проще ли в вашем случае сделать нужный стиль, а потом выбирать его из раскрывающегося списка стилей?

S
На сайте с 16.05.2009
Offline
8
#7

просто дивы - это я так для примера написал. А хочу сделать кнопку, которая создает сполер.

F
На сайте с 24.04.2009
Offline
45
#8
Sqaier:
просто дивы - это я так для примера написал. А хочу сделать кнопку, которая создает сполер.

Можете хотеть и дальше. Потому как писать код бесплатно вам никто не будет, а вы как я вижу думать сами особо не хотите.

S
На сайте с 16.05.2009
Offline
8
#9

прощай форум....

Sqaier добавил 27.06.2010 в 21:47

я вернулся 😂

Интересно, сколько же стоила эта строчка: " ed.execCommand('mceReplaceContent',false,'<b>{\$selection}</b>');"?

Теперь буду думать, как сделать той же кнопкой чтобы назад возвращалось и курсор не сбивался, т. е. так выделенным код и оставался.

Здесь даже спрашивать не буду, хотя за подсказку о mceReplaceContent - спасибо.

Вообще, проблема была в том, что выводил код и php - скрипта и обратный слеш не ставил

П
На сайте с 08.06.2007
Offline
63
#10
Sqaier:
прощай форум....

Sqaier добавил 27.06.2010 в 21:47
я вернулся 😂
Интересно, сколько же стоила эта строчка: " ed.execCommand('mceReplaceContent',false,'<b>{\$selection}</b>');"?
Теперь буду думать, как сделать той же кнопкой чтобы назад возвращалось и курсор не сбивался, т. е. так выделенным код и оставался.
Здесь даже спрашивать не буду, хотя за подсказку о mceReplaceContent - спасибо.
Вообще, проблема была в том, что выводил код и php - скрипта и обратный слеш не ставил

Пока будете осваивать написание кнопок, можно, как посоветовал jasmin-dance использовать style_formats http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/style_formats

tinyMCE.init({

...
style_formats : [ {title : 'Bold text', inline : 'b'},
{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
{title : 'Example 1', inline : 'span', classes : 'example1'},
{title : 'Example 2', inline : 'span', classes : 'example2'},
{title : 'Table styles'},
{title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
]
});

Как использовать, я сначало написал, потом потёр, хоть немного подумайте.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий