Как сделать красивое отображение программного кода в странице
Добрый день, сегодня мы покажем, как можно внедрить в редактор TinyMCE плагин, который позволяет выводить программный код, прямо в описании страницы(записи блога) в такой формате:
Для этого нам необходимо скачать сам плагин для редактора TinyMCE, который называется :
sh4tinymce, и кроме этого скачать скрипт, который позволяет этот вывод красиво стилизовать, в нашем примере будет использоваться SyntaxHighlighter.
Для начала необходимо установить и подключать сам плагин к редактору, для этого нужо загрузить папку sh4tinymce в папку plugins/, которая находится внутри редактора. Полный путь выглядит так
Simpla/design/js/tinymce_jq/plugins/
После этого, необходимо выполнить подключение самого плагина.
Для этого откройте файл design/html/tinymce_init.tpl и в нем сделайте две правки.
plugins: [ "advlist autolink lists link image preview sh4tinymce anchor responsivefilemanager", "code fullscreen save textcolor colorpicker charmap nonbreaking", "insertdatetime media table contextmenu paste imagetools" ], …………………………… language : "en",
ВАЖНО!. Язык обязательно нужно ставить английский, потому что русского нет в поддержке этого плагина.
После этого переключаемся в клиентскую часть.
Для начала нужно загрузить скрипты и стили для стилизации будущего кода. В примере мы загружаем все в папку design/название темы/js
После этого необходимо подключить данные скрипты к сайту, для этого открываем файл design/название темы/html/index.tpl
И прописываем перед закрывающимся тегом head(</head>) следующий код
<script src="design/{$settings->theme}/js/shCore.js"></script> <script src="design/{$settings->theme}/js/shBrushCss.js"></script> <script src="design/{$settings->theme}/js/shBrushJScript.js"></script> <script src="design/{$settings->theme}/js/shBrushXml.js"></script> <script src="design/{$settings->theme}/js/shBrushPhp.js"></script> <link href="design/{$settings->theme}/js/shCore.css" rel="stylesheet"/> <script>SyntaxHighlighter.all()</script>
После этих манипуляций, код, который будет задан в админке, будет красиво форматироваться. Собственно как в наших статьях.
Приятной работы ;)
P.S Материалы для работы Здесь