phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
Przesunięty przez: joli
22-01-2009, 18:14
Kolorowy code i numery linii
Autor Wiadomość
tosiek


Pomógł: 109 razy
Posty: 1418
Wysłany: 14-08-2008, 10:37   Kolorowy code i numery linii

Witam. Zainstalowałem sobie tę modyfikację:
http://www.kurshtml.boo.pl/phpbb/#code_highlight
Ale coś nie chce działać, sami zobaczcie:
http://www.tosiek.pl/453.htm#919
W poście włączyłem html ;/ I nie wiem czy istnieje jakaś działająca wersja pod phpbb by przemo ?
_________________
Naprawa krzaczków oraz chińskich literek, przywracanie polskich znaków jak i przenoszenie forów to codzienność... wczorajszość i jutrzejszość.
tosiek - istota śmiertelna, potrafiąca umierać do trzech razy...
 
     
Gadatliwa Kasia 

   
They2


Pomógł: 82 razy
Posty: 1297
Wysłany: 14-08-2008, 11:29   

tosiek, to jest tylko dla php, ty wstawiles html.

wstaw np.
Kod:
<?
echo 'hello';
?>
_________________
Support | Pomoc | Modyfikacja | Zlecenie płatne - zapraszam na PW oraz pod moim adresem.
Nie udzielam w GG.
 
     
tosiek


Pomógł: 109 razy
Posty: 1418
Wysłany: 14-08-2008, 11:32   

Tam, jest wstawiony plugin w pawnie czyli kod ;/ ale nie html wszystkie kody zamienia na html ;/
_________________
Naprawa krzaczków oraz chińskich literek, przywracanie polskich znaków jak i przenoszenie forów to codzienność... wczorajszość i jutrzejszość.
tosiek - istota śmiertelna, potrafiąca umierać do trzech razy...
 
     
They2


Pomógł: 82 razy
Posty: 1297
Wysłany: 14-08-2008, 11:41   

tosiek, bzdury albo nie rozumiesz co pisalem :/

w php ,zeby miec kolorowe kody php to musisz miec kody zaczynajace od <?php do ?>
czyli to:
Kod:
<?php
echo 'hello';
?>


a te kody ktore wstawiles to jest czysty html i takiego nie bedzie wyswietlac kolorowo.
_________________
Support | Pomoc | Modyfikacja | Zlecenie płatne - zapraszam na PW oraz pod moim adresem.
Nie udzielam w GG.
 
     
warna



Pomógł: 475 razy
Posty: 2335
Wysłany: 14-08-2008, 11:46   

Tuż pod tym co wstawiasz w includes/bbcode.php zakomentuj linie:
Kod:
        $code_entities_match = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}');
        $code_entities_replace = array('&lt;', '&gt;', '&quot;', ':', '[', ']', '(', ')', '{', '}');
        $after_replace = str_replace($code_entities_match, $code_entities_replace, $after_replace);

U mnie działa.

They, tutaj znaczniki <?php i ?> nie są wymagane ;)

edit: jedyny bug, który widzę, to jeśli wstawiam <?php na początku to wyświetla tylko php.
Ostatnio zmieniony przez warna 14-08-2008, 11:54, w całości zmieniany 1 raz  
 
     
Radek



Pomógł: 955 razy
Posty: 4614
Wysłany: 14-08-2008, 11:49   

They2,
Cytat:
Koloruje w postach na forum składnię dowolnego języka programowania, skryptowego lub innego.

Cytat:
- Będzie potrafił bez żadnych dodatkowych aktualizacji kolorować składnię języków, które nawet jeszcze nie powstały

On htmla nie wstawial - ten mod sam uzywa htmla do kolorowania i wstawiania numerow.
tosiek - w bbcode.php znajdz:
Kod:
$code_entities_replace = array('&lt;', '&gt;', '&quot;', ':', '[', ']', '(', ')', '{', '}');
        $after_replace = str_replace($code_entities_match, $code_entities_replace, $after_replace);

i zamien na:
Kod:
$code_entities_replace = array('&lt;', '&gt;', '&quot;', ':', '[', ']', '(', ')', '{', '}');
        //$after_replace = str_replace($code_entities_match, $code_entities_replace, $after_replace);

To włączy htmla w code, więc mod powinien działać. Takie rozwiązanie na szybko.

[ Dodano: 14-08-2008, 11:50 ]
ops, spozniony :/
 
     
They2


Pomógł: 82 razy
Posty: 1297
Wysłany: 14-08-2008, 12:26   

hmm coz.. przepraszam za te, a myslalem tylko dla php, sprawdzalem i faktycznie byly bledy , o ktorym pisaliscie (php zamienia w html).

warna, RuseK, te co podaliscie nie dziala.

wywalilem fragment kodu ze standartowego:
Kod:

        // Special chars
        $code_entities_match = array('&lt;', '&gt;', '&quot;', ':', '[', ']', '(', ')', '{', '}');
        $code_entities_replace = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}');
        $after_replace = str_replace($code_entities_match, $code_entities_replace, $after_replace);

        $after_replace = str_replace(array('&', '&amp;amp;'), '&amp;', $after_replace);

        $code_entities_match = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}');
        $code_entities_replace = array('&lt;', '&gt;', '&quot;', ':', '[', ']', '(', ')', '{', '}');
        $after_replace = str_replace($code_entities_match, $code_entities_replace, $after_replace);


        // Replace 2 spaces with "&nbsp; " so non-tabbed code indents without making huge long lines.
        $after_replace = str_replace("  ", "&nbsp; ", $after_replace);
        // now Replace 2 spaces with " &nbsp;" to catch odd #s of spaces.
        $after_replace = str_replace("  ", " &nbsp;", $after_replace);

        // Replace tabs with "&nbsp; &nbsp;" so tabbed code indents sorta right without making huge long lines.
        $after_replace = str_replace("\t", "&nbsp; &nbsp; ", $after_replace);

        // now Replace space occurring at the beginning of a line
        $after_replace = preg_replace("/^ {1}/m", '&nbsp;', $after_replace);

i dziala kolorowo w php i html

nie wiem czy jest dobrze, niech ktos potestuje.
 
     
tosiek


Pomógł: 109 razy
Posty: 1418
Wysłany: 14-08-2008, 17:04   

żadne nie che działać zobaczcie na temat który podałem w 1 poście :)
_________________
Naprawa krzaczków oraz chińskich literek, przywracanie polskich znaków jak i przenoszenie forów to codzienność... wczorajszość i jutrzejszość.
tosiek - istota śmiertelna, potrafiąca umierać do trzech razy...
 
     
They2


Pomógł: 82 razy
Posty: 1297
Wysłany: 14-08-2008, 17:07   

spróbuj ode mnie cały fragment funkcji:

Kod:
function bbencode_second_pass_code($text, $uid, $bbcode_tpl)
{
    global $lang;

    $code_start_html = $bbcode_tpl['code_open'];
    $code_end_html =  $bbcode_tpl['code_close'];

    // First, do all the 1st-level matches. These need an htmlspecialchars() run,
    // so they have to be handled differently.
    $match_count = preg_match_all("#\[code:1:$uid\](.*?)\[/code:1:$uid\]#si", $text, $matches);

    for ($i = 0; $i < $match_count; $i++)
    {
        $before_replace = $matches[1][$i];
        $after_replace = $matches[1][$i];

        ////////// CODE HIGHLIGHT
        $code_highlight_rand = rand(1000, 1000000000);
        $after_replace = str_replace(array(':', '[', ']', '(', ')', '{', '}', '&quot;', '&lt;', '&gt;', '&amp;', '<'.'?', '<'.'?php', '?'.'>', '\\\\', '\\"', "\\'", '\\'), array(':', '[', ']', '(', ')', '{', '}', '"', '<', '>', '&', '/*'.chr(127).$code_highlight_rand.chr(127).'?*/', '/*'.chr(127).$code_highlight_rand.chr(127).'?php*/', '/*?'.chr(127).$code_highlight_rand.chr(127).'*/', chr(127).($code_highlight_rand+1).chr(127), chr(127).($code_highlight_rand+2).chr(127), chr(127).($code_highlight_rand+3).chr(127), chr(127).($code_highlight_rand+4).chr(127)), $after_replace);
        $after_replace = preg_replace('/<\/(script)>/i', '</'.chr(127).$code_highlight_rand.'x$1x'.$code_highlight_rand.chr(127).'>', $after_replace);
        $after_replace = highlight_string('<'.'?' . $after_replace . '?'.'>', 1);
        $after_replace = str_replace('&nbsp;', ' ', $after_replace);
        if (strpos($after_replace, '</font>')) $after_replace = preg_replace(array('/<font color="/i', '/<\/font>/i'), array('<span style="color: ', '</span>'), $after_replace);
        $code_highlight_color = preg_match("/<span style=\"color: ?(#[0-9A-F]{6})\">&lt;\?/i", $after_replace, $code_highlight_color) ? $code_highlight_color[1] : '';
        $after_replace = preg_replace(array("/^<code>(.*)&lt;\?/iseU", "/\?&gt;(.*)<\/code>$/iseU"), array('str_replace("\n", "", "$1")', 'str_replace("\n", "", "$1")'), $after_replace);
       
        // Make PHP functions links:
        include_once($phpbb_root_path . 'includes/code_highlight_php.php');
        $after_replace = preg_replace_callback('/\/\*'.chr(127).$code_highlight_rand.chr(127).'\?\*\/.*\/\*\?'.chr(127).$code_highlight_rand.chr(127).'\*\//sU', 'code_highlight_php', $after_replace);
       
        $after_replace = str_replace(array('/*'.chr(127).$code_highlight_rand.chr(127).'?*/', '/*'.chr(127).$code_highlight_rand.chr(127).'?php*/', '/*?'.chr(127).$code_highlight_rand.chr(127).'*/', chr(127).($code_highlight_rand+1).chr(127), chr(127).($code_highlight_rand+2).chr(127), chr(127).($code_highlight_rand+3).chr(127), chr(127).($code_highlight_rand+4).chr(127)), array('<span style="color: '.$code_highlight_color.'">&lt;?</span>', '<span style="color: '.$code_highlight_color.'">&lt;?php</span>', '<span style="color: '.$code_highlight_color.'">?&gt;</span>', '\\\\', '\\"', "\\'", '\\'), $after_replace);
        $after_replace = preg_replace(array('/'.chr(127).$code_highlight_rand.'x(script)x'.$code_highlight_rand.chr(127).'/i', "/<span style=\"color: ?#[0-9A-F]{6}\">([ \t\n]*<span style=\"color: ?#[0-9A-F]{6}\">[^<>]+<\/span>[ \t\n]*)<\/span>/i", "/<span style=\"color: ?#[0-9A-F]{6}\">([ \t\n]*)<\/span>/i"), array('$1', '$1', '$1'), $after_replace);
       
        // Make tab marks:
        $after_replace = preg_replace("/> ( *)/i", '><span class="tab">&nbsp;$1</span>', $after_replace);
       
        // Make line numeration:
        $after_replace_lines = spliti("<br ?/?>", $after_replace);
        for ($code_highlight_i = 0, $code_highlight_tmp = '', $code_highlight_stop = count($after_replace_lines), $code_highlight_stop2 = strlen($code_highlight_stop); $code_highlight_i < $code_highlight_stop; $code_highlight_i++)
        {
            $code_highlight_num = strrev($code_highlight_i + 1);
            $code_highlight_tmp .= '<span class="n">';
            for ($code_highlight_j = $code_highlight_stop2 - 1, $code_highlight_num_tmp = ''; $code_highlight_j >= 0; $code_highlight_j--)
            {
                $code_highlight_num_tmp .= '<img src="images/nums/' . ($code_highlight_j >= strlen($code_highlight_num) ? 'blank' : substr($code_highlight_num, $code_highlight_j, 1)) . '.png" alt="" />';
            }
            $code_highlight_tmp .= $code_highlight_num_tmp . '</span>' . $after_replace_lines[$code_highlight_i];
            if ($code_highlight_i < count($after_replace_lines) - 1) $code_highlight_tmp .=  '<br />';
        }
        $after_replace = $code_highlight_tmp;
        // Do not parse smilies:
        $after_replace = str_replace(array(':', '[', ']', '(', ')', '{', '}'), array(':', '[', ']', '(', ')', '{', '}'), $after_replace);
        ////////// /CODE HIGHLIGHT


/*
        // Special chars
        $code_entities_match = array('&lt;', '&gt;', '&quot;', ':', '[', ']', '(', ')', '{', '}');
        $code_entities_replace = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}');
        $after_replace = str_replace($code_entities_match, $code_entities_replace, $after_replace);

        $after_replace = str_replace(array('&', '&amp;amp;'), '&amp;', $after_replace);

        $code_entities_match = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}');
        $code_entities_replace = array('&lt;', '&gt;', '&quot;', ':', '[', ']', '(', ')', '{', '}');
        $after_replace = str_replace($code_entities_match, $code_entities_replace, $after_replace);


        // Replace 2 spaces with "&nbsp; " so non-tabbed code indents without making huge long lines.
        $after_replace = str_replace("  ", "&nbsp; ", $after_replace);
        // now Replace 2 spaces with " &nbsp;" to catch odd #s of spaces.
        $after_replace = str_replace("  ", " &nbsp;", $after_replace);

        // Replace tabs with "&nbsp; &nbsp;" so tabbed code indents sorta right without making huge long lines.
        $after_replace = str_replace("\t", "&nbsp; &nbsp; ", $after_replace);

        // now Replace space occurring at the beginning of a line
        $after_replace = preg_replace("/^ {1}/m", '&nbsp;', $after_replace);
*/
        $str_to_match = "[code:1:$uid]" . $before_replace . "[/code:1:$uid]";

        $replacement = $code_start_html;
        $replacement .= $after_replace;
        $replacement .= $code_end_html;

        $text = str_replace($str_to_match, $replacement, $text);



    }

    // Now, do all the non-first-level matches. These are simple.
    $text = str_replace("[code:$uid]", $code_start_html, $text);
    $text = str_replace("[/code:$uid]", $code_end_html, $text);

    return $text;

} // bbencode_second_pass_code()
_________________
Support | Pomoc | Modyfikacja | Zlecenie płatne - zapraszam na PW oraz pod moim adresem.
Nie udzielam w GG.
 
     
tosiek


Pomógł: 109 razy
Posty: 1418
Wysłany: 14-08-2008, 17:10   

Coraz lepeij ale nadal nie działa najlepiej ;/
_________________
Naprawa krzaczków oraz chińskich literek, przywracanie polskich znaków jak i przenoszenie forów to codzienność... wczorajszość i jutrzejszość.
tosiek - istota śmiertelna, potrafiąca umierać do trzech razy...
 
     
They2


Pomógł: 82 razy
Posty: 1297
Wysłany: 14-08-2008, 17:30   

te kody wyzej co wkleilem tutaj to zamienili na jakies znaki i jest zle.

zalaczylem nowa instrukcje ode mnie.
 
     
tosiek


Pomógł: 109 razy
Posty: 1418
Wysłany: 14-08-2008, 18:07   

Po instalacja z twojej instrukcji niby działa :) Ale po co jest ta instrukcja delete skoro to co podałeś do instalacji nie zawiera tego ? :)


Wszystko już działa dzięki za instrukcję :)
_________________
Naprawa krzaczków oraz chińskich literek, przywracanie polskich znaków jak i przenoszenie forów to codzienność... wczorajszość i jutrzejszość.
tosiek - istota śmiertelna, potrafiąca umierać do trzech razy...
 
     
warna



Pomógł: 475 razy
Posty: 2335
Wysłany: 14-08-2008, 19:21   

No jak nie działa, skoro wkleiłem do siebie na testowym czystym forum i trybi?
 
     
tosiek


Pomógł: 109 razy
Posty: 1418
Wysłany: 14-08-2008, 20:27   

warna napisał/a:
czystym

Czyste a luknij w check files moje :) ale to była pierwsza modyfikacja bbcode.php ;)

Ale u mnie też działa po instalacji z instrukcji they-a
_________________
Naprawa krzaczków oraz chińskich literek, przywracanie polskich znaków jak i przenoszenie forów to codzienność... wczorajszość i jutrzejszość.
tosiek - istota śmiertelna, potrafiąca umierać do trzech razy...
 
     
Gadatliwa Kasia 

   
Radek



Pomógł: 955 razy
Posty: 4614
Wysłany: 14-08-2008, 21:46   

tosiek,
tosiek napisał/a:
ale to była pierwsza modyfikacja bbcode.php ;)

A poprawienie tego moda opierało się własnie na edycji pliku.
U mnie też śmigało bez problemów, tak jak u warny.
They, czemu kazałeś wyrzucić ten:
Kod:
        // Replace 2 spaces with "&nbsp; " so non-tabbed code indents without making huge long lines.
        $after_replace = str_replace("  ", "&nbsp; ", $after_replace);
        // now Replace 2 spaces with " &nbsp;" to catch odd #s of spaces.
        $after_replace = str_replace("  ", " &nbsp;", $after_replace);

        // Replace tabs with "&nbsp; &nbsp;" so tabbed code indents sorta right without making huge long lines.
        $after_replace = str_replace("\t", "&nbsp; &nbsp; ", $after_replace);

        // now Replace space occurring at the beginning of a line
        $after_replace = preg_replace("/^ {1}/m", '&nbsp;', $after_replace);

fragment?
Akurat to się przyda - zapobiega 'rozwalaniu się' widoku tematu i zamienia wszystkie spacje z początku linii na jedną. Z kodem html potrzebnym do funkcjonowania moda nic wspólnego to nie ma.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!

Powered by phpBB modified by Przemo © 2003 phpBB
Strona wygenerowana w 0,21 sekundy. Zapytań do SQL: 13
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

Design Cart - Tworzenie sklepu internetowego

iRonin.IT

https://nabea.pl

• Zamów reklamę