Перейти к контенту
  • 0

В чём разница между скриптом быстрого ответа и полного?


mimas

Вопрос

Почему в ips_text_editor_lite.js функция кнопки "код" записывается в таком виде:

 

this.ipb_code=function(){var _text=this.get_selection();this.wrap_tags('code',false,_text);};

 

а в ips_text_editor.js в таком:

 

 this.ipb_code=function(){this.wrap_tags_lite('[code]','[/co_de]',0)};

 

Хотя в случае когда код из развётнутого ответа был вставлен в быстрый всё без проблем работало.

 

Какие проблемы можно ожидать в случе если в ips_text_editor_lite.js код записывать как в ips_text_editor.js(тоесть в обоих случаях будет код одинаковым)???

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0

Извиняюсь, ошибся! Первый пост исправил.

 

Меня интересует почему в быстром ответе и в развёрнутом ответе код записан по разному. Оба вызывают одно и тоже действие - добавляют в поле эдитора тот или иной тег (в данном случае тег "код")

 

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0

this.wrap_tags = function(tag_name,has_option,selected_text)
{
var tag_close=tag_name;
if(typeof selected_text=='undefined'){
	selected_text=this.get_selection();
	selected_text=(selected_text===false)?'':new String(selected_text);
}
if(has_option===true){
	var option=prompt(ips_language_array['js_rte_optionals']?ips_language_array['js_rte_optionals']:"Enter the optional arguments for this tag",'');
	if(option){
		var opentag=this.open_brace+tag_name+'="'+option+'"'+this.close_brace;
	} else {
		return false;
	}
} else if (has_option!==false) {
	var opentag=this.open_brace+tag_name+'="'+has_option+'"'+this.close_brace;
} else {
	var opentag=this.open_brace+tag_name+this.close_brace;
}
var closetag=this.open_brace+'/'+tag_close+this.close_brace;
var text=opentag+selected_text+closetag;
this.insert_text(text);
return false;
};

 

this.wrap_tags_lite = function(start_text,close_text)
{
selected_text=this.get_selection();
selected_text=(selected_text===false)?'':new String(selected_text);
this.insert_text(start_text+selected_text+close_text);
return false;
}

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Спасибо!

 

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

 this.ipb_тэг=function(){this.wrap_tags_lite('[тэг]','[/тэг]',0)};

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Перестанут работать сложные теги с параметрами. Например, по клику на тег [ url ] не будет во всплывающем диалоге спрашиваться адрес ссылки, а сразу зафигачится [ url ]...[ /url ] вокруг выделенного текста.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Простите, что встреваю в тему с левым вопросом.....Но иного способа пока не вижу

Кто подскажет, почему не удаётся создать тему? Разве клиент не может это сделать на форуме? И как попасть в группу "клиенты"....?

 

Заранее благодарен)

Изменено пользователем arhost
Ссылка на комментарий
Поделиться на других сайтах

  • 0

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

 

 

arhost

 

Тему можно создавать помоему без проблем. А клиентом станешь, когда наберёшь постов.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Вы тут и так много написали полезного и не очень, так что от себя добавлю только одно: забыли про RTE.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Rich Text редактор (WYSIWYG). Включается кнопкой справа вверху в форме полного ответа. В админцентре можно выставить этот редактор включенным по-умолчанию.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Понял. Спасибо за инфу -разница только в том, что в WYSIWYG не будет показывать сразу вид текста, а будет виден тег.

 

Особо мне это не мешает. но так для общего развития.

 

Есть тег spoiler у которого есть параметр option. В связи с тем, что многие пользователи или ленятся или не совсем понимают как записать такой спойлер, подумал, что можно сделать общий option "Скрытый текст" а желающие (и понимающие) его могут изменить на тот, который им нравится.

 

если код выполняющий вставку тега spoiler запишу в таком виде:

 

this.ipb_spoiler=function(){this.wrap_tags_lite('[spoiler=Скрытый текст]','[/spoiler]',0)};

 

то при нажатии кнопки мне сразу выдаст в эдитор тег с заданным по умолчанию option:

 

 [spoiler=Скрытый текст] текст который надо скрыть [/spoiler]

 

Так вопрос - как такуюже штуку сделать в случае кода для развёрнутого ответа:

 

this.ipb_spoiler=function(){var _text=this.get_selection();this.wrap_tags('spoiler',false,_text);};

???

 

Если такое здесь конечно можно сделать...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Выставите true, а не false для has_option. При нажатии будет появляться окошко, требующее ввести описание для спойлера (option).

this.ipb_spoiler=function(){var _text=this.get_selection();this.wrap_tags('spoiler',true,_text);};

Изменено пользователем Ritsuka
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Хммм... Ничего кроме как скопировать и модифицировать функцию wrap_tags в голову не приходит....

 

Откройте файл /jscripts/ips_text_editor.js, и вставьте до "this.wrap_tags=function(tag_name,has_option,selected_text)" (там куча функций записана одной первой строкой, где-то в середине нее) следующее:

this.wrap_tags_mimas_custom_spoiler = function(tag_name,has_option,selected_text)
{
var tag_close=tag_name;
if(typeof selected_text=='undefined'){
	selected_text=this.get_selection();
	selected_text=(selected_text===false)?'':new String(selected_text);
}
if(has_option===true){
	var option=prompt("Задайте заголовок для спойлера",'Скрытый текст');
	if(option){
		var opentag=this.open_brace+tag_name+'="'+option+'"'+this.close_brace;
	} else {
		return false;
	}
} else if (has_option!==false) {
	var opentag=this.open_brace+tag_name+'="'+has_option+'"'+this.close_brace;
} else {
	var opentag=this.open_brace+tag_name+this.close_brace;
}
var closetag=this.open_brace+'/'+tag_close+this.close_brace;
var text=opentag+selected_text+closetag;
this.insert_text(text);
return false;
};

 

Ну и, собственно, новый код кнопки:

this.ipb_spoiler=function(){var _text=this.get_selection();this.wrap_tags_mimas_custom_spoiler('spoiler',true,_text);};

 

Не напутайте с кодировками при редактировании ips_text_editor.js.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не совсем понял куда что записывать

 

Код кнопки пишу в середину 1-й строки в ips_text_editor.js

 

А вот тот большой код (так понимаю, что он не сжатый!?) куда его всунуть? Тоде в ips_text_editor.js??? Подробнее для чайника, пожалуйста...

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.