Mar 09

CKEditorのツールバーをカスタマイズ

JavaScript 1 Comment »

CKEditorのツールバーをカスタマイズしてみます。

複数のCKEditorを1ページに用いることも可能で、それぞれ異なるツールバーを入れることも考えてみます。

各CKEditor用config.jsを用意する

独自のCKEditor用config.jsを用意すればOKです。
流れとしては、
1.独自config.jsを作成し、その中にtoolbar設定を書く。
2.CKEDITOR.replace()時に、1で作成したファイルをcustomConfig: で呼ぶ
だけです。

では、まず独自config.jsを作りましょう。ファイル名はedit1config.js とします。

JAVASCRIPT:
  1. //設定をするものであり、toolbarだけでなくいろんな設定をここで行える
  2. CKEDITOR.editorConfig = function( config )
  3. {
  4. config.toolbar = 'CustomToolbar'//CustomToolbarという名前にしてみた
  5. config.toolbar_CustomToolbar =
  6. [
  7. ['Preview'],
  8. ['Cut','Copy','Paste','PasteText','PasteFromWord'],
  9. ['Undo','Redo','-','RemoveFormat'],
  10. ['Image','Flash','Table','HorizontalRule','SpecialChar'],
  11. '/',
  12. ['Styles','Format'],
  13. ['Bold','Italic','Strike'],
  14. ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
  15. ['Link','Unlink','Anchor']
  16. ];
  17. };

で、 edit1テキストエリアに上記config設定をしたCKEditorを組み込みます。

HTML:
  1. <textarea id="edit1"></textarea>

参考リンク

CKEditor API documentation
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html

CKEditor Developers Guide
http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Toolbar

まるひろの独学-者(どくがくもん)の独り言の記事
 http://ameblo.jp/dokugakumono/entry-10400796859.html

Mar 04

CKEditorを使ったフォームを作成する。

JavaScript, php No Comments »

CKEditorで入力フォームを作ります。

form.php で入力(CKEditor、CKFinder付き。前回参照)
conf.phpで確認。戻るでform.phpに戻るようにして、form.phpにはPOSTで入力していた情報をデータとしてセットする。

を行います。

form.phpで入力と戻ってきたときのデータをセット

  1. form.phpでは、CKEditor(CKFinder含)をセットし、formタグで囲み、action="conf.php" method="post"にします。
  2. conf.phpで戻ってきたときに入力していたデータをセットします。

1.は普通にCKEditorを組み込めれば、フォームと同じです。

2.では、textarea name="editor1" だったとすると、editor1にPOSTで戻ってきたデータをセットすることになりますが、CKEditorの準備が完了してからセットしないと反映されません。

イベントinstanceReadyを使い、準備が出来た時にセットするようにします。

JAVASCRIPT:
  1. <script type="text/javascript"> //<![CDATA[     CKEDITOR.on(\\'instanceReady\\', function(e) {   var tmpEditor = CKEDITOR.instances.editor1;   tmpEditor.setData( \\'<?php echo ; ?>\\' );  });
  2.  
  3. //]]> </script>&lt;script type="text/javascript"&gt;
  4. //&lt;![CDATA[
  5. CKEDITOR.on('instanceReady', function(e) {
  6. var tmpEditor = CKEDITOR.instances.sentence;
  7. tmpEditor.setData( '&lt;?php echo $sentence; ?&gt;' );
  8. });
  9.  
  10. //]]&gt;
  11. &lt;/script&gt;

渡すデータは、改行などをあらかじめ削除しておきます。

PHP:
  1. $sentence = $_POST['editor1'];
  2. $sentence = ereg_replace( "\r|\n", "", $sentence );

これで、CKEditorの準備が出来た時に、$_POST[''];のデータをセットすることが出来ます。

参考URL

CKEditor 3 JavaScriptAPI Documentation
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.html

Mar 03

CKEditor,CKFinderを使ってWORDのようなフォームを作る

JavaScript, php No Comments »

 CKEditor,CKFinderの使い方

WordPressなどでは、TinyMCEが使われていますが、画像などのアップロードをしようとすると、TinyMCEだけを組み込んでもできません。

そこで、TinyMCEに似ていて、なおかつファイルアップロードまで簡単に組み込めてしまえるCKEditor,CKFinderを使うことにします。

CKEditorがTinyMCE、CKFinderがファイルアップロード機能(実際は管理も出来ますが今回は省略)です。

Read more... »

Jan 03

PHP 全角スペースを半角スペースに置換し、キーワード抽出

php No Comments »

キーワード検索機能をつけるときに、自分は全角スペース、半角スペースごちゃまぜで検索しようとします。
PHPでこの機能を作る場合は、フォームから渡されたキーワード文字列を分割しなくてはいけません。キーワードを区切る文字を”半角スペース”とする場合、全角スペースを半角スペースに変換する必要が出てきます。
str_replace()などでは全然変換されなくて困っていたところ、便利な関数が用意されていました。

mb_convert_kana()を使う

こんな関数が用意されていました。
http://jp2.php.net/manual/ja/function.mb-convert-kana.php

PHP:
  1. //全角スペースを半角スペースに変換
  2. $keywords = mb_convert_kana( $keywords, "s" );
  3. //半角スペースで区切り、$keyList配列に格納
  4. $keyList = explode( " ", $keywords );

全角スペースがつながって複数ある場合は?

上記explodeでそれぞれ配列に値が入りましたが、全角スペースが2つなどつながっている場合、配列$keyList内には余分な空文字も入っています。

空白、NULL,false,-1などのboolean=falseとなるような値をフィルタリングした配列を返す関数array_filter()を使います。
最後にforeach()などで値を見れば、確かに入力したフォームの文字列から空白を除いた文字列が取得できました。

PHP:
  1. $keyList = array_filter( $keyList );
  2. foreach( $keyList as $key=>$val ){
  3.   echo $val."<br />";
  4. }

参考URL

mb_convert_kana
http://jp2.php.net/manual/ja/function.mb-convert-kana.php

array_filter
http://www.php.net/manual/ja/function.array-filter.php

配列要素の削除方法について PHPプロ!Q&A掲示板
http://www.phppro.jp/qa/1475

Dec 14

さくらインターネットでPHP+Mysql 文字コードをUTF8で使うメモ(文字化け対策)

php, さくら(サーバ) No Comments »

さくらインターネットのスタンダードプランでは、Mysql5.1.30だった。
たいして考えないでCREATE TABLEすると、照合順序がujis_japanese_ci(EUC-JP)になってしまう。
utf8_general_ciを使いたいところです。文字化け防止の手順を。
DBは契約したときに1つだけ割り当てられてますが、DB自体を設定することはできないので、テーブル作成時、mysql_connect()した後、mysql_select_db()前にutf8に設定する必要があるようです。

CREATE TABLE時

テーブルの照合順序をutf8_general_ciに設定する。

PHP:
  1.  
  2. $sql = "CREATE TABLE `tablename` (data1,data2,...) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;";
  3. $link = $db-&gt;Query( $sql );

INSERTやSELECT時

以下のように、接続した後にSET NAMES utf8をセットすると、INSERT,SELECTなどの時うまく日本語が文字化けせずに入りました。

PHP:
  1. $link = mysql_connect( $host, $user, $password );
  2.  
  3. mysql_query( "SET NAME utf8", $link );
  4.  
  5. mysql_select_db( $dbname );

charset, collateはconfigでdefineきっておけば良いですね。

参考リンク

MySQL 6.5.3 CREATE TABLE 構文
http://dev.mysql.com/doc/refman/4.1/ja/create-table.html

さぼてん:PHP+Mysql+UTF-8で文字化け対策
http://saboten009.blogspot.com/2008/01/phpmysqlutf-8.html

Oct 04

WindowsXPでブルースクリーン(青画面)エラー対策

Tips No Comments »

c000021a unknown hard error

WindowsXP(SP2)で、新しいハードウェア(サウンドデバイス)などを使おうと、ドライバなどをインストールし、起動しようとすると、いきなり青画面になることがあります。

今回、新規デスクトップPCにXPをインストールし、使おうと思ったら2種類出てきたのでその対策をメモ。
サウンドとハードディスクでした。

Read more... »

Oct 01

WordPress カテゴリIDを見る方法

wordpress No Comments »

 最近のWordPressでは、list_cats(..)などで、指定したカテゴリ以下のカテゴリリストを表示しようにも、そのカテゴリIDを見ることが困難になってきています。

一番簡単な方法として、今回はPhpMyAdminを使って指定したいカテゴリのIDを見ることにします。

WordPressでは、wp_termsテーブルに追加したカテゴリの情報が載っています。それを見ることで解決します。

nameのところから、知りたいカテゴリIDを見つけたら、その左にあるのがterm_idがカテゴリIDです。

ちなみに、wp_term_taxonomyテーブルでは、カテゴリと関連付けたカテゴリの情報が入っています。
ここのparentフィールドを編集することでWordPressの管理画面で親カテゴリを編集するのと同様の操作になります。

参考リンク

WordPress データベース概要
http://wpdocs.sourceforge.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E6%A6%82%E8%A6%81

特定カテゴリの記事を表示するときなどはquery_posts()
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts

関数リファレンス
http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9

テンプレートタグ
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0

カテゴリに適用されるテンプレートなどの説明
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E9%9A%8E%E5%B1%A4

Sep 20

DreamweaverCS3でCakePHPのctpファイルを開く

CakePHP 1 Comment »

Dreamweaverでctpファイルを認識

CakePHPのテンプレートファイル.ctpをDreamweaver CS3で認識させ、さらにPHPのように振る舞うよう設定します。

テスト環境はWindowsXP環境。
ViewやLayoutのテンプレートCTPを通常のDreamweaverでは開けないので、設定ファイルを変更します。
Dreamweaver自体の設定は3箇所。
あと、エクスプローラで*.ctpファイルのプロパティを開き、アプリケーションを登録しておけば、PHPと同様の動作をしてくれます。

※ファイルを操作するので、一応環境設定でUTF-8にしておいてください。

Read more... »

Sep 18

php 携帯フォームで絵文字のみを削除する

mobile, php No Comments »

phpで絵文字を簡単に削除

掲示板などを作ったとき、携帯の入力フォームで、キャリアの違いによる絵文字変換が面倒な場合が多々あると思います。
AUで入力された絵文字をDocomoで見たときなどに出る文字化けです。
対応が面倒な場合は、「絵文字は自動的に削除されます」と一言加え、入力されてから確認画面に移行した時に削除しておけばOK。

AU,ソフトバンクで軽く確認済み

Read more... »

Aug 22

メルマガ、HTMLメールを作成するソフトThunderbird

HTML No Comments »

Thunderbirdでメルマガ作成

メルマガを含め、HTML形式のメールを作成するには、Thunderbirdが良いです。
Outlook2007では、受信側で正しく表示できないなどの例が出ているし、HTMLだと思っていたらXML形式のようです。
ホームページ作成ソフトなどでHTMLタグ記載し、それをThunderbirdにコピペする方法が一番安全に送れます。画像は外部のサーバにアップしてあるデータを利用することで、メール容量を軽減することが出来ます。

Read more... »

Copyright(c) 小山太郎.com All rights reserved.