• Всем привет!

    Появилась задача сделать на сайте всплывающие подсказки (тултипы) при наведении на определенные участки текста.
    Нашел плагин, который во многом устраивает и решил его допилить.
    Почти всё сделал, но столкнулся со следующей проблемой.
    Текст тултипа добавляется по новой кнопке в тулбаре редактора.
    Веделил текст, нажал кнопку, открылось окошко для текста тултипа, вставил, сохранил и в редакторе нужный текст с шорткодом.

    Фрагмент текста с шорткодом выглядит так:
    текст текст текст [tooltip text='Тултип с "кавычками"']текст[/tooltip] текст текст
    Проблема в том что что внутри тултипа могут встречаться кавычки.
    Проблему с двойными кавычками я как бы решил заменив кавычки в шорткоде на одинарные, но потом понял что в тексте могут оказаться и одинарные кавычки и тогда шорткод не считывается.

    Первое что пришло в голову (еще во время борьбы с двойными кавычками) это замена кавычек на ", но при переключении в визуальный редактор сам Tinymce заменяет " на ".
    Это я понял еще до эксперимента с JS.

    Как лучше решить проблему?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • хм, можно, наверное, обрабатывать текст js-кодом при вставке.

    • Ответ изменён 7 лет назад пользователем Flector. Причина: видимо, не годится
    Автор noindex

    (@noindex)

    @flector, и что эта чистка сделает с шорткодом типа

    
    [tooltip text='Тултип 'с' "кавычками"']текст[/tooltip]
    

    ?
    Я пробовал так, не помогло.
    Я так понимаю сама структура шорткода ломается до получения его контента.

    Автор noindex

    (@noindex)

    @flector,

    хм, можно, наверное, обрабатывать текст js-кодом при вставке.

    Обработать каким образом?
    Если я поменяю " на &quote; редактор сам обратно поменяет &quote; на "

    • Ответ изменён 7 лет назад пользователем noindex.

    если вы сами этот шорткод будете использовать — то экранируйте через \

    Автор noindex

    (@noindex)

    @flector, не совсем понял разницу между использованием самому и нет (подсказки буду добавлять не я), но формат

    
    [tooltip text="Тултип с \"кавычками\""] текст[/tooltip]
    

    тоже не работает

    не, что-то гугл по этому поводу молчит.

    Автор noindex

    (@noindex)

    @flector, я мог бы сформулировать вопрос по-другому…
    Как добавить " в исключения Tinymce, но что-то мне подсказывает что этот путь может аукнуться, вероятно не зря он конвертит это в кавычки.

    Автор noindex

    (@noindex)

    В общем придумал пока только такой костыльный метод.
    В шорткоде использую двойные кавычки.
    Если в тексте используются двойные кавычки, меняю их в JS на #, одинарные не мешают.
    Перед выводом в функции шортката меняю # на "
    Всё работает при условии что в тексте не используется #.
    В принципе не должен, но на всякий случай # в JS меняю на %sharp%, который по аналогии перед выводом преобразую в #.

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Как подружить шорткоды, кавычки и Tinymce?» закрыта для новых ответов.