2008-05-25 23:45:36

もう一丁、備忘録。作りたい自分用ブログサイト

テーマ:プログラミング - PHP

やりたくて出来ていないことがあって。ブログの集約です。


このブログはもう長くやってるし、有難いことに読者の方もたくさん居て下さって、ググると結構上のほうに出てくるので、このまま継続していこうと思っています。


ただ前にも書いた通り、他にいくつかブログを持っているんです。しかもかなりホッタラカシ・・・


ちゃんとメンテしない私がいけないのですが、いくつもサイトを掛け持ちするって良くないですよね、やっぱ。1つなら毎日ログインして書き込みやすくなるかなって思うし、分散してると気持ちも分散しちゃう気もするし。


で、作ろうと思ってるのはブログ専用(+写真・動画・ファイルなど)のサイト。機能概要はこんな感じ。


・ユーザを分類。ログイン不要と必要に分ける

・ユーザのジャンル(超親友、友達、仕事付き合いなど)によって見れるコンテンツも変える

・ログイン要になる場合は、新規会員登録してもらう

・登録があったら、勝手ながら私がユーザジャンルを定義する

・ログインしたユーザは自分自身でメアドやパスワードなどを修正できる

・写真や動画の閲覧、ファイルのダウンロードもできる(掲示板は置かないつもり)

・写真や動画はできるだけ操作性の良いインタフェース

・日記形式以外に、ジャンル別の静的コンテンツも記載

・その他、便利かなと思う小機能を搭載(カレンダーとか)

・全体的にコメントを受けられるようにする

・携帯でも同一の機能を提供

・管理者機能としては、

  ・ユーザ登録状況の閲覧と変更、退会

  ・ユーザのジャンル設定と会員振り分け

  ・記事や写真、動画などの投稿(勿論、記事のジャンルなどもカテゴリ化可)

  ・コメントの受信状況閲覧

  ・携帯での記事や写真、動画を投稿

  ・ログイン状況、アクセス状況の閲覧

・全体的にDBは使わず、あくまでテキストファイルベース


雑駁に言えば、付き合いのレベルに応じて記事をオープンにする範囲を変えるってことです。Movable Typeにはそういう機能は無さそうですが、mixiにはこうのがあるらしいです。


ただ、mixiにはあんまり自分のコンテンツを載せたくないんですよね。なんでだろう・・・自分でもあんまりハッキリしないのですが。まぁ、細かい機能とか自分で変えたいからかなぁ。


こうなると、もはやブログサイトと似たような感じですが、時間があれば技術的には問題無い範囲です。


大変なのはコンテンツの引越し。記事は勿論、コメントも。ブログ移転用のソフトとかもあるようですが、できれば自分でやりたいですね。

AD
いいね!した人  |  コメント(0)  |  リブログ(0)
2008-04-02 00:11:13

iモードIDをPHPで取得するサンプルソース

テーマ:プログラミング - PHP
いくつの手段がありますが、とりあえずハイパーリンクでログイン的に使う場合のサンプルです。

<html>
<head>
<title>iモードID</title>
</head>
<body>
<a href="index.php?guid=ON">ここをクリック</a><br>
<?
$dcmguid = $_SERVER['HTTP_X_DCMGUID'];
print $dcmguid."<br>";
?>
</body>
</html>

aタグでリンクする際、変数にguid=ONとすると、サーバ変数の「HTTP_X_DCMGUID」に格納されます。フォームのアクションURLで同様に guid=ON しても取得できます。

また、以下のような方法で取得することもできますが、少々面倒ですね。

$http_headers_array = apache_request_headers();
$dcmguid = $http_headers_array['X-DCMGUID'];


公式サイトでは、X-DCMGUIDの先頭に半角スペースが入るとなっておりますが、PHPで取得すると空白が削除されます。

なお、このiモードIDを使うにあたっては

・ユーザが通知をONにしている(初期設定はON)
・改番、名義変更などで契約状況が変わった場合はIDが変わる
・2in1の場合はAナンバーのIDが通知される

といった条件がありますが、同じFOMAカードを使っている限り、機種変更しても変わらないので便利です。

これは、iモード端末とインターネットとの間にあるCiRCUSというシステムがProxy機能を果たしていて、端末の製造番号に関係無く、ユーザの契約情報を踏まえてブラウザに http ヘッダを送出しているからです。

作ろうiモードコンテンツ(NTTドコモ)
http://www.nttdocomo.co.jp/service/imode/make/content/ip/index.html#imodeid

少し注意すべきは、携帯電話番号や住所・氏名、メールアドレスなどの個人情報を入力する場合です。相手側で電話番号などの個人情報とiモードIDがリンクされてしまうと、匿名だったネットサーフィンも個人特定された状態に変わることを意味します。

今後マーケティングなんかでこの辺の情報が流通するかもしれません。「30代の東京都在住の男性がこのサイトにアクセスしている」みたいな分析は簡単にできますね。

なお、今後出会い系などで悪徳業者が「あなたのIDは取得されてます」などと不当請求に悪用してくるかもしれませんが、騙されることなく毅然とした態度で臨みましょう。
AD
いいね!した人  |  コメント(0)  |  リブログ(0)
2006-08-29 14:04:58

フォームをブログ風WYSIWYGにしたい - FCKEditorを使ってみた-

テーマ:プログラミング - PHP
ブログを始めて最初に驚いたのは、編集画面がハイパーでWYSIWYGなことだった。フォームのTEXTBOX上でフォントや文字色の変更、ハイパーリンク設定などができ、HTMLエディターさながらの機能であることに驚いた。

ソースを見ると、どうやらJavaScript あたりで出来ているようで、「いつか自分のサイトでも・・・・」と思ったものだ。

で、XOOPSで自分のサイトを作った時、「WordExpress」というブログのモジュールをインストールしてみると、SPAW EditorというWYSIWYGエディタが一緒に付いていて、「なんと便利な」と思った次第。

ちなみに、WYSIWYGとは「What You See IS What You Get」。つまり「見たままが得られる」という意味で、もともとは編集系の用語らしい。

で、最近PHPプロミングの機会が出来たので、今度はこのWYSIWYGな機能を入れ込みたいと思って調べてみたところ、いろんなオープンソースがあることが分かった。

参考サイト:
Develog - Linux,MySQL,PHP,SEO,Debian,PEAR,Smarty,Blog -
サーバ設置型htmlビジュアルエディタについて調べて見た(Wind-Sunlight - Webプログラミング 風の巻)

上記のSPAW Editor以外にも、htmlEditorTinyMCEFCKEditorといったものが提供されているのだ。

私はこの中で「FCKEditior」をインストールして使ってみたが、非常に具合が良い。特にアイコンがWindows共通っぽいところが馴染み易い印象を与える。

参考サイト:あきら×ひろこ=ゆう

1.公式サイトでダウンロードして解凍
2.サーバーにアップロードする

というところまでは良いのだが、ネットを探しながら自分なりに工夫したこともあるので、ノウハウ共有のため書き留めておく。PHPで使うことを前提で。

3.設定ファイルの書き換え

 fckconfig.js というファイルがあるが、48行目に多言語設定がある。その上の47行目で言語自動認識の項目が「true」になっているので特段問題はないが、念のため「ja」に変えておく。
 そして同じファイルの134行目に _FileBrowserLanguage などのプログラミング言語設定があり、2箇所とも「php」に変えておく。どうやら言語ごとのコネクタなる機能を利用するようだ。
 同じく141行目以降に、イメージブラウザやイメージアップロードなどの機能のON/OFFがあり、必要な機能の箇所だけ「true」にしておく。
 そして、PHP専用設定ファイル fckeditor.php があって、38行目に $this->BasePath がある。プログラム個々で設定しなければ、こちらのほうが参照されるようなので、一応修正しておく。

4.独自設定ファイルの作成

 これは任意だが、「ボタンの構成を変えたい」とか「編集画面サイズを変えたい」とか、本来設定ファイルなどで定義されているものを自分なりにカスタマイズしたい場合、設置すると便利だ。

 ファイル名は任意。拡張子は「.js」にすると良いだろう。自分の場合は、「myconfig.js」などと命名し、以下のような内容とした。

 FCKConfig.ToolbarSets["MyToolbar"] =
[
['Preview', 'Source'],
['Cut', 'Copy', 'Paste', 'PasteText', '-', 'Undo', 'Redo'],
['Bold', 'Italic', 'Underline', 'StrikeThrough'],
['OrderedList', 'UnorderedList', '-', 'Outdent', 'Indent'],
'/',
['Link', 'Unlink'],
['Table', 'Image', 'Rule'],
['FontSize', 'TextColor', 'BGColor'],
['FitWindow', '-', 'About']
] ;

これによって、「MyToolbar」というアイコン群が定義され、以下のようなアイコン設定となる。
FCKEditor

5.ファイルアップロードの設定ファイルを修正する


 ファイルのアップロードは、サーバーブラウザーというサーバ上のファイルをブラウズするツールと、イメージアイコンをクリックした際に「アップロード」タグの2箇所で可能だが、以下はどちらの方法でもアップロードできるようにする。

 fckeditor/editor/filemanager/browser/default/connectors/php/config.php
 fckeditor/editor/filemanager/upload/php/config.php

という2つのファイルを操作。

 まずは、24行目の $Config['Enabled'] を「true」とする。
 そして、27行目の $Config['UserFilePath'] に適切なサーバ上のパスを設定する。このパスには、「Image」「File」「Flash」「Media」といったサブディレクトリが生成される。従って、パーミッションを適切に設定しておこう。

6.「アップロード」タグでアップした場合、Imageディレクトリに格納されないバグを修正

 fckeditor/editor/filemanager/upload/php

にバグがあるようだ。87行目を

 $sFilePath = $sServerDir . "Image/". $sFileName ;

と修正し、107行目も同じように

 $sFileUrl = $Config["UserFilesPath"] . "Image/" . $sFileName ;

と修正する。

7.アップロード後に表示されるメッセージボックスを日本語にしたい

 fckeditor/editor/dialog/fck_image/fck_image.js

にある、alart(********); を日本語に修正する。

8.アップロード後に表示されるラテン語のメッセージを日本語にしたい

 fckeditor/editor/dialog/fck_image/fck_image_preview.html

46行目にあるラテン語を適当に修正する。

といった具合。ちょっと難儀? 7.や8.は好みの問題なので、機能に支障はないが。

さて、実際に書き込むフォームはどうすればいいのか? 私はこんな感じで作った。

フォームの最初
include("fckeditor/fckeditor.php") ;
$Config['UserFilesPath'] = 'upload/';  →アップロード用パス(実はここが効いていなくて、5.の設定ファイルのほうが優先される様子?)

$oFCKeditor = new FCKeditor('FCKeditor1') ;

$oFCKeditor->BasePath = 'fckeditor/' ; →一応ベースとなるパスを設定(これが優先される様子)
$oFCKeditor->Config['CustomConfigurationsPath']= '../../myconfig.js' ; →自分用設定ファイルの相対パス(fckeditor/editorからの相対パス?)
$oFCKeditor->ToolbarSet = 'MyToolbar' ; →自分で作ったアイコン群名
$oFCKeditor->Width = '100%' ; →編集サイズ(幅)
$oFCKeditor->Height = '500' ; →編集サイズ(高さ、ピクセル)
$oFCKeditor->Value = $content ; →フォームに埋め込む初期値
$oFCKeditor->Create() ;
フォームの最後

どこからの相対パスになるか、というのはちょっと分かりにくいのでご自身で試されたし。

で、このフォームの編集結果を受け取る側は、

$_POST['FCKeditor1']

でデータを受領。

ちなみにPHPで利用する場合、他の不要な言語特化ファイルは削除しても構わないようだ。私も結構減らした。

FCKEditorをサーバに1つだけインストールして、いくつかのサイトが本体を共通的に利用するということも可能で、上記はそういうことを意識して書いてみたのだが、アップロードディレクトリについては、まだ完全な独立性を確認できていない。検証されたし。
AD
いいね!した人  |  コメント(1)  |  リブログ(0)

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。