Open Dmi3yy opened 12 years ago
Только что посмотрел у себя, по умолчанию документы некешируются, даже и забыл про то, что как-то давно экспериментировал и забыл включить его обратно. Подобной проблемы нет.
только что специально скачал с modx.com EVO-1.0.6 выводит так же как и на моей сборке потому таки не работает ( просто выводит код плагина на сайт и все
Хорошо, я постараюсь разобраться :)
Все нашел где баг у вас не верный код в geshi.php
он дублирует код плагина хотя судя по истории там совсем другое должно быть
Отлично! Странно что у меня работает с ним. Можно ли посмотреть на строку с ошибкой?
https://github.com/atomoc/Geshi/blob/b518dbfc65dcb413f9e89047cc52f790705648f1/geshi.php вот если так то пашет )
Изменил На самом деле не совсем хорошо пашет. Надо работать с ним ещё.
Очень рекомендую обновить код плагина: https://github.com/atomoc/Geshi/blob/master/plugin.GeSHi.tpl
/* * GeSHi Plugin 0.4 for MODx * by Luca Allulli, April 2006 * * Event: OnLoadWebDocument * * Based on the GeSHi highlighter at http://qbnz.com/highlighter/ * * License: GNU GPL \ _/ //Begin configuration global $defaultGeshiLang; $defaultGeshiLang="bash"; //End configuration function replaceCodeBase($lang, $code) { global $modx; $path = $modx->config["base_path"].'assets/plugins/geshi/geshi/'; $geshi = new GeSHi($code, $lang, $path); $geshi->set_header_type(GESHI_HEADER_PRE); $geshi->set_tab_width(4); return ' '.$geshi->parse_code().' '; } function replaceCode($matches) { global $defaultGeshiLang; return replaceCodeBase($defaultGeshiLang, $matches[1]); } function replaceCodeLang($matches) { return replaceCodeBase($matches[1], $matches[2]); } $e = &$modx->Event; switch ($e->name) { case "OnLoadWebDocument": include_once($modx->config["base_path"].'assets/plugins/geshi/geshi.php'); $modx->documentObject['content']=preg_replacecallback("# (.?)
s", "replaceCode", $modx->documentObject['content']); $modx->documentObject['content']=preg_replace_callback("
(.*?)
s", "replaceCodeLang", $modx->documentObject['content']); $modx->documentObject['content']=preg_replace_callback("
(.*?)
s", "replaceCodeLang", $modx->documentObject['content']); $modx->documentObject['content']= preg_replace('!(.*?)!ise', " '' . stripslashes( str_replace(array('
','[[','<','>','&',' '),array('\n','[[','<','>','&',' '),'$2') ) . '' ", $modx->documentObject['content']); $modx->documentObject['content']= preg_replace('!(.*?)!ise', " '' . stripslashes( str_replace(array(' ','[[','<','>','&',' '),array('\n','[[','<','>','&',' '),'$2') ) . '' ", $modx->documentObject['content']); break; default: // stop here return; break; }
вот такое на фронте выводит (