Created
September 21, 2015 14:49
-
-
Save Swimburger/de2a1aa4ea97ae6c1f97 to your computer and use it in GitHub Desktop.
Overriding table for ckeditor plugin mybb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//Disallow direct Initialization for extra security. | |
if(!defined("IN_MYBB")) | |
{ | |
die("You Cannot Access This File Directly. Please Make Sure IN_MYBB Is Defined."); | |
} | |
// Information | |
function cktableoverride_info() | |
{ | |
return array( | |
"name" => "Override CKeditor table", | |
"description"=> "A plugin to override the table html output from ckeditor", | |
"website" => "http://stackoverflow.com/questions/32663683/ckeditor-change-table-style", | |
"author" => "Niels Swimberghe", | |
"authorsite" => "http://www.sniels.com", | |
"version" => "1.0", | |
"guid" => "" | |
); | |
} | |
// Activate | |
function cktableoverride_activate() { | |
global $db; | |
$cktableoverride_group = array( | |
'gid' => 'NULL', | |
'name' => 'cktableoverride', | |
'title' => 'My First Plugin', | |
'description' => 'Settings For My First Plugin', | |
'disporder' => "1", | |
'isdefault' => "0", | |
); | |
$db->insert_query('settinggroups', $cktableoverride_group); | |
$gid = $db->insert_id(); | |
$cktableoverride_setting = array( | |
'sid' => 'NULL', | |
'name' => 'cktableoverride_enable', | |
'title' => 'Do you want to enable My First Plugin?', | |
'description' => 'If you set this option to yes, this plugin be active on your board.', | |
'optionscode' => 'yesno', | |
'value' => '1', | |
'disporder' => 1, | |
'gid' => intval($gid), | |
); | |
$db->insert_query('settings', $cktableoverride_setting); | |
rebuild_settings(); | |
} | |
// Deactivate | |
function cktableoverride_deactivate() | |
{ | |
global $db; | |
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('cktableoverride_enable')"); | |
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='cktableoverride'"); | |
rebuild_settings(); | |
} | |
$plugins->add_hook('parse_message','custom_ckeditor_parser',9); | |
function custom_ckeditor_parser($m){ | |
// Table: | |
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>$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">'.$m1[1].'</table>', $m); | |
} | |
return $m; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment