Author Archives: redcocker

WordPressの投稿をPDF形式でダウンロード出来るプラグイン「POST2PDF Converter」

WordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン「POST2PDF Converter」をリリースした。 最新の「POST2PDF Converter」をダウンロード 「POST2PDF Converter」は、PHPライブラリ「TCPDF」を用いて、HTML形式のWordPressのコンテンツをPDFに変換し、ダウンロード出来るようにする。 このページの先頭にも、ダウンロードリンクがあるので、実際の動きを見たいなら試してみると良いだろう。 主な特徴は下記の通り。 ダウンロードリンクの追加が簡単、かつ柔軟。 PDFのダンロードに制限をかけることが可能。 様々な言語に対応し、言語に応じて最適化される(つもり)。 PDFのフォントサイズの変更やフォントの指定が可能。 ショートコードを処理するか削除するか選べる。 Font subsettingサポートし、PDFのファイルサイズを抑えられる。 なお、「Font subsetting」は、フォントのうち、実際使われている文字だけをPDFに組み込むことで、フォントの組み込みによるPDFのファイルサイズの増大を抑えることが出来る機能であるが、PHPの処理としては負荷がかかる複雑な処理になる。 そのため、場合によっては、「Font subsetting」を無効化し、フォント全体を組み込んだ方が良いかもしれない。 「POST2PDF Converter」で使用している「TCPDF」は、現状、日本語で書かれたHTMLを上手くPDF化出来ず、一部の文字が表示されないなどの問題が発生する。 これは、搭載している日本語フォントが主な原因であるが、この問題を解決するために、別途、TCPDF用日本語フォント「RCJフォント for TCPDF」と「梅フォント for TCPDF」を公開している。 ファイルサイズの関係で、「RCJフォント for TCPDF」と「梅フォント for TCPDF」は「POST2PDF Converter」に同梱していないので、別途インストールして欲しい。 「Font subsetting」を無効化し、フォント全体を組み込むならファイルサイズが比較的小さい「梅フォント for TCPDF」が向いている。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | 1 Comment

TCPDF用日本語フォント「RCJフォント」

「TCPDF」用の日本語フォント「RCJフォント for TCPDF」をリリースした。 バージョン003.03 2011/12/22 最新の「RCJフォント for TCPDF」をダウンロード 「TCPDF」は、テキストやHTMLをPDFファイルに変換するためのPHPライブラリであるが、標準のフォントでは、正しく日本語を表示できないなど、日本語環境(おそらくマルチバイト過環境全般)での利用に関して問題も多い。 そこで、オープンソースの日本語フォントである「IPAフォント」ベースに、TCPDF用に変換した「RCJフォント for TCPDF」を作成した。 パッケージには、「IPAゴシック」、「IPA Pゴシック」、「IPA明朝」、「IPA P明朝」と同等のフォントが収められている。 このフォントは、「/tcpdf/fonts/」ディレクトリにインストールして使うことができるが、PDFを受け取った相手が、同じフォント持っていなくとも編集出来るようにするには「FontSubsetting」を setFontSubsetting(false) に設定して使用する必要があるため、PDFファイルにフォント全体が組み込まれ、生成するPDFファイルのサイズが大きくなるという問題もある。 「RCJフォント」は、超マイナーなフォントであり、パッケージにソースとして収録はしているが、PDFを受け取った相手のPCに「RCJフォント」がインストールされている確率は皆無であり、そのためPDFにフォントを組み込む必要が生じる。 また、フォント自体のファイルサイズが小さくないため、PHPに割り当てられたメモリの上限が小さい場合は、PDFを正常に生成出来ないかもしれない。 その場合は「php.ini」を編集するなどして、割り当てるメモリの上限を増やす必要がある。 memory_limit = 64M

Posted in ネット・PC | Tagged , , | Leave a comment

WP SyntaxHighlighter バージョン1.7 リリース

「WP SyntaxHighlighter バージョン1.7」をリリースした。 最新の「WP SyntaxHighlighter」をダウンロード バージョン1.7は、1.6.7に続くリリースとなるが、中身は、バージョンの数字以上に変化している。 まず、bbPress 2.0以上をサポートし、フォーラムのトピック、リプライに含まれるコードを強調表示できるようになった。 bbPressの投稿フォームには、コメント欄と同様にテキスト形式のリンクボタンを挿入できるようになっており、簡単にソースコードを強調表示させることが出来る。 また、過去のバージョンでは、ソースコードのマークアップに<pre>タグのみを用いていたが、バージョン1.7では、ショートコードもサポートした。 書式はWordPress.comで使われているショートコードと互換性がある。 [sourcecode language="php" gutter="true" firstline="1" highlight="" htmlscript="false"]PHP コード[/sourcecode] [sourcecode lang="xhtml" gutter="true" firstline="1" highlight="" htmlscript="false"]XHTML コード[/sourcecode] language(lang)以外の属性は、省略しても良い。language(lang)を省略するとプレーンテキストとして強調表示される。 設定にもよるが、ショートコードは、投稿の作成/編集画面、固定ページの作成/編集画面、コメントの投稿欄、管理画面上のコメントの編集/返信画面、「WP SyntaxHighlighter Widget」で使うことができる他、bbPressのトピック/リプライの投稿フォーム、トピック/リプライの編集フォーム、管理画面のトピック/リプライの作成/編集画面でも使用できる。 実は、より簡略な下記の書式のショートコードもサポートしているのだが、事実上、これらの書式は使えない。 [source language="php" gutter="true" firstline="1" highlight="" htmlscript="false"]PHP コード[/source] [code lang="xhtml" gutter="true" firstline="1" highlight="" htmlscript="false"]XHTML コード[/code] なぜならば、この書式を適切に処理できるフィルターを実装していないからだ。そのため、これらの書式を使おうと思うと面倒になる。仮に自身でコードをエスケープしたとしても低い権限しか与えられていないユーザーが投稿した場合は、ソースコードが壊れる場合がある。 そもそも「WP SyntaxHighlighter Widget」の場合は、手入力でのマークアップは想定していないので、多少長くともWordPress.comとの互換性を優先した形になっている。 ショートコードを有効にした状態で、本文中にこれらのショートコードを書くと、表示の際にタグに展開されてしまうので注意が必要だ。 それを避けたい場合は、下記のようにショートコードを「[]」で囲んでエスケープすること。 [[sourcecode language="php" gutter="true" firstline="1" highlight="" htmlscript="false"]PHP コード[/sourcecode]] [[sourcecode lang="xhtml" gutter="true" firstline="1" highlight="" htmlscript="false"]XHTML コード[/sourcecode]] 例外として、<pre>タグで囲まれたショートコード(sourcecode、source、codeのみ)、つまり、ショートコードを含むソースコードを<pre>タグでマークアップした場合は、ショートコードをエスケープしなくとも、正常に処理されるようにしている。 ショートコードの導入に合わせて、コメント欄、WP SyntaxHighlighter Widget、bbPressの投稿フォームに追加されるテキスト形式のリンクボタンも強化され、<pre>タグだけでなく、ショートコードの挿入もサポートし、設定画面で切り替えることが出来るようになった。 過去のバージョンでは、投稿および固定ページにソースコードを記述することが許されたのは、「unfiltered_htm」権限を持つユーザー、つまりデフォルトのユーザーロールでは、管理者、編集者のみであったが、必要に応じて投稿者や寄稿者など、記事の投稿が許されているユーザー対して、ソースコードの記述を許可出来るようになった。 以上が目に見える機能面での主な新機能であるが、目に見えない部分でも変化している。 構成ファイルのうち、メインファイルが肥大して来たので、役割毎にファイルを分割し、処理を効率化している。 パフォーマンスを重視するなら、設定画面で不要な機能を無効化することをオススメする。 ただし、(過去のバージョンでも既に複雑であったが)設定画面は、我ながら、ここまで必要かと思うほど複雑になっているので、隅まで良く見た方が良い。 デフォルトでも、全てのユーザーが必要としていると思われない機能は、殆ど無効化されているが、設定の煩雑さを考慮して、敢えてデフォルトで有効になっている機能もある。 なお、デフォルトで有効になっている機能は、プラグインインストール時のWordPressのバージョンによっても異なる。 今後のリリースでも、設定画面に関しては、より複雑化する方向に向かうのではないかと思うわれるが、「設定しなくとも使え、設定することで、より幸せになれる」方向で開発を行うつもりであるため、頭が痛くなるようなら設定画面は見ない方が幸せかもしれない。 とは言え、以下の項目だけは、しっかり設定した方が良いだろう。 使用するライブラリ・・・2つのバージョンから選べるが、外観や機能も随分と異なったものになる。 テーマ・・・外観を変えたいなら。 ツールバー・・・強調表示されたソースコードの右上に表示される「?」やツールバーを消せる。 デフォルトの言語・・・必要な言語だけに絞りこめば、ボタンをクリックした時に表示される言語も減るので操作しやすくなる。 コメントやウィジェットの処理を除き、過去のバージョンでは、WordPressのデフォルトフィルターに依存し、独自のフィルターの適用は避けてきたが、必要性に迫られて投稿や固定表示の投稿/編集時、および表示時に適用されるフィルターも追加している。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , | Leave a comment

「Ultimate TinyMCE」でWordPressのビジュアルエディターをカスタマイズ

WordPressのビジュアルエディターのカスタマイズを簡単にするプラグインと言えば、「TinyMCE Advanced」が定番であるが、今回紹介する「Ultimate TinyMCE」もビジュアルエディターのカスタマイズを簡単に行う事ができる優秀なプラグインである。 リリースから間もないが、既に人気プラグインとなっており、「Ultimate TinyMCE」も「TinyMCE Advanced」と並んで定番となりそうである。 「TinyMCE Advanced」が4行にわたって自由にアイコンを配置し、順序の変更や区切りの表示も柔軟に出来るのに対して、「Ultimate TinyMCE」は、デフォルトで表示される2行に加えて3行目、4行目に表示するボタンをチェックボックで選択する仕組みを採用している。 順番の変更は出来ない。単に表示/非表示が選べるだけである。 柔軟性を欠くものの、その分気軽さがあり、下記のように簡単にビジュアルエディターにボタンを追加できる。 また、ボタンを追加してくれる以外に、標準のボタンの機能拡張も行なってくれる。 下記は、拡張された「リンクの挿入/編集」ボタンである。 既存のボタンの拡張に関しては、個人的には不要なので、設定画面で選択出来るようになると有難い。 過去のバージョンでは、WordPressのインストールパスによっては、設定画面でアイコンが表示されないバグがあったが、バーッジョン1.5.6以降では、これも解消している。 また、バージョン1.5.7以降は、設定画面の日本語表示にも対応した。 ちなみに「TinyMCE Advanced」と「Ultimate TinyMCE」の共存はできない、エラーになるわけではないが、同時に有効化すると、ボタンの配置は「TinyMCE Advanced」の設定が優先され、一部のボタンは「Ultimate TinyMCE」のものと置き換わる。

Posted in WordPress, ネット・PC | Tagged , , | 2 Comments

初心者による初心者のためのPHP講座 第6回 条件分岐

ここまで学んだ知識でも、変数の定義や関数を記述して簡単なプログラムを作成することは出来るはずである。 しかし、条件分岐やループ処理などの制御構文を記述することで、初めて複雑なプログラミングが可能になる。 今回は「条件分岐」について説明する。 「条件分岐」とは、特定の条件を満たすか否か判定し、その結果に応じて処理を割り当てる制御構文である。 条件分岐には「if文」、「switch文」が使われる。 if文 「if文」とは、「もし~ならば、処理を実行する」といった意味を持つ構文である。 条件式の評価を行い、その条件が真(ture)であれば、処理を実行する。 <?php if (条件式) { 処理; } ?> 下の例では、変数$colorが、「red」であれば、echo()関数が実行され、「Red」と表示される。 <?php if ($color == "red") { echo "Red"; } ?> if文では、「()」内に評価する条件式を記述し、対応する処理は「{}」内に記述する。 条件式の評価の部分で使われている「==」は、比較演算子と呼ばれる構文で、この場合は、左辺と右辺の値が等しいことを意味している。 「$colorがredと等しい」か否かの評価、つまり「$colorがred」であるか否かの評価を行なっている。 上記のif文は、条件式の評価が偽(false)である場合は、何も行わない、単一の条件の評価であるが、「else if文」を使えば、最初の「もし(if) ならば」が偽であれば、「あるいは ならば」といった別の評価を行うことが出来る。 下記の例では「$colorがred」である場合は、「echo “Red”;」実行して、if文を終了するが、「$colorがred」でない場合は、続いて「$colorがblue」か否かの評価が行われる。 <?php if ($color == "red") { echo "Red"; } else if ($color == "blue") { echo "Blue"; } ?> 「else if」文は、下記のように複数回記述することも出来る。 <?php if ($color == "red") { echo "Red"; } else if ($color == "blue") { echo "Blue"; } else if ($color == "black") { echo "Black"; } ?> 「else if」は、空白を空けずに「elseif」と書いても良い。 個人的には、「else if」と書く癖があるが、同様の構文を持つJavaスクリプトで「elseif」と書くべきところを、「else if」と書いて失敗することがある。 そう言った意味では「elseif」で覚えたほうが良いかもしれない。 更に、「else文」を使えば、いずれの条件式評価も偽となった場合の処理を記述することが出来る。 <?php if ($color == "red") { echo "Red"; } else if ($color == "blue") { echo "Blue"; } else if ($color … 続きを読む →

Posted in PHP, PHP講座, ネット・PC | Tagged | Leave a comment

WordPress 3.3のHTMLエディターにクイックタグを追加する

この記事は、「WordPress 3.3 ベータ 3」に基づいて書かれており、不確定な要素を含んでいる。 WordPressは、記事の作成、編集のために「ビジュアルエディター」と「HTMLエディター」の2つのエディターを備えており、操作を簡略化するために、それぞれ独自のボタンを配している。 「ビジュアルエディター」で表示されるボタンは、ビジュアルエディターのベースとなってるライブラリ、「TinyMCE」が標準で搭載してるボタンか、「TinyMCE」のプラグインとして導入されているものである。 また、「HTMLエディター」に表示されるボタンは「クイックタグ(Quicktag)」と呼ばれ、「ビジュアルエディター」のボタンとは異なるものである。 (現時点では、未だリリースされていないが)「WordPress 3.3」では、この「クイックタグ」の処理が変更されており、従来方法ではクイックタグを「HTMLエディター」に追加出来なくなってしまっている。 そのため、独自のクイックタグを追加するようなプラグインは、WordPress 3.3に合わせて修正しない限り、WordPress 3.3では、クイックタグが表示されないと言った問題が発生することが予想される。 この記事では、WordPress 3.3のHTMLエディターに独自のクイックタグを追加する方法を説明する。 下記は、<pre>タグ(および終了タグ</pre>)を入力するためのクイックタグを追加する場合の例である。 プラグインやfunctions.phpで記述すれば良い。 <?php function add_my_quicktag() { ?> <script type=”text/javascript”> //QTags.addButton(‘ID’, ‘ボタンのラベル’, ‘開始タグ’, ‘終了タグ’); QTags.addButton(‘ed_pretag’, ‘pre’, ‘<pre>’, ‘</pre>’); </script> <?php } add_action(‘admin_print_footer_scripts’, ‘add_my_quicktag’); ?> 「ID」は任意のもの、「ボタンのラベル」には、ボタン上に表示したい文字を設定する。 「開始タグ」には、ボタンをクリックした時に、選択範囲の前に挿入されるタグを入力する。 「終了タグ」は、不要であれば省略することも出来る。 その他に、タイトル(title属性)、アクセスキー、プライオリティと言ったパラメーターを指定することも出来る。 詳しくは、 /wp-includes/js/quicktags.dev.js のコメントを参照のこと。 上記の例は、単にタグを挿入するだけの処理であるが、より高度な処理を行うために、指定したJavaスクリプトの関数を実行させることもでき、この場合も、シンプルに記述することが出来る。 <?php function add_my_quicktag() { ?> <script type=”text/javascript”> //QTags.addButton(‘ID’, ‘ボタンのラベル’, 関数名); QTags.addButton(‘ed_saywordpress’, ‘Say WordPress’, say_wordpress); function say_wordpress() { alert(‘WordPress’); } </script> <?php } add_action(‘admin_print_footer_scripts’, ‘add_my_quicktag’); ?> 「関数名」は、クォーテーションで囲んではいけない。 また、「WordPress 3.3」では、「quicktags_settings」と言うフィルターフックが新しく追加されており、このフックを使えば、デフォルトで表示させるクイックタグを制御することが出来る。 標準では、デフォルトで表示されるクイックタグは、strong(b)、em(i)、link、block(b-quote)、del、ins、img、ul、ol、li、code、more、spell(lookup)、close(close tags)、fullscreenであるが、下記のように記述することで、これを変更することが出来る。 function default_quicktags($qtInit) { $qtInit['buttons'] = ‘strong,em,link’; return $qtInit; } add_filter(‘quicktags_settings’, ‘default_quicktags’, 10, 1); 上記の例では、strong(b)、em(i)、linkがデフォルトで表示されるクイックタグとなる。 なお、デフォルトのクリックタグの指定は、最初に説明した方法で追加したクイックタグには影響を与えないので、デフォルトのボタンとして指定しなくとも表示される。 詳しくは、 /wp-includes/class-wp-editor.php のeditor_settings()関数を参照のこと。

Posted in PHP, WordPress, ネット・PC | Tagged , | 2 Comments

初心者による初心者のためのPHP講座 第5回 演算子

PHPに限らず、プログラムでは、「演算子」と呼ばれる数学的または論理的な演算を行うための記号を使用する事が多い。 この演算子を使えば、足し算、引き算などの四則演算を行ったり、値の代入を行うことが出来る。 また、PHPのプログラムでは、ある条件を満たすか否かの判定、つまりは真偽(true、false)の判定を行うことが多いが、このような判定では「比較演算子」、「論理演算子」が欠かせない。 既に「初心者による初心者のためのPHP講座 第3回 文字列」で「文字列演算子」について触れ、「初心者による初心者のためのPHP講座 第4回 定数と変数」で「代入演算子」と「算術演算子」についても触れており、実際に使用しているが、それら以外にも演算子には様々な種類がある。 とは言え、復習的な部分も少なくない。 演算子は、必ず知っておく必要があるが、演算子だけ取り上げて学習するよりも、プログラムの中で実際に使った方が感覚的にも分かりやすいかもしれない。 具体的な使い方は、実際にプログラミングしながら覚えれば良い。 しかし、演算を行うための演算子という記述があることは、少なくとも覚えておこう。 算術演算子 単純な計算を行うための記述にであり、「5+3」、「2×3」の「+」や「×」に相当するもので、プログラミングの知識が無くとも、馴染みがあり、理解しやすいはずである。 PHPでは、以下の5つの四則演算子が用意されている。 + 足し算 – 引き算 * 掛け算 / 割り算 % 割り算の余りを求める 下記は、算術演算子を使ったサンプルである。 <!doctype html> <?php echo ‘<?xml version=”1.0″ encoding=”utf-8″?>’; ?> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” lang=”ja” xml:lang=”ja”> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> <title>四則演算子</title> </head> <body> <?php $cal1 = 8 + 3; // 8と3の足し算。$cal1には整数11が代入される。 $cal2 = 8 – 3; // 8から3を引く。$cal2には整数5が代入される。 $cal3 = 8 * 3; // 8に3を掛ける。$cal3には整数24が代入される。 $cal4 = 8 / 3; // 8を3で割る。$cal4には浮動小数点2.66666666667が代入される。 $cal5 = 8 % 3; // 8割る3の余り。$cal3には整数2が代入される。 echo “8 + 3 = “.$cal1.”<br />”; echo “8 - 3 = “.$cal2.”<br />”; echo “8 × 3 = “.$cal3.”<br />”; echo “8 … 続きを読む →

Posted in PHP, PHP講座, ネット・PC | Tagged | Leave a comment

WordPressにソーシャルボタンを追加する「Facebook, Twitter & Google+ Social Widgets」

WordPressにソーシャルボタンを追加するプラグインは、数多くあるが、今回紹介する「Facebook, Twitter & Google+ Social Widgets」もその1つである。 このプラグインは、どちらかと言えば後発で、機能も非常にシンプルであるが、既にかなりの人気を獲得している。 「Facebook, Twitter & Google+ Social Widgets」で追加できるボタンは、「Facebook いいね!」、「ツイート」、「Google+」の3つに限られており、この3つのボタンのうち、選択したものを単に横並びに記事に表示するだけである。 しかし、この3つのボタンは、世界中で人気のサービスであり、ある意味、的を得た選択と言える。 「Facebook, Twitter & Google+ Social Widgets」は、単に有効化するだけでも使えるが、表示に関して細かな設定でき、このあたりも人気の秘密だろう。 まず、ボタンの順序を自由に入れ替えることが出来る。 また、ボタンを表示するページを次から複数選択することが出来る。 投稿 固定ページ ホーム カテゴリーページ タグページ タクソノミーページ 日付別ページ 作成者ページ 検索結果 添付ファイルページ 加えて、ページ内でのボタンの表示位置が指定でき、「投稿の上」、「投稿の下」、または「両方」に表示させることが出来る。 なお、このプラグインの作者は、以前、「WP SyntaxHighlighter」用にとDOSバッチファイル用のBrushファイルを作成してくれた方である。 参考:SyntaxHighlighter用のBrushファイル「DOS バッチファイル」

Posted in WordPress, ネット・PC | Tagged , | Leave a comment

TinyMCE Backslash Button バージョン0.2 リリース

「TinyMCE Backslash Button バージョン0.2」をリリースした。 最新の「TinyMCE Backslash Button」をダウンロードする バージョン0.2では、HTMLエディター上でもフォントの指定付きでバックスラッシュを入力出来るQuicKtagを追加した。 これによって、ビジュアルエディター、HTMLエディターの両方でバックスラッシュの入力が可能になった。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , | Leave a comment

WP SyntaxHighlighter バージョン1.6 リリース

「WP SyntaxHighlighter バージョン1.6」をリリースした。 最新の「WP SyntaxHighlighter」をダウンロード 「WP SyntaxHighlighter」は、基本的に標準のビジュアルエディターの使用を想定したものであり、HTMLエディターを主に利用しているユーザーにとっては使い易いとは言えなかった。 バージョン1.6では、ソースコードをエースケープし、<pre>でマークアップして強調表示の対象とできるQuicktag(ボタン)「SH pre」をHTMLエディターに追加した。 これにより、HTMLエディターでのソースコード記述が大幅に楽になっている。 「SH pre」ボタンの基本的な操作は、TinyMCEの「pre」ボタンを同じである。 ただし、タグの編集が出来るHTMLエディターのボタンであることもあり、「pre」ボタンと異なり、設定値の変更機能は備えていない。 また、一度「SH pre」ボタンで処理したソースコードは、特殊な文字がエスケープされて表示されるため、見かけ上、元々のソースコードとは、異なった表示となってしまう。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , | Leave a comment