Поддержка Плагины Использование шорткодов в собственной функции

  • Решено still

    (@abdulgalimov)


    Идея следующая: У меня есть плагин который подсвечивает отображаемый код. Необходима php функция, которая будет получать в параметре ссылку на файл с кодом, подсвечивать её и возвращать подсвеченный html-код.

    Как я это себе представляю: Я думал создать свой php файл, подключить к нему какие то библиотеки wordpress, прогнать нужный код через шорткоды do_shortcode(…) и вернуть получившийся текст.
    Можно ли так сделать?

    Спасибо.

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • Можно ли так сделать?

    Есть достойный плагин на этот случай http://wordpress.org/plugins/crayon-syntax-highlighter/

    Автор still

    (@abdulgalimov)

    Спасибо за ответ, у меня стоит именно этот плагин, я даже нашел интересную статью в блоге автора плагина: http://aramk.com/blog/2012/05/03/using-crayon-manually-in-php/

    Сделал как там сказано, поменял пути — но не сработало 🙁 кто может помочь с тем как правильно использовать этот пример? Я сам не пишу на php, поэтому такие сложные примеры мне даются с трудом 🙁

    поменял пути — но не сработало

    Какие пути? Вы же хотели подсветить файл, CRAYON позволяет это делать, даже с УРЛа.. В доках всё есть.

    Или о другом речь?

    Автор still

    (@abdulgalimov)

    Наверно мы не понимаем друг друга)
    У меня в блоге установлен CRAYON, и когда в записи я пишу

    <pre class="lang:xx">
    ...
    </pre>

    то все работает.
    Мне необходимо сделать так, что бы я мог из клиента(например JavaScript-а), обратится к какому то php скрипту, передать ему в _GET ссылку на файл с кодом, и этот скрипт мне в ответ должен вернуть HTML с подсвеченным кодом.

    Автор still

    (@abdulgalimov)

    Идея этого в том, что мне нужно динамически загружать и отображать файлы с кодом, так вот если загрузить файл с кодом и отобразить его с помощью JS — подсветка от CRAYON не работает. Может есть другие способы решения проблемы?

    По-моему, использовать плагин Crayon для решения поставленной задачи не совсем оптимальное решение, попробуйте использовать какой-нибудь js-highlighter, их тоже немало..

    Размышления выше основаны на соображении, что реальной загрузки файлов на сервер не осуществляется.

    Автор still

    (@abdulgalimov)

    А загрузка на сервер и так не происходит, файлы с кодом уже лежат на этом же сервере. Клиент передает php скрипту относительную ссылку на файл. Скрипт лежит в каталоге /wp-content/plugins/… а файлы с кодом в /content/classes/…

    Автор still

    (@abdulgalimov)

    да и к тому же очень не хочется что бы подсветка в разных местах была разная, у меня уже по всех записях используется подсветка от Crayon

    А загрузка на сервер и так не происходит, файлы с кодом уже лежат на этом же сервере.

    К слову, Crayon позволяет и локальные файлы парсить. )
    Ну да ладно, не в этом суть.
    А можете более наглядно показать, что хочется? Например, скрин или что-нибудь еще.. И как понимать — «передать в запросе ссылку на файл»? Реализовано через меню?
    Как выводится раскраска? На той-же странице, или всплывающее окошко? Или как-то иначе?

    Автор still

    (@abdulgalimov)

    Здесь http://flashpress.ru/blog/libs/tween/dev/?class=FPTState&detail=position#asdoc если кликнуть на кнопки
    — Анимация цвета
    — Анимация фильтра
    (http://screencast.com/t/SOwCH30o7Gor)
    загружаются и отображаются соответствующие файлы с кодом. Как сделать так, что бы этот(загружаемый по клику) код был подсвеченным Crayon?

    Судя по статусу топика (отсутствует метка «решенная»), попробую еще сделать подсказку 🙂

    Обновлю свое видение вашей фразы

    да и к тому же очень не хочется что бы подсветка в разных местах была разная, у меня уже по всех записях используется подсветка от Crayon

    Берете любой js-highlighter, например, этот http://highlightjs.org/static/test.html
    в нём выбираете тот-же шаблон подсветки, что и у Crayon, и дело решено двумя строчками кода. )


    Кстати, насколько я помню, вышеуказанный скрипт хостится на Яндексе (u can save bandwidth 🙂

    Автор still

    (@abdulgalimov)

    Спасибо за подсказки 🙂 я кажется начал понимать что нужно сделать)
    Загрузил библиотеку highlightjs, и преобразовал код:

    var codeHtml = hljs.highlight('actionscript', codeText).value;
    console.log(codeHtml);
    codeElement.innerHTML = codeHtml;

    В консоль код пишется преобразованный в html, а вот на странице отображается не форматированный текст, почему так?

    Я не скриптолог, подсказать здесь не смогу, но может из-за фрейма?

    Да и div это, как ни крути, не тег pre.. )

    Автор still

    (@abdulgalimov)

    И еще раз спасибо за наводку) решил проблему.
    Осталась последняя проблема — сделать так, что бы подсветка визуально была похожа на подсветку от Crayon

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • Тема «Использование шорткодов в собственной функции» закрыта для новых ответов.