[Modanpassung] ASCII bbcode Firefox tauglich machen

Support zum phpBB2 und zu MODs anderer Autoren.

Moderator: Supporter

[Modanpassung] ASCII bbcode Firefox tauglich machen

Beitragvon senyafin » 15. Dez 2006 09:40

Hallo zusammen,

es gibt eine Mod mit der man mittels bbcode ASCII Artwork darstellen kann.
Wer nichts mit dem Begriff anfangen kann der findet hier ein paar Beispiele.

Jetzt gibt es einen entsprechenden Code [der so genannte NFO bbcode] und der funktioniert auch prima. Selbst bei mir und das ist eher schwierig da ich den XS bbcode eingebaut habe und der mit den ursprünglichen bbcode vom phpBB nix gemein hat.

So - was ist nun das Problem.
Der Code ist quasi ein Klon vom Quote bbcode. Eine Korrekte Anzeige der ASCII Texte geht nur im Internet Explorer 6, Firefox und Seamonkey mögen den nicht.

Jetzt würde ich gerne wissen, ob und wie man den Code anpassen muss, damit auch in diesen Browsern der gewünschte Effekt eintritt.

Ich vermute mal, dass es schwierig sein wird bei einem von euch nicht in Benutzung befindlichen Code die Stelle zu ermitteln, die für das Verhalten verantwortlich zeichet.
Ich poste den Code trotzdem mal, evtl. kann ja doch jemand helfen.


Code: Alles auswählen
#
#-----[ OPEN ]-------------------------------------------------------
#

includes/bbcode.php

#
#-----[ FIND ]-------------------------------------------------------
#

      // tag 
      'rquote' => array( 
         'nested'   => false, 
         'inurl'      => false, 
         'allow_empty'   => true,   
      ),

#
#-----[ AFTER, ADD ]-------------------------------------------------
#

      // nfo
      'nfo'   => array(
         'nested'   => true,
         'nest_level'   => 2,
         'inurl'      => false,
      ),

#
#-----[ FIND ]-------------------------------------------------------
#

      /**
       *   QUOTE
       */
      if($tag === 'quote' || $tag === 'blockquote') 
      { 
         if($this->is_sig) 
         { 
            return $error; 
         } 
         if($item['iteration'] > $this->nest_level) 
         { 
            return $error; 
         } 
         // check user 
         $user = ''; 
         $url = ''; 
         $this_page = ''; 
         if(isset($item['params']['param'])) 
         { 
            if(substr(strtolower($item['params']['param']), 0, 4) === 'www.') 
            { 
               $url = 'http://' . $item['params']['param']; 
            } 
            elseif(substr(strtolower($item['params']['param']), 0, 7) === 'http://') 
            { 
               $url = $item['params']['param']; 
            } 
            else 
            { 
               $user = htmlspecialchars($item['params']['param']); 
            } 
         } 
         elseif(isset($item['params']['user'])) 
         { 
            $user = htmlspecialchars($item['params']['user']); 
            if(isset($item['params']['userid'])) 
            { 
               $user = '<a href="profile.php?mode=viewprofile&amp;u=' . $item['params']['userid'] . '">' . $user . '</a>'; 
            } 
         } 
         // generate html 
         $html = '<blockquote class="quote"'; 
         if(isset($item['params']['url']) || $url) 
         { 
            if(!$url) 
            { 
               $url = $item['params']['url']; 
            } 
            // check for invalid urls 
            $url = $this->valid_url($url, ''); 
            // check for incomplete url 
            if(substr(strtolower($url), 0, 4) === 'www.') 
            { 
               $url = 'http://' . $url; 
            }             
            $html .= ' cite="' . $url . '"'; 
            $this_page = sprintf($lang['xs_bbc_page'], '<a href="' . $url . '" target="_blank">', '</a>'); 
         } 
         elseif(isset($item['params']['post']) && intval($item['params']['post'])) 
         { 
            $html .= ' cite="viewtopic.php?p=' . intval($item['params']['post']) . '#' . intval($item['params']['post']) . '"'; 
            $this_post = sprintf($lang['xs_bbc_post'], '<a href="./viewtopic.php?p=' . intval($item['params']['post']) . '#' . intval($item['params']['post']) . '">', '</a>'); 
         } 
         else 
         { 
            $this_post = ''; 
         } 
         $html .= '>'; 
         if($this_page) 
         { 
            $html .= '<div class="quote-user">' . $this_page . ':</div>'; 
         } 
         elseif($user) 
         { 
            $html .= '<div class="quote-user">' . $user . ' ' . $lang['wrote'] . $this_post . ':</div>'; 
         } 
         else 
         { 
            $html .= '<div class="quote-nouser">' . $lang['Quote'] . ':</div>'; 
         } 
         $html .= '<div class="quote-message">'; 
         return array( 
            'valid'        => true, 
            'start'        => $html, 
            'end'        => '</div></blockquote>' 
         ); 
      }

#
#-----[ REPLACE WITH ]-----------------------------------------------
#

      /**
       *   QUOTE
       */
      if($tag === 'quote' || $tag === 'blockquote' || $tag === 'nfo') 
      { 
         if($this->is_sig) 
         { 
            return $error; 
         } 
         if($item['iteration'] > $this->nest_level) 
         { 
            return $error; 
         } 
         // check user 
         $user = ''; 
         $url = ''; 
         $this_page = ''; 
         if(isset($item['params']['param'])) 
         { 
            if(substr(strtolower($item['params']['param']), 0, 4) === 'www.') 
            { 
               $url = 'http://' . $item['params']['param']; 
            } 
            elseif(substr(strtolower($item['params']['param']), 0, 7) === 'http://') 
            { 
               $url = $item['params']['param']; 
            } 
            else 
            { 
               $user = htmlspecialchars($item['params']['param']); 
            } 
         } 
         elseif(isset($item['params']['user'])) 
         { 
            $user = htmlspecialchars($item['params']['user']); 
            if(isset($item['params']['userid'])) 
            { 
               $user = '<a href="profile.php?mode=viewprofile&amp;u=' . $item['params']['userid'] . '">' . $user . '</a>'; 
            } 
         } 
         if( $tag !== 'nfo' )
         {
            // generate html
            $html = '<blockquote class="quote"'; 
            if(isset($item['params']['url']) || $url) 
            { 
               if(!$url) 
               { 
                  $url = $item['params']['url']; 
               } 
               // check for invalid urls 
               $url = $this->valid_url($url, ''); 
               // check for incomplete url 
               if(substr(strtolower($url), 0, 4) === 'www.') 
               { 
                  $url = 'http://' . $url; 
               }             
               $html .= ' cite="' . $url . '"'; 
               $this_page = sprintf($lang['xs_bbc_page'], '<a href="' . $url . '" target="_blank">', '</a>'); 
            } 
            elseif(isset($item['params']['post']) && intval($item['params']['post'])) 
            { 
               $html .= ' cite="viewtopic.php?p=' . intval($item['params']['post']) . '#' . intval($item['params']['post']) . '"'; 
               $this_post = sprintf($lang['xs_bbc_post'], '<a href="./viewtopic.php?p=' . intval($item['params']['post']) . '#' . intval($item['params']['post']) . '">', '</a>'); 
            } 
            else 
            { 
               $this_post = ''; 
            } 
            $html .= '>'; 
            if($this_page) 
            { 
               $html .= '<div class="quote-user">' . $this_page . ':</div>'; 
            } 
            elseif($user) 
            { 
               $html .= '<div class="quote-user">' . $user . ' ' . $lang['wrote'] . $this_post . ':</div>'; 
            } 
            else 
            { 
               $html .= '<div class="quote-nouser">' . $lang['Quote'] . ':</div>'; 
            } 
            $html .= '<div class="quote-message">'; 
            return array( 
               'valid'        => true, 
               'start'        => $html, 
               'end'        => '</div></blockquote>' 
            ); 
         }
         else
         {
            // generate html
            $html = '<blockquote class="quote">';
            $html .= '<div class="quote-nouser">' . $lang['xs_bbc_nfo'] . ':</div>';
            $html .= '<div class="nfo">';
            return array(
               'valid'      => true,
               'start'      => $html,
               'end'      => '</div></blockquote>'
               );
         }         
      }

#
#-----[ OPEN ]-------------------------------------------------------
#

language/lang_english/lang_main.php

#
#-----[ FIND ]-------------------------------------------------------
#

$lang['xs_bbc_syntax_used'] = 'The following is using: %s syntax highlighting.';

#
#-----[ AFTER, ADD ]-------------------------------------------------
#

$lang['xs_bbc_nfo'] = 'NFO';

#
#-----[ OPEN ]-------------------------------------------------------
#

templates/ca_aphrodite/style.css

#
#-----[ FIND ]-------------------------------------------------------
#

.countdown-contents { 
   padding-left: 5px; 
   padding-right: 5px; 
   padding-bottom: 5px; 
   line-height: 1.5;
   text-align: center;


#
#-----[ AFTER, ADD ]-------------------------------------------------
#

.nfo {
   color: #000000;
   font-weight: normal;
   font-family: Terminal;
   font-size: 11px;
   background-color: #EEEEEE;
   border: solid 1px #666666;
   line-height: 75%;
}

#
#-----[ SAVE/CLOSE ALL FILES ]---------------------------------------
#
# EoM
senyafin
User
 
Beiträge: 73
Registriert: 21. Nov 2006 08:52

Beitragvon AmigaLink » 17. Dez 2006 08:24

Da muss ich leider passen. :?
Nach kurzem Überfliegen des Codes, konnte ich entdecken das er mit dem HTML-Tag Blockquote Arbeitet. Blockquote wiederum wird vom Firefox derzeitig nicht Unterstützt bzw. ist fehlerhaft.
Da kannst du eigentlich nur auf eins der ächsten FF-Updates hoffen.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon senyafin » 17. Dez 2006 11:03

Danke für dein Feedback AmigaLink!

LG und schönen dritten Advent
senyafin
User
 
Beiträge: 73
Registriert: 21. Nov 2006 08:52


Zurück zu phpBB2 Support



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste

cron