WP-DB-Table-Editor

0

This is a WordPress plugin that allows direct excel-like editing of tables in your WordPress database. It’s goals are to provide useful, simple, flexible database table admin screens

Version
Last updated
Active installations
WordPress Version
Tested up to
pa_languages
Rating
Total ratings
Tag
This plugin is outdated and might not be supported anymore.

Description

This is a WordPress plugin that allows direct excel-like editing of
tables in your WordPress database. It’s goals are to provide useful,
simple, flexible database table admin screens.

It supports:

  • one table per admin screen, as many admin screens as desired
    • These are organized under a new “DB Table Editor” menu item
  • excel spreadsheet like interface using SlickGrid
  • Filter and Sort results
  • Add, Edit & Delete records
  • Custom buttons extensibility
  • Custom permissions per interface for viewing and editing
    (defaults to: edit_others_posts)

    • editing defaults to the same permission as viewing if not specified
  • CSV exports of filtered grid
  • Custom primary key names (but must be a single value / column)

Adding an Interface on the fly

If we go to look up a database table editor and we dont find it, but
there is a function named dbte_create_$tbl that matches, we will call
that function expecting it to return a dbte instance. This is useful
in situations where we may not have the data for a table editor in all
circumstances (EG: not every page has a member id, so only do it on
that particular page).

Adding an Interface from a plugin

If you need to add an interface from a plugin, you should use the
admin_menu action with a lower than default priority.

eg: add_action( 'admin_menu', 'my_load_tables', -10 );

Inside of the my_load_tables function you would include all the
calls to add_db_table_editor

Custom Buttons

Buttons can be created by pushing functions into
DBTableEditor.extraButtons. Each of these is a slick grid
rowButtonFormatter and should return a string of html.

eg:
out += fn(row, cell, value, columnDef, dataContext);

The button column width can be set by setting:
DBTableEditor.buttonColumnWidth before the ready function is called

Hooks / Actions

  • db-table-editor_enqueue_scripts is an action that will be called
    after enqueueing all plugin scripts and before enqueueing jsFile
    (if it exists)

    function dbTableEditorScripts(){
    wp_register_script('employee-table-extensions-js',
    get_stylesheet_directory_uri().'/employee-table.js',
    array('db-table-editor-js'));
    }
    add_action('db-table-editor_enqueue_scripts', 'dbTableEditorScripts');

dbte_row_deleted, dbte_row_updated, dbte_row_inserted

Called after a row is deleted, updated, or inserted passes

`

add_action(‘dbte_row_deleted’, ‘my_dbte_row_deleted’, 10, 2);

function my_dbte_row_deleted($currentTable, $idRemoved){
// do things
}

add_action(‘dbte_row_updated’, ‘my_dbte_row_upserted’, 10, 4);
add_action(‘dbte_row_inserted’, ‘my_dbte_row_upserted’, 10, 4);

function my_dbte_row_upserted($currentTable, $values, $columns, $indexedModified){
// do things
}

`

Shortcodes

You can use a shortcode to include a dbte interface on a wordpress
page. Please use with care.

[dbte id=table-editor-id] – (id defaults to table)

Caveats

  • Dont put an editable table editor on your public facing screens using the shortcode!

Troubleshooting

Feel free to ask support questions / open trouble tickets

  • https://wordpress.org/support/plugin/wp-db-table-editor
  • https://github.com/AccelerationNet/wp-db-table-editor/issues

Advanced Examples

Custom Javascript and Buttons on the table editor

See: examples/custom-buttons-and-js.php
examples/custom-buttons.js

Shows how to add custom javascript to a report page and adds a custom
load button on the grid

CF7 DB Submit Plugin integration

See: examples/cf7dbsubmit_integration.php

This is not a fully runnable example, but should give good examples of

  • working cf7dbsubmit plugin
  • Custom save delete hooks
  • custom complex sql building with this plugin
  • sending notifications on edit of specific fields

cf7dbsubmit stores its data in a “hashtable” format of:

form, submit_time, field_name, field_value

but we want to present this in a more excel fasion of each field being
a column of our spreadsheet and each row being a different submission

Contributers and Thanks

  • bobbysmith007 / Acceleration.net – Primary developer of plugin
  • nikomuse – i18n support