2015-09-19 25 views
6

Sto cercando di cambiare lo stile di tabella per , poiché continua a emettere questo.CKeditor - Cambia tabella di stile

<table class="ckeditor_table" style="width: 100%;border-collapse:collapse;border-spacing:0;table-layout:fixed;border: 2px solid #333;background:#fff;"><tr><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td></tr><tr><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td></tr><tr><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
    </td><td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;"> 
</table> 

voglio qualcosa di output come questo, invece.

<table class="table"> 
<tr> 
<td></td> 
<td></td> 
<td></td> 
</tr> 
</table> 

Come è possibile rendere ciò possibile? Ho provato config.allowedContent = true; ma non ha funzionato, restituisce ancora lo sfondo bianco fastidioso sul mio tema scuro.

Sto utilizzando il plugin per MyBB.

risposta

3

Quando si guarda lo source code del plug-in mybb ckeditor, è possibile vedere che stampano lo stile in linea inviato.

while(preg_match("#\[table\](.*?)\[/table\]#si", $m, $m1)) 
{ 
    while(preg_match("#\[tr\](.*?)\[/tr\]#si", $m1[1], $m2)) 
    { 
     $m2[1] = preg_replace("#\[td\](.*?)\[/td\]#si", '<td style="border: 1px dashed #999;padding: 3px 5px;vertical-align: top;min-height:20px;">$1</td>', $m2[1]); 
     $m1[1] = str_replace($m2[0], '<tr>'.$m2[1].'</tr>', $m1[1]); 
    } 
    $m = str_replace($m1[0], '<table class="ckeditor_table" style="width: 100%;border-collapse:collapse;border-spacing:0;table-layout:fixed;border: 2px solid #333;background:#fff;">'.$m1[1].'</table>', $m); 
} 

è possibile rimuovere lo stile in linea dal file 'inc/plugins/ckeditor/hooks.php', ma questo è una cattiva pratica (problemi quando l'aggiornamento).

Così ho scritto uno small plugin, che è possibile copiare nella cartella del plugin e attivare (il nome del file dovrebbe essere cktableoverride.php).
Il plugin si aggancia allo stesso evento che il plugin ckeditor utilizza per sovrascrivere il modello. Quando il plugin è attivato, otterrai una struttura di tabella senza stili in linea, quindi puoi modificarla tramite css (o aggiungere il tuo stile in linea nel codice del plugin).

+0

Grazie mille! Andrò avanti e provalo stasera! –

Problemi correlati