Drupal 学習手帳

  • 投稿日:
  • by

※http://sites.agorian.com/book/export/html/11を転写。/user/相対位置の画像は、sites.agorian.com/user/なので、本サイトからはルートの/user/フォルダーを指すことになる。<base href="http://sites.agorian.com" />で補正する。

2008年12月時点の情報を元に書いたので記載内容が変わっていることがある。

SimpleScriptsではJoomlaに次ぐ二番人気のCMSなので試している。日本のコミュニティもある。
日本でのXoops、Joomlaと比べた活動状況を知りたいものだ。以下、例によって気がついたことをメモしておく。
※日本の公式サイトだと名乗るところがあるが単なる個人サイトのようだ。
※Simplescriptは使えなくなった。ソース改変、拡張モジュール追加、日本語化などが原因かも知れない。
※SQLインジェクションの脆弱性があるので急遽V6.28にアップグレード(2013年10月)

何十ものオープンソースやフリーウェアを手作業でセットアップするのにも疲れたので、最近はFantastioとかSimplescriptsを使うことが多くなった。ボタン一つですぐ使えるようになるので楽だ。ただ、細心の注意を払ってインストールして動かすという知的好奇心や達成感は満たしてくれない(^.^)

今回はSimplescriptsを使った。Drupalの総合評価は5点満点で3.9なので、これまでの満足度は高いとは言えない。しかし最新版V6.8の評価は5点の満点だ。開発コミュニティが活発で、改善の努力が表れたということだろう。
※2013-10-12 Simplescriptは無くなってMOJO Marketplaceになった。有料ソフトが多く追加された。

参考サイト

  • 公式サイト:http://drupal.org/
  • http://groups.drupal.org/  最初こちらに参加したのでOpenID(かな?)で混乱した。
  • 日本語サイト:http://drupal.jp/ 「公認日本サイト」といっている。説明が丁寧で分かりやすそうだ。→その後見たら書込みが非常に少なくて静かだ。公認というのはおかしいようだ。
  • http://drupal-jbox.net/ 公認ではない。日本の食と料理を紹介しているJustHungryの姉妹サイト?→drupal.jpより書込みが多い。質問はこっちのほうがいいかも。
  • Drupal対WordPress ブログとして比較している。CMSならXoopsやJoomlaとの比較が欲しい。

Drupalの使い方

2008年12月、評価が高くなってきたDrupalを使ってこのサイトを作成した。
Webサイト作成を通じて得たDrupalの知識を整理するために、ここではとりあえず試して理解できたことを順不同に書き留めておく。

  • アップデートを簡単にするためにSimplescriptを使ってインストールした。
    拡張モジュールは個別にダウンロードしてインストールする。
    ※ソース改変、フォルダー変更、ドメイン変更などがあるとSimplescriptは使えなくなる。
    2013-10-12 Simplescriptは消滅し、MOJO Marketplaceになった。ワンクリックアップデートは使えない。
  • 一部PHPソースをカストマイズし、よく使うスタイルを追加した。
  • Drupalにはないスクリプト(写真動画など)を使えるように改造した。

目 次

はじめに

2013年10月14日

Drupal6.28にアップグレードした。過去、個人的なメモ用として使ってきた。記事内容は種々雑多である。「はじめに」を書いたのが5年近く前である。当時のCMSの中ではJoomla!が一番人気で私も二つのサイトにインストールにし学習を兼ねて使っていた。しかし一年使っても慣れなかった。機能が豊富で柔軟性もあったが、サイト構築やカストマイズが難しかったからだ。そこで二番手のDrupalを試し始めたというわけだ。

メモ用サイトを作るのに10指のあまるツール(サーバアプリケーション)を使ったが、結局はMovable Type, Wordpress, そしてDrupalの三つで作ったサイトを多用するようになった。MTが一番古く、もう10年になる。最新はV6.01だが改版されるごとに使いにくくなった。だから多用しているのはいまもV3.35だ。WordpressはMT以前に使ったがそのときはまだ未完成の感があった。運用で使い始めたのは2005年頃からだと思う。4年程前にはSNS機能が追加されたBuddypressがリリースされたので、GoogleApps専用ドメインで同窓会サイトを作ったが、いまはほとんんど運営していない。

お気に入りの三つのツールの中で、個人用として一番気に入っているのがDrupalだ。日本の公式サイトがなくコミュニティもないに等しいが、海外では結構人気があるようだ。V6.28をりようしているサイト数は9万くらいのようだ。MTやWPに比べれば少数派だろう。

アップグレードを契機にしてサイトの構成や機能を見直している。かなり使った経験のせいか、システムの概念がより理解できるようになった。BlogとStory, Pageの違いとか、Image, Views, Image-assistなどの関係性とかが分かるようになった。この二日間集中的にシステムの再設定に取り組み、二年前の不審な振る舞いも分かってきたのでいまは気分がすっきりしている。今後は拡張モジュールを追加・確認していくつもりだ。

2008年12月17日 Drupalインストール

このサイトはDrupal6.8を使って構築した。評判が良くなってきたので再度試してみることにした。Xoops, Joomlaより機能や使い勝手が良くなっているどうか?今回は手作業は面倒なので Simplescriptsを使ってセットアップした。10秒で完了した!作ってからサブドメイン sites.agorian.com を追加した。ブログとしては非常に使いやすい。MT, WPからの乗り換えも検討に値するようだ。
※個人的な情報の整理については別サイトを検討中(記載日:2008年12月17日)

  1. Booksという機能が情報の整理に役立つ。テーマ毎にBookを作り、章節を追加編集できる。文字通り「本」を書いていく感覚で整理できる。
  2. 記事の最小単位Contentには、Booksを構成するページ、作者別のブログ記事、お知らせやニュースに相当するStory、単独のPageがある。使い方の違いがあるが基本はひとつのWebページ(記事と呼ぶ)である。
  3. 索引となるメニューを簡単に作れる。Booksページをメニューにしたり、ブログ記事をメニューに追加したりすることもできる。ブログツールの提携的なメニューではなく、目的に応じてメニュー体系を作りたいときに便利だ。いつでも追加編集できる。
  4. アプリケーションや安全・安心をBookメニューとして、その中の写真に関係した記事を、「写真」メニューにも割り当てるとあとで参照しやすくなる。組み替えも自由にできる。
  5. Linux使い方、SNSヘルプといったテーマはBookとして作成しておくとPrinter-friendly versionをクリックするだけでひとつのHTML文書にできる。
  6. SNSやブログサイトへの投稿記事の下書きとかメモを思いついたらブログ記事にしておく。そのままでもブログ記事として知識の蓄積に役立つが、あとで見直して内容を追加編集した記事を公開するのもいい。
  7. Drupalコア機能のほかに便利なプラグイン機能があり簡単に組み込める。ブログ投稿、Gallery、Flickr、YouTubeなどのAPIが便利だ。WYSIWYGエディターとしてFCKeditorを組み込めるのも大きな利点だ。
  8. ページのスタイルもMTやWordpressなどのブログツールと同じように、ワンクリックで選択できる。自分専用のスタイルの追加やカストマイズも簡単だ。
  9. 難点は、機能が多く複雑なことだろう。コア機能だけで十分役立つが、欲張っていろんな機能を使いこなそうとすると混乱する。とくにサーバ環境に依存する高度な機能を使うときは要注意だ。
  10. セキュリティとプライバシーの配慮にも優れている。プライバシについては機能を十分に理解して、使用目的にあった機能を使うことだ。限定ユーザだけに公開する記事はProtection nodeを使うのが手軽でいい。共同執筆をするときは、登録ユーザとその管理機能を使ってアクセス権限を管理する。

Richエディター

マイクロソフトWordと同じように文書を作成できるツールをRich Text Editor(RTE)あるいはWYSIWYG Editorとよぶ。ブラウザで使えるRTEで事実上の標準になっているツールは、FCKeditorとTinyMCEだろう。いずれもオープンソースで開発されたツールで、いろんなアプリケーションに組み込まれて提供されている。

このサイトで使っているDrupalにもプラグインできるので、FCKeditorを組み込んだ。使い方はWordほかのワープロに類似している。Word固有の内部フォーマットではなく、HTMLテキストフォーマットのファイルが作成される。上部メニューバーの左端のメニューをクリックするとHTMLテキストを表示して、編集できる。左から二番目のメニューをクリックすると全画面で表示されるので、長文を書くときに便利である。

以下は、各メニューを使った文字修飾や文書整形の一例である。


これは標準パラグラフです。

Enterで新しいパラグラフを作ります。
Shift+Enterで改行します。

見出し1です 

見出し2です

 書式付き-引用テキストなどに使える
アドレス(パラグラフ全体がイタリック体)

文字列をイタリック体にするときはカーソルでハイライトして I をクリック。Ctrl+I でもOK

太字にするときは、Bをクリックするか、Ctrl+B を押す。 


使えるHTMLタグは、DrupalのInput Formats 機能で設定できる。デフォールトで使えるタグは以下のとおり。

<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

複数のRolesを定義して、各Roleごとに使えるHTMLタグを設定できる。ここではDefaultのほかに、すべてのタグを使えるRole「上級者」を作成した。記事作成ページで表示される Input formatから「上級者」を選択する。タグの使い方を間違うとページが崩れるので注意が必要である。HTML初心者は、Defaultを使うほうが安全である。

新規アカウント作成

このサイトはオープンソースのCMSを体験しながら学習するために開設した。新規アカウントを作成すると、そのアカウントでブログを書くことができる。アカウントの与えられる権限はAdmin権限を持ったアカウントで設定できる。ユーザ・グループを作成しグループ権限を設定して管理する。

  1. Ceate new accountをクリックします。
  2. 任意かつ一意のユーザ名と有効なメールアドレスを入力します。
    ユーザ名は半角英数字と - _ . からなる文字列です。
  3. 入力したメールアドレス宛に案内が送信されます。
  4. メール本文の指示にしたがってログインします。

 

Bookの作成

1.すでにあるBookに新しいページを追加する

  • Create content - Book pageをクリックする。

  • TitleとBodyで、本の章や節に相当する記事を書く。
  • Book outlineをクリックして、Bookを選択する。
  • 表示するページの順番をWeightで指定する。
  • Saveをクリックする。

※Bookの一部(たとえば章)になっているページの下に追加するときは、そのページの下部にある Add child page をクリックして作成するのが分りやすい。

2.すでにある記事をBookに追加する

  • 記事を開く(「最近の投稿」をクリックすると記事の一覧が表示されるので、記事名をクリックする)

  • Outlineタブをクリックする。
  • Bookの名前を選択し、Weightを指定する。
  • Saveをクリックする。

2.新しいBookを作成する

  • Create content - Book pageをクリックする。

  • TitleとBodyで、新しいBookの名前と説明を書く。
  • Book outlineをクリックして、を選択する。この場合のWeightはほかのBookとの間の表示順番になる。
  • Saveをクリックする。

※新しいBookの先頭ページには、そのBookの章節に相当する記事のTitleへのリンクが自動的に作成される。

File System

 Drupal記事作成のときに扱うファイルを保存するディレクトリを設定する。デフォールトは、Drupal設置ディレクトリ配下の sites/default/files になっている。

これを user/files に変更した。

File Attachments

記事作成時のFile Attachmentsで添付したファイルは、user/files/ に保存される。

  • 記事を作成・編集する画面で、「File attachments」を開く。
  • 「ファイルを選択」をクリックし、添付するファイルを選択する。
  • Attachボタンをクリックする。

※選択したファイル名がtest.jpgのとき、http://sites.agorian.com/user/files/test.jpgが作成される。

image_assist

プラグインimage_assistを使って作成した画像ギャラりの画像は、user/files/images/ に保存される。
 

FCKEditor Quick Upload使用の場合

user/image にアップロードされる。画像挿入ポップアップのWEBブラウザで閲覧できる。

 

sites/all/modules/fckeditor/fckeditor/editor/filemanager/connectors/php/config.php で下記を変更した。

旧 $Config['QuickUploadPath']['Image'] = $Config['UserFilesPath'] ;
新 $Config['QuickUploadPath']['Image'] = $Config['FileTypesPath']['Image'] ;

旧 $Config['QuickUploadAbsolutePath']['Image'] = $Config['UserFilesAbsolutePath'] ;
新 $Config['QuickUploadAbsolutePath']['Image'] = $Config['FileTypesAbsolutePath']['Image'] ;

 

Attachmentサイズ
test.jpg27.62 KB
Fyodor-Dostoyevsky.jpg8.33 KB

Image Assist

公式サイト:http://drupal.org/project/img_assist

以下のモジュールが必要。ImageとViewsは必須モジュールである。

Drupalディレクトリの/sites/all/modules/ に解凍したフォルダーを保存する。

administer >> build >> modules を開いて、Image, Views を有効にする。

記事を作成するときに、テキスト入力ボックスの下に Add image リンクが表示される。これをクリックすると、Imageモジュールを使ってアップロードした画像の一覧が表示される。画像を選択すると本文中にその画像を挿入できる。一覧にないときはパソコンからアップロードする。

Richエディター(本サイトではFCKEditor)が組み込まれているときは、画像アイコンをクリックして挿入できるので、Add imageがなくてもよい。HTMLコードのimgタグを使ってWeb上の写真を挿入することもできる。

〔注1〕画像関係のモジュールがたくさんあるので混乱することがある。写真共有サイトのFlickrやGalleryにある写真を挿入したいときは別のモジュールを組み込む必要がある。

〔注2〕記事の種類にはブログ、ページ、ストーリー、画像がある。画像記事を作成(画像はパソコンからアップロード)すると、Add imageの一覧に追加される。

〔注3〕アップロードした画像を「画像ギャラリー」に追加できる。これを可能にするためには、Gallery Management モジュールが必要だ。

Input Formats

Defaultすべてのユーザ、adminは役割adminを割り当てられたユーザに限定した。

項目 説明 Default admin
Flickr linker

Flickr写真またはセットを挿入できる。※〔〕は[]にする。
例: 〔flickr-photo:id=xxxxx,size=s〕または〔flickr-photoset:id=xxxxx,size=m〕

HTML corrector

間違ったHTMLコードを訂正または削除する。

X
HTML filter

HTMLタグを制限する。table, Javascriptなどは使えない。

X
Inline images

画像を挿入する。Image assist機能を有効にする。

Line break converter 改行をHTML (<br> または <p> tags)に変換する。
 PHPコードの実行

PHPスニペットを実行する。この使用は管理者に限定するべき!

URL filter

URLとメールアドレスのリンクを作成する

Video Filter

ビデオ挿入タグ を embedded HTMLに変換する。

 

よくある質問

FAQ

  1. このサイトの目的は?
    ▶オープンソースCMSのひとつDrupalの体験学習用です。
     
  2. 登録の資格は?
    ▶ΣSNSメンバに限定します。
     
  3. 登録の仕方は?
    Create new account でユーザ名と有効なメールアドレスを入力してボタンを押すと、登録の案内とパスワードがそのメールアドレスに送信されます。メール本文の指示にしたがってログインすれば登録完了です。
     
  4. 費用は?
    ▶無料です。
     
  5. 自分専用のブログを開設できますか?
    ▶メンバごとにブログが表示されます。
     
  6. 記事作成でHTMLタグが使えますか?
    ▶デフォールトは制限付きです。上級者用はすべて使えます。
     
  7. テーマ(ページの体裁)は変えられるか?
    ▶あらかじめ用意された複数のテーマから選択できます。レイアウトやメニューはいつでも変更できます。
    ▶印刷用はmisc/print.css
     
  8. Web動作環境は?
    ▶一般的なLAMPサーバで動作するが、PHP5では動かない(画面が真っ白になる)
     
  9. RSSフィードはどこにある?
    ▶http://sites.agorian.com/rss.xml
    ▶TwitterFeedに登録するとTwitterおよびFacebookに自動投稿できる。
    ▶tumblr.comサイトに自動投稿できる。

インストール

Drupal6.8をSimplescriptを使ってインストールした。

  • Drupal Version 6.8(Stable) Rev.11
  • Access URL: http://agorian.com/drupal/
  • データベース自動生成
  • Server Requirements (自動的にチェックしてくれる)
  Minimum Your Server
Operating System Linux Linux
Server Software Apache Apache
PHP Version 4.3.5 4.4.9
MySQL Version 4.1 5.0.67
PHP::XML Enabled Enabled

 

ボタンを押せば3秒で完了だ。インストール情報がメール送られる。管理人としてログイン情報も自動生成したのですぐ新規作成サイトにログインできる。まずは自分が覚えやすいパスワードに変更する。

OpenIDにも対応済みである。OpenID Foundationで取得できる。日本語サイトもある。

サイトの設定

ログインページのURLは、?q=user/login
※Site buildingのBlock設定でログインをHeaderに設定してログアウトしたら、ログイン表示が消えた。drupal-jbox.netホームページのソースを見て上記ログインURLが分かった。HeaderではなくLeft sideに表示するように変更したが、依然として表示されない。一体何がおかしいのだろう?とりあえずログインページへのリンクを作っておこう。

写真の挿入

1.IMGタグ使用

〔例〕<img height="162" width="200" src="http://agorian.com/img/test.jpg" />

 

2.FCKeditor使用

  • メニューの「イメージ挿入/編集」を選択して、貼り付ける画像のURLを指定する。
  • Webブラウザで画像ファイルを選択して貼り付けられる。
  • パソコンにある画像をアップロードする機能がある。保存先はuser/files/に設定。

3.Flickr写真の表示

  • Drupal Flickr 追加モジュールを入手し、sites/all/modules/ に保存する。
  • Flickr API keyとAPI key Shared Secretを http://www.flickr.com/services/api/keys/apply/ から入手し、Site configuration>Flickr で設定する。
  • Site building>Blocksで必要なブロックを設定する。

表示できるFlickrブロックには以下の6種がある。

  • Flickr random photos ランダムに選択した写真を表示
  • Flickr recent photos    最近アップロードされた写真を表示
  • Flickr user page photosets   指定したページを表示
  • Flickr user page recent photos   指定ページの最新の写真を表示
  • Flickr recent photosets   最新の写真セットを表示
  • Flickr random photo from photoset 写真セットからランダムに表示

4.画像の登録

  • 拡張モジュールImage, View, ImageAssistを追加する。
  • Create contentの「画像」から新規作成する。
  • 登録した画像の一覧の表示方法(一頁に何枚など)は、Views / Img_assist_browser で設定する。
  • ブログ記事と同じように作成・編集でき、トップページに表示することもできる。
  • ΣSNSの写真(最大三枚)を添付した記事(日記、掲示板)の作成に似ているが、必ず写真をアップロードしなければならない。
  • 写真は一枚しか登録できない。※複数の画像を一括して登録するときは「画像インポート」を使う。

5.画像インポート

  • sites/import に保存された画像を一括して登録できる。
  • 事前にFTPなどを使って画像をアップロードしておく。サブフォルダでもよい。
  • ログインして「画像インポート」を開くと、importフォルダにある画像ファイルの一覧が表示される。
  • インポートする画像ファイルにチェックをつけ、タイトルと本文を入力して、「インポート」をクリックする。
  • 管理画面のContentで登録されたことを確認できる。
  • 画像ギャラリーの階層構造は Taxonomy で編集できる。
  • 「Book」や「画像ギャラり」あるいはメニューに登録して整理する。

5.Gallery2の組み込み

  • 拡張モジュールGallery, G2Image, Menu, Profileを追加する。
  • 「Web写真共有」をメニュー「写真」に追加した。Drupalの一機能としてGalleryサイトを使える。Drupalにログインすれば、同じユーザアカウントのGallery2サイトを管理できる。
  • FCKeditorのメニューにGallery2イメージを挿入するためのアイコンを追加できる。
  • 「Insert G2 Image」アイコンをクリックすると、Gallery2サイトの写真リストが表示される。
  • 挿入したい写真にチェックを付け、Insertボタンをクリックする。

 [G2:811]

[G2:1]

動画の挿入

YouTube動画ページのURLを、[video:~]の~に書くだけでよい。※[]は半角にする。

〔例〕[video:http://www.youtube.com/watch?v=hbzOvkYRIKs]

objectタグ、embedタグ、またはスクリプトを書いて動画を貼り付けるときは、Input formatで「上級者」を選択する。Defaultでは、objectタグやスクリプトは無視される。

 

HTML5 Video

<video src="http://agorian.com/assets/video/001.mp4" controls></video>

新規記事の作成

Create Content で新しい記事を作成する。PageとStoryの二種類が標準で有効になっている。これに加えて、このサイトでは、拡張機能のBlogsとBooksを有効にしている。

コンテンツの種類

Drupalで作成する「コンテンツ」は、ブログでエントリ、投稿、記事などと呼んでいるもので、以下の4種類がある。いずれもHTMLタグを使ったテキスト文書であるが、目的によってページでの配置や公開する場所が違ってくる。

  1. Page - 独立した記事で、AboutやProfileなどのページを作るときに使う。
  2. Story - 訪問者への情報、ニュース、お知らせなどを作成する。
  3. Blogs - 日付順に整理されるブログ、登録メンバごとに作成されるページのことである。
  4. Books - 章節を含む階層構造の文書の集まり、本を作るときに使う。

標準インストールでは、PageとStoryしか表示されない。Blogs、Bookを使うときは、Site BuildingのModulesで、Blogs、Booksを有効にする。

メニュー構成

記事ごとに、どのメニューMenuからリンクするかを設定できる。Titleの下にある Menu settings で設定する。Menuの順番は Weight の値で決められる。値が小さい方の記事が上部にくる。

拡張機能

入力形式(使えるHTMLタグを設定)、版数、コメント読み書き、作成者と作成日時、公開オプションを記事ごとに設定できる。これらは標準インストールで使えるようになっている。

パスワード保護の設定、ブックの指定、ファイルの添付などの機能は、Modules で有効にしないと使えない。

言語 Locale

公式リリースは英語版だが、いろんな言語で使える。各言語対応のLocaleというファイル(po)をインポートし、Languageで選択する。

画像ギャラリー作成

1.画像ページの作成

  • Create Content→画像を開く
  • ファイルを選択」をクリックしてアップロードする画像を選択する。
  • saveすると画像がアップロードされ、本文に挿入される。本文には画像の説明を書く。

2.画像の一覧表示

  • 記事の一覧 Content」を開く
  • [type]をチェック、<画像>を選択して、[filter]をクリックする。
    つぎに「記事の一覧」を開くと画像だけが表示される。もとに戻すときは、[reset] をクリックする。

3.画像ギャラリーへ追加

  • 画像ギャラリー編集を開く。
  • Gallery filer<最上位>にアップロードした画像が表示される。
  • 追加する画像にチェックして、Galleryを選択する。
  • [Update]をクリックすると追加される。

4.新しいギャラリーの作成

登録ユーザの権限

 Wordpressの権限設定と同様に、Drupalでも各種の権限を設定できる機能がある。公開・非公開を記事ごとに設定でき、またユーザグループ単位でも権限を設定できる。Livejournalと同じようなグループを作成することができそうだ。ひとつひとつ確認するのが厄介なので調べていない。

登録ユーザ名に漢字を使えることを確認した。このブログ記事は、ユーザ名「達磨居士」でログインして書いている。所属グループ(プロファイルという)は「雀の学校」だ。この「雀の学校」にいろんな権限を与えている。これができるのはサイト管理権限を持ったユーザだけである。

現在与えられた権限は、下記のとおり。

  1. 新規ブログ記事の作成と自分が作成したブログ記事の編集権限
  2. ほかの人が作成した記事にコメントする権限
  3. ブログのテーマを選択できる(新しいテーマ設定は管理者権限)
  4. WYSIWYGエディタの使用
  5. すべてのHTMLタグ(間違うとページが乱れるので注意)
  6. 写真や動画の貼り付け
  7. ファイルの添付(jpg, gif, png, doc, xls, txt, pdfなど)

非公開の記事作成

  1. 記事ごとにパスワードを設定できる。Password protect this Blog entryで任意の英数字文字列を設定する。
  2. Publishing Options/Publishedのチェックをはずして作成すると、メニューに表示されない。記事のURLを入力すると、ログインユーザは閲覧できる。未ログインのときは閲覧を拒否される。

 

 

記事の編集

ログインすると、自分が書いた記事の場合、タイトルの下に「View」と「Edit]のタブが表示される。Editをクリックして編集する。 Input formatをクリックしてFull HTMLの隣にチェックするとすべてのHTMLタグが使えるようになる。<object>や<embed>も使えるので、YouTube動画の表示も可能である。 写真アルバムの貼り付けはiframeタグを使えばできる。

カストマイズ

初期設定

  • My account » Edit でメールアドレス、新しいパスワード、ローカルタイムを設定する
  • Create Content で Page または Story を作成する。Storyは、WPやMTでいうPost(エントリ、投稿記事)のことだ。
    Pageはほかのソフトと同じようにAboutやProfileなど情報ページのこと。
     
  • ロゴは、Themes » Configure で変えることができる。Drupalフォルダ内の相対パスで指定。
    パソコンからロゴ画像をアップロードすれば設定できる。各テーマごとに設定する。
    Bluemarine: http://sites.agorian.com/sites/default/files/bluemarine_logo.png

PHPソース改変

  • sites/all/modules/fckeditor/fckeditor.config.js
    メニューバーを設定する。DrupalBasicの名前を変えたときは、fckeditor.moduleも変える。
     
  • sites/all/themes/sigma/style.css
    サイト共通のスタイルを定義する。コアをアップグレードするのが容易になる。

    td#logo {white-space: nowrap;} 追加…タイトルが改行されないようにした。
    .site-name {margin:0.2em 0 0 0;} 上部マージンを0.2emにした。

  • 印刷用スタイルは misc/print.css で設定する。
     
  • sites/all/themes/sigma/page.tpl.php 
    popupスクリプトを追加した。Aタグで class="popup" と書くとポップアップ表示される。
    <script type="text/javascript" src="http://agorian.com/script/popup.js"></script>
    ※popup.js に jquery.js を含めた。bootstrapやJQuery pluginと一緒に使うときは、popup.min.js を使う。

    facebook/twitterボタンを追加した。トップページの位置がずれる!
     

  • modules/book/book-export-html.tpl.php
    printer-friendly versionページにSigmaロゴとフッターを追加。
    対応するnodeへのリンク追加の方法が不明だ!
     

追加スタイル

よく使うスタイルに移動した。

拡張機能 Modules

1.ブログ記事投稿

標準インストールでは、ブログ形式が無効になっている。Site building の Modules でBlogsを有効にすると、Home » Blogs が作成され、登録メンバごとにブログを整理できる。

2.使用タグの制限

投稿記事作成で使えるHTMLタグを制限することができる。Input Formatモジュールで設定する。"Full HTML"を作成し、管理権限をもったユーザは、記事を入力するページで Input formatを Full HTMLにすれば、ほとんどのタグが使えるようにした。 ※MTやWPではスクリプトの制限があるが、ここではFull HTMLを選択すれば使えるようにした。登録ユーザが使えるタグは制限(php/Javascript使用禁止)している。

3.メニュー設定機能

お気に入りのメニューを作成できる。記事ごとにメニューに追加することができる。投稿・編集ページの Menu settings で設定できる。標準ではPrimary MenuとSecondary Menuが用意されている。表示位置はテーマによって異なる。

4.URLの変更

ページのURLは node/7 のカタチになる。7は作成した順番である。これをaboutやcontactといった分りやすい名前(エイリアス)に変更することができる。
〔例〕node/1→welcome node/4→drupal node/11→guide

FCKeditorカストマイズ

fckeditor.config.js

Drupalで組み込む toolbar を定義する。名前の変更、使用する機能(メニュー項目、順序)を変更する。

 1.ブラウザのキャッシュをクリアしないと変更が反映されない。
 2.toolbarの名前を変えたり新規に追加したりできる。
 3.DrupalBasicの名前を変えたときは、fckeditor.moduleソースで
     FCKEDITOR_FORCE_SIMPLE_TOOLBAR_NAME も変える。

Simple

FCKConfig.ToolbarSets["Simple"] = [
['Source','FitWindow','-','FontFormat','Bold','-','TextColor', 'BGColor','-','OrderedList','UnorderedList','-','Link','Unlink', 'Image','Table','Rule','Smiley']
] ;

Filtered

FCKConfig.ToolbarSets["Filtered"] = [
['Source','FitWindow','RemoveFormat','PasteText','PasteWord'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar'],
'/',
['FontFormat','FontName','FontSize','TextColor','BGColor'],
['Bold','Italic','Underline'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight'],
] ;

Full

FCKConfig.ToolbarSets["Full"] = [
['Source','FitWindow','RemoveFormat','PasteText','PasteWord'], ['Cut','Copy','Paste',],
['Undo','Redo','-','Find','Replace','-','SelectAll'], ['Link','Unlink','Anchor','LinkToNode','LinkToMenu'], ['Image','Flash','Table','Rule','Smiley','SpecialChar'], '/', ['FontFormat','FontName','FontSize','TextColor','BGColor'], ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','DrupalBreak','DrupalPageBreak'], ] ;

fckeditor/editor/lang/ja.js

 日本語の用語を定義したファイル。toolbarの文字表示を変更、削除する。

 

Source : " ",
FontFormat : " ",
Font : " ",
FontSize : " ",
DlgBtnBrowseServer : "WEBブラウザ",

 

 

fckeditor/fckconfig.js

FCKConfig.DefaultStyleLabel = 'p' ;
FCKConfig.DefaultFontFormatLabel = 'Normal' ;
FCKConfig.DefaultFontLabel = 'Verdana' ;
FCKConfig.DefaultFontSizeLabel = 'small' ;

 

 

FCKeditor設置

Drupalには5000種を越える拡張モジュールがある。その中の「FCKeditor - WYSIWYG HTML editor」を組み込んだ。これにより、HTMLを知らない人でも、ワープロのようにかんたんに文書を作成できるようになった。

標準のDrupalで記事を書くのはプレインテキストだけである。文字修飾やリンク、画像の挿入、表作成などはHTMLタグを使って書く。スパム防止やHTML記述の誤りによるページの乱れを避けるために使用できるHTMLを制限することができるが、すべてのタグの使用を特定のユーザに許可することもできるので便利である。

HTMLを知らないユーザでもワープロと同じように文書を作成できるエディタをWHSIWYGエディタという。WordやExcelもWYSIWYGエディタだが、クライアント(パソコン)にインストールしていないと使えない。

Drupalとおなじオープンソース開発のFCKeditorをWebサーバに設置すると、すべてのインターネットユーザが自分のパソコンにあるIEやFireFox、Safariなどのブラウザを使って、Webページを簡単に作成・編集できる。いわゆるクラウド・コンピューティングといわれる機能と利便性を活用できるわけだ。

FCKeditorは、ブログや日記、ホームページなどを作成したり、コンテンツを管理するようなアプリケーション(CMS)に組み込んで使うことを意図している。CMSのひとつであるDrupalに、FCKeditorを簡単に組み込めるようにしたのが、Drupal拡張モジュールFCKeditor - WYSIWYG HTML editorである。

設置方法

  1. FCKeditor - WYSIWYG HTML editorから最新のモジュールをダウンロードする。今回入手したのは、6.x-1.3-rc6(2008-Dec-13、tar.gz形式、140KB)である。
  2. 解凍したフォルダを、 /sites/all/modules/にアップロードする。
    /sites/all/modules/fckeditor/
  3. FCKeditorから最新版(今回は FCKeditor_2.6.3.zip)をダウンロードする。
  4. これを解凍したフォルダfckeditorを /sites/all/modules/fckeditor/ にアップロードする。
    /sites/all/modules/fckeditor/ fckeditor/
  5. Drupalにログインし、Administer » Modulesを開く。「6.x-1.3-rc6」の隣にチェックをつけて有効にする。
  6. Administer » User management » Permissions を開き、fckeditor moduleの使用権限を与える。
  7. これで完了だ。記事の作成・編集ページの本文Bodyのテキスト入力で、FCKeditorが使えるようになる。元のDrupalテキスト入力に切り替えることもできる。

カストマイズ

Permissionsで、匿名ユーザ・登録ユーザがFCKeditorを使える(Access)かどうかを設定する。FCKeditorの管理およびファイルのアップロードを許可するかどうかの設定も行える。スパム書込みを避けるため、登録ユーザだけに許可する。

Administer » Site configuration のFCKeditor settings を開いて、各種のカストマイズができる。FCKeditorおよびDrupal拡張モジュールのソースを変える必要がない。※Toolbarは標準の5セットから選択できる。新しいToolbarセットを作るときはfckeditor.config.jsを改変する。

ファイルブラウザ

link test

Flickr

 Flickr ServicesからAPI Keysを取得しセットアップする。

IMCE

 画像/ファイルのアップロードが簡単にできる。

  • DrupalモジュールIMCEを、sites/all/modules/imce に保存する。
  • Administer - Site Configuration - IMCE で各種設定を行う。
  • プロファイルを作成し、各ユーザに割り当てる。
  • アップロードしたファイルを保存するフォルダーを指定できる。
  • RTE(FCKeditorなど)を使わないときはテキスト入力エリアにHTMLコードを挿入する。

〔例〕テキスト入力ボックスの下の「画像またはリンクの挿入」をクリックするとIMCEファイルマネジャがポップアップウィンドウ表示される。挿入する画像ファイルを選択し、「テキストエリアへ送る」をクリックするとHTMLコードが挿入される。

medium_large_flexibility_01.jpg

ラン2ラン2

Attachmentサイズ
flexibility_01.jpg38.08 KB

不具合

※6.28での不具合はこちらに書いた。

  1. Clean URLsが6.12で無効になった
    →.htaccessに RewriteEngine on を追加する
     
  2. 最新ブログ記事のURLが違う
    sites.agorian.com/nodeがsites.agorian.com/drupal/nodeになる。ログイン状態のときは sites.agorian.com/node で問題なし。
    →自然復旧した。 →6.13で再度発生  原因不明!
     
  3. Chromeを使うと、記事の編集でMenuとPasswordにデフォールトの値が入ってしまう
    原因不明 →FireFoxでは問題なし
     
  4. 自分の最近の投稿でPHPエラー発生
    http://sites.agorian.com/tracker/1
     
  5. Image61a5設置後のデータベース更新でエラー発生(090805)
     
  6. ログインのパスワードをブラウザで保存すると、記事を作成するときにMenuとPasswordにログインユーザ名とパスワードが自動挿入される。これが煩わしいときは、ブラウザのオプションで保存されたパスワードを削除すれば解消できる。
     
  7. 動画ツール>JWPlayerでAdd child pageしたとき、"Switch to plain text editor"のリンクが表示されなかった。既存ブックページの編集のときは表示される。本文にテキストを書いてSaveした結果、本文が空白になってしまう。ほかのブックでも同じだった。
    Firefox15.0.1の不具合だった。Chrome 22.0.1229.79 beta-mでは正常動作した[2012/09/27]

Drupal HTMLエディター不具合

数年前にFCKeditorサポートが打ち切りになったが慣れ親しんだお気に入りのHTMLエディター(phpMYFAQなどでも使用)なので、いまも使っている。Drupal6.28にアップグレードしたのを機会に後継のCKEditorにしようとインストールしたが、WYSIWYGモジュールで「CKEditorがインストールされていない」と表示された。

パスがsites/all/modules/ではなく、sites/all/libraries/になっていることに気づいたので保存しなおしたが、それでも認識されない。原因が分からないので面倒くさくなって、FCKeditorに戻した。もっともFCKeditorも1年以上前から不審な振る舞いがあった。それはadminユーザでログインして記事を投稿しようとすると、「本文 Field is required」のエラーが表示されて投稿できない。しかし、他のユーザ名でログインすると投稿できる・・・という問題だ。なんども設定を見直したが分からず、面倒なので放置した。admin以外の管理権限を持ったユーザ名でログインすれば支障がないからだ。

今回、再度設定を見直して試行するなかで分かったのだが、DrupalとFirefoxのインターフェイスの問題だった。どちらが悪いのかは分からないが、Google Chromeでは正常に投稿できる。Safariでも問題がないので、Firefoxとの親和性の問題だ。しかし、どうしてadminユーザ名だけがダメなのかが分からない。

FCKeditorモジュールの設定(Sites Configuration)で、profileとroleを新規作成してpemissionを設定したが、それが理由でおかしいのだと推測するが原因を特定できない。profile追加・変更ではソースコードを変更したが、rolesは管理画面で作成変更して、profilleに割り当てるだけだ。rolesのデフォールトは、authenticated userだ。新規にadminを作成して、3人のユーザに割り当て、profileのFullHTMLでphpを使えるようにした。このプロセスでなにか間違いがあったのだろうと推測するがいまだに原因不明だ。

すべてデフォールトに戻すしかないが、そうすると過去の記事の編集ができなくなるかもしれないのでためらっている。2010年10月以前の記事がすべて表示されなくなったという自体が過去に発生しているから伸張にならざるを得ない。ツールのトラブルで時間を費やすのは避けたいものだ。昔はそれも楽しみの一つ、解決したときの達成感があったが、いまは面倒くさくなった(笑)

Drupal6.28不具合

2013年10月11日 Drupal6.24から6.28にアップグレードした。機能的には問題がなくアップグレードの必要性はなかったが、6.27以前に脆弱性があることが分かったので急遽アップグレードした。ここでは6.28にして発生したトラブルについてメモしておく。

  • SimplescriptがなくなってMOJO Marketになっていた。My Installは引き継がれていたのでUpgradeしようとしたがエラーになった。原因不明だ。一部ソースを改変しているがDrupalコアのアップグレード後に改変ソースを入れ替えればよいようにしているので、それが原因とは考えられない。過去Simplescriptでは問題がなかった。Drupalのほかにも5本あるがいずれもエラーになった。MOJO Marketの問題だと思わざるを得ない。
  • 細心の注意を払ってアップグレードした。その手順はブログに書いておいた。拡張モジュールを含まないDrupalコアについてh政情にアップグレードできた。しかし、SQLインジェクションだと思われるスパムが65,000件あることに気づいた。phpMyAdminを使ってクリーニングした。約3時間を費やした。
  • 拡張モジュールImage-Assistについて書いた記事で、本文中に不審なスクリプトが挿入されていることを発見した。2年ほど前に同じ問題があったが、そのときはID1以外のIDでログインすると挿入されなかったので、そのままh放置した。ほかにもいろんなトラブルが発生したが、回避柵があったので原因究明はしないまま時が経った。
  • 拡張モジュールについて書いた記事がAlias URL "modules" になっていたが、開こうとすると NOT FOUNDになった。検索してその記事を見つけ、node/7だと分かったのでAlias URLをリセットした。ほかのAlias(welcome、Guideなど)は問題なかった。なぜmodulesだけがNOTFOUNDになるのかについては原因不明である。

    module(最後のsがない単数形)にしたら正常に動いた。
  • FCKeditorのサポートが2009年に打ち切られているので、今回のアップグレードを契機にCKEditorまたはTinyMCEにしようと思って最新版を入手しサーバにアップした。ところがWYSIWYG Profileで設定できなかった。sites/all/modules/ではなく、sites/all/libraries/に保存するようになっていたのでそのようにしたが、そのパスに見つからないというエラーになる。

Error090805

Drupal database update 090805 15:20

    * user warning: Can't DROP 'PRIMARY'; check that column/key exists query: ALTER TABLE image_attach DROP PRIMARY KEY in /home4/agorianc/public_html/drupal/includes/database.mysql-common.inc on line 386.
    * user warning: Can't DROP 'iid'; check that column/key exists query: ALTER TABLE image_attach DROP INDEX iid in /home4/agorianc/public_html/drupal/includes/database.mysql-common.inc on line 448.
    * user warning: Can't DROP 'PRIMARY'; check that column/key exists query: ALTER TABLE image DROP PRIMARY KEY in /home4/agorianc/public_html/drupal/includes/database.mysql-common.inc on line 386.
    * user warning: Can't DROP 'image_fid'; check that column/key exists query: ALTER TABLE image DROP INDEX image_fid in /home4/agorianc/public_html/drupal/includes/database.mysql-common.inc on line 448.

The following queries were executed
image_attach module
Update #6100

    * ALTER TABLE {image_attach} CHANGE nid `nid` INT unsigned NOT NULL DEFAULT 0
    * ALTER TABLE {image_attach} CHANGE iid `iid` INT unsigned NOT NULL DEFAULT 0
    * Failed: ALTER TABLE {image_attach} DROP PRIMARY KEY
    * ALTER TABLE {image_attach} ADD PRIMARY KEY (nid)
    * Failed: ALTER TABLE {image_attach} DROP INDEX iid
    * ALTER TABLE {image_attach} ADD INDEX iid (iid)

image module
Update #6100

    * ALTER TABLE {image} CHANGE nid `nid` INT unsigned NOT NULL DEFAULT 0
    * ALTER TABLE {image} CHANGE fid `fid` INT unsigned NOT NULL DEFAULT 0
    * Failed: ALTER TABLE {image} DROP PRIMARY KEY
    * ALTER TABLE {image} ADD PRIMARY KEY (nid, image_size)
    * Failed: ALTER TABLE {image} DROP INDEX image_fid
    * ALTER TABLE {image} ADD INDEX fid (fid)

Update #6101

    * No queries

Update #6102

    * No queries

変更履歴

  • 2013-10-12 Drupal 6.28 にアップグレード。以前のバージョンにXSS/SQL Injectionの脆弱性が発見されたため。機能追加変更はない。
    MySQLデータベースの中身をチェックした。およそ65000件(12MB)のスパム(迷惑コメント)が書き込まれていた。サイトには表示されないので気がつかなかった。
    →phpMyAdminを使って掃除。不正アクセス元のIPアドレスもチェックしたので3時間かかった。中国・ロシアからのアクセスが増えた。
    Drupal6.28アップグレード

  • 2012-02-01 Drupal 6.24 不具合修正版
  • 2010-12-18 暫くメモを書かなかったが現在のCoreはV6.19
    スパムが多くなったのでContactパミッション変更。ログインしないと表示されないようにした。

  • 2010-03-14 V6.16 Security update by SimpleScripts
      image 6.x-1.0-beta5
      FCKeditor 6.x-2.1 (2010-03-14)  ※fckeditor.config.jsにSimpleツールバーを追加
      データベースバックアップ drp01→drupal

  • 2009-12-17 V6.15 Security update
  • 2009-09-28 V6.14 (09-09-17) にアップデート(drp01→drupalにバックアップ)
  • 2009-08-05 ImageおよびImage-Assistをアップデート
    DB更新でエラー発生。サイト利用に影響があるのかは不明。

  • 2009-07-07 Drupal coreを6.13(2009-7-2)に更新した。
    drp01をダウンロードし、かつdrupalにコピー(12MB)
    views-6.x-2.6 に更新

  • 2009-06-02 Drupal coreを6.12に更新した。
  • 2009-05-30 MySQLデータベースdrp01をバックアップして、drupalにもコピーした。
    searchテーブルの件数が10万件を超えてサイズも8MBになっていた。word項目が3文字になっていた。それがしようなのかどうかは不明だが、あまりにも無駄が多いので空白にした。15MBが7MBに減少した。

  • 2009-05-27 トップページ以外が開かなくなった。
    05-30 Clean URLsが原因だった。サーバ環境の変化でサポートされなくなったが、それがなぜなのかは不明だ。
    ?q=で開いて設定をdisableにしたら復旧した。→htaccessで RewriteEngine onなどを記述することで解決した。

  • 2009-05-20 Drupal Core 6.12にアップグレード
    ♣改版:Flickr6.1.1, img_assist6.2.0, protected_node6.1.5, ideo_filter6.2.5, views6.2.5
    ♣DBが壊れたので、バックアップを復元。Zipファイル復元でchecksumエラー発生→解凍して復元OK
    ♣cron.phpを設定した。定期的に実行しないとゴミが溜まる(25MB→14MBになった)

  • 2009-01-24 FCKeditor 6.x-1.3-rc7
  • 2009-01-20 FCKeditorを組み込んだ→FCKeditor設置
  • 2009-01-17 Drupal6.9にアップグレード
  • 2008-12-18 Drupal6.8を設置(Simplescript使用)

V6.8R11を設置

今回は手作業が面倒なのでSimplescriptsを使ってインストールした。10秒で完了だ!ユーザの評価が高まっているという噂どおりに使いやすくなっている。MT、WPからの乗り換えも検討するかな?日常的に使う時間的余裕がないのでしばらくは遊んでみよう。(2008-12-17)

My Install

Simplescript @elmblog.com

coppermine Coppermine v.1.4.19 (31 Jul 2008)  
http://photo.elmblog.com/cm
joomla Joomla v.1.5.9 (08 May 2008)  
http://www.elmblog.com/Joomla
phpmyfaq phpMyFAQ v.2.0.10 (02 May 2008)  
http://www.elmblog.com/FAQ
simplepie SimplePie v.1.1 (08 May 2008)  
http://www.elmblog.com/SimplePie
zenphoto Zenphoto v.1.2.2 (02 May 2008)  
http://photo.elmblog.com/zenphoto

Fantastico @elmblog.com

4Images Gallery http://elmblog.com/4ImagesGallery/
Gallery 2.3 http://elmblog.com/gallery/

©2006 Sigma Social Network