Oznámení
Ekvivalent Texy::PROCEED pre PHP4
před 12 lety
- Havran
- Člen | 20
Chcem troska pokrocit v implementacii Texy! 2.0 do DRUPALU a rad by som urobil verziu kompatibilnu smerom dole. V kode syntax highlighteru sa vyskytuje Texy::PROCEED a ja netusim ako toto nahradit pre PHP4. Je mi jasne ze do konca roka to uz asi nema velky vyznam ale aj tak by ma to zaujimalo :).
před 12 lety
- David Grudl
- Nette Core | 6806
Ekvivalent pro PHP4 je konstanta TEXY_PROCEED.
Od revize 155 používejte
return $invocation->proceed();
před 12 lety
- Havran
- Člen | 20
Vdaka za odpoved pomohlo. Mam ale este jeden problem ktory tiez suvisi z implemetaciou pre PHP4.
Pouzivam poslednu verziu Texy! 2 pre PHP4 – highlighting kodu s FSHL funguje ale od okamihu ked narazi na poznamku // povazuje vsetko az do konca za poznamku. Teraz som si nie isty ci to nema nieco spolocne s PHP lebo presne s tymto problemom som sa stretol este na Texy! 1 ale iba na jednom serveri.
Implementaciu syntaxhighlightingu mam vyriesenu takto:
(subor fshl.php ktory sa includuje do DRUPAL modulu pre Texy!)
// include FSHL syntaxhighlighter library
require_once 'fshl/fshl.php';
require_once 'fshl/fshl-config.php';
if (!class_exists('fshlParser')) {
die('DOWNLOAD <a href="http://hvge.sk/scripts/fshl/">FSHL</a> AND UNPACK TO fshl FOLDER FIRST!');
}
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
include_once 'fshl.5.php';
}
else {
include_once 'fshl.4.php';
}
(subor fshl.4.php – je to prakticky bezo zmien pouzity priklad z dokumentacie, zmenene su len casti pre kompatibilitu s PHP4)
(a implementacia Texy! do filtra)
/**
* Main Texy! filter.
*/
function _filter_texy($text) {
// get base module path
$module_path = drupal_get_path('module', 'texy');
// include Texy!
require_once $module_path . '/texy/texy.php';
$texy = new Texy();
[nasleduje konfiguracia texy...]
// check for use syntax highlighter
if (variable_get('texy_use_syntaxhighlight', FALSE)) {
$texy_syntaxhighlighter_name = variable_get('texy_syntaxhighlighter_name', '');
// check name of syntax highlighter
if ($texy_syntaxhighlighter_name != '') {
$texy_syntaxhighlighter = $module_path . '/lib/' . $texy_syntaxhighlighter_name . '.php';
$texy_syntaxhighlighter_dir = $module_path . '/lib/' . $texy_syntaxhighlighter_name;
if (file_exists($texy_syntaxhighlighter) && file_exists($texy_syntaxhighlighter_dir)) {
// set handler for /--- code blocks (for configured syntax highlighter)
require_once $texy_syntaxhighlighter;
$texy->handler = new myHandler;
}
else {
drupal_set_message(t('Syntax highlighter <em>' . $texy_syntaxhighlighter_name . '</em> is not ready...'),'error');
}
}
}
// main Texy! filter processing
$html = $texy->process($text);
return $html;
}
No v tej implementacii to asi nebude – na PHP5 to chodi bez problemov :(. Vdaka za tipy.
Editoval Havran (18. 7. 2007 8:29)
před 12 lety
- Havran
- Člen | 20
Takze bug bol nie v Texy! ale vo FSHL – nova verzia 0.4.19 funguje 100%ne… :) (A samozrejme chyba bola aj medzi klavesnicou a stolickou – cely cas som si myslel ze mam nainstalovanu najnovsiu verziu a nakoniec som zistil ze nemam…).