Плагин Spoiler (от kks) [Для LS 1.0.3]

Всем привет,


Для одного моего проекта позарез был нужен спойлер. После нескольких минут блужданий в каталоге, я обнаружил, что есть эти:
  • Плагин «HideSpoiler»
  • Плагин «Супер спойлер (Powered spoiler)»
  • Плагин «Spoiler»

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

Второй, платный. Этим всё сказано, я как русский человек, люблю халяву :)

Третий, по функционалу подходил, НО автор бросил своё творение на 0.5.1

Переделанный плагин
Гуглил, не помог. Заискался по разным форумам, ничего не нашел. Короче, вот:

Демо | Скачать (4.43 КБ)

Как я переделал markitup

1. Меняем в /config/jevix.php:
// вызов метода с параметрами
			array(
				array('ls','cut','a', 'img', 'i', 'b', 'u', 's', 'video', 'em',  'strong', 'nobr', 'li', 'ol', 'ul', 'sup', 'abbr', 'sub', 'acronym', 'h4', 'h5', 'h6', 'br', 'hr', 'pre', 'code', 'object', 'param', 'embed', 'blockquote', 'iframe','table','th','tr','td'),
			),			
на
// вызов метода с параметрами
			array(
				array('ls','cut','a', 'img', 'i', 'b', 'u', 's', 'video', 'em',  'strong', 'nobr', 'li', 'ol', 'ul', 'sup', 'abbr', 'sub', 'acronym', 'h4', 'h5', 'h6', 'br', 'hr', 'pre', 'code', 'object', 'param', 'embed', 'blockquote', 'iframe','table','th','tr','td','spoiler'),
			),			

И после
array(
				'table',
				array('border'=>'#int','cellpadding'=>'#int','cellspacing'=>'#int','align'=>array('right', 'left', 'center'),'height'=>'#int','width'=>'#int')
			),
добавить это
array(
				'spoiler',
				array('title'=>'#text')
			),

2. Заходим на /engine/lib/internal/template/js/settings.js добавляем после
{name: ls.lang.get('panel_cut'), className:'editor-cut', replaceWith: function(markitup) { if (markitup.selection) return '<cut name="'+markitup.selection+'">'; else return '<cut>' }},
этот код
{separator:'---------------' },
				{name: ls.lang.get('panel_spoiler'), className:'editor-spoiler', replaceWith:'<spoiler title="[!['+ls.lang.get('panel_spoiler')+']!]"></spoiler>' }

3. Рисуем. Да. Просто рисуем, то, что увидят пользователи.
Я не художник, но у меня получилось вот это:

Кидаем наш рисунок в /engine/lib/external/jquery/markitup/sets/default/images/
4. Добавляем в /engine/lib/external/jquery/markitup/sets/default/style.css
.markItUp .editor-spoiler a 		{ background-position: -592px -9px; }


Вроде ничего не забыл.

На авторство не претендую. Можете от своего имени разместить в каталоге (при условии бесплатного скачивания).

Собираю деньги на новый комп чайник:
Яндекс.Деньги: 410011733605863
WebMoney: R309170923327

В дальнейшем поддерживать плагин не планирую!

31 комментарий

avatar
Кто тестил?
Кстати, суть того платного плагина в том, что там можно сделать ограничение по рейтингу.
avatar
Я выбираю плагины по функции, а мне этого ограничения не нужно было.
avatar
При закрытии 1 Spoilera закрываются все
avatar
Есть такое, ранее хотел, что бы открывалось по одному. То есть, когда открываешь «Спойлер 1», потом «Спойлер 2» и в этот момент закрывается «Спойлер 1». Взаимозаменяющие
avatar
avatar
Как быть с спойлером на статических страничках? При редактировании парсер не преобразовывает спойлер таг в html.
avatar
Самому прописать
<div class="spoiler">
<div class="spoiler-title">Титл</div>
<div class="spoiler-body">Боди</div>
</div

Вроде было так, я не помню
avatar
та не, парсер заменяет из в … а обратная замена не происходит, т.к. для статей этого не надо делать, а для статических страничек надо. Ваш плагин ничем не отчличается от kks кроме как слайд эффектом при открытии/закрытии.
avatar
Как бы да. Я сказал, что оно отличается? Вроде бы нет :)
Прочитайте по лучше. Вникая каждое слово.
avatar
Теперь плагин есть и в каталоге.
комментарий был удален
avatar
С TinyMCE не будет работать?
avatar
Я не проверял :)
avatar
Шаблон «new» не работает. Кнопка есть, нажатие работает.



Появляется это: бла-бла
Нажимаю «Опубликовать», публикуется, но спойлера нет.
Просто надпись «бла-бла»
  • std
  • 0
avatar
Появляется это:
  • std
  • 0
avatar
Приношу извинения, всё робит. Я плагин не активировал.
  • std
  • 0
avatar
Автору глубокое почтение!
  • std
  • 0
avatar
Три часа долбался ))) Зато теперь гораздо больше занаю о ЦМС.… и о себе тоже)))
  • std
  • 0
avatar
:)
avatar
Скажите пожалуйста, как убрать «плавность» открытия Вашего спойлера?
avatar
И ещё один вопрос, если позволите.
Как написать что-то в окошке для ввода названия спойлера?
avatar
Здравствуйте! Подскажите, можно ли сделать так чтобы содержимое спойлера было доступно только зарегистрированным пользователям?
avatar
Ребятки, поделитесь пож-ста плагином, ссылка не работет
avatar
Она в каталоге есть. :)
avatar
Благодарю
avatar
не пашет?
3. Рисуем. Да. Просто рисуем, то, что увидят пользователи.
Я не художник, но у меня получилось вот это:

Кидаем наш рисунок в /engine/lib/external/jquery/markitup/sets/default/images/

так ваще не понятно???? я взял вашу картинку и кинул по адресу /engine/lib/external/jquery/markitup/sets/default/images/
ужас бля еблан сранный тоук время на тя сука убил
avatar
Поставил себе. Нифига не работает. Споилер есть, нажал, вписал текст, опубликобал. Но при клике на него он не открываетса вообше.
avatar
Перекопировал всё с сайта в тестовый шаблон. Работает. А на сайте нет. что за хрень?

<!DOCTYPE html>
<html>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
 $('.spoiler-title').click(function(){
  $(this).parent().children('div.spoiler-body').toggle('normal');
  return false;
 });
});
</script>

<style type="text/css">
 .spoiler-title { color: #6da3bd; border-bottom: 1px dashed; font-weight: normal; cursor: pointer; }
.spoiler-title:hover { color: #4d7285; }
.spoiler-body { display: none; padding: 10px; border: 1px solid #eee; background: #f9f9f9; margin-top: 10px; overflow: hidden; }
.spoiler-title:before { float: left; content: " "; width: 16px; height: 16px; margin-top: 2px; display: block; border: 0px solid red; background: url(../images/spoiler.icon.png) no-repeat left top; }
.spoiler-title.open:before { background: url(../images/spoiler.icon.png) no-repeat left bottom; }
</style>

<body>

<div><b class="spoiler-title">djncskjdncs</b><div class="spoiler-body">cnxc</div></div>
</body>
</html>
avatar
Привет! Покажите ошибки с консоли браузера.

avatar
Это типа Ф12 в хроме? Делал да понятия не имею как им пользоватса. НО. Причину нашел. Он конфликтовал с плагином «Бест Смилес». Кстати, если у вас стоит ЛСФорум, то и на нем споилер который там стоит по умолчанию, работать тоже не будет.

На данный момент. Со смайликами разбиратса не хочу(не очень то они и нужны, ели будет время может и найду в чём там причина).

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

Ну а пока подделал ваш скрипт для удобства так:

{name: ls.lang.get('panel_spoiler'), className: 'editor-spoiler', replaceWith:'<spoiler title="Spoiler">[!['+ls.lang.get('panel_spoiler_promt')+']!]</spoiler>' },


В /templates/language/russian.php добавить:

'panel_spoiler_promt' => 'Введите желаемый скрытый текст',


В /templates/skin/YOUR_SKIN/editor.tpl добавить

ls.lang.load({lang_load name=«panel_b,panel_i,panel_u,panel_s,panel_url,panel_url_promt,panel_spoiler_promt,panel_code,
avatar
Лучше вот так:

2. Заходим на /engine/lib/internal/template/js/settings.js добавляем после
array(
				'table',
				array('border'=>'#int','cellpadding'=>'#int','cellspacing'=>'#int','align'=>array('right', 'left', 'center'),'height'=>'#int','width'=>'#int')
			),

этот код:
{name: ls.lang.get('panel_spoiler'), className: 'editor-spoiler', replaceWith:'<spoiler title="Скрытый текст">[!['+ls.lang.get('panel_spoiler_promt')+']!]</spoiler>' },


В /templates/skin/YOUR_SKIN/editor.tpl заменить:
ls.lang.load({lang_load name="panel_b,panel_i,panel_u,panel_s,panel_url,panel_url_promt,panel_code,panel_video,panel_image,panel_cut,panel_quote,panel_list,panel_list_ul,panel_list_ol,panel_title,panel_clear_tags,panel_video_promt,panel_list_li,panel_image_promt,panel_user,panel_user_promt"});


На
ls.lang.load({lang_load name="panel_b,panel_i,panel_u,panel_s,panel_spoiler,panel_spoiler_promt,panel_url,panel_url_promt,panel_code,panel_video,panel_image,panel_cut,panel_quote,panel_list,panel_list_ul,panel_list_ol,panel_title,panel_clear_tags,panel_video_promt,panel_list_li,panel_image_promt,panel_user,panel_user_promt"});


В /templates/language/russian.php после:
'panel_image_promt' => 'Введите ссылку на изображение',


добавить:
'panel_spoiler' => 'Спойлер',
'panel_spoiler_promt' => 'Введите желаемый скрытый текст',

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.