Забыли пароль?
Запросите новый здесь.

Автор темы: Pisatel
ID темы: 1410
Информация:
Тема содержит 24 сообщения, была просмотрена 14851 раз.  Имеются прикрепленные файлы.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Моды
 Распечатать тему
BB code SyntaxHighlighter
Pisatel
NEW
| BB Code SyntaxHighlighter for PHP Fusion v7.02.xx

| Author: Pisatel

| Version: 3.0

| Support: http://www.meweb.ru



- Описание -

Бб-код для подсветки синтаксиса SyntaxHighlighter.

Преимуществом данного варианта подсветки является то, что подсветка производится средствами машины, то есть на стороне клиента, а не сервера, что, соответственно, повышает скорость работы.

В данной сборке все возможные для подсветки языки собраны в один файл.

- Языки для подсветки -

JavaScript, набор библиотек JQuery, PHP, Perl, Python, Delphi, SQL, Java, C, C++, Ruby, язык разметки (x)HTML, XML, Plain (Text), таблицы стилей CSS.

- Установка -

| Распаковать файлы согласно директориям

| Не забыть в панели администратора активировать данный бб-код.

- Изменения -

| Существенно упрощен код, что должно повысить производительность

| Убраны ненужные языки подсветки, лишние темы оформления

| Добавлена подсветка JQuery
| Теперь скрипты подгружаются только там, где это нужно

| Если код превышает 4096 символов, он будет скрыт под спойлером (можно увеличить или уменьшить этот параметр вручную в файле sh_bbcode_include.php)

NEW
| BB Code SyntaxHighlighter Autoloader for PHP Fusion v7.02.xx
| Author: Pisatel
| Version: 3.0
| Support: http://www.meweb.ru

- Описание -
Бб-код для подсветки синтаксиса SyntaxHighlighter.

Преимуществом данного варианта подсветки является то, что подсветка производится средствами машины, то есть на стороне клиента, а не сервера, что, соответственно, повышает скорость работы.

В данной сборке скрипты для подсветки синтаксиса подгружаются автоматически по мере необходимости.
- Языки для подсветки -
JavaScript, набор библиотек JQuery. PHP, Perl, Python, Delphi, SQL, Java, C, C++, Ruby, язык разметки (x)HTML, XML, Plain (Text), таблицы стилей CSS.
- Установка -
| Распаковать файлы согласно директориям
| Не забыть в панели администратора активировать данный бб-код
.
- Изменения -
| Существенно упрощен код, что должно повысить производительность
| Убраны ненужные языки подсветки, лишние темы оформления
| Добавлена подсветка JQuery
| Теперь скрипты подгружаются только там, где это нужно, и только те, которые требуются на текущей странице
| Если код превышает 4096 символов, он будет скрыт под спойлером (можно увеличить или уменьшить этот параметр вручную в файле sh_bbcode_include.php)
Прикрепленные файлы- это разные сборки, кому что больше нравится. Читаем описания!
Pisatel присоединено следующее:файлы:
syntaxhighlighter_v3_0_1.zip [63.58кБ / 514 Загрузки]
syntaxhighlighter_autoloader_v3_0.zip [71.7кБ / 514 Загрузки]

Изменил(а) Pisatel, 19.05.2014 17:56
 
Web
jikaka
Хотел аддон добавить, но видимо нет такой возможности

в смысле нет? в чем проблема то?
x1
 
Web
Zaxap
Навигация в помощь^^

Сервисы
>Добавляем
>>Аддон
Зло не дремлет, а я добрый...
 
Pisatel
Ой, не заметил:-) Добавлю туда тогда сейчас
x1
 
Web
Pisatel
Для удобства можно все языковые файлы собрать в один и подключить только его. Это ускорит процесс загрузки страницы. Для ленивых- прикрепленный файл, там все языки для подсветки. Далее. Начиная с версии 3.х SyntaxHighlighter приобрел функцию динамической подгрузки языков, можно так же воспользоваться ей.
Pisatel присоединено следующее:файл:
shmegalang.zip [23.79кБ / 538 Загрузки]
x1
 
Web
Pisatel
В общем, я тут ковыряю этот мод, уже половину файлов заменил. Основной файл- shCore.js, именно в нем все настройки. В архиве, что в моде, версия с официального сайта, в которой присутствует eval(), которого я очень боюсь:-) Если кому интересен- могу дать другой shCore.js, через который можно производить более тонкую настройку- некоторые параметры я уже понял и могу подсказать, если что.
 
Web
Pisatel
Прямо беда. Встал на одном месте. В общем, проблема такая, нужна ваша помощь, господа: при подсветке через Syntaxhighlighter html тегов типа < head > или < script type="..." src="..." > они начинают выполняться, то есть либо на странице после этого виден весь исходный код, либо в логах ошибок 404 вижу попытки подключения к несуществующим адресам скриптов, которые указал в тексте статьи. Через какой фильтр пропустить код? Уже все стандартные функции перепробовал, даже свои мутил- не помогает... Может, будут идеи? А то не айс, приходится в тегах пробелы ставить...
 
Web
Polarfox
Прямо просто скрипт?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Pisatel
Дабы на примере увидеть, посмотри, если не трудно, у меня на сайте, в последних статьях "Подключение и настройка SyntaxHighlighter", там в примере подключения < script type="..." scr="scripts/shCore.js"> ну и подобное, так вот, когда загружаешь страницу, я у себя в логах вижу ошибки, так как это подключение пытается выполниться, но этого файла, соответственно, там нет. А с < head > вообще беда.
 
Web
Polarfox
Это статья, ты заменял последовательностями спец символы?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Pisatel
Нет, не заменяю. В версии 3.0.83 не нужно этого делать, если я правильно перевел документацию.
Чего только уж не делал, даже вывод такой:
Скачать исходники  Код
<pre class=\'brush: \\1\'>".str_replace("<", "&lt;", "\\2")."</pre>



Ничего не помогает.
Изменил(а) Pisatel, 19.04.2013 10:45
 
Web
Polarfox
Меня не интересует левая документация - даже если такое сказано, неэкранированные/чистые спецсимволы все равно исполняются интерпретатором, вначале он - потом только идут разные скрипты.

Этот как отменять законы природы, законом госдумы...
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Pisatel
хорошо. Если так- почему не выполняются символы в геши? Ведь тоже я не заменяю их мнемониками.
И почему тогда не срабатывает тот код, что выше привел? Ведь генерация происходит до подачи содержимого в браузер. Подскажи, PF, реально ли это вылечить без замены символов на их мнемоники в самой статье? Буду весьма признателен, так как класс- отличный, однако данный минус все портит...
UPD:
Решил пока вот таким костылем:
Скачать исходники  Код
 $search = array("<link", "<script");

  $replace = array("&lt;link", "&lt;script");

 $text = str_replace($search,$replace, $text);




Если есть идеи лучше- готов выслушать.
Изменил(а) Pisatel, 19.04.2013 12:45
 
Web
Pisatel
Весь мозг уже себе вынес. Нужна помощь профи. Сам мод работает, вот только если изначально вводить теги так &lt;scipt type... Он и с "<" тегом будет работать, вот только код при этом будет выполняться. В Геши, например, код сначала проходит через класс, в котором теги заменяются на мнемоники, а вот как здесь реализовать подобное- никак не могу въехать... Вот сам файл:
Загрузить источник  GeSHi: PHP
  1. <?php
  2.  
  3.  
  4. if (!defined("IN_FUSION")) { die("Access Denied"); }
  5.  
  6.  
  7.  
  8. if (preg_match("/\/forum\//i", FUSION_REQUEST)) global $data;
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. add_to_head("<link type='text/css' rel='stylesheet' href='".INCLUDES."jscripts/syntaxhighlighter/styles/shCoreEclipse.css'></link>
  17.  
  18. <link type='text/css' rel='stylesheet' href='".INCLUDES."jscripts/syntaxhighlighter/styles/shThemeEclipse.css'></link>
  19.  
  20. <script type='text/javascript' src='".INCLUDES."jscripts/syntaxhighlighter/scripts/XRegExp.js'></script>
  21.  
  22. <script type='text/javascript' src='".INCLUDES."jscripts/syntaxhighlighter/scripts/shLegacy.js'></script>
  23.  
  24. <script type='text/javascript' src='".INCLUDES."jscripts/syntaxhighlighter/scripts/shCore.js'></script>
  25.  
  26. <script type='text/javascript' src='".INCLUDES."jscripts/syntaxhighlighter/scripts/shAutoloader.js'></script>
  27.  
  28. <script type='text/javascript'>
  29.  
  30. $(document).ready(function(){
  31.  
  32. function path()
  33.  
  34. {
  35.  
  36. var args = arguments, result = [];
  37.  
  38. for(var i = 0; i < args.length; i++)
  39.  
  40. result.push(args[i].replace('@', '".INCLUDES."jscripts/syntaxhighlighter/scripts/'));
  41.  
  42. return result
  43.  
  44. };
  45.  
  46. SyntaxHighlighter.autoloader.apply(null, path(
  47.  
  48. 'applescript @shBrushAppleScript.js',
  49.  
  50. 'actionscript3 as3 @shBrushAS3.js',
  51.  
  52. 'bash shell @shBrushBash.js',
  53.  
  54. 'coldfusion cf @shBrushColdFusion.js',
  55.  
  56. 'cpp c @shBrushCpp.js',
  57.  
  58. 'c# c-sharp csharp @shBrushCSharp.js',
  59.  
  60. 'css @shBrushCss.js',
  61.  
  62. 'delphi pascal @shBrushDelphi.js',
  63.  
  64. 'diff patch pas @shBrushDiff.js',
  65.  
  66. 'erl erlang @shBrushErlang.js',
  67.  
  68. 'groovy @shBrushGroovy.js',
  69.  
  70. 'java @shBrushJava.js',
  71.  
  72. 'jfx javafx @shBrushJavaFX.js',
  73.  
  74. 'js jscript javascript @shBrushJScript.js',
  75.  
  76. 'perl pl @shBrushPerl.js',
  77.  
  78. 'php @shBrushPhp.js',
  79.  
  80. 'text plain @shBrushPlain.js',
  81.  
  82. 'py python @shBrushPython.js',
  83.  
  84. 'ruby rails ror rb @shBrushRuby.js',
  85.  
  86. 'sass scss @shBrushSass.js',
  87.  
  88. 'scala @shBrushScala.js',
  89.  
  90. 'sql @shBrushSql.js',
  91.  
  92. 'ts typescript @shBrushTypeScript.js',
  93.  
  94. 'vb vbnet @shBrushVb.js',
  95.  
  96. 'xml xhtml xslt html @shBrushXml.js'
  97.  
  98. ));
  99.  
  100. SyntaxHighlighter.all('code');
  101.  
  102. });
  103.  
  104. </script>");
  105.  
  106.  
  107.  
  108. preg_match_all("#\[sh=(.*?)\](.*?)\[/sh\]#si",$text,$matches,PREG_PATTERN_ORDER);
  109.  
  110. for($i=0; $i<count($matches[1]); $i++) {
  111.  
  112. if (preg_match("/\/forum\//i", FUSION_REQUEST) && isset($data['post_id'])) {
  113.  
  114. $code_save = "<a href=\'".INCLUDES."bbcodes/sh_bbcode_save.php?thread_id=".$_GET['thread_id']."&amp;post_id=".$data['post_id']."&amp;code_id=".$i."\'><img src=\'".INCLUDES."bbcodes/images/code_save.png\' alt=\'".$locale['bb_sh_save']."\' title=\'".$locale['bb_sh_save']."\' style=\'border:none\' /></a>&nbsp;&nbsp;";
  115.  
  116. }
  117.  
  118. else {
  119.  
  120. $code_save = "";
  121.  
  122. }
  123. $text = preg_replace("#\[sh=(.*?)\](.*?)\[/sh\]#sie", "'<div class=\'tbl-border tbl2\' style=\'width:100%;\'>".$code_save."<strong><i>".$locale['bb_sh_code']."\\1</i></strong></div><div class=\'syntaxhighlighter\' style=\'width:100%; overflow-x: auto;\'><pre name=\'code\' class=\'brush: \\1\'; html-script: \'true\';>\\2<br /><br /><br /></pre></div>'", $text, 1);
  124. }
  125.  
  126. ?>
Добавлено за 0.027 секунд, используя GeSHi 1.0.8.10

буду весьма признателен за помощь.
Изменил(а) Pisatel, 22.04.2013 12:06
 
Web
Polarfox
Оффтопик Я хотел эту штуку заделать под форум. Но под 8ой. А так я пока не планирую ничего делать.

Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Pisatel
похоже, реализовал. Может, чуть кривовато, но все работает. Потестю пару дней и выложу SyntaxHighlighter Autoloader v1.01 с реализованным преобразованием спецсимволов < и > в их мнемоники.
Изменил(а) Pisatel, 22.04.2013 16:10
 
Web
Pisatel
Обновил первый пост
Изменил(а) Pisatel, 23.04.2013 15:28
 
Web
Polarfox
1ый пост не правится?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Pisatel
Это принципиально? Не вопрос. Но твое мнение по существу было бы намного весомее.
 
Web
Polarfox
Это важно, чтоб не искать.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Code BBCode mod  →  Другое 0 / 2429 08.09.2015 12:28
SyntaxHighlighter Autoloader  →  Другое 0 / 2211 03.06.2014 10:52
Доработанные code+geshi  →  Народное творчество 0 / 1555 16.06.2013 18:08
bb-code дополнительных картинок  →  Моды 7 / 1445 09.01.2011 13:12
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)