Добавление новых кнопок и вставка ника в Sceditor в SMF 2.1

Автор TXT, 05 марта 2019, 00:48:59

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

TXT

05 марта 2019, 00:48:59 Последнее редактирование: 05 марта 2019, 00:59:26 от TXT
Благодаря инструкции Dana Domirani доработал добавление новых кнопок в Sceditor и (на этой же основе и, увы, неполностью) вставку ника по клику.

В Display.template.php находим
Код
if (\'XMLHttpRequest\' in window)

{
и сразу после него вставляем (спойлер для примера):
Код
//Дополнительные кнопки
$(function () {
 
  $(\'<a class="sceditor-button sceditor-button-spoiler" unselectable="on" title="Спойлер"><div>Спойлер</div></a>\').appendTo(\'.sceditor-toolbar .sceditor-group:first\').click(function () {
    $(\'.editor\').sceditor(\'instance\').insert(\'[spoiler]\', \'[/spoiler]\');
  });
 
    $(\'<a class="sceditor-button sceditor-button-ДРУГОЙ_КЛАСС" unselectable="on" title="НАЗВАНИЕ"><div>НАЗВАНИЕ</div></a>\').appendTo(\'.sceditor-toolbar .sceditor-group:first\').click(function () {
    $(\'.editor\').sceditor(\'instance\').insert(\'BBCODE\');
  });
 
 
});


В ccs соответственно прописываем:

Код
a.sceditor-button.sceditor-button-spoiler div {
background: transparent url(ПУТЬ/spoiler.gif) no-repeat center;
opacity:1 !important;
filter:alpha(opacity=100) !important;
}

a.sceditor-button.sceditor-button-ДРУГОЙ_КЛАСС div {
background: transparent url(ПУТЬ/КАРТИНКА) no-repeat center;
opacity:1 !important;
filter:alpha(opacity=100) !important;
}


Небольшая шероховатость осталась - знаю только про .sceditor-group:first и .sceditor-group:last. Кто знает, как вставить кнопку в средние группы - прошу высказаться в комментариях :)




Теперь про ник. Как все знают, в SMF 2.1 не работает мод Nickname to Reply. Даже не говорю про старое доброе
Код
<a href="javascript:void(0)" onClick="replaceText(\'[b]', $message['member']['name'], '[/b], \', document.postmodify.message);"   title="' . $txt['title_paste_member_name'] . '">', $message['member']['name'] , '</a>

Но на основе вышеприведенного решения придумал, как вставлять ник (и имя) и в редактор Sceditor.


В том же Display.template.php вместо
Код
echo '
', $message['member']['link'];

вставляем
Код
				echo '

<script>
$(function () {

  $(\'<a><div>', $message['member']['name'], '</div></a>\').appendTo(\'.membername\').click(function () {
    $(\'.editor\').sceditor(\'instance\').insert(\'[b]', $message['member']['name'], '[/b], \');
  });
 
    $(\'<a><div>', $message['member']['title'], '</div></a>\').appendTo(\'.membertitle\').click(function () {
    $(\'.editor\').sceditor(\'instance\').insert(\'[b]', $message['member']['title'], '[/b], \');
  });
  });
</script> ';
echo '
<span class="membername"></span>';

И вместо
Код
', $message['member']['title'], '
вставляем
Код
<span class="membertitle"></span>

Но применять пока не советую - на месте <div class="membername"></div> вставляются ники всех форумчан, сообщения которых присутствуют на странице :D
Зато в сообщение вставляются ники на ура :)

Здесь нужна помощь сообщества - как сделать так, чтобы в каждом сообщении находился только один ник :)

TXT

05 марта 2019, 01:17:41 #1 Последнее редактирование: 05 марта 2019, 02:10:06 от TXT
Все же пришел к решению:

Код
<a href="javascript:void(0)" onClick="$(function(){$(\'.editor\').sceditor(\'instance\').insert(\'', $message['member']['name'], ', \');});">', $message['member']['name'] , '</a>
и
Код
<a href="javascript:void(0)" onClick="$(function(){$(\'.editor\').sceditor(\'instance\').insert(\'', $message['member']['title'], ', \');});">', $message['member']['title'] , '</a>

Bugo

Цитата: TXT от 05 марта 2019, 00:48:59Теперь про ник. Как все знают, в SMF 2.1 не работает мод Nickname to Reply.
Спасибо за напоминание. Я уж думал, мод никому не нужен :) Обновил и для SMF 2.1 в том числе.

Serifa

А зачем вставлять ник по клику, если есть аутентичное решение силами самого форума? Я про @Bugo
версия форума 2.1
«- Помощник капитана Бакстер, - заявил Лумис, - безбожно врет. Все отнюдь не под контролем, вернее, не под его контролем. Корабль захвачен представителями небелковой формы разумной жизни, которые маскируются под обслуживающих роботов, а некоторые даже не делают и этого...»
«То, что у тебя есть, лечится антибиотиками» (nowhere man, 1995)
В телеге

S.T.A.L.K.E.R.

Ну там как бы по клику вставляется,тут же набирать надо. Хотя уже объединил обе эти функции у себя