Scoutnet vzw

We connect scouts!
Het is momenteel 28 Mrt 2024 18:39

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 5 berichten ] 
Auteur Bericht
BerichtGeplaatst: 07 Jun 2007 8:13 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 02 Feb 2004 0:00
Berichten: 173
Hey,

ik zou dus graag willen dat de topics in een bepaald subforum als nieuws op mijn voorpagina verschijnen (zoals al enkele mensen hier doen). Geen probleem, alleen kan ik maar niet uitgepluisd krijgen hoe de opmaak van een post "vertaald" wordt door phpbb. Iemand hier al meer ervaring mee?

Alvast bedankt!


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 07 Jun 2007 8:47 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Mrt 2005 0:00
Berichten: 353
bedoel je dat je niet weet hoe de UBB-code (zoals bv [i]blablabla[/i]) wordt omgezet naar de gewone html (zijnde <i>blablabla</i> ) ?


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 07 Jun 2007 12:33 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 02 Feb 2004 0:00
Berichten: 173
ja, meer specifiek, hoe phpbb dat doet. In de database staat zoiets als [b:32452]blah[/b]. Dan moet er een functie zijn die dit interpreteert en omzet naar html é, maar die kan ik maar niet vinden...


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 07 Jun 2007 12:46 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Mrt 2005 0:00
Berichten: 353
in viewtopic.php:

Code:
   //
   // Parse message and/or sig for BBCode if reqd
   //
   if ($user_sig != '' && $user_sig_bbcode_uid != '')
   {
      $user_sig = ($board_config['allow_bbcode']) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace("/\:$user_sig_bbcode_uid/si", '', $user_sig);
   }

   if ($bbcode_uid != '')
   {
      $message = ($board_config['allow_bbcode']) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace("/\:$bbcode_uid/si", '', $message);
   }


en die bbencode_second_pass is terug te vinden in include/bbcode.php


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 07 Jun 2007 12:48 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 06 Jan 2005 0:00
Berichten: 127
Woonplaats: Bredene
Ik doe het zo:

Code:
  function BB_to_HTML( $content )
  {
    $content = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $content);

    $content = str_replace( "[b]", "<strong>", $content);
    $content = str_replace( "[/b]", "</strong>", $content);

    $content = str_replace( "[i]", "<em>", $content);
    $content = str_replace( "[/i]", "</em>", $content);

    $content = str_replace( "[u]", "<span class='u'>", $content);
    $content = str_replace( "[/u]", "</span>", $content);

    $content = str_replace( "[quote]", "<div class='quote'><p class='quotetext'>", $content);

    $content = preg_replace( '/\[quote:([0-9a-z]{10})="([0-9a-zA-Zé]+)"\]/', "<div class='quote'><div class='quotehead'>\$2 zei:</div><p class='quotetext'>", $content);
    $content = preg_replace( '/\[quote="([0-9a-zA-Zé ]+)"\]/', "<div class='quote'><div class='quotehead'>\$1 zei:</div><p class='quotetext'>", $content);
    $content = preg_replace( '/\[\/quote:([0-9a-z]{10})\][ \t\r\n]*/', "</p></div><br />", $content);
    $content = preg_replace( '/\[\/quote\][ \t\r\n]*/', "</p></div><br />", $content);

    $content = str_replace( "[code]", "<strong>Code</strong><em>", $content);
    $content = str_replace( "[/code]", "</em>", $content);

    $content = str_replace( "[list]", "<div class='list'>", $content);
    $content = str_replace( "[/list]", "</div>", $content);

    $content = preg_replace( '/\[list\](.*)\[\/list\]/si', "<div class=\"list\">$1</div>", $content);
    $content = preg_replace( '/\[list=(.*)\](.*)\[\/list\]/si', "<div class=\"list\">$1</div>", $content);

    $content = str_replace( "[img]", "<img class='foto' src=\"", $content);
    $content = str_replace( "[/img]", "\" alt=\"\" />", $content);

    $content = preg_replace( '/\[url\](.*)\[\/url\]/Usi', '<a href="$1">$1</a>', $content);
    $content = preg_replace( '/\[url=(.*)\](.*)\[\/url\]/Usi', '<a href="$1">$2</a>', $content);

    $content = str_replace( "\n", "<br />", $content);

    return $content;
  }


Waarschijnlijk niet volledig correct, maar ik heb er nog geen problemen meer gehad. Om de smiley's ook om te zetten heb je volgende code nodig:

Code:
  function smilies_pass( $message )
  {
     static $orig, $repl;

     if( !isset( $orig ) )
     {
        global $db, $phpbb_root_path;
        $orig = $repl = array();

        $sql = 'SELECT * FROM `phpbb_smilies`';

        if( !$result = $db->sql_query($sql) )
        {
           message_die( GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql );
        }

        $smilies = $db->sql_fetchrowset($result);

        if( count( $smilies ) )
        {
          usort( $smilies, 'smiley_sort' );
        }

        for( $i = 0; $i < count( $smilies ); $i++ )
        {
           $orig[] = "/(?<=.\W|\W.|^\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/";
           $repl[] = '<img src="' . $phpbb_root_path . 'images/smiles/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['emoticon'] . '" />';
        }
     }

     if( count( $orig ) )
     {
        $message = preg_replace( $orig, $repl, ' ' . $message . ' ' );
        $message = substr( $message, 1, -1 );
     }

     return $message;
  }

  function smiley_sort( $a, $b )
  {
     if ( strlen( $a['code'] ) == strlen( $b['code'] ) )
     {
        return 0;
     }

     return ( strlen( $a['code'] ) > strlen( $b['code'] ) ) ? -1 : 1;
  }


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 5 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 14 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
cron
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.