Używam CKEditor z BBCode plugin i potrzebuję dodać niestandardowe znaczniki, takie jak znacznik spoiler
, i inne, które zapewniłyby możliwość połączenia z profilem użytkownika witryny.
spoiler
znaczniki będą działały jak znaczniki : kliknięcie przycisku i pobranie kodu. Skopiowałem blockquote/plugin.js
i zmieniłem wszystkie ciągi znaków na spoiler
i quote
na spoil
. Następnie dodałem extraPlugins: 'spoiler'
do konfiguracji i przycisk na pasku narzędzi. Wygląda to poprawnie, ale generuje nieprawidłowy kod.
Na przykład, jeśli kliknę przycisk blockquote po zaznaczeniu tekstu, następujący kod zostanie wygenerowany:Niestandardowe znaczniki w wtyczce BBCode CKEditor
[quote]some text[/quote]
ale gdy klikam mój nowy przycisk, pojawia się następujący kod:
<p>
<spoiler>
<p>
!!!</p>
</spoiler></p>
Więc to nie działa.
Chciałbym również utworzyć przycisk do połączenia z użytkownikiem. Powinno to działać w następujący sposób: po kliknięciu przycisku pojawi się okno dialogowe z polem wyszukiwania (AJAX nie stanowi problemu), a wynikiem będzie lista użytkowników; gdy użytkownik zostanie wybrany, a przycisk OK
zostanie kliknięty, byłoby wygenerować kod tak:
[user=1]Admin[/user]
1 - identyfikator użytkownika, admin - jego imię.
Którą wersję CKEditor używasz? –
Najprawdopodobniej chcesz edytować plik ['plugins/bbcode/plugin.js'] (https://github.com/ckeditor/ckeditor-dev/blob/master/plugins/bbcode/plugin.js). Istnieją dwie zmienne: bbcodeMap i convertMap. Ta wtyczka zmienia kod HTML na BBCode, więc będziesz chciał dodać nową definicję tagu 'spoiler'. – timgws