This was an extremely quick project to turn spreadsheet data into an XHTML table. The plugin is quite simple to use, just copy some data from a spreadsheet ( or the visible part of an XHTML table) and paste it into a blog post between the tags [table] and [/table] (make sure that columns are tab separated and rows are on their own line). This is a no frills plugin. The first row is used as the column names and is added to a thead tag. Anything can be added to the [table] tag after “table” and it will become the table’s caption. EX [table "This is an example table"]
So this:
[table "This is an example table"]
gf sfg sfcx dfg
asd sd dsfs
xcv fds sgdf
dfg dfg dfg
dfg dfg dfg
[/table]
Becomes:
| gf | sfg | sfcx | dfg |
| asd | sd | dsfs | |
| xcv | fds | sgdf | |
| dfg | dfg | dfg | |
| dfg | dfg | dfg |
Installation:
- Copy and Paste the contents of the texbox below into a .php file.
- Upload and activate.
<?php
/*
Plugin Name: Tabeler
Plugin URI: http://anthologyoi.com/plugins/
Description: This plugin allows you to copy data directly from a spreadsheet and paste it into your blog, and will automatically create a table for it.
Version: 0.1
Author: Aaron Harun.
Author URI: http://anthologyoi.com
*/
add_filter('the_content','tabler_find',1);
add_filter('the_excerpt','tabler_find',1);
function tabler_find($content) {
return preg_replace_callback('!\[table([^]]*)\](?:\r\n|\n|\r|)([\S\s]*?\t[\S\s]*?)(?:\r\n|\n|\r|)\[/table\]!ims', 'tabler_callback', $content);
}
function tabler_callback($matches) {
$pos_table = $matches[2];
if(strpos($pos_table,chr(13)) !== FALSE){
$rows = explode(chr(13),$pos_table);
}else{
$rows = explode("\n",$pos_table);
}
if(is_array($rows)){
if($rows > 1){
$table .= '<table>';
foreach($rows as $row){
$i++;
$cols = explode("\t",$row);
if($i==1)
$table .= '<thead>';
$table .= '<tr>';
foreach($cols as $col){
$table .= '<td>'.$col.'</td>';
}
$table .= '</tr>';
if($i==1){
$table .= '</thead>';
$table .= '<tbody>';
}
}
$table .= '</tbody>';
$table .= '</table>';
return $table;
}
}
}
?>