WordPress database error: [Table './norisit-wordpress/wp_useronline' is marked as crashed and should be repaired]
DELETE FROM wp_useronline WHERE ip = '38.107.191.110' OR (timestamp < 1280588276)

WordPress database error: [Table './norisit-wordpress/wp_useronline' is marked as crashed and should be repaired]
INSERT INTO wp_useronline VALUES ('1280588576', '0', 'guest', 'Guest', 'CCBot/1.0 (+http://www.commoncrawl.org/bot.html)', '38.107.191.110', 'Norisberghen, ancora per passione! &raquo; Blog Archive &raquo; Modificare IG Sintax Hiliter per renderlo &#8220;fluido&#8221; e maggiormente compatibile con IE sotto Windows', '%2Fit%2F%3Fp%3D97', 'guest', '')

WordPress database error: [Table './norisit-wordpress/wp_useronline' is marked as crashed and should be repaired]
SELECT COUNT(*) FROM wp_useronline

I WordCamp

Modificare IG Sintax Hiliter per renderlo “fluido” e maggiormente compatibile con IE sotto Windows

24 September 2006 - Scritto da Carlo Filippo Follis per WP Codice e Plug-in
1 Stelletta2 Stellette3 Stellette4 Stellette5 Stellette Loading ... Loading ... Stampa il Post Invia questo post per e-mail
WP Codice e Plug-in

Pochi giorni fa ho inserito in Norisberghen.it il Plug-In IG Sintax Hiliter. Strumento splendido per pubblicare del Codice in maniera tale che mantenga l'aspetto originale e sia facilmente copiabile e riutilizzabile. Si presentavano però alcuni problemi legati alla compatibilità con il tema e con la visualizzazione sotto Windows tramite Internet Explorer. Analizziamo l'operazione per punti.

Quali erano i problemi?

Le Div in cui veniva inserito il Codice con relativa etichetta erano a larghezza fissa di 511 pixel, se tale misura può andar bene per il tema di defaul di WordPress non è detto che si adatti al nostro.
Nel caso di Norisberghen.it le Div risultavano troppo larghe e si sovrapponevano alla colonna dei Banner per quanto concerne le prove fatte sotto l'OS X di Apple con Safari e FireFox.
Più grave il problema sotto Windows con Internet Explorer. In questo caso l'articolo e gli altri contenuti scivolava in cantina ... Si poteva recuperare laddove finivano le colonne Advertising e Sidebar relativamente contenitori di Banners e Menù.

Era necessaria una modifica che si adattasse al tema grafico e sposasse la compatibilità con IE per Windows.

I files su cui lavorare

Vi evito l'elencazione di tutti i files che compongono il Plug-In. Prendiamo in esame solo quelli da modificare.

  1. wp-content/plugins/syntax_hilite.php
  2. wp-content/plugins/ig_syntax_hilite/css/
    syntax_hilite_css.css

Vediamo ora che modifiche vanno apportate.

Le modifiche

Partiamo con syntax_hilite.php che genera la struttura di Div per la pubblicazione del Codice. La struttura si presenta così:

HTML:
  1. <div class="igBar"><span id="lphp-1"><a href="#" onclick="javascript:showPlainTxt('php-1'); return false;">Codice</a></span></div>
  2.     <div class="syntax_hilite"><span class="langName">PHP:</span><br />
  3.         <div id="php-1">
  4.             <div class="php">
  5.                 <ol>
  6.                     <li></li>
  7.                 </ol>
  8.             </div> <!-- end  class="php" -->
  9.         </div> <!-- end id="php-1" -->
  10.     </div> <!-- end class="syntax_hilite" -->
  11.  <!-- end class="igBar" -->

Per ottenere un layout fluido ho scelto di inserire una Div supplementare con l'introduzione della Classe .igBarArea ottenendo una struttura del tipo:

HTML:
  1. <div class="igBarArea">
  2.     <div class="igBar"><span id="lphp-1"><a href="#" onclick="javascript:showPlainTxt('php-1'); return false;">Codice</a></span></div>
  3.         <div class="syntax_hilite"><span class="langName">PHP:</span><br />
  4.             <div id="php-1">
  5.                 <div class="php">
  6.                     <ol>
  7.                         <li></li>
  8.                     </ol>
  9.                 </div> <!-- end  class="php" -->
  10.             </div> <!-- end id="php-1" -->
  11.         </div> <!-- end class="syntax_hilite" -->
  12.     </div> <!-- end class="igBar" -->
  13.  <!-- end class="igBarArea" -->

Per raggiungere lo scopo bisogna modificare il Codice PHP così:

PHP:
  1. <?php
  2.     function pFix($hLang='PHP', $bId, $bCls='syntax_hilite') {
  3.         $bBody = "";
  4.         $bId = strtolower($bId);
  5.         if(IG_PLAIN_TEXT) {
  6.             //show the PLAIN TEXT View
  7.             if(IG_PLAIN_TEXT_TYPE=="inbox") {
  8.                 $ig_jsPlainTxt = "showPlainTxt";
  9.             } else {
  10.                 $ig_jsPlainTxt = "showCodeTxt";
  11.             }
  12. //  |_^_^_^_|
  13. //  Originale:
  14. //      $bBody .= "<div class=\"igBar\"><span id=\"l{$bId}\"><a href=\"#\" onclick=\"javascript:{$ig_jsPlainTxt}('{$bId}'); return false;\">Codice</a></span>";
  15.             $bBody .= "<div class=\"igBarArea\"><div class=\"igBar\"><span id=\"l{$bId}\"><a href=\"#\" onclick=\"javascript:{$ig_jsPlainTxt}('{$bId}'); return false;\">Codice</a></span></div>";
  16.         }
  17.         if(IG_SHOW_LANG_NAME) {
  18.             $bBody .= "<div class=\"{$bCls}\"><span class=\"langName\">{$hLang}:</span><br /><div id=\"{$bId}\">\n";
  19.         } else {
  20.             $bBody .= "<div class=\"{$bCls}\"><div id=\"{$bId}\">\n";
  21.         }
  22.         return $bBody;
  23.     }   // END pFix
  24.  
  25.     // Function for Suffixing the DIV
  26.     /**
  27.     * @return Ending <div> for the CODE BOX
  28.     * @param $bId
  29.     * @desc This is the function for suffixing the end portion of the <div> code box
  30.     */
  31.     function sFix() {
  32. //  |_^_^_^_|
  33. //  Originale:
  34. //    $bBody = "\n</div></div><br />";
  35.         $bBody = "\n</div></div></div><br />";
  36.         return $bBody;
  37.     }   // END sFix
  38. </div></div> // Queste due Div non consideratele. Sono state inserite per ovviare ad un Bug di IG Sintax Hilite che, in questo caso, interferisce con la struttura della pagina.

Le modifiche sono contemplate nelle righe immediatamente successive a quelle commentate con "//": Vi state chiedendo cosa significhi il simbolo "|_^_^_^_|"? È una sequenza di caratteri che colloco per marcare i punti di inserimento delle modifiche; grazie a BBEdit ed alle sue ricerche sono così in grado di rintracciare ed elencare ogni modifica. Torniamo a noi ...
Avrete certamente notato l'inserimento della Div e la sua chiusura, ora bisogna agire sui CSS di syntax_hilite_css.css.
Le Classi modificate sono: .igBar e .syntax_hilite. oltre all'introduzione di .igBarArea. Il file originale era:

CSS:
  1. .syntax_hilite, li .syntax_hilite {
  2.     padding:3px 3px 10px 8px; border:1px solid #303130; background-color:#FEFEFE;
  3.     font-size:13px; font-family:'Courier New',Courier,monospace;
  4.     /* comment the line below to remove scrolling in code boxes */
  5.     overflow:auto; white-space:nowrap;
  6. }
  7. /* change this line to set the width of code box */
  8. .syntax_hilite { width:500px; }
  9. /* change this line to set the width of code box in a list */
  10. li .syntax_hilite { width:460px; }
  11. .igBar, li .igBar {
  12.     background-color:#D6D3CE; font-family:courier,arial,verdana;
  13.     border-left:1px solid #EEEEEE; border-top:1px solid #EEEEEE;
  14.     border-right:1px solid #424142;
  15. }
  16. /* change this line to set the width of plain text bar above code box */
  17. .igBar { width:511px; }
  18. /* change this line to set the width of plain text bar above code box in a list */
  19. li .igBar { width:471px; }
  20. .igBar a, .igBar a:hover {
  21.     margin:0px 5px 0px 10px; font-weight:bold; color:#000000;
  22.     text-decoration:none;
  23. }
  24. .syntax_hilite .langName { color:#000000; font-weight:bold; }
  25. .syntax_hilite textarea { margin:0px -5px -2px 0px; border:none; }

Mentre quello modificato risulterà essere così:

CSS:
  1. .igBarArea { /* AGGIUNTA */
  2.     margin: 0;
  3.     padding: 0 1em;
  4. }
  5. .syntax_hilite, li .syntax_hilite {
  6.     padding:3px 3px 10px 8px; border:1px solid #303130; background-color:#FEFEFE;
  7.     font-size:13px; font-family:'Courier New',Courier,monospace;
  8.     /* comment the line below to remove scrolling in code boxes */
  9.     overflow:auto; white-space:nowrap;
  10. }
  11. /* change this line to set the width of code box */
  12. .syntax_hilite {width: 90%;}
  13. /* change this line to set the width of code box in a list */
  14. li .syntax_hilite {width: 90%;}
  15. .igBar, li .igBar {
  16.     font-family:courier,arial,verdana;
  17. }
  18. /* change this line to set the width of plain text bar above code box */
  19. .igBar {/* width:450px; */}
  20. /* change this line to set the width of plain text bar above code box in a list */
  21. li .igBar {}
  22. .igBar a, .igBar a:hover {
  23.     margin:0px 5px 0px 10px; font-weight:bold; color:#000000;
  24.     text-decoration:none;
  25. }
  26. .syntax_hilite .langName { color:#000000; font-weight:bold; }
  27. .syntax_hilite textarea { margin:0px -5px -2px 0px; border:none; }

Il padding di .igBarArea può essere ridotto, a piacimento, sino a zero.

Il risultato

Ora le Div sono fluide e si adattano bene alla larghezza della colonna Contenuti ed Internet Explorer per Windows è contento delle modifiche ...

Segnalazione

Nel caso cercaste di inserire del Codice non riuscendoci perché il sistema e/o WordPress si rifiutano di accettalo, convertitelo nel formato Unicode UTF-8. Se utilizzate un Editor come BBEdit non dovreste aver problemi.

In conclusione

Sono soddisfatto, lo sarei di più se riuscissi a capire come mai a destra delle Div compare un padding maggiore rispetto a quello di sinistra che appare correttamente impostato ad 1em.
Se scoprite l'arcano, postate la soluzione ...

Articoli correlati:

Scrivi un commento

Codice di sicurezza:

(*) I campi contrassegnati con l'astarisco vanno compilati, altrimenti il commento non verrà neppure accettato dal sistema.

     

Subscribe without commenting

Articoli recenti

Ricerca anche per ...

Global Translator

Italiano flagInglese flag
By N2H

Utenti Online

Pagine

Archivi

Curiosità & ...

Mailing List

Categorie

Articoli più letti

Commenti recenti

Un sostegno

Questo sito non ha altre risorse che il Tuo contributo ...

Grazie!