有料老人ホーム紹介サイトとして

Drupal-CMSなら、サイト完成後も機能拡張したり、無い機能を作ったりDrupal-CMSなら、サイト完成後も機能拡張したり、無い機能を作ったり

有料老人ホーム紹介サイトのサンプルです。

今やマッチングサイト全盛ですが、一通りの機能を備えたマッチングサイトCGIでサイト構築をお考えの方が多いのではないのでしょうか。

確かに、今の時代でもCMSを0から開発するのは費用がかかりすぎます。そういった事をふまえると、出来合いのCGIとなると思いますが、選択肢の一つにDrupal-CMSをいれてみてはいかがでしょうか。

下記サイト「有料老人ホーム紹介サイト・サンプル」を作ってみました。


有料老人ホーム紹介センター(デモサイト)

Drupal-CMSなら、サイト完成後も機能拡張したり、無い機能を作ったりする仕組みがわかりやすくなっています。

会員制サイト形式は、今や 全てのタイプのサイトに必須です。会員制サイトは 見込み客を集めるための最低限の入口です。

他にもメールや リティング、資料ダウンロード、SNS、、、様々な窓口がありますが、どれか一つで良いという事ではありません。

サイトを持つなら、会員制の部分は 持っておくべきです。そういう意味では会員制サイトも全てではありません。トータルなサイト(マーケティング)設計があって初めてサイトは成功する可能性が出てきます。

弊社は、お客さまの立場に立ったマーケティング・サイト設計を提案いたします。

設計後、サイトを育てるのは お客さまと弊社の2人3脚です。

お客さまの ご要望次第、お客さまが ご自分でやりたい部分は 弊社はアドバイザーになります。

お客さまの ご依頼があれば 弊社が無料で拡張いたします。拡張した機能は 弊社の お客さま全てに無料で ご使用いただけます。

弊社は お客さまの ご要望を 単なる ご要望として受け止めるのではなく、弊社 お客さま全体の利益に係わる アイデアと考えます。

弊社が思いつかなかったアイデアを 頂いた場合、弊社は無料で 拡張・構築いたします。

もちろん、その利益を、弊社の お客さま全体に 無料で ご使用いただきます。

有料老人ホーム紹介サイトの構成ポイント有料老人ホーム紹介サイトの構成ポイント

TOPページ≫おすすめホーム

  • ホーム会員(有料老人ホーム施設側の管理会員)により登録された有料老人ホームの新着サムネイル+タイトルが表示されます。
  • サムネイルまたはタイトルをクリックすると有料老人ホーム絞り込み検索ページに移行します。
  • ≫続き ボタンクリックで検索フォームを有料老人ホーム絞り込み検索ページに移行します。
Drupalのコンテンツ拡張機能で このような拡張が簡単にできます。

有料老人ホーム絞り込み検索

  • ホーム会員により登録されたピックアップ記事のサムネイル+本文+要約が表示されます。
  • サムネイルまたは≫続き ボタンクリックで有料老人ホーム絞り込み検索ページに移行します。
Drupalのコンテンツ拡張機能で このような拡張が簡単にできます。サムネイルの大きさ、TOPページでの配置、表示数など自由に設定する事が出来ます。

TOPページその他の導線ブロック

  • 会員登録、絞り込み検索への導線用のブロック(バナー)をコンテンツ中に自由に配置。
  • ページ別に表示するブロック(バナー)を選択することにより自然な導線が確保できます。
Drupalのユーザ管理機能で このような管理が簡単にできます。ブログをベースとしたホームページでは難しいページ別のバナー表示やサイドバー表示内容の調整が簡単にできます。

 

有料老人ホーム紹介サイトの特徴

  • 2種類の会員管理(有料老人ホーム施設側管理担当者 / 有料老人ホームを探している方)
  • 有料老人ホーム情報登録・変更(有料老人ホーム施設側管理担当者)
  • マッチング予約情報登録(有料老人ホームを探している方)
    現段階で希望の有料老人ホームが見つからなかった場合でも、希望内容を登録しておくことで随時マッチングが行われ、希望に沿った有料老人ホームが登録されたタイミングで通知を受けることができます。
  • マイページ(有料老人ホーム施設側管理担当者 / 有料老人ホームを探している方 双方)

 

ご要望の機能が存在しない場合でも遠慮なくご相談ください。

 

View_ownモジュールとFaqモジュール

Faqコンテンツがアクセス権にひっかかって表示できなくなったFaqコンテンツがアクセス権にひっかかって表示できなくなった

会員制サイトの構築にあたり、今まではユーザ・プロフィールやユーザ固有コンテンツの表示・非表示をViewsモジュールの閲覧権限の設定や、独自拡張モジュールで対応していましたが、View_ownモジュールを知り、使ってみることにしました。

→ 詳細はView_ownモジュールとWebformモジュール

Faq拡張モジュールへの景況Faq拡張モジュールへの景況

ところが、View_own拡張モジュールをインストールすると、従来から利用していたFaq拡張モジュールによるFaqコンテンツがスーパーユーザ以外でアクセスするとアクセス権にひっかかって表示できなくなってしまいました。

View_own拡張モジュールとFaq拡張モジュールを同居させるにはView_own拡張モジュールとFaq拡張モジュールを同居させるには

View_own拡張モジュールの改造が必要になります。

View_own拡張モジュールの下記部分(Ver 6.x-1.1の場合)

31: function view_own_perm() {
32:   foreach (node_get_types() as $type) {
33:     if ($type->module == 'node' ) {
34:      $perms[] = 'view own '. $type->type .' content';

を以下のように変更します。

31: function view_own_perm() {
32:   foreach (node_get_types() as $type) {
33:     if ($type->module == 'node' || $type->module == 'faq') {
34:      $perms[] = 'view own '. $type->type .' content';

 上記変更後、以下の要領でWebformコンテンツの一般閲覧を有効にします。

  1. 管理セクション≫ユーザの管理≫権限ページの「view_own モジュール」以下に「view any faq contentとview own faq content」の権限設定行が増えていますので各ロールに対して有効にします。
  2. 管理セクション≫コンテンツの管理≫投稿の設定ページの
    ノードアクセスの状態:[アクセス権の再構築]をクリックして、変更を反映させます。

View_ownモジュールとWebformモジュール

View_ownモジュールインストール後、Webform投稿ページが表示できなくなったView_ownモジュールインストール後、Webform投稿ページが表示できなくなった

会員制サイトの構築にあたり、今まではユーザ・プロフィールやユーザ固有コンテンツの表示・非表示をViewsモジュールの閲覧権限の設定や、独自拡張モジュールで対応していましたが、View_ownモジュールを知り、使ってみることにしました。

View_ownモジュールなしの状態はView_ownモジュールなしの状態は

自分が投稿したコンテンツのみ参照可能"などの権限設定をコンテンツタイプごとに設定出来るようにします。

Drupal標準の権限設定では

  • ノード全般の閲覧権限
  • 各ノートタイプごとの生成権限
  • 各ノートタイプごとの編集権限
  • 各ノートタイプごとの削除権限

がown/anyそれぞれで定義可能です。

閲覧に関する権限設定は、ノードタイプごとではなく”全てのノード”に対してです。

View_own拡張モジュールをインストールするとView_own拡張モジュールをインストールすると

標準の権限設定に加えてノードタイプごとの own/anyそれぞれの閲覧権限が設定できるようになります。

Webform拡張モジュールへの景況Webform拡張モジュールへの景況

ところが、View_own拡張モジュールをインストールすると、従来から利用していたWebform拡張モジュールによる投稿ページがスーパーユーザ以外でアクセスするとアクセス権にひっかかって表示できなくなってしまいました。

View_own拡張モジュールとWebform拡張モジュールを同居させるにはView_own拡張モジュールとWebform拡張モジュールを同居させるには

View_own拡張モジュールの改造が必要になります。

View_own拡張モジュールの下記部分(Ver 6.x-1.1の場合)

31: function view_own_perm() {
32:   foreach (node_get_types() as $type) {
33:     if ($type->module == 'node' ) {
34:      $perms[] = 'view own '. $type->type .' content';

を以下のように変更します。

31: function view_own_perm() {
32:   foreach (node_get_types() as $type) {
33:     if ($type->module == 'node' || $type->module == 'webform') {
34:      $perms[] = 'view own '. $type->type .' content';

 上記変更後、以下の要領でWebformコンテンツの一般閲覧を有効にします。

  1. 管理セクション≫ユーザの管理≫権限ページの「view_own モジュール」以下に「view any webform contentとview own webform content」の権限設定行が増えていますので各ロールに対して有効にします。
  2. 管理セクション≫コンテンツの管理≫投稿の設定ページの
    ノードアクセスの状態:[アクセス権の再構築]をクリックして、変更を反映させます。

メニューやタイトルを画像にする-Signwriter

メニューやタイトルを動的に作成メニューやタイトルを動的に作成

ブログやCMSは、動的にコンテンツを生成します。

その関係で、表示されるメニューやタイトルは動的に作成されます。その関係で、文字においても画像によるインパクトが出せず、なんとも煮え切らないページになっているということはないでしょうか。

Signwiterモジュールを利用することで、装飾の自由度が格段にあがります。

例えば、本サイトのタイトル(このページでは「メニューやタイトルを画像にする-Signwriter」)もSignwriterモジュールを利用して表示しています。

いかがでしょうか?ブラウザに依存する文字には得られないデザイン感が出ていませんか?

Signwriterは以下の手順で有効にします。

  1. 管理セクション≫モジュールで「Singnwriter」を有効にします。
  2. ユーザの管理≫権限でsignwriter モジュール以下、
    ・administer signwrite
    ・ruse PHP for signwriter pages
    を有効にします。
  3. 管理セクション≫サイトの環境設定≫Signwriterで、最低限の設定を行います。

    薄赤の部分は上記と同様に設定してください。
  4. 次にAdd a profileをクリックして画像変換用のプロファイルを作成します。

    薄赤の部分にプロファイル名を入力します。いくつかプロファイルを作成する場合は違いの分かる名前にします。
  5. 全般の設定は以下のようにします。
  6. テキスト部分の設定を 通常時、Hover時、アクティブ時各々行います。
  7. Drop Shadow、Background、Borderに関しても同様に設定します。
  8. Image Layout、Image Typeを設定します。

    上記はこのサイトのページタイトル用の設定例です。慣れてきたら変えてみると違いが分かってきます。
  9. [保存]すると、Signwriterのメイン設定ページに戻ります。
  10. 上記で設定したプロファイルが Profile一覧に表示されます。
  11. Template Hooksで作成したプロファイルをPage titles:で使用するように選択します。

    必要に応じて、プロファイルを作成し、各々割り当てます。
  12. メニューに対してSignwriterを適用する場合は、上記同様にプロファイルを作成し、各々のメニューに割り当てます。
  13. 最後に[設定の保存]を行います。

 

いかがでしょうか。あまり使いすぎると、うるさいですが、Signwriterはリアルタイムの画像処理はサーバ側で行うためクライアントに負担をかけません。

生成されるタグにもキャラクタ文字列は残っており、SEO的にも問題がありません。

有料フォントを購入し、サーバーにアップすることで表現力が格段に広がります。

ヒートマップによるクリック解析機能-ClickHeat

ページ内クリック状況が見ることができるページ内クリック状況が見ることができる

ClickHeatは、ヒートマップが作成可能な、オープンソースソフトウェアのアクセス解析ツールです。

Drupal拡張モジュール(ClickHeat)を導入することにより、自サイト中のページ内クリック状況が右図のように見ることができるようになります。

数値的なコンバージョンや、導線の解析とClickHeatを併用することにより、効果的なユーザの誘導を検討することが可能となります。

どのボタンやハイパーリンクがクリックされているか掴むのも重要ですが、ハイパーリンクになっていないテキスト上や画像上にクリックが集中している場合、その場所にボタンを表示しよう。とか。

クリックされていないボタンをクリックが集中している場所に移すとか。

ClickHeatでクリックされているページ上の場所を把握することで、さまざまな工夫が可能になります。

弊社会員さまサイトへのClickHeatのインストール/設定は多少複雑になるため、ご希望により弊社が行います。

ご希望の会員様はサポートページより「新機能要望」で ご連絡ください。

お問い合わせフォームのスパム対策-CAPTCHA

自動登録ロボット対策としてCAPTHAモジュール自動登録ロボット対策としてCAPTHAモジュール

Webサイトを設置し、しばらくたつとお問い合わせフォームから全文英語(ほとんどハイパーリンクのみの本文)の投稿が目立つようになってきます。

宣伝目的による自動登録ロボットによる投稿です。

対策として、Drupal CAPTHAモジュールが利用できます。

あまり目立たないうちはスパム対策といえど、善意の訪問者に対してのユーザビリティを下げるので あまり使いたくないですが、増えてくると、善意の投稿まで見落としてしまう事になってしまうので、ころあいをみて CAPTCHAモジュールを活用します。

以下の手順で利用します。

  1. 管理セクション≫サイトの構築≫モジュール:Spam control:CAPTCHAを有効にし、[設定の保存]をクリックします。
  2. 管理セクション≫ユーザの管理≫CAPTCHA で以下の設定を行います。

    最下行の webform_client_form_29 は本サイトのお問い合わせフォームのフォームIDです。
    ID名はお問い合わせフォームの数や設置順で変わってきますので最後の数字の部分は自分のサイト上の数値にあわせます。
    上記入力後[設定の保存]をクリックします。
  3. 管理セクション≫ユーザの管理≫CAPTCHA≫Image CAPTCHAページで、Exampleの様子を見ながら各種 見栄えの設定を行います。
    機能的にはデフォルトの状態で機能しますが、デフォルトのままだと、多少見にくいので調整します。
  4. [設定の保存]をクリックします。

 

以上で設定は完了です。

お問い合わせフォームを表示すると、送信ボタンの上に以下のように表示されるようになります。

上記キーを入力:イメージで示されたキャラクタをスペースを入れずに入力してください。 などのガイダンスは最初は英語のままです。
サイトの構築≫インターフェースの翻訳≫検索ページで該当英文を検索し、対応する日本語を設定することで変更します。

コンテンツにビューを挿入する

コンテンツの表現力やユーザビリティを向上コンテンツの表現力やユーザビリティを向上

ホームページの更新をスムーズに、しかも快適に行うには 入力に気持ちの良い環境が必要です。

ただ単に文字を入力しているだけでは表現力も劣り入力作業が覇気がないものになってしまいます。

insert_viewモジュールを利用することでコンテンツの表現力やユーザビリティを向上させることができます。

insert_viewモジュールの利用方法insert_viewモジュールの利用方法

モジュールを有効にする

  1. 管理セクション≫サイトの構築≫モジュールでinsert_viewを有効にし、[設定の保存」をクリックします。
  2. 管理セクション≫サイトの環境設定≫入力書式ページを表示します。
  3. ビューをインサートしたい書式行の[設定]をクリックし、設定ページを表示します。
  4. insert view filterをチェックし、[設定の保存]をクリックします。
     

コンテンツに挿入する

例えば、ここにトップページのサイドブロックに表示されているフォトギャラリブロックを挿入してみます。

 

 

 

 

  1. 管理セクション≫サイトの構築≫ビュー≫リストを表示します。
  2. [編集]をクリックし、設定ページを表示します。
     
  3. 設定ページでは表示したいブロックをクリックし、選択したブロック上にマウスを置くと、ステータスバーに当該ブロックのIDが表示されます。

    上記、http://~中の、
    ・photo_gellery部分がview-ID。
    ・block_1部分がdisplay-IDです。
  4. コンテンツ中に[view:view-ID=display-ID]の型式で記述します。
    ↓がその結果です。
  5. パラメータやページ等は以下のような記述を行います。
    [view:name of view] is replaced by the content listing.
    [view:name of view=name of display] invokes the view using the specified display (see README.TXT for more info).
    [view:name of view=name of display=arg1,arg2,arg3] invokes the view using the specified display and passes arg1, arg2 and arg3 to the view.
    [view:name of view==arg1]
    詳細→insert_view

ユーザ・プロフィール情報への画像の仕込み方

ユーザ・プロファイルの中に仕込む画像のことで はまるユーザ・プロファイルの中に仕込む画像のことで はまる

ことの発端は、Drupal標準のユーザ・プロフィール情報が、通常のノードのような応用性が薄く、フォーム入力なり、アバターなり、Drupal標準機能にも関わらず拡張性が低い事でした。

アバターの問題アバターの問題

ユーザ要望による、投稿画像→サムネイル、中間サイズ画像、現画像というような使い方が標準のユーザ・プロフィール情報ではできないようです。

一覧ブロック、一覧ページではサムネイルを表示し、詳細ページでは中間サイズ画像、中間サイズ画像をクリックするとThickboxによるズームアップ表示。というごくありきたりな要望なのですが、事、ユーザ・プロフィール情報においては そんなありきたりなことが すんなりゆかない。ということがわかりました。

通常、

  • 上記機能はフィールドを拡張するCCK、Image_field
  • 臨機応変に画像サイズを変換キャッシュするImage_cache拡張モジュール
  • DBから表示するフィールドを自由に選択できるViews

などを組み合わせる事で、投稿から一覧ブロック、一覧ページ、詳細ページ表示まで すんなり完了するのですが、ユーザ・プロフィール情報の場合、上記 拡張モジュールの力が及びません。

Content_profile拡張モジュールContent_profile拡張モジュール

そこで登場するのが、Content_profile拡張モジュールです。

Content_profile拡張モジュールは拡張性のない標準のユーザ・プロファイルに変わって、通常のコンテンツとして扱えるプロファイル情報、といった扱いです。(?わかりにくい)

つまり、標準のプロフィール情報にはない

  • 通常のコンテンツの利点(=様々な拡張モジュールの恩恵を受ける)
  • プロフィール情報としての扱い(=ユーザに紐付く)

の両方の利点を結びつけるモジュールがContent_profileです。

しかし、

実際はContent_profileでも不自由な点が存在した実際はContent_profileでも不自由な点が存在した

Content_profileをインストールし、快適に投稿フォーム、表示ブロック、ページを作成。

といきたかったのですが、やはり問題がありました。

Image_cache拡張モジュールが機能しないImage_cache拡張モジュールが機能しない

Content_profile情報の中の画像フィールドにはImage_cache拡張モジュールが機能しないということが わかりました。

確かに、Content_profile情報をコンテンツとして表示する場合はImage_cache拡張モジュールは機能するのですが、ユーザ・プロファイル情報として表示する場合は、機能しませんでした。

これは問題なので、早々 調べ始めたものの、Content_profileモジュールはまだβ版。使う方がいけないような気もしますが、もっと深く調べるか、次バージョンに期待するか、考え中です。

会員制サイト用:ログイン直後のページをユーザ・グループ別に指定

ユーザ・グループ(ロール)毎に異なるページを表示する拡張モジュールユーザ・グループ(ロール)毎に異なるページを表示する拡張モジュール

ユーザ・グループ(ロール)毎に異なるページを表示するuserregisterredirect拡張モジュールを見つけました。
http://drupal.org/project/userregisterredirect

ところが、バージョンが5.x-0.1で止まっています。

残念。

この程度は自分で作成。という事でしょうか。

会員制サイトというと、どうしても利用する拡張モジュールが多くなってしまい、重くなっていまいがちなので 固有の仕様部分は、サイト専用の拡張モジュールに まとめますが、そこに入れる提携パターンになりますね。

ログアウト→ログインをワンクリックで

頻繁にユーザを切り替えてチェックするのが一番大変頻繁にユーザを切り替えてチェックするのが一番大変

Drupalに限らず、会員制サイトを開発Drupalに限らず、会員制サイトを開発

している時、頻繁にユーザを切り替えてチェックするのが一番大変です。

私は、

  • 管理者用ブラウザとしてFirefox
  • 頻繁にユーザを切り替えるクライアント用ブラウザとしてOpera
  • 同時に複数ユーザが必要な場合はIE7
  • 更に同時にログイン・ユーザ必要な場合は別PC

というような構成で動作確認を行っています。

頻繁にユーザを切り替えるクライアント用ブラウザとしてOperaを使うのはOperaの認証管理機能を利用する事により、少ない操作で際ログインが可能になるからです。

以前ログインしたページでCNTRL+ENTERを押下すると、そのページで記憶されている複数のIDがWindow表示され、選択する事でログインできます。

この方法は、ブラウザ各々でサーバとのセッションが異なる事を利用した方法です。

ブラウザを複数起動するためPCに負荷をかけてしまいますが、Adobe系のアプリケーションを起動していなければ あまりストレスにはなりません。

Adobe系のアプリケーションであるPhotoshopやIllustrator、この2つはホームページ制作には欠かせないアプリケーションなので、同時に起動していることが多いです。

DrupalのDevel拡張モジュール(Switch userブロック)DrupalのDevel拡張モジュール(Switch userブロック)

同時に複数ユーザとしてログインする必要が無い場合は、DrupalのDevel拡張モジュールをインストールすると自動的に作成されるSwitch userブロック利用する事でユーザ切り替えがワンクリックで できるようになります。

Devel拡張モジュールは その他にも開発用の機能を提供してくれますので、スーパーユーザ権限においては必須の拡張モジュールです。

オリジナル機能のための新規拡張モジュール開発時にもオリジナル機能のための新規拡張モジュール開発時にも

特に、拡張モジュールとしてオリジナル機能をプログラミングする際には、オブジェクト内の変数名などマニュアルサイトを開くより簡単に見ることが出来ますし、実際の値まで見えますので大変便利です。

 

このページ の ページTOPDrupalサイト構築 の サイトマップDrupalサイト構築 の TOPページ