2015-09-19 10 views
6

Próbuję zmienić styl tabeli na , ponieważ utrzymuje to wyjście.CKeditor - Zmień styl tabeli

<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> 

Chcę wyjściowego coś takiego zamiast.

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

Jak mogę to zrobić? Próbowałem już config.allowedContent = true;, ale to nie zadziałało, nadal wysyła denerwujące białe tło na mój ciemny motyw.

Używam wtyczki dla MyBB.

Odpowiedz

3

Kiedy patrzysz na source code wtyczki mykb ckeditor, możesz zobaczyć, że wydrukują opublikowany przez Ciebie napis inline.

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); 
} 

Można usunąć styl inline z 'inc/plugins/CKEditor/hooks.php' pliku, ale to jest złą praktyką (problemy przy aktualizacji).

Napisałem więc small plugin, który można skopiować do folderu wtyczki i aktywować (nazwa pliku powinna być cktableoverover.php).
Wtyczka podłącza się do tego samego zdarzenia, którego używa plugin ckeditor, aby nadpisać szablon. Po aktywowaniu wtyczki otrzymasz strukturę tabeli bez wbudowanych stylów, dzięki czemu możesz ją zaprojektować za pomocą css (lub dodać własny styl w kodzie wtyczki).

+0

Dziękuję bardzo! Pójdę do przodu i wypróbuję to dziś wieczorem! –