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

Автор темы: Pisatel
ID темы: 1410
Информация:
Тема содержит 24 сообщения, была просмотрена 13607 раз.  Имеются прикрепленные файлы.
Просмотр темы
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кБ / 335 Загрузки]
syntaxhighlighter_autoloader_v3_0.zip [71.7кБ / 345 Загрузки]

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

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

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

PolarLab - вход для подопытных
 
Web
Pisatel
Дабы на примере увидеть, посмотри, если не трудно, у меня на сайте, в последних статьях "Подключение и настройка SyntaxHighlighter", там в примере подключения < script type="..." scr="scripts/shCore.js"> ну и подобное, так вот, когда загружаешь страницу, я у себя в логах вижу ошибки, так как это подключение пытается выполниться, но этого файла, соответственно, там нет. А с < head > вообще беда.
 
Web
Polarfox
Это статья, ты заменял последовательностями спец символы?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Pisatel
Нет, не заменяю. В версии 3.0.83 не нужно этого делать, если я правильно перевел документацию.
Чего только уж не делал, даже вывод такой:
Скачать исходники  Код
<pre class=\'brush: \\1\'>".str_replace("<", "&lt;", "\\2")."</pre>



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

Этот как отменять законы природы, законом госдумы...
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
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.038 секунд, используя GeSHi 1.0.8.10

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

Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

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

PolarLab - вход для подопытных
 
Web
Pisatel
Это принципиально? Не вопрос. Но твое мнение по существу было бы намного весомее.
 
Web
Polarfox
Это важно, чтоб не искать.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web

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

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