Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

добавление кнопки в Ckeditor

Опубликовано:

Стоит версия ipb 3.3.3

Необходимо добавить в меню редактора копку с вызовом метода. В более старых версиях было просто, но теперь сделано совершенно не понятно.

Имеющиеся в интернете мануалы не подходят к модифицированному ipb ckeditorу - не функционирует.

Может кто подскажет, какие нужно предпринять действия, чтобы появилась своя не bbcode кнопка в данной версии?

 

Спасибо.

Рекомендованные сообщения

Опубликовано:

Наверное то же, что обычно делается для добавления любой кнопки, найти нужный шаблон, вставить нужный код...) В случае с skeditor это, видимо, файл /public/js/3rd_party/ckeditor/themes/default/theme.js или скрипты в плагине "templates". Можно ничего не искать, просто подключить свой плагин. http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.plugins.html

Опубликовано:
  • Автор

уже опробовано, не всё так просто

Имеющиеся в интернете мануалы не подходят к модифицированному ipb ckeditorу - не функционирует.
Опубликовано:

Ну, не знаю. Что же сложного? Взять готовый плагин, модифицировать для своих нужд, подключить...

Вставить html-код еще проще - смотрим код страницы, 2 минуты поиска по файлам, 10 минут на эксперименты:

dD49ekTB.png

 

Вставлял в данном случае сюда: /public/js/3rd_party/ckeditor/ckeditor.js

{t.push('</div>');v=0;}if(C==='/'){t.push('<div class="cke_break"></div>'

Перед крайним "</div>".

Опубликовано:
  • Автор

да я транслит хотел прикрутить...

 

 

 

		translit: function ()
{
var obj_ta = $('cke_' + this.editorId).down('textarea');

//----------------------------------------
// It's IE!
//----------------------------------------
if ( Prototype.Browser.IE )
{
       if (obj_ta.isTextEdit)
	{
           obj_ta.focus();
		var sel = document.selection;
		var rng = sel.createRange();
		rng.colapse;
           if((sel.type == "Text" || sel.type == "None") && rng != null)
		{
			rng.text = this.dotranslate(rng.text);
		}
	}
       else
       {
           obj_ta.value = this.dotranslate(obj_ta.value);
       }
}
//----------------------------------------
// It's MOZZY!
//----------------------------------------

else if ( obj_ta.selectionEnd )
{
       var ss = obj_ta.selectionStart;
	var st = obj_ta.scrollTop;
	var es = obj_ta.selectionEnd;

	if (es <= 2)
	{
		es = obj_ta.textLength;
}

	var start  = (obj_ta.value).substring(0, ss);
	var middle = (obj_ta.value).substring(ss, es);
	var end    = (obj_ta.value).substring(es, obj_ta.textLength);

	//-----------------------------------
	// text range?
	//-----------------------------------

	if (obj_ta.selectionEnd - obj_ta.selectionStart > 0)
	{
		middle = this.dotranslate(middle);
	}

	obj_ta.value = start + middle + end;

	var cpos = ss + (middle.length);

	obj_ta.selectionStart = cpos;
	obj_ta.selectionEnd   = cpos;
	obj_ta.scrollTop      = st;


}
//----------------------------------------
// It's CRAPPY!
//----------------------------------------
else
{
	obj_ta.value = this.dotranslate(obj_ta.value);
}

obj_ta.focus();

return;
},

dotranslate: function (text)
{
   var txtnew = "";
   var symb = 0;
   var subsymb = "";
   var trans = 1;
   for (kk=0;kk<text.length;kk++)
   {
       subsymb = text.substr(kk,1);
       if ((subsymb=="[") || (subsymb=="<"))
       {
           trans = 0;
       }
       if ((subsymb=="]") || (subsymb==">"))
       {
           trans = 1;
       }
       if (trans)
       {
           symb = this.transsymbtocyr(txtnew.substr(txtnew.length-1,1), subsymb);
       }
       else
       {
           symb = txtnew.substr(txtnew.length-1,1) + subsymb;
       }
       txtnew = txtnew.substr(0,txtnew.length-1) + symb;
   }
   return txtnew;
},

transsymbtocyr: function (pretxt,txt)
{
var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var doubletxt = pretxt+txt;
var code = txt.charCodeAt(0);
if (!(((code>=65) && (code<=123))||(code==35)||(code==39))) return doubletxt;
var ii;
for (ii=0; ii<lat_lr2.length; ii++)
{
	if (lat_lr2[ii]==doubletxt) return rus_lr2[ii];
}
for (ii=0; ii<lat_lr1.length; ii++)
{
	if (lat_lr1[ii]==txt) return pretxt+rus_lr1[ii];
}
return doubletxt;
}

 

 

  • 2 месяца спустя...
Опубликовано:

А можно вообще где то найти пошаговый инструктаж по установке транслита на 3.3.х?

В доках СКедитора рылся и потерялся...

 

Самих javascriptов с транслитом я нашёл.

но вот как это всё интегрировать в CKEditor - без понятия.

 

На сайте IPS эту тему кто то подымал - но остался без ответа.

Опубликовано:

Я тоже мучаюсь, не понимаю как приделать транслит. Помогите, кто знает. Заранее благодарю.

  • 2 недели спустя...
Опубликовано:

Никто не знает как приделать транслит??

 

Я и сам не понимаю зачем это нужно в 2012 году?

ни у кого уже старых виндовсов не стоит.

купить наклейки с русскими буквами на клавиатуру стоит от силы 10$

Но публика требует транслит встроенный в редактор....

  • 2 года спустя...
Опубликовано:

А как добавить примеру эти кнопки?

post-57235-0-95035800-1414011768_thumb.png

Опубликовано:

ips_config.js

 

добавил суда

config.toolbar_ipsfull =
[
	['Ipssource','НАПРИМЕР СУДА-Specialchar', 'RemoveFormat', 'Ipsbbcode'], [ '-', 'Font', 'FontSize'], [ '-', 'TextColor', 'Ipsemoticon', 'Ipsmedia' ], ['-','Find', 'Replace'], '-', ['Undo', 'Redo'], '-', ['Copy', 'Paste', 'PasteText', 'PasteFromWord' ], ['-', 'Ipsoptions'],
	'/',
	['Bold', 'Italic', 'Underline', 'Strike' ], ['Subscript', 'Superscript'], ['BulletedList', 'NumberedList'],
	['Link', 'Unlink', 'Image', 'Ipscode', 'Ipsquote' ], config.IPS_BBCODE_BUTTONS, ['Outdent', 'Indent', 'JustifyLeft','JustifyCenter','JustifyRight']

];

Опубликовано:

А когда добаляеш плагин например: 'Blockquote', 'Templates' все работает.

config.toolbar_ipsfull =
[
	['Ipssource', 'RemoveFormat', 'Blockquote', 'Templates'], [ '-', 'Font', 'FontSize'], [ '-', 'TextColor', 'Ipsemoticon', 'Ipsmedia' ], ['-','Find', 'Replace'], '-', ['Undo', 'Redo'], '-', ['Copy', 'Paste', 'PasteText', 'PasteFromWord' ], ['-', 'Ipsoptions'],
	'/',
	['Bold', 'Italic', 'Underline', 'Strike' ], ['Subscript', 'Superscript'], ['BulletedList', 'NumberedList'],
	['Link', 'Unlink', 'Image', 'Ipscode', 'Ipsquote' ], config.IPS_BBCODE_BUTTONS, ['Outdent', 'Indent', 'JustifyLeft','JustifyCenter','JustifyRight']

];

Результат:

post-53045-0-91433500-1414108555_thumb.png

 

В чем секрет? :(

Опубликовано:

В том, что плагин взаимодействует с API редактора. а ваши кнопки к нему отношения не имеют.

Опубликовано:

А как добавить примеру эти кнопки?

Из этих кнопок цвет и так имеется в редакторе. Спецсимволы добавляются кодом (регистр букв однако имеет значение): SpecialChar

 

e15a7fb3afce7b5a8057244e85d099d5.jpeg

Опубликовано:

Я на гоогле хроме проверял. Поетому не увидел. Почему хром не показываеть?

 

Mozilla показываеть

 

В том, что плагин взаимодействует с API редактора. а ваши кнопки к нему отношения не имеют.

Если можно подробно пожалюста

Опубликовано:

Если в одном браузере показывает а в другом нет - с большой доли вероятности это кеш. Обновить кеш текущий страницы можно нажатием ctrl+ F5 (или просто F5).

Опубликовано:

Если в одном браузере показывает а в другом нет - с большой доли вероятности это кеш. Обновить кеш текущий страницы можно нажатием ctrl+ f5 (или просто f5).

 

спасибо за ответ. Решено.

 

 

А как называется это кнопка?

кодовое называние.

 

post-53045-0-96173800-1414246274_thumb.png

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.