diff --git a/db.php b/db.php index 30df2a8..371243a 100644 --- a/db.php +++ b/db.php @@ -8,6 +8,18 @@ * @author Kojima Toshiyasu, Justin Adie * */ +if (!defined('ABSPATH')) { // Oh, you are not WordPress! + echo 'Thank you, but you are not allowed to access here.'; + die(); +} + +/** + * Notice: + * If you want to change the database from SQLite to MySQL or from MySQL to SQLite, + * the line below in the wp-config.php will enable you to use MySQL. + * define('USE_MYSQL', true); + */ +if (defined('USE_MYSQL') && USE_MYSQL === true) return; function pdo_log_error($message, $data = null) { diff --git a/index.php b/index.php new file mode 100644 index 0000000..29d690a --- /dev/null +++ b/index.php @@ -0,0 +1,2 @@ +').addClass("sort");var rows=$table.find("tbody > tr").get();$headers.bind("click",function(event){event.preventDefault();var $header=$(this),sortKey=$header.data("sort").key,sortDirection=1;$header.hasClass("sorted-asc")&&(sortDirection=-1),rows.sort(function(a,b){var keyA=$(a).data("table")[sortKey],keyB=$(b).data("table")[sortKey];return keyB>keyA?-sortDirection:keyA>keyB?sortDirection:0}),$headers.removeClass("sorted-asc sortd-desc"),$headers.addClass(1==sortDirection?"sorted-asc":"sorted-desc"),$.each(rows,function(index,row){$table.children("tbody").append(row)}),stripe("#plugins-table"),stripe("#sqlite-table"),stripe("#patch-files")}),stripe("#plugins-table"),stripe("#sys-info"),stripe("#sqlite-table"),stripe("#status"),stripe("#patch-files")}),jQuery(document).ready(function($){function stripe(arg){$(arg).find("tr.alt").removeClass("alt");var $args=arg+" tbody";$($args).each(function(){$(this).children(":visible").has("td").filter(function(index){return 1==index%2}).addClass("alt")})}var $table=$("#plugins-info"),$headers=$table.find("thead th").slice(0);$headers.wrapInner('').addClass("sort");var rows=$table.find("tbody > tr").get();$headers.bind("click",function(event){event.preventDefault();var $header=$(this),sortKey=$header.data("sort").key,sortDirection=1;$header.hasClass("sorted-asc")&&(sortDirection=-1),rows.sort(function(a,b){var keyA=$(a).data("table")[sortKey],keyB=$(b).data("table")[sortKey];return keyB>keyA?-sortDirection:keyA>keyB?sortDirection:0}),$headers.removeClass("sorted-asc sortd-desc"),$headers.addClass(1==sortDirection?"sorted-asc":"sorted-desc"),$.each(rows,function(index,row){$table.children("tbody").append(row)}),stripe("#plugins-info")}),stripe("#plugins-info")}); \ No newline at end of file diff --git a/languages/index.php b/languages/index.php new file mode 100644 index 0000000..29d690a --- /dev/null +++ b/languages/index.php @@ -0,0 +1,2 @@ +" "PDO for WordPressの後継です。PDO for WordPressはWordPressでSQLiteを使えるようにする" "ものでしたが、もうメンテナンスされていないようで、古くなってしまいました。SQLite Integrationは、その基本的な" -"考えと枠組みを使って、新たな機能を追加し、最新のWordPress(3.7.1)で動作するように" +"考えと枠組みを使って、新たな機能を追加し、最新のWordPress(3.8)で動作するように" "したものです。" #: utilities/documentation.php:43 diff --git a/pdodb.class.php b/pdodb.class.php index 2585dd7..bb3e6a1 100644 --- a/pdodb.class.php +++ b/pdodb.class.php @@ -4,7 +4,10 @@ * @author Kojima Toshiyasu, Justin Adie * */ - +if (!defined('ABSPATH')) { + echo 'Thank you, but you are not allowed to accesss this file.'; + die(); +} require_once PDODIR . 'pdoengine.class.php'; require_once PDODIR . 'install.php'; diff --git a/query.class.php b/query.class.php index a399f54..959738e 100644 --- a/query.class.php +++ b/query.class.php @@ -249,6 +249,11 @@ class PDOSQLiteDriver { * We need to exclude sub query's LIMIT. */ private function _rewrite_limit_usage(){ + $_wpdb = new PDODB(); + $options = $_wpdb->get_results('PRAGMA compile_options'); + foreach ($options as $opt) { + if (stripos($opt->compile_option, 'ENABLE_UPDATE_DELETE_LIMIT') !== false) return; + } if (stripos($this->_query, '(select') === false) { $this->_query = preg_replace('/\\s*LIMIT\\s*[0-9]$/i', '', $this->_query); } diff --git a/readme-ja.txt b/readme-ja.txt index 8847d79..35b96a5 100644 --- a/readme-ja.txt +++ b/readme-ja.txt @@ -6,8 +6,8 @@ Tags: database, SQLite, PDO Author: Kojima Toshiyasu Author URI: http://dogwood.skr.jp/ Requires at least: 3.3 -Tested up to: 3.7.1 -Stable tag: 1.4.2 +Tested up to: 3.8 +Stable tag: 1.5 License: GPLv2 License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -30,23 +30,19 @@ WordPressはMySQLと話していると思っていて、背後で何が起こっ SQLite Integrationは[PDO for WordPress](http://wordpress.org/extend/plugins/pdo-for-wordpress)プラグインの後継です。後者は残念なことに、もうメンテナンスされていないようです。SQLite IntegrationはPDO for WordPressの基本的なアイディアと構造を借りて、より多くの機能とユーティリティを追加しました。 -= 重要なお知らせ = += 特徴 = -このプラグインを使ってWordPress 3.5.x をインストールし、3.6にアップグレードした場合、データベースが意図したとおりに動作していないかもしれません。これに該当する場合は、プラグインを最新版にアップグレードして、管理画面のメンテナンスページに移動し、修復が必要かどうかをチェックしてください。必要なら、そのページで提供しているユーティリティを使って修復をすることができます。 - -WordPress 3.6 をインストールした場合や、3.5.x を使っている場合は、これに該当しませんので、修復は必要ありません。 - -= Features = - -SQLite Integrationは普通の「プラグイン」ではありません。WordPressをインストールするときに使います。そのため、少し準備が必要です。インストールのセクションを参照してください。[SQLite Integration Page](http://dogwood.skr.jp/wordpress/sqlite-integration/)をご覧になると、もっと詳しい説明を読むことができます。 +SQLite Integrationは普通の「プラグイン」ではありません。WordPressをインストールするときに使わなければなりません。そのため、少し準備が必要です。インストールのセクションを参照してください。[SQLite Integration Page](http://dogwood.skr.jp/wordpress/sqlite-integration/)をご覧になると、もっと詳しい説明を読むことができます。 インストールに成功したら、MySQLを使う他のWordPressと同じように使うことができます。オプションとして、管理パネルでこのプラグインを有効化することができます。有効化すると有益な情報と説明を見ることができます。これは必須ではありませんが、お勧めします。 -= Backward Compatibility = +ローカルマシンにこのプラグインを使ってWordPressをインストールし、本番の環境ではMySQLを使いたいという場合を考えて、wp-config.phpでどちらのデータベースを使うかを制御できるようにしました。 + += 後方互換性 = 現在[PDO for WordPress](http://wordpress.org/extend/plugins/pdo-for-wordpress)をお使いの場合は、データベースを移行することができます。インストールのセクションをご覧ください。 -= Support = += サポート = 下の方法でコンタクトを取ってください。 @@ -55,29 +51,48 @@ SQLite Integrationは普通の「プラグイン」ではありません。WordP 注意: WordPress.orgはMySQL以外のデータベースを正式にサポートしていません。だから、WordPress.orgからのサポートは得られません。フォーラムに投稿しても、回答を得ることはまずないでしょう。また、パッチをあてたプラグインを使う場合は、そのプラグインの作者からのサポートはないものと思ってください。自分でリスクを負う必要があります。 -= Translation = += 翻訳 = ドキュメントは英語で書かれています。日本語のカタログファイルと、.potファイルがアーカイブに含まれています。もしあなたの言語に翻訳をしたら、知らせてください。 -== Installation == +== インストール == このプラグインは他のプラグインとはちがいます。管理パネルのプラグイン・ページでインストールすることはできません。 まず、WordPressのインストールを準備しなければなりません。Codexの[Installing Wordpress ](http://codex.wordpress.org/Installing_WordPress)をご覧ください。 -必要要件をチェックし、WordPressのアーカイブを展開したら、wp-config-sample.phpをwp-config.phpにリネームして、[Codex page](http://codex.wordpress.org/Editing_wp-config.php)に書いてあるように、少し編集する必要があります。データベースの設定*以外*の部分を設定してください。 +必要要件をチェックし、WordPressのアーカイブを展開したら、wp-config-sample.phpをwp-config.phpにリネームして、[Codex page](http://codex.wordpress.org/Editing_wp-config.php)に書いてあるように、少し編集する必要があります。 -終わったら、オプションの設定を書き加えることができます。次の説明に従ってください。 += 基本設定 = + +SQLiteだけを使いたい場合は、wp-conifg.phpの下の部分だけを編集してください。 + +* 認証用ユニークキー +* WordPressデータベーステーブルの接頭辞 +* ローカル言語(日本語版では、jaがすでに設定されています) + +これでお終いです。他の部分は変更する必要はありません。 + +SQLiteとMySQLを交互に使いたい場合は、「MySQLの設定」セクションを編集する必要があります。また、wp-config.phpに下の1行を追加してください。 + +`define('USE_MYSQL', false); +// 編集が必要なのはここまでです !` + +この定義は、WordPressがSQLiteを使うようにさせるものです。MySQLを使いたい場合は、'false'を'true'に変えるか、この行自体を削除してください。 + += オプションの設定 = + +基本設定が終わったら、オプションの設定を書き加えることができます。これは必須ではありませんので、必要がなければ、編集作業は終了です。 * デフォルト(wp-content/database)とは違うディレクトリにSQLiteデータベース・ファイルを置きたい場合は、次の行を追加してください(最後のスラッシュを忘れずに)。 - `define('DB_DIR', '/home/youraccount/database_directory/');` +`define('DB_DIR', '/home/youraccount/database_directory/');` 注意: PHPスクリプトがこのディレクトリを作ったり、中にファイルを書き込んだりする権限を持っていることが必要です。 * デフォルト(.ht.sqlite)とは違うデータベース・ファイル名を使いたい場合は、次の行を追加してください。 - `define('DB_FILE', 'database_file_name');` +`define('DB_FILE', 'database_file_name');` 注意: PDO for WordPressをお使いの方は、「データベースを移行する」のセクションをご覧ください。 @@ -85,11 +100,13 @@ SQLite Integrationは普通の「プラグイン」ではありません。WordP wp-config.phpの準備が終わったら、次のステップに進みます。 -1. プラグインのアーカイブを展開します。 +1. SQLite Integrationのアーカイブをダウンロードします。 -2. アーカイブに含まれるdb.phpファイルをwp-contentディレクトリに移動(またはコピー)してください。 +2. プラグインのアーカイブを展開します。 -3. sqlite-wordpressディレクトリをwp-content/plugin/ディレクトリの下に移動してください。 +3. アーカイブに含まれるdb.phpファイルをwp-contentディレクトリにコピーしてください。 + +4. sqlite-wordpressディレクトリをwp-content/plugin/ディレクトリの下に移動してください。 `wordpress/wp-contents/db.php` @@ -125,7 +142,7 @@ wp-config.phpの準備が終わったら、次のステップに進みます。 これでおしまいです。忘れずに必要要件とWordPressのバージョンをチェックしてください。*SQLite IntegrationはWordPress 3.2.x以前のものでは動作しません。* -== Frequently Asked Questions == +== よくある質問 == = データベース・ファイルが作られません = @@ -170,10 +187,18 @@ wp-config.phpの準備が終わったら、次のステップに進みます。 == Upgrade Notice == -SQLite Integrationのアップグレードに失敗するようなら、FTPを使っての手動アップグレードを試してみてください。 +WordPress 3.8 に対応しました。バグフィクスが少し、機能拡張も少しあります。自動アップグレードで失敗するようなら、FTPを使っての手動アップグレードを試してみてください。 == Changelog == += 1.5 (2013-12-17) = +* WordPress 3.8 でのインストールと動作テストをしました。 +* SQLite と MySQL を交互に使えるようにしました。 +* readme-ja.txt のインストールの説明をかえました。 +* SQLite のコンパイルオプション'ENABLE_UPDATE_DELETE_LIMIT'をチェックするようにしました。 +* WordPress 3.8 の管理画面に合わせて sytle を変更しました。 +* グローバルで動くファイルへのダイレクトアクセスを制限するようにしました。 + = 1.4.2 (2013-11-06) = * ダッシュボードに表示される情報についてのバグを修正しました。 * スクリーンショットを変更しました。 diff --git a/readme.txt b/readme.txt index 12a5115..c3774f6 100644 --- a/readme.txt +++ b/readme.txt @@ -6,8 +6,8 @@ Tags: database, SQLite, PDO Author: Kojima Toshiyasu Author URI: http://dogwood.skr.jp/ Requires at least: 3.3 -Tested up to: 3.7.1 -Stable tag: 1.4.2 +Tested up to: 3.8 +Stable tag: 1.5 License: GPLv2 License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -30,21 +30,17 @@ WordPress thinks she talks with MySQL and doesn't know what has happened in the SQLite Integration is a successor to [PDO for WordPress](http://wordpress.org/extend/plugins/pdo-for-wordpress) plugin, which unfortunately enough, doesn't seem to be maintained any more. SQLite Integration uses the basic idea and structures of that plugin and adds some more features or some utilities. -= Important Notice = - -When your installed WordPress 3.5.x with this plugin and upgraded to 3.6, your database might not work as expected. If this is your case, please upgrade this plugin to the newest version (1.4.2) and visit the maintenance page in the admin dashboard, where you can check if you need to fix your database, and you can do fixing job with the utility. - -When you installed WordPress 3.6 with this plugin or your WordPress is 3.5.x, you don't have to fix your database. - = Features = -SQLite Integration is not an ordinary 'plugin'. It is used to install WordPress itself. You need to do some preparations. Please read the install section. And see more detailed instruction in the [SQLite Integration Page](http://dogwood.skr.jp/wordpress/sqlite-integration/). +SQLite Integration is not an ordinary 'plugin'. It must be be used when you install WordPress itself, which requires you to do some preparations. Please read the install section. And see more detailed instruction in the [SQLite Integration Page](http://dogwood.skr.jp/wordpress/sqlite-integration/). -Once you succeeded in installing WordPress, you can use it just like the others using MySQL. Optionally, you can activate this plugin in the installed plugins panel of the adimn dashboard, and you can see the useful information and instructions. It is not required but I recommend it. +Once you succeed in installing WordPress, you can use it just like the others using MySQL. Optionally, you can activate this plugin in the installed plugins panel of the adimn dashboard, and you can see the useful information and instructions. It is not required but I recommend it. + +If you want to test WordPress with this plugin on the local machine but want to use MySQL on the server machine, you can control which database to use with the simple directive in the wp-config.php file. See the install instruction section. = Backward Compatibility = -If you are using [PDO for WordPress](http://wordpress.org/extend/plugins/pdo-for-wordpress), you can migrate your database. See install section. +If you are using [PDO for WordPress](http://wordpress.org/extend/plugins/pdo-for-wordpress), you can migrate your database. See install instruction section. = Support = @@ -63,31 +59,54 @@ Documentation is written in English. Japanese catalog file and .pot file are inc This plugin is *not* like the other plugins. You can't install and activate it on the plugin administration panel. -First of all, you've got to prepare WordPress installation. See [Installing Wordpress ](http://codex.wordpress.org/Installing_WordPress) section in the Codex. +First of all, you've got to prepare WordPress installation. See also [Installing Wordpress ](http://codex.wordpress.org/Installing_WordPress) section in the Codex. -After checking the prerequisites and unzipping the WordPress archive file, you must rename wp-contig-sample.php file to wp-config.php and do some editting as the [Codex page](http://codex.wordpress.org/Editing_wp-config.php) says. Please follow the Codex' instructions *except* the database settings. +After checking the prerequisites and downloading and unzipping the WordPress archive file, you must rename wp-contig-sample.php file to wp-config.php and do some editting as the [Codex page](http://codex.wordpress.org/Editing_wp-config.php) says. -When you finish, you can add optional settings. This is not required. If you don't need optional settings, you don't have to edit wp-config.php any more. += Basic settings = + +If you only use SQLite for your database, you don't have to edit the MySQL settings section. Edit the three sections below: + +* Authentication Unique keys and Salts +* WordPress Database Table prefix +* WordPress Localized Language + +That's all. You don't have to change any other sections. + +If you want to use SQLite and MySQL interchangeably, you must edit the database server settings at the top of the file as well as the sections above mentioned. And add the line below. + +`define('USE_MYSQL', false); +/* That's all, stop editing! Happy blogging. */` + +This definition makes WordPress use SQLite. If you want to change the database to MySQL, change 'false' to 'true' or just delete this line. + += Optional settings = + +When you finish basic settings, you can add optional ones. This is not required. If you don't need them, you don't have to edit wp-config.php any more. * If you want to put the SQLite database file to the directory different from the default setting (wp-content/database), you can add the line below (don't forget to add a trailing slash): - `define('DB_DIR', '/home/youraccount/database_directory/');` +`define('DB_DIR', '/home/youraccount/database_directory/');` - Note: Your PHP scripts must be able to create that directory and files in it. + Note: Your PHP scripts must have the permission to create that directory and files in it. -* If you want to change the database file name to the one different from the default (.ht.sqlite), you can add the line below: +* If you want to change the database file name to another one different from the default (.ht.sqlite), you can add the line below: - `define('DB_FILE', 'database_file_name');` +`define('DB_FILE', 'database_file_name');` Note: If you are using 'PDO for WordPress' plugin, see also 'Migrating your database' section. If you don't understand well, you don't have to add any of the lines above. += Preparing SQLite Integration = + After you finish preparing wp-config.php, follow the next steps: -1. Unzip the plugin archive file. +1. Download SQLite Integration archive file. -2. Move db.php file contained in the archive to wp-content directory. +2. Unzip the plugin archive file. + +3. Copy db.php file contained in the archive to wp-content directory. 3. Move the sqlite-integration directory to wp-content/plugin/ directory. @@ -142,7 +161,7 @@ Just deactivate the plugin, and you can remove them. Activation and deactivation == Known Limitations == -Many of the other plugins will work fine with this plugin. But there are some you can't use. Generally speaking, the plugins that manipulate database not with WordPress functions but with Mysql or Mysqli native drivers from PHP might cause the problem. +Many of the other plugins will work fine with this plugin. But there are some you can't use. Generally speaking, the plugins that manipulate database not with WordPress functions but with mysql or mysqli native drivers from PHP might cause the problem. These are other examples: @@ -161,10 +180,18 @@ Probably there are more, I'm afraid. If you find one, please let me know. == Upgrade Notice == -When auto upgrading of SQLite Integration fails, please try manual upgrade via FTP. +WordPress 3.8 compatible. Some minor bug fixes and optional features. When auto upgrading fails, please try manual upgrade via FTP. == Changelog == += 1.5 (2013-12-17) = +* Tested WordPress 3.8 installation and compatibility. +* Add the optional feature to change the database from SQLite to MySQL. +* Changed the install instruction in the readme.txt. +* Add the code to check if the SQLite library was compiled with the option 'ENABLE_UPDATE_DELETE_LIMIT'. +* Changed the admin panel style to fit for WordPress 3.8. +* Restricted the direct access to the files that works in the global namespace. + = 1.4.2 (2013-11-06) = * Fixed some minor bugs about the information in the dashboard. * Changed the screenshot. diff --git a/schema.php b/schema.php index 248c0fd..8c1fb01 100644 --- a/schema.php +++ b/schema.php @@ -9,6 +9,10 @@ * This is run only once while installation. * @return boolean */ +if (!defined('ABSPATH')) { + echo 'Thank you, but you are not allowed to access this file.'; + die(); +} function make_db_sqlite() { include_once PDODIR . 'query_create.class.php'; include_once ABSPATH . 'wp-admin/includes/schema.php'; diff --git a/sqlite-integration.php b/sqlite-integration.php index 41c1b7a..cbfede6 100644 --- a/sqlite-integration.php +++ b/sqlite-integration.php @@ -4,7 +4,7 @@ Plugin Name: SQLite Integration Plugin URI: http://dogwood.skr.jp/wordpress/sqlite-integration/ Description: SQLite Integration is the plugin that enables WordPress to use SQLite. If you don't have MySQL and want to build a WordPress website, it's for you. Author: Kojima Toshiyasu -Version: 1.4.2 +Version: 1.5 Author URI: http://dogwood.skr.jp Text Domain: sqlite-integration Domain Path: /languages @@ -29,6 +29,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA /** * Globals */ +if (!defined('ABSPATH')) { + echo 'Thank you, but you are not allowed to access this file.'; + die(); +} $siteurl = get_option('siteurl'); define('SQLiteDir', dirname(plugin_basename(__FILE__))); define('SQLiteFilePath', dirname(__FILE__)); @@ -168,7 +172,7 @@ class SQLiteIntegration { add_action('admin_print_styles-'.$welcome_page, array($this, 'add_style_sheet')); add_action('admin_print_styles-'.$util_page, array($this, 'add_style_sheet')); add_action('admin_print_styles-'.$edit_db, array($this, 'add_style_sheet')); - add_action('admin_print_styles-'.$doc_page, array($this, 'add_doc_style_sheet')); + add_action('admin_print_styles-'.$doc_page, array($this, 'add_style_sheet')); add_action('admin_print_styles-'.$patch_page, array($this, 'add_style_sheet')); add_action('admin_print_scripts-'.$util_page, array($this, 'add_sqlite_script')); add_action('admin_print_scripts-'.$doc_page, array($this, 'add_sqlite_script')); @@ -194,7 +198,7 @@ class SQLiteIntegration { add_action('admin_print_styles-'.$welcome_page, array($this, 'add_style_sheet')); add_action('admin_print_styles-'.$util_page, array($this, 'add_style_sheet')); add_action('admin_print_styles-'.$edit_db, array($this, 'add_style_sheet')); - add_action('admin_print_styles-'.$doc_page, array($this, 'add_doc_style_sheet')); + add_action('admin_print_styles-'.$doc_page, array($this, 'add_style_sheet')); add_action('admin_print_styles-'.$patch_page, array($this, 'add_style_sheet')); add_action('admin_print_scripts-'.$util_page, array($this, 'add_sqlite_script')); add_action('admin_print_scripts-'.$doc_page, array($this, 'add_sqlite_script')); @@ -221,22 +225,23 @@ class SQLiteIntegration { * Styles and JavaScripts */ function add_style_sheet() { - $style_url = SQLiteUrl . '/styles/style.css'; - $style_file = SQLiteFilePath . '/styles/style.css'; + global $current_user; + get_currentuserinfo(); + $admin_color = get_user_meta($current_user->ID, 'admin_color', true); + if ($admin_color == 'fresh') { + $stylesheet_file = 'style.min.css'; + } else { + $stylesheet_file = $admin_color . '.min.css'; + } + $style_url = SQLiteUrl . '/styles/' . $stylesheet_file; + $style_file = SQLiteFilePath . '/styles/' . $stylesheet_file; if (file_exists($style_file)) { wp_enqueue_style('sqlite_integration_stylesheet', $style_url); } } - function add_doc_style_sheet() { - $style_url = SQLiteUrl . '/styles/doc.css'; - $style_file = SQLiteFilePath . '/styles/doc.css'; - if (file_exists($style_file)) { - wp_enqueue_style('sqlite_integration_doc_style', $style_url); - } - } function add_sqlite_script() { - $script_url = SQLiteUrl . '/js/sqlite.js'; - $script_file = SQLiteFilePath . '/js/sqlite.js'; + $script_url = SQLiteUrl . '/js/sqlite.min.js'; + $script_file = SQLiteFilePath . '/js/sqlite.min.js'; if (file_exists($script_file)) { wp_enqueue_script('sqlite-integration', $script_url, 'jquery'); } diff --git a/styles/blue.css b/styles/blue.css new file mode 100644 index 0000000..5542d98 --- /dev/null +++ b/styles/blue.css @@ -0,0 +1,37 @@ +@import url('./style.min.css'); +@CHARSET "UTF-8"; +#sqlite-admin-wrap h2, +#sqlite-admin-side-wrap h2 { + background: #4796b3; + color: rgb(255, 255, 255); + padding-left: 5px; +} +.menu-item { + font-size: 20px; + display: inline; + min-width: 150px; + height: 50px; + margin-left: 0; + margin-right: 10px; + padding: 5px; + border: .5px solit #000; + background: #4796b3; + color: (255, 255, 255); + line-height: 40px; +} +.menu-selected { + font-size: 20px; + display: inline; + min-width: 150px; + height: 50px; + margin-left: 0; + margin-right: 10px; + padding: 5px; + border: .5px solit #000; + background: #096484; + color: rgb(255, 255, 255); +} +.menu-item a { + text-decoration: none; + color: rgb(255, 255, 255); +} diff --git a/styles/blue.min.css b/styles/blue.min.css new file mode 100644 index 0000000..6e94c63 --- /dev/null +++ b/styles/blue.min.css @@ -0,0 +1 @@ +@import url('./style.min.css');@CHARSET "UTF-8";#sqlite-admin-wrap h2,#sqlite-admin-side-wrap h2{background:#4796b3;color:#fff;padding-left:5px}.menu-item{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;border:.5px solit #000;background:#4796b3;color:(255,255,255);line-height:40px}.menu-selected{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;border:.5px solit #000;background:#096484;color:#fff}.menu-item a{text-decoration:none;color:#fff} \ No newline at end of file diff --git a/styles/coffee.css b/styles/coffee.css new file mode 100644 index 0000000..e9ddc49 --- /dev/null +++ b/styles/coffee.css @@ -0,0 +1,36 @@ +@import url('./style.min.css'); +@CHARSET "UTF-8"; +#sqlite-admin-wrap h2, +#sqlite-admin-side-wrap h2 { + background: #59524c; + color: rgb(255, 255, 255); + padding-left: 5px; +} +.menu-item { + font-size: 20px; + display: inline; + min-width: 150px; + height: 50px; + margin-left: 0; + margin-right: 10px; + padding: 5px; + border: .5px solit #000; + background: #59524c; + color: rgb(255, 255, 255); + line-height: 40px; +} +.menu-selected { + font-size: 20px; + display: inline; + min-width: 150px; + height: 50px; + margin-left: 0; + margin-right: 10px; + padding: 5px; + background: #c7a589; + color: rgb(255, 255, 255); +} +.menu-item a { + text-decoration: none; + color: rgb(255, 255, 255); +} diff --git a/styles/coffee.min.css b/styles/coffee.min.css new file mode 100644 index 0000000..4fecc4a --- /dev/null +++ b/styles/coffee.min.css @@ -0,0 +1 @@ +@import url('./style.min.css');@CHARSET "UTF-8";#sqlite-admin-wrap h2,#sqlite-admin-side-wrap h2{background:#59524c;color:#fff;padding-left:5px}.menu-item{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;border:.5px solit #000;background:#59524c;color:#fff;line-height:40px}.menu-selected{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;background:#c7a589;color:#fff}.menu-item a{text-decoration:none;color:#fff} \ No newline at end of file diff --git a/styles/doc.css b/styles/doc.css deleted file mode 100644 index 977873b..0000000 --- a/styles/doc.css +++ /dev/null @@ -1,124 +0,0 @@ -@CHARSET "UTF-8"; -#sqlite-admin-wrap h2, -#sqlite-admin-side-wrap h2 { - background: rgb(34, 34, 34); - color: rgb(256, 256, 256); - padding-left: 5px; -} -.navigation { - display: block; - margin-top: 0; - margin-bottom: 0; - min-height: 20px; -/* border: 1px solid #000; */ -} -.navi-menu { - margin-left: 0; -} -.menu-item { - font-size: 20px; - display: inline; - min-width: 150px; - height: 50px; - margin-left: 0; - margin-right: 10px; - padding: 5px; - border: .5px solit #000; - background: rgb(51, 51, 51); - color: (256, 256, 256); -} -.menu-selected { - font-size: 20px; - display: inline; - min-width: 150px; - height: 50px; - margin-left: 0; - margin-right: 10px; - padding: 5px; - border: .5px solit #000; - background: rgb(46, 162, 204); - color: rgb(256, 256, 256); -} -.menu-item a { - text-decoration: none; - color: rgb(256, 256, 256); -} -#sqlite-admin-wrap { - color: #1d1d1d; - font-size: 10pt; - border: 1px solid #ddd; - background: rgb(256, 256, 256); -/* border-top: 0; */ - -webkit-border-bottom-right-radius: 6px; - -webkit-border-bottom-left-radius: 6px; - -moz-border-radius-bottomright: 6px; - -moz-border-radius-bottomleft: 6px; - border-bottom-right-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-right-radius: 6px; - -webkit-border-top-left-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-topleft: 6px; - border-top-right-radius: 6px; - border-top-left-radius: 6px; - display: block; - float: left; - min-height: 100px; - position: relative; - width: 47%; - margin-top: 10px; - padding: 5px; - box-shadow: 5px 5px 5px #eee; - z-index: 1; -} -#sqlite-admin-side-wrap { - color: #1d1d1d; - font-size: 10pt; - border: 1px solid #ddd; - background: rgb(256, 256, 256); -/* border-top: 0; */ - -webkit-border-bottom-right-radius: 6px; - -webkit-border-bottom-left-radius: 6px; - -moz-border-radius-bottomright: 6px; - -moz-border-radius-bottomleft: 6px; - border-bottom-right-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-right-radius: 6px; - -webkit-border-top-left-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-topleft: 6px; - border-top-right-radius: 6px; - border-top-left-radius: 6px; - display: block; - float: left; - min-height: 100px; - position: relative; - width: 47%; - margin-top: 10px; - padding: 5px; - box-shadow: 5px 5px 5px #eee; - z-index: 1; -} -p { - text-indent: 15px; - line-height: 150%; - margin-left: 10px; - margin-right: 10px; -} -ul.in-body-list { - margin-left: 20px; -} -ol { - margin-left: 40px; -} -pre.code { - margin-left: 10px; - background: #eee; -} -.alt { - background: rgb(247, 254, 236); -} -.em { - font-weight: bold; - text-transform: capitalize; -} diff --git a/styles/ectoplasm.css b/styles/ectoplasm.css new file mode 100644 index 0000000..ffa017b --- /dev/null +++ b/styles/ectoplasm.css @@ -0,0 +1,36 @@ +@import url('./style.min.css'); +@CHARSET "UTF-8"; +#sqlite-admin-wrap h2, +#sqlite-admin-side-wrap h2 { + background: #523f6d; + color: rgb(255, 255, 255); + padding-left: 5px; +} +.menu-item { + font-size: 20px; + display: inline; + min-width: 150px; + height: 50px; + margin-left: 0; + margin-right: 10px; + padding: 5px; + border: .5px solit #000; + background: #523f6d; + color: rgb(255, 255, 255); + line-height: 40px; +} +.menu-selected { + font-size: 20px; + display: inline; + min-width: 150px; + height: 50px; + margin-left: 0; + margin-right: 10px; + padding: 5px; + background: #a3b745; + color: rgb(255, 255, 255); +} +.menu-item a { + text-decoration: none; + color: rgb(255, 255, 255); +} diff --git a/styles/ectoplasm.min.css b/styles/ectoplasm.min.css new file mode 100644 index 0000000..351d709 --- /dev/null +++ b/styles/ectoplasm.min.css @@ -0,0 +1 @@ +@import url('./style.min.css');@CHARSET "UTF-8";#sqlite-admin-wrap h2,#sqlite-admin-side-wrap h2{background:#523f6d;color:#fff;padding-left:5px}.menu-item{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;border:.5px solit #000;background:#523f6d;color:#fff;line-height:40px}.menu-selected{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;background:#a3b745;color:#fff}.menu-item a{text-decoration:none;color:#fff} \ No newline at end of file diff --git a/styles/index.php b/styles/index.php new file mode 100644 index 0000000..29d690a --- /dev/null +++ b/styles/index.php @@ -0,0 +1,2 @@ + .single { + width: 95%; +} #sqlite-admin-side-wrap { color: #1d1d1d; - font-size: 10pt; + font-size: 11pt; border: 1px solid #ddd; - background: rgb(256, 256, 256); + background: rgb(255, 255, 255); /* border-top: 0; */ -webkit-border-bottom-right-radius: 6px; -webkit-border-bottom-left-radius: 6px; @@ -105,26 +110,29 @@ h3 { p { text-indent: 15px; line-height: 150%; + font-size: 11pt; + margin-left: 10px; + margin-right: 10px; } table#sys-info{ /* width: 600px; */ - width: 480px; + width: 80%; } table#status { - width: 480px; + width: 100%; } table#sqlite-table { /* width: 700px; */ width: 100%; } th.tbl-name { - width: 200px; + width: 25%; } th.tbl_owner { - width: 105px; + width: 25%; } th.tbl_index { - width: 300px; + width: 50%; } td.system { color: rgb(153, 0, 0); @@ -149,6 +157,9 @@ pre.code { margin-left: 15px; margin-right: 10px; background: #eee; + white-space: pre-wrap; + word-wrap: break-word; + overflow: auto; } tr.incompatible { background: rgb(251, 229, 221); @@ -159,10 +170,10 @@ tr.workaround { tr.compatible { } th.active-plugins { - width: 120px; + width: 20%; } th.compatible { - width: 80px; + width: 30%; } input.button-primary { display: block; @@ -172,19 +183,23 @@ input.button-primary { .alt { background: rgb(247, 254, 236); } +.em { + font-weight: bold; + text-transform: capitalize; +} table#patch-files .item, table#backup-files .item { width: 40px; } .alert { - color: rgb(256, 0, 0); + color: rgb(255, 0, 0); } div.alert { display: block; width: 95%; text-align: center; margin: 0 auto; - color: rgb(256, 0, 0); + color: rgb(255, 0, 0); text-transform: capitalize; } blockquote.caution { @@ -197,4 +212,151 @@ blockquote.caution { blockquote.caution > p { margin: 5px; padding: 0; +} +#errorlog, +#dbfile { + width: 100%; +} +/* + * Media Query + */ +@media screen and (max-width: 600px) { + #sqlite-admin-wrap { + width: 95%; + } + #sqlite-admin-side-wrap { + width: 95%; + } + #sqlite-admin-wrap > table#sys-info{ + width: 100%; + } + table#sys-info th.item { + width: 50% + } + #sqlite-admin-wrap > table#status { + width: 100%; + } + table#status th { + width: 50%; + } + table#sqlite-table { + width: 100%; + } + th.tbl-name { + width: 25%; + } + th.tbl_owner { + width: 25%; + } + th.tbl_index { + width: 50%; + } + #sqlite-admin-side-wrap table#plugins-info { + width: 100%; + } + th.installed-plugins { + width: 50%; + } + th.active-plugins { + width: 20%; + } + th.compatible { + width: 30%; + } + #sqlite-admin-side-wrap > table#plugins-table { + width: 100%; + } + #sqlite-admin-side-wrap > table#plugins-table th.item { + width: 30%; + } + #sqlite-admin-side-wrap > table#plugins-table th.compat { + width: 20%; + } + #sqlite-admin-side-wrap > table#plugins-table th.reason { + width: 50%; + } +} +@media screen and (max-width: 782px) { + #sqlite-admin-wrap { + width: 95%; + } + #sqlite-admin-side-wrap { + width: 95%; + } + table#plugins-info { + width: 480px; + } + table#sqlite-table { + width: 100%; + } + th.tbl-name { + width: 25%; + } + th.tbl_owner { + width: 25%; + } + th.tbl_index { + width: 50%; + } + #plugins-table { + width: 500px; + } +} +@media screen and (max-width: 900px) { + #sqlite-admin-wrap { + width: 95%; + } + #sqlite-admin-side-wrap { + width: 95%; + } + table#plugins-info { + width: 480px; + } + table#sqlite-table { + width: 100%; + } + th.tbl-name { + width: 25%; + } + th.tbl_owner { + width: 25%; + } + th.tbl_index { + width: 50%; + } + #plugins-table { + width: 500px; + } +} +@media screen and (max-width: 1169px) { + #sqlite-admin-wrap { + width: 95%; + } + #sqlite-admin-side-wrap { + width: 95%; + } + table#plugins-info { + width: 480px; + } + table#sys-info { + width: 460px; + } + table#status { + width: 460px; + } + table#sqlite-table { + width: 100%; + } + th.tbl-name { + width: 25%; + } + th.tbl_owner { + width: 25%; + } + th.tbl_index { + width: 50%; + } + #plugins-table { + width: 500px; + } } \ No newline at end of file diff --git a/styles/style.min.css b/styles/style.min.css new file mode 100644 index 0000000..d76fe44 --- /dev/null +++ b/styles/style.min.css @@ -0,0 +1 @@ +@CHARSET "UTF-8";#sqlite-admin-wrap h2,#sqlite-admin-side-wrap h2{background:#222;color:#fff;padding-left:5px}h3{clear:both}.navigation{display:block;margin-top:0;margin-bottom:0;min-height:20px}.navi-menu{margin-left:0}.menu-item{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;border:.5px solit #000;background:#333;color:(255,255,255);line-height:40px}.menu-selected{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;border:.5px solit #000;background:#2ea2cc;color:#fff}.menu-item a{text-decoration:none;color:#fff}#sqlite-admin-wrap{color:#1d1d1d;font-size:11pt;border:1px solid #ddd;background:#fff;-webkit-border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomright:6px;-moz-border-radius-bottomleft:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-topleft:6px;border-top-right-radius:6px;border-top-left-radius:6px;display:block;float:left;min-height:100%;position:relative;width:58%;margin-top:10px;padding:5px;box-shadow:5px 5px 5px #eee;z-index:1}#wpbody-content>.single{width:95%}#sqlite-admin-side-wrap{color:#1d1d1d;font-size:11pt;border:1px solid #ddd;background:#fff;-webkit-border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomright:6px;-moz-border-radius-bottomleft:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-topleft:6px;border-top-right-radius:6px;border-top-left-radius:6px;display:block;float:left;min-height:100%;position:relative;width:35%;margin-top:10px;padding:5px 5px 5px 5px;box-shadow:5px 5px 5px #eee;z-index:1}p{text-indent:15px;line-height:150%;font-size:11pt;margin-left:10px;margin-right:10px}table#sys-info{width:80%}table#status{width:100%}table#sqlite-table{width:100%}th.tbl-name{width:25%}th.tbl_owner{width:25%}th.tbl_index{width:50%}td.system{color:#900}td.user{color:#00f}td.menu-title{width:95px}table.statement{width:500px}ul.in-body-list{margin-left:20px}ol{margin-left:40px}pre.code{padding:5px 5px 5px 5px;margin-left:15px;margin-right:10px;background:#eee;white-space:pre-wrap;word-wrap:break-word;overflow:auto}tr.incompatible{background:#fbe5dd}tr.workaround{background:#d9e8ed}th.active-plugins{width:20%}th.compatible{width:30%}input.button-primary{display:block;clear:both;width:100px}.alt{background:#f7feec}.em{font-weight:bold;text-transform:capitalize}table#patch-files .item,table#backup-files .item{width:40px}.alert{color:#f00}div.alert{display:block;width:95%;text-align:center;margin:0 auto;color:#f00;text-transform:capitalize}blockquote.caution{display:block;width:95%;border:3px double #000;margin:0 auto;padding:5px}blockquote.caution>p{margin:5px;padding:0}#errorlog,#dbfile{width:100%}@media screen and (max-width:600px){#sqlite-admin-wrap{width:95%}#sqlite-admin-side-wrap{width:95%}#sqlite-admin-wrap>table#sys-info{width:100%}table#sys-info th.item{width:50%}#sqlite-admin-wrap>table#status{width:100%}table#status th{width:50%}table#sqlite-table{width:100%}th.tbl-name{width:25%}th.tbl_owner{width:25%}th.tbl_index{width:50%}#sqlite-admin-side-wrap table#plugins-info{width:100%}th.installed-plugins{width:50%}th.active-plugins{width:20%}th.compatible{width:30%}#sqlite-admin-side-wrap>table#plugins-table{width:100%}#sqlite-admin-side-wrap>table#plugins-table th.item{width:30%}#sqlite-admin-side-wrap>table#plugins-table th.compat{width:20%}#sqlite-admin-side-wrap>table#plugins-table th.reason{width:50%}}@media screen and (max-width:782px){#sqlite-admin-wrap{width:95%}#sqlite-admin-side-wrap{width:95%}table#plugins-info{width:480px}table#sqlite-table{width:100%}th.tbl-name{width:25%}th.tbl_owner{width:25%}th.tbl_index{width:50%}#plugins-table{width:500px}}@media screen and (max-width:900px){#sqlite-admin-wrap{width:95%}#sqlite-admin-side-wrap{width:95%}table#plugins-info{width:480px}table#sqlite-table{width:100%}th.tbl-name{width:25%}th.tbl_owner{width:25%}th.tbl_index{width:50%}#plugins-table{width:500px}}@media screen and (max-width:1169px){#sqlite-admin-wrap{width:95%}#sqlite-admin-side-wrap{width:95%}table#plugins-info{width:480px}table#sys-info{width:460px}table#status{width:460px}table#sqlite-table{width:100%}th.tbl-name{width:25%}th.tbl_owner{width:25%}th.tbl_index{width:50%}#plugins-table{width:500px}} \ No newline at end of file diff --git a/styles/sunrise.css b/styles/sunrise.css new file mode 100644 index 0000000..d959efa --- /dev/null +++ b/styles/sunrise.css @@ -0,0 +1,36 @@ +@import url('./style.min.css'); +@CHARSET "UTF-8"; +#sqlite-admin-wrap h2, +#sqlite-admin-side-wrap h2 { + background: #cf4944; + color: rgb(255, 255, 255); + padding-left: 5px; +} +.menu-item { + font-size: 20px; + display: inline; + min-width: 150px; + height: 50px; + margin-left: 0; + margin-right: 10px; + padding: 5px; + border: .5px solit #000; + background: #cf4944; + color: rgb(255, 255, 255); + line-height: 40px; +} +.menu-selected { + font-size: 20px; + display: inline; + min-width: 150px; + height: 50px; + margin-left: 0; + margin-right: 10px; + padding: 5px; + background: #dd823b; + color: rgb(256, 256, 256); +} +.menu-item a { + text-decoration: none; + color: rgb(255, 255, 255); +} diff --git a/styles/sunrise.min.css b/styles/sunrise.min.css new file mode 100644 index 0000000..23a89b6 --- /dev/null +++ b/styles/sunrise.min.css @@ -0,0 +1 @@ +@import url('./style.min.css');@CHARSET "UTF-8";#sqlite-admin-wrap h2,#sqlite-admin-side-wrap h2{background:#cf4944;color:#fff;padding-left:5px}.menu-item{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;border:.5px solit #000;background:#cf4944;color:#fff;line-height:40px}.menu-selected{font-size:20px;display:inline;min-width:150px;height:50px;margin-left:0;margin-right:10px;padding:5px;background:#dd823b;color:#100100100}.menu-item a{text-decoration:none;color:#fff} \ No newline at end of file diff --git a/utilities/documentation.php b/utilities/documentation.php index 0454d84..8d4afce 100644 --- a/utilities/documentation.php +++ b/utilities/documentation.php @@ -38,7 +38,7 @@ class SQLiteIntegrationDocument {

- PDO for WordPress, which enabled WordPress to use SQLite for its database. But PDO for WordPress doesn\'t seem to be maintained any more only to be outdated. SQLite Integration makes use of the basic ideas and framework of PDO for WordPress, adds some new features and updates it to be able to work with the newest version of WordPress(3.7.1).', $domain); ?> + PDO for WordPress, which enabled WordPress to use SQLite for its database. But PDO for WordPress doesn\'t seem to be maintained any more only to be outdated. SQLite Integration makes use of the basic ideas and framework of PDO for WordPress, adds some new features and updates it to be able to work with the newest version of WordPress(3.8).', $domain); ?>

SQLite Web Page says — SQLite is a "software library that implements selfcontained, serverless, zero-configuration, transactional SQL database engine". It is "a good choice for small to medium size websites". It\'s small and portable, and you don\'t need any database server system.', $domain); ?> @@ -109,8 +109,8 @@ class SQLiteIntegrationDocument { - - + + @@ -131,8 +131,8 @@ class SQLiteIntegrationDocument { reason;?> - + diff --git a/utilities/index.php b/utilities/index.php new file mode 100644 index 0000000..29d690a --- /dev/null +++ b/utilities/index.php @@ -0,0 +1,2 @@ +text_domain; if (isset($_GET['page']) && $_GET['page'] == 'sqlite-integration') :?> -

+

@@ -725,7 +725,7 @@ class SQLiteIntegrationUtils {

-
+

@@ -820,4 +820,4 @@ class SQLiteIntegrationUtils { \ No newline at end of file +?>