Dnes je: Sobota 24 Února 2018 Svátek má: Matěj
Vyhledávání
Vyhledat text

Novinky
20.08.2012: Novy layout pro phpRS 2.8.x
V sekci download je možné stáhnout nový layout pro phpRS 2.8.x. "RS Tech Blog".

31.07.2012: Novy layout i pro phpRS 2.8.2
V sekci download je možné stáhnout nový layout pro phpRS 2.8.x. "White light".

12.04.2011: Nový plugin
V sekci download je možné stáhnout novy plugin pro editaci článků s integrovaným editorem.
Nejčtenější články

Neexistuji vhodna data!

Kalendář
<<  Únor  >>
PoÚtStČtSoNe
   1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28     
Počasí
Kompletní login

Uživatelské jméno:

Heslo:




Registrace nového čtenáře!

Obarvení ukázek zdrojových kódů pomocí FSHL v článku

Pro zvýraznění ukázek zdrojových kódů v článcích se hodí několik způsobů. Na své stránky jsem použil FSHL ze stránky http://hvge.sk/scripts/fshl. Tento projekt se pyšní tím ze je velmi rychý.

Popsaná úprava bude zvýrazňovat kód až při zobrazení na stránce. V databázi bude kód uložen bez elementů podporujících barevné zobrazení.

D rootu webu zkopírujeme adresář fshl, který stáhneme ze stránek http://hvge.sk/scripts/fshl .

Upravovat budeme soubor trclanek.php . Do něj na začátek vložíme dvě krátké funkce, které se postarají o nalezení textu uzavřeného v tagu <pre>. Popsaná úprava je provedena na phpRS 2.8.1.

V souboru trclanek.php najdeme řádek 13 s následujícím kódem.

if (!defined('IN_CODE')): die('Nepovoleny pristup! / Hacking attempt!'); endif;

A hned za něj vložíme následující dvě funkce.

function fshl_zpracovani($pole){
require_once("./fshl/fshl.php");
// odstraneni nadbytecnych znaku na zacatku a na konci
$text = trim(html_entity_decode($pole[3]));
// HTML produkuje HTML validni výstup
// XML produkuje XML výstup
$vystupni_modul = 'HTML';
// jaky jazyk se pouzije k zvyrazneni kodu
// strtoupper zvetsi znaky na velke
$jazyk = strtoupper($pole[2]);
// P_LINE_COUNTER==pocitadlo radku P_TAB_INDENT==emulace tabulatoru
// R pred jazykem (brush:php;) zobrazi radkovani
$radkovani = $pole[1];
if ($radkovani=="R") {
$options = P_TAB_INDENT | P_LINE_COUNTER;
}
else {
$options = P_TAB_INDENT;
}
// vytvoreni parseru
$parser = new fshlParser($vystupni_modul, $options);
// zvyrazneni kodu a uzavreni do tagu
$zvyrazneny_kod = '<div class="zdrojak"><pre class="normal">';
$zvyrazneny_kod=$zvyrazneny_kod.$parser->highlightString($jazyk, $text);
$zvyrazneny_kod=$zvyrazneny_kod.'</pre></div>';
// odeslani vysledku
return $zvyrazneny_kod;
}
function fshl_zvyrazneni_kodu($text){
// rozsekani kodu do pole podle nastavenych pravidel
// vlastni kod musi byt uzavreny mezi tagy pozor na pocet mezer za pre <pre brush:php;>vlastni kod<pre>
return preg_replace_callback("{<pre class=\"(R?)(HTML|HTMLonly|CSS|PHP|PY|JS|CPP|JAVA|SQL|TEXY|SAFE)\">(.+)</pre>}Usi",'fshl_zpracovani',$text);
}

Dále najdeme řádek 733 s následujícím kódem.

return $this->Dekoduj($this->clanek["uvod"]);

A nahradíme ho následujícím kódem.

if ($this->clanek["znacky"]==1): // kdyz jsou povoleny phpRS znacky

Dále najdeme řádek 735 s následujícím kódem.

return $this->clanek["uvod"];

A nahradíme ho následujícím kódem.

return fshl_zvyrazneni_kodu($this->clanek["uvod"]);

Dále najdeme řádek 740 s následujícím kódem.

return $this->Dekoduj($this->clanek["text"]);

A nahradíme ho následujícím kódem.

return fshl_zvyrazneni_kodu($this->Dekoduj($this->clanek["text"]));

Dále najdeme řádek 742 s následujícím kódem.

return $this->clanek["text"];

A nahradíme ho následujícím kódem.

return fshl_zvyrazneni_kodu($this->clanek["text"]);

Do souboru CSS umístíme následující styly.

/* (c) 2002 Martin Cohen - www.martincohen.info */
/* P H P */
.php-keyword1 {color:#d24; font-weight:bold;}
.php-keyword2 {color:#d24; }
.php-var {color:#fa0; font-weight:bold;}
.php-num {color:red;}
.php-quote {color:#843; font-weight:bold;}
.php-vquote {color:#fa0;}
.php-comment {color:#999; background-color:#ffe;}
/* H T M L */
.html-tag {color:#598527; font-weight:bold;}
.html-tagin {color:#89A315}
.html-quote {color:#598527; font-weight:bold;}
.html-comment {color:#999; background-color:#F1FAE4;}
.html-entity {color:#89A315}
/* C S S */
.css-class {color:#004A80; }
.css-id {color:#7DA7D9; font-weight:bold; }
.css-def {color:#5674B9;}
.css-property {color:#003663; font-weight:bold; }
.css-value {color:#448CCB;}
.css-color {color:#0076A3;}
.css-comment { background-color:#E5F8FF; color:#999; }
/* C P P */
.cpp-keywords1 {color:blue; font-weight:bold;}
.cpp-num {color:red;}
.cpp-quote {color:brown; font-weight:bold;}
.cpp-comment {color:green;}
.cpp-preproc {color:grey;}
/* J A V A */
.java-keywords1 {color:blue; font-weight:bold;}
.java-num {color:red;}
.java-quote {color:brown; font-weight:bold;}
.java-comment {color:green;}
.java-preproc {color:grey;}
/* J a v a S c r i p t */
.js-out {color:#898993;}
.js-keywords1 {color:#575757; font-weight:bold;}
.js-num {color:#575757;}
.js-quote {color:#575757; font-weight:bold;}
.js-comment {color:#898993; background-color:#F4F4F4;}
/* S Q L */
.sql-keyword1 {color: #DD0000; font-weight: bold;}
.sql-keyword2 {color: #DD2222;}
.sql-keyword3 {color: #0000FF; font-weight: bold;}
.sql-value {color: #5674B9;}
.sql-comment {color: #FFAA00;}
.sql-num {color:red;}
.sql-option {color: #004A80; font-weight: bold;}
/* P y t h o n */
.py-keyword1 {color: #0033CC; font-weight: bold;}
.py-keyword2 {color: #CE3333; font-weight: bold;}
.py-keyword3 {color: #660066; font-weight: bold;}
.py-number {color: #993300;}
.py-docstring {color: #E86A18;}
.py-quote {color: #878787; font-weight: bold;}
.py-comment {color: #009900; font-style: italic;}
/* T E X Y */
.texy-hlead {color:#44B; font-weight:bold;}			/* header leadIN == and leadOUT == */
.texy-hbody {background-color:#eeF;color:#44B; }	/* header body */
.texy-hr {color:#B44; }								/* horizontal line */
.texy-code {color:#666;}							/* /---code */
.texy-html {color:#6a6;}							/* /---html */
.texy-text {color:#66a;}							/* /---html */
.texy-err {background-color:red; color:white;}		/* error (TODO) */
/* C O M M O N */
.normal {color:black;}
.xlang {color:red; font-weight:bold;}
.count {color:black; background-color:#FFF;}

Při psaní článků musíme ukázkový kód do tagu <pre class="brush:php;">vlastní kód</pre>, kde R znamená že budou zobrazene čísla řádků a PHP znamená jaké použijeme barevné schéma pro daný kód.


| Autor: administrator | Vydáno dne 20. 10. 2008 | 7673 přečtení |

| Informační e-mail | Vytisknout článek |
Tento web site byl vytvořen prostřednictvím phpRS 2.8.2 R8