[CakePHP]WordPressよりもckeditor/ckfinderを使ってみた

[CakePHP 2.2.3]

1月から、「みんなの英語ひろば」で記事コンテンツを配信し始めました。

http://eigohiroba.jp/t

当初、ベースのシステムはCakePHP、記事コンテンツWordPressと分けていたのですが、この2つのシステムの相性がよろしくないので、記事コンテンツ向けにWordPressはやめて、普通にCakePHPで作ることにしました。

3日程で作ることができたのですが、、今回ご紹介するckeditorとckfinderというツールのおかげでかなり楽でした。こちらはjavascriptでテキストエリアに簡単に機能を付加できる多機能エディタで、本当に、かなりのスグレモノです。

ちなみに、ckeditorが本体で、ckfinderは追加機能で、画像アップロード機能を追加するのに使いました。

2013 01 27 1831

導入方法は簡単

CakePHPの場合、それぞれダウンロードしたファイルを、以下に配置します。

app/webroot/js/ckeditor/

app/webroot/js/ckfinder/

そして、使用したいビューの中で、以下のように呼び出すだけです。

[php]
<?php $this->Html->script(‘ckeditor/ckeditor’, array(‘inline’ => false));?>
<?php $this->Html->script(‘ckfinder/ckfinder’, array(‘inline’ => false));?>

<?=$this->Form->input(‘body’, array(‘class’=>’ckeditor’, ‘id’=>’editor1’))?>
[/php]
[js]
<script type="text/javascript">
if (typeof CKEDITOR != ‘undefined’) {
var editor = CKEDITOR.replace( ‘editor1’ );
CKFinder.setupCKEditor( editor, ‘/js/ckfinder/’ ) ;
}
</script>
[/js]

実装例

2013 01 27 1841

ckeditorを読み込んだ場合、テキストエリアがこのように変わります。

2013 01 27 1842

エディタ上にあるボタンのうち、「イメージ」ボタンをおすとこのようなウインドウが開きます。

2013 01 27 1843

アップロード機能(ckfinderがちゃんと読み込まれていればこのアップロードタブが出てきます)

2013 01 27 1844

さらに、「イメージ」ウインドウから過去にアップロードした画像一覧を見ることもできます。
こちらもckfinderの機能です。

CakePHPとWordPressを一緒に動作させると2つのシステムを管理するのが大変になってしまいます。簡単なブログ機能で良い場合、ckeditorを候補に入れてみるのはいかがでしょうか。

みんなの英語ひろばをリニューアルした理由

ご報告が遅くなってしまったのですが、最近サイトをリニューアルしました。

みんなの英語ひろば」というサイトです。

2013 01 26 1849

コンセプトは、「みんなで作る英語学習者のための総合ガイド」ということで、
ランキング操作なし、網羅性、見やすさ、客観性を大事にした英語の総合情報サイトにしていく予定です。英語学習者が、まず何をすればいいのか、どうすればいいのかを知るために最初に訪れてくれるような、そういうサイトにしたいと思っています。

正直なところ、詰めが甘いところが多く、まだまだなのですが、コツコツと改善して良いサイトにしていこうと思います。

このサイトを作ろうと思ったキッカケは、いくつかあるのですが、
その中でも、商業的すぎる、日本の英語業界に疑問を感じていたというのはあります。

日本は英会話学習において恵まれた環境にあると言えます。まず、日本人によって作られた良い教材が安い値段で豊富にあります。海外では、自国語で書かれた英語学習本がないために、最初から英語で書かれた本を使わなければいけない国が多くあります。

また、最近ではイノベーションとも呼べるオンライン英会話やフィリピン留学によって効果的な学習が驚く程安い料金で可能になりました。毎日25分のマンツーマンレッスンが月額5000円で受けられるなどというのは、昔では考えられないほどすごいことです。

このように、かなり良い環境が整っていると言えると思うのですが、世界でのTOEICやTOEFLの平均スコアなどの統計を見る限り、日本人の英語レベルはそれほど高くないようです。

たしかに、日本語と英語は文法や文字構造自体がかなり異なる言語ですので、日本人が英語を習得するには時間がかかると言われています。

日本は全て日本語で快適に暮らせるように出来ているし、就職でも外資でなければ英語が要求されることはそれほど多くありません。

このように、いくつか理由はあるのでしょうけども、その中でも私の問題意識として、商業的すぎはしないかなぁと思うところはあるわけです。

魔法のような謳い文句で宣伝する教材や広告を良く見かけます。「毎日〇〇するだけで話せるようになる〜」などです。初心者は出来るだけ効率良く、楽に身につけたいと考えるのは自然ですので、そういった謳い文句に振り回されてしまう方が一定数いるのは理解できます。そして申し込んだのは良いけども、結局身に付かない、というのはあり得る話です。

また、ネット上では英語教材や教室は、アフィリエイトサイトが溢れており、評判を検索してみると、アフィリエイト目的のサイトばかりでどれも良いことしか書いていません。また、ランキングが操作されていることは良くあることです。あるサイトでおすすめされている1位の教材は、一番アフィリエイト報酬が高額なものだったりします。

いち英語学習者である私が書くのは少しはばかれるところはあるのですが、
実際のところ、英語は自分のレベルに合わせてやるべきことを総合的にコツコツと学習していく他はありません。魔法は存在しません。英語が出来る人は正しい方法で、コツコツと学習した方ばかりです。

ただ、英語がある程度出来るようになった方からすると当然のように分別がつくのですが、そうでない場合、この溢れる情報の中でどうすればいいのかを見極めて行くのは大変だろうなぁと思うわけです。

ですので、ランキング操作なく、様々な情報を網羅して、皆さんの声を集めてデータベース化することで、英語初心者〜中級者くらいの方までが、安心して情報収集できるサイトを作りたいと思いました。

そして最初の一歩として今回リニューアルを行いました。まだ英会話教室とオンライン英会話が中心ではありますが、今後は教材など他の学習方法も追加して行きながらサイトの見易さ等を改善して行く予定です。

まだまだ出来が悪いところがありますが、コツコツと改善していきますのでどうぞ長い目で見ていただけると有り難いです。

[CakePHP]カスタムRouting利用時にViewでPaginatorのURLを設定する方法

[CakePHP 2.2.3]

カスタムRoutingを使用している時にPaginatorのURLが思ったように出力されなくてかなりハマることは良くありますよね!

この辺は公式マニュアルに書いてなかった気がしますので尚更です。(実は書いてあったらスミマセン)

例えば、以下のようにRoutingが設定されていた場合、

Config/routes.php

[php]
Router::connect(‘/:hoge1/:hoge2’, array(‘controller’ => ‘articles’, ‘action’ => ‘index’),
array(
‘hoge1’ => ‘[a-zA-Z]+’
‘hoge2’ => ‘[0-9]+’,
));
[/php]

ViewのPaginatorでは、以下のように設定します。

View/Articles/index.ctp

[php]
<?=$this->Paginator->numbers(array(
‘url’ => array(‘controller’ => ‘articles’, ‘action’ => ‘index’, ‘hoge1’ => ‘foo’, ‘hoge2’ => 123)
))?>
[/php]

または、Paginationのリンクを出力する前に以下のように設定しておくことも出来ます。

[php]
<?php $this->Paginator->options(array(
‘url’ => array(‘controller’ => ‘articles’, ‘action’ => ‘index’, ‘hoge1’ => ‘foo’, ‘hoge2’ => 123)
))?>
[/php]

ポイントは、しっかりとパラメータを入力してあげることですね。