- Custom DataBase Tables
- CDBT Version 1.x
プラグイン Version 1.x
- イントロダクション ─ Introduction
- チュートリアル ─ Tutorial
- プラグイン構造 ─ Structure
- メソッド・リファレンス ─ Method Reference
- 関数リファレンス ─ Function Reference
- ショートコード・リファレンス ─ Shortcode Reference
プラグイン構造
Custom DataBase Tables(以下、CDBTと呼びます)プラグインの構成ファイルとディレクトリ構造は下記のようになっています。
custom-database-tables/
├─ assets/
│ ├─ css/
│ │ ├─ cdbt-admin.css
│ │ ├─ cdbt-main.min.css
│ │ └─ cdbt-style.css
│ ├─ fonts/
│ │ ├─ glyphicons-halflings-regular.eot
│ │ ├─ glyphicons-halflings-regular.svg
│ │ ├─ glyphicons-halflings-regular.ttf
│ │ └─ glyphicons-halflings-regular.woff
│ └─ js/
│ ├─ plugins/
│ │ └─ bootstrap/
│ │ ├─ affix.js
│ │ ├─ alert.js
│ │ ├─ button.js
│ │ ├─ carousel.js
│ │ ├─ collapse.js
│ │ ├─ dropdown.js
│ │ ├─ modal.js
│ │ ├─ popover.js
│ │ ├─ scrollspy.js
│ │ ├─ tab.js
│ │ ├─ tooltip.js
│ │ └─ transition.js
│ └─ scripts.min.js
├─ langs/
│ ├─ custom-database-tables.pot
│ ├─ custom-database-tables-ja.mo
│ └─ custom-database-tables-ja.po
├─ lib/
│ ├─ cdbt.ajax.php
│ ├─ cdbt.class.php
│ ├─ cdbt.media.php
│ ├─ cdbt.scripts.php
│ └─ cdbt.shortcodes.php
├─ templates/
│ ├─ cdbt-admin-controller.php
│ ├─ cdbt-admin-create.php
│ ├─ cdbt-admin-general.php
│ ├─ cdbt-admin-table-creator.php
│ ├─ cdbt-admin-tables.php
│ ├─ cdbt-edit.php
│ ├─ cdbt-index.php
│ ├─ cdbt-input.php
│ ├─ cdbt-list.php
│ ├─ cdbt-public-edit.php
│ ├─ cdbt-public-input.php
│ └─ cdbt-public-list.php
├─ cdbt.php
├─ functions.php
├─ readme.txt
└─ uninstall.php
lib/cdbt.ajax.php
Custom DataBase Tables(以下、CDBTと呼称します)プラグイン内のAJAX処理を司るクラスCustomDataBaseTables_Ajaxが定義されています。このクラスはプラグインのコアクラスCustomDatabaseTablesのコンストラクタにてインスタンス化されているため、コアクラスCustomDatabaseTablesを経由することで呼び出すことが可能です。
バージョン1.0.0で登録されている処理は、テーブルデータ一覧画面や編集画面でのバイナリデータ格納フィールドからのダウンロードデータリストをモーダルウィンドウへ出力する処理となっています。
lib/cdbt.class.php
CDBTプラグインのコアクラスであるCustomDatabaseTablesクラスが定義されています。登録されている処理は大きく、プラグイン本体の制御部と新規作成したテーブルに対するCRUD部に分かれます。CRUD部の各種メソッドについてはグローバル宣言されているオブジェクト変数$cdbtのメソッドとしてWordPressのテーマ等のテンプレート関数内で利用可能です。
CRUD部メソッド一覧はこちらを参照してください。
lib/cdbt.media.php
CDBTプラグイン内の各種メディアファイルダウンロード処理に利用されるAJAXクラスCustomDataBaseTables_Mediaが定義されています。このクラスもAJAXクラス同様にプラグインのコアクラスCustomDatabaseTablesのコンストラクタにてインスタンス化されているため、コアクラスCustomDatabaseTablesを経由することで呼び出すことが可能です。
lib/cdbt.scripts.php
CDBTプラグインでインクルードされるJavaScriptを動的生成するライブラリです。WordPressの管理パネルとフロントエンドとで処理が分かれています。また、テーブルクリエーターの実働部も含まれています。
lib/cdbt.shortcodes.php
CDBTプラグインで利用できるショートコード[[cdbt-view]]``[[cdbt-entry]]``[[cdbt-edit]]が定義されています。
ショートコードの詳細はこちらを参照してください。
templates/
CDBTプラグインで生成される各種ページのテンプレートファイルが格納されているディレクトリです。ファイル名にcdbt-public-を含まないファイルはWordPress管理パネルのCDBTプラグイン管理コンソール用のテンプレートです。cdbt-public-で始まるファイルはショートコードで生成されるHTMLコンテンツを出力するために使われます。
cdbt.php
CDBTプラグインの起点ファイルです。プラグインのメタ情報と各種定数定義、各種ライブラリの読み込みが行われます。
functions.php
CDBTプラグイン用のAPIが定義されているファイルです。APIはプラグイン内の各クラスやテンプレート等から利用されています。なお、CDBTプラグインがインストールされているWordPressサイトであれば、テーマや他のプラグインからも利用が可能です。
CDBTプラグインAPI一覧はこちらを参照してください。
メソッド
CDBTプラグインのコアライブラリであるCustomDataBaseTablesクラスのメソッドを紹介します。CustomDataBaseTablesクラスは$cdbtとしてグローバル宣言されているため、WordPressテーマのテンプレートからグローバル変数として参照することが可能です。
参照例:$cdbt->check_table_exists($table_name)
check_table_exists()
check_table_exists($table_name=null)
テーブルが存在するか確認する
- @param string $table_name (optional) default $this->current_table
- @return string
truncate_table()
truncate_table($table_name=null)
テーブルを初期化する(テーブルに含まれるデータを全て削除し、オートインクリメント型のフィールドの開始値を初期値に戻す)
- @param string $table_name (optional) default $this->current_table
- @return array
drop_table()
drop_table($table_name=null)
テーブルを削除する
- @param string $table_name (optional) default $this->current_table
- @return array
create_table()
create_table($table_data)
テーブルを作成する
- @param array $table_data
- @return array
get_table_schema()
get_table_schema($table_name=null)
テーブル構造(スキーマ情報)を取得する
- @param string $table_name (optional) default $this->current_table
- @return array
get_table_comment()
get_table_comment($table_name=null)
テーブルコメントを取得する
- @param string $table_name (optional) default $this->current_table
- @return array
get_create_table_sql()
get_create_table_sql($table_name=null)
テーブル作成SQL(CREATE TABLE)文を取得する
- @param string $table_name (optional) default $this->current_table
- @return array
get_data()
get_data($table_name, $columns=”*”, $conditions=null, $order=null, $limit=null, $offset=null)
テーブルから条件に該当するデータを取得する
- @param string $table_name (must containing prefix of table)
- @param array $columns (optional) default wildcard of ‘*’ (eq. select clause)
- @param array $conditions (optional) (eq. where clause)
- @param array $order (optional) default ‘order by
createddesc’ (eq. orderby & order clause) - @param int $limit (optional) (eq. limit clause)
- @param int $offset (optional) (eq. offset clause)
- @return array
find_data()
find_data($table_name, $table_schema=null, $search_key, $columns, $order=null, $limit=null, $offset=null)
テーブルから条件に該当するデータを探し出す
このメソッドは、引数として与えられたテーブルスキーマから検索キーワードとして最良のフィールドを抽出して、適するデータを取得します。テーブル内の全フィールドを検索対象としないため、get_data()よりパフォーマンスが良いです。ただし、引数としてテーブルスキーマが与えられなかった場合はget_data()と同じ動作となります。
- @param string $table_name (must containing prefix of table)
- @param array $table_schema default null
- @param string $search_key
- @param array $columns (optional) default wildcard ‘*’ (eq. select clause)
- @param array $order (optional) default ‘order by
createddesc’ (eq. orderby and order clause) - @param int $limit (optional) (eq. limit clause)
- @param int $offset (optional) (eq. offset clause)
- @return array
insert_data()
insert_data($table_name, $data, $table_schema=null)
テーブルにデータを追加する
- @param string $table_name (must containing prefix of table)
- @param array $data
- @param array $table_schema default null
- @return int $insert_id
update_data()
update_data($table_name, $ID, $data, $table_schema=null)
テーブルの指定のデータを更新する
- @param string $table_name (must containing prefix of table)
- @param int $ID
- @param array $data
- @param array $table_schema default null
- @return int updated row (eq. ID column’s value)
delete_data()
delete_data($table_name, $ID)
テーブル内の指定のデータを削除する
- @param string $table_name (must containing prefix of table)
- @param int $ID
- @return bool
validate_data()
validate_data($column_schema, $data)
任意のデータがカラムスキーマに準拠しているかを検証する
- @param array $column_schema
- @param string $data
- @return array
validate_create_sql()
validate_create_sql($table_name, $sql)
テーブル作成SQL(CREATE TABLE)文の検証と最適化を行う
- @param string $table_name
- @param string $sql (for create table)
- @return array
validate_alter_sql()
validate_alter_sql($table_name, $sql)
テーブル構造変更SQL(ALTER TABLE)文の検証と最適化を行う
- @param string $table_name
- @param string $sql (for alter table)
- @return array
compare_reservation_tables()
compare_reservation_tables($table_name)
WordPressの予約テーブルとテーブル名を比較する
- @param string $table_name
- @return boolean
import_table()
import_table($table_name, $import_data)
指定のテーブルからデータをインポートする
- @param string $table_name
- @param array $import_data
- @return array
export_table()
export_table($table_name, $index_only=false)
指定のテーブルにデータをエクスポートする
- @param string $table_name
- @param boolean $index_only (optional) default false
- @return array
API
cdbt_create_pagination()
cdbt_create_pagination($page_num, $per_page, $total_data, $mode=’list’)
ページネーションHTMLを生成して出力します
- @param int $page_num
- @param int $per_page
- @param int $total_data
- @param string $mode (optional) default ‘list’
- @return string
cdbt_current_user_level()
cdbt_current_user_level()
現在ログイン中のユーザーの権限レベル(0~9)を取得します
- @return int
cdbt_check_current_table_role()
cdbt_check_current_table_role($mode, $table=null)
現在ログイン中のユーザーが指定されたテーブルにアクセスできる権限があるかを調べます
- @param string $mode
- @param string $table (optional) default null
- @return boolean
cdbt_check_current_table_valid()
cdbt_check_current_table_valid($table_name=null)
指定のテーブルが有効かどうかを調べます
- @param string $table_name (optional) default null
- @return boolean
cdbt_get_options_table()
cdbt_get_options_table($table_name=null)
指定のテーブルのオプション設定内容をすべて取得します
- @param string $table_name (optional) default null
- @return array|boolean
cdbt_create_console_menu()
cdbt_create_console_menu($nonce)
ヘッダー用のコンソールメニュー欄を出力します
- @param string $nonce
- @return void
cdbt_create_console_footer()
cdbt_create_console_footer($message=null, $run=false, $run_label=null, $hidden_callback=null)
フッター用のコンソールボタンとモーダルウィンドウ用の定義を出力します
- @param string $message default null
- @param boolean $run default false
- @param string $run_label default null
- @param string $hidden_callback default null
- @return void
cdbt_create_form()
cdbt_create_form($table_name, $column_name, $column_schema, $value, $option=null)
テーブルのフィールド構造(カラム形式)を基にして入力フォーム(HTML)を自動生成する
- @param string $table_name (must containing prefix of table)
- @param string $culumn_name
- @param array $culumn_schema
- @param string $value
- @param string $option (optional) be hidden form
- @return string (eq. html document)
cdbt_create_button()
cdbt_create_button($btn_type=’button’, $btn_value, $btn_id=null, $btn_class=’default’, $btn_action=null, $prefix_icon=null)
TwitterBootstrap3準拠スタイルのボタンオブジェクト(HTML)を生成する
- @param string $btn_type default ‘button’
- @param string|array $btn_value (If $btn_type is “stateful”, second arg in array is used for string that will change after clicked button.)
- @param string $btn_id (optional) (eq. id attribute value in button tag)
- @param string $btn_class (optional) default ‘default’ (eq. class attribute value of “btn-*” in button tag)
- @param string $btn_action (optional) (eq. data-action attribute value in button tag)
- @param string $prefix_icon (optional) (eq. value of “glyphicon-*” of the bootstrap)
- @return string (eq. html document)
cdbt_str_truncate()
cdbt_str_truncate($string, $length=40, $suffix=’…’, $collapse=false)
指定した文字数で切捨てられた文字列を取得する
- @param string $string
- @param int $length default 40
- @param string $suffix (optional) default ‘…’
- @param boolean $collapse (optional) default false
- @return string
cdbt_compare_var()
cdbt_compare_var($var, $compare=null)
与えられた二つの変数を比較する
- @param mixed(string|int|boolean) $var
- @param mixed(string|int|boolean) $compare
- @return boolean
cdbt_get_boolean()
cdbt_get_boolean($string)
与えられた文字列の真偽値(ブーリアン値)を取得する(boolval()の代替関数)
- @param string $string
- @return boolean
cdbt__()
cdbt__($string)
翻訳ファイルにて翻訳された文字列を取得する
- @param string $string
- @return string
cdbt_e()
cdbt_e($string)
翻訳ファイルにて翻訳された文字列を出力する
- @param string $string
- @return void
ショートコード
[[cdbt-view]]
[[cdbt-view table=”${table_name}”]]
指定したテーブルのデータ一覧HTMLを出力する
- @attribute string table
- @attribute boolean bootstrap_style
- @attribute boolean display_title
- @attribute boolean display_search
- @attribute boolean display_list_num
- @attribute string exclude_cols (a column name or Comma-separated columns name)
- @attribute string add_class
[[cdbt-entry]]
[[cdbt-entry table=”${table_name}”]]
指定したテーブルのデータ登録用フォームHTMLを出力する
- @attribute string table
- @attribute boolean bootstrap_style
- @attribute boolean display_title
- @attribute string hidden_cols (a column name or Comma-separated columns name)
- @attribute string add_class
[[cdbt-edit]]
[[cdbt-edit table=”${table_name}” entry_page=”${postID|postName}”]]
指定したテーブルのデータ編集用HTMLを出力する
- @attribute string table
- @attribute int|string entry_page (integer of post ID or strings of post name)
- @attribute boolean bootstrap_style
- @attribute boolean display_title
- @attribute boolean display_list_num
- @attribute string exclude_cols (a column name or Comma-separated columns name)
- @attribute string add_class