カスタマイズ

提供: GeeklogJpWiki

[5]はじめてのGeeklogカスタマイズ

目次

###カスタマイズ方法

##はじめてのGeeklog

ホームページの運営がはじめての場合には、できるだけ簡単に運営できるよう、あらかじめ便利なプラグインを設置しましょう。まず、以下の順番で簡単にカスタマイズできます。

「コンフィギュレーションエディタプラグイン」

ヘッダメニューを自由にカスタマイズするためには、コンフィギュレーションエディタを使います。元からあるメニューだけではなく、静的ページのコンテンツも表示したいのであれば、プラグインメニューの表示にもチェックします。これでテンプレートを変更することなく、静的ページもヘッダメニューにメニュー登録したいものだけメニューに登録できます。

記事や静的ページを編集しやすくするため、「アドバンストエディタ」を使うモードに変更しましょう。

コンフィギュレーションエディタでは、記事で表示される日付の書式変更など、細かな設定を変更できます。

「URLリライト」はSEOに大変有効です。「URLリライト」を有効にして、グーグル等検索エンジンに多くのサイトが登録されるようにします。「URLリライト」がサーバによっては機能しません。記事へのリンクがエラーになるのなら、URLリライトが利用できません。設置者に相談しましょう。SAKURA Internet等CGI版PHPを利用しているサーバでは、「system/classes/url.class.php」をGeeklog1.4.1のバージョンのものに差し替え、php.iniに「cgi.fix_pathinfo=1」の一行を追加してください。

「テーマエディタ」

デザインを変更したい場合には、テーマエディタを利用します。タイトルのロゴ画像を変更したい場合には、あらかじめロゴを記事等を利用してサーバにアップしておきます。その画像のURLを指定して、ヘッダテンプレート「header.thtml」の、ロゴのGIF部分を変更します。ロゴ画像がヘッダテンプレートではなく、スタイルシート内で指定されている場合もあるので、あらかじめどのファイルを変更したらよいか、設置者に問い合わせておきましょう。また、変更するファイルはすべてテーマエディタで編集できるよう、設置者にファイルの登録を依頼します。(標準提供テーマでは、デフォルトで必要なファイルは編集できる設定になっていますが、その他の個々に開発されたテーマの場合には、個別に対応が必要です。)

「メール記事投稿」

投稿者別に話題を初期設定して記事を投稿したり、携帯からも写真付きでメール投稿できるなど、大変便利です。

「サイトマップメニュー表示PHPブロック」

記事カテゴリ毎に、そのカテゴリの記事が時系列に表示されますが、はじめてのブログCMS運営の場合、記事カテゴリ形式でメニューらしきものが表示されているのは違和感があるかもしれません。

そのような場合には、カテゴリ名と個々の記事がメニューとなって自動的に表示される、サイトマップ型のメニューをあらかじめ設置しておきます。ブロックを新規作成して、PHPブロックモードにして、関数phpblock_sitemapmenuを指定するだけです。

ただし、記事が大変多くなっていく場合には、メニューが自動的に長く伸びてしまうことになるので、ページ数が数十ページでおさまる程度の場合にのみ利用できますが、運営初期の場合にはこの状態で様子をみて、時期をみて本格的にHTMLでメニューを作成する方法もあります。HTMLでメニューを作成する場合は、ブロックをノーマルモードで作成し、HTMLでメニューを記述します。

「記事と静的ページ」

コンテンツを記事で書くべきか、静的ページで書くべきかを迷うかもしれません。 GeeklogはブログCMSですので、本来記事がGeeklogのメイン機能です。できるだけ記事でコンテンツを書きましょう。記事用の細かな表示が不要なら、コンフィギュレーションエディタで記事の表示内容を調整したり、テーマエディタで、通常記事や注目記事のテンプレート「storytext.thtml」「featurestorytext.thtml」を編集して表示内容を調整します。個別の記事の表示のテンプレートは「article/article.thtml」です。テーマエディタでは、テンプレートをいつでも初期状態に戻すことができます。

会社概要やプライバシーポリシー等、時系列である必要がないページは、静的ページで記述すると良いでしょう。静的ページは、上述のように、簡単にヘッダメニューに登録できます。

「トップページデザイン」

トップページにのみ、装飾的にFLASHコンテンツを置きたいのであれば静的ページを利用します。「センターブロック表示」にチェックし、表示場所を(ページの最上部、注目記事の下、ページの下、ページ全体)から選びます。「話題」は、(すべて、ホームページのみ、各話題・・・)の中の、「ホームページのみ」を選びます。これでホームページのデザインを追加できます。

「話題(記事カテゴリ)別のページデザイン」

話題とは、記事カテゴリのことです。各話題のページ別にデザインを変えたい場合があるかもしれません。そのような場合にも、静的ページを利用するとよいでしょう。「話題」は、(すべて、ホームページのみ、各話題・・・)の中の、各話題のタイトルを選びます。これで各話題別のページデザインを追加できます。

##開発者向けカスタマイズ方法

#コンフィギュレーション

システムをカスタマイズ、拡張したい場合には、まず、コンフィグレーションエディタで設定変更できるかどうか確認してください。より細かい設定変更は、Geeklog1.4 日本語版最新config.phpを直接編集します。

#言語ファイル

表示する言語を細かく修正したい場合には、言語ファイル(UTF-8ならlanguage/japanese_utf-8.php、EUCならlanguage/japanese.php)を修正します。

ユーザがアカウント登録したときに送られるGeeklogサイトからのユーザ登録メールのカスタマイズは、welcome_email.txtを作成して/path/to/geeklog/data ディレクトリに置きます。

#テーマ

各テーマのテンプレートを変更したい場合にはテーマエディタで、変更します。

#PHPブロック

PHPブロックで利用できるphpblock_ではじまる関数は多数提供されています。テーマテスター等、Geeklog Japaneseでも提供されています。


#静的ページPHP

静的ページPHPを利用して機能を追加することもできます。問合せフォームページ、見積もり、簡易ショッピングカートプログラム等が、Geeklog Japaneseでも提供されています。

#カスタム関数

また、Geeklogのカスタム関数lib_custom.phpでも機能を拡張できます。Geeklogでは、標準で各種のカスタム関数を提供しています。それぞれデフォルトではコメントアウトされているので、必要なカスタム関数をセットしてください。

関数は、ダウンロードサイトからダウンロードすることができます。

#プラグイン

大きな機能拡張は、プラグイン機能で拡張します。以下、プラグインについて説明します。

  1. プラグイン
    プラグインを追加して機能を拡張することができます。公式プラグイン日本語標準パッケージ提供プラグイン推奨プラグインは、すでに[3] 管理者運用方法で説明されています。
    1. 公式プラグイン
      Geeklogコアパッケージに標準で添付されています。
      Geeklogのインストールが完了したら、1から4のプラグインは、プラグイン管理画面でインストールリンクをクリックする必要はなく、インストール完了とともに、すでにインストールされています。
      5のメール記事投稿プラグインは、インストール時のファイルの変更や、専用メールアカウントの作成以外、なにもする必要はありません。
      1. リンク
      2. 静的ページ
      3. Spam-X
      4. アンケート
    2. 日本語標準パッケージ提供プラグイン
      日本語標準パッケージに同梱された、良く使われるプラグインです。標準パッケージをインストールしたら、プラグイン管理メニューで、「インストール」をクリックしてインストールします。
      1. ファイル管理(日本語版標準パッケージ同梱)(日・英)
      2. 掲示板(日本語版標準パッケージ同梱)(日・英)
      3. Dbman(日・英)
    3. 推奨プラグイン 
      日本語版標準パッケージに組み込まれています。
      1. テーマエディタ(日・英)
      2. コンフィグレーションエディタ(日・英)
    4. 便利なプラグイン 管理者用 register_globals off対応
      1. Admin Toolbox Geeklog管理補助プラグイン(日・英)
      2. Bad Behavior(日・英)
      3. Geeklog Usage Stats (GUS)(日・英)
      4. Ban(日・英)
    5. 便利なプラグイン register_globals off対応作業済み
      1. メディアギャラリー(日・英)
      2. FAQ(日・英)
      3. アマゾン(日・英)
      4. フリッカー(日・英)
      5. MT2Geeklog(日・英)
      6. テクノラティ(日・英)
      7. rssアグリゲータ(日・英)
      8. Zen CARTプラグイン(Zen CART on Geeklog)(日)
    6. その他のプラグイン
      1. ブックマーク
      2. Ewiki
      3. 多言語FAQ
      4. Glinks
      5. Glossary Plugin
      6. メーリングリスト
      7. スケジュールToDo管理
      8. ユーザーページ
      9. 天気
      10. zClassified Ads Plugin
      11. GoogleMap
      12. MediaWikiプラグイン

#ハック

表示に関わる小さな修正は、言語ファイルやテンプレートファイルで行うことのできないプログラムに関係する場合には、多くの場合、lib-common.phpをハックするとよいでしょう。lib-common.phpは、表示の際に、すべてのプログラムから呼ばれている核になるソースファイルです。記事の表示に関しては、多くの場合、system/lib-story.phpをハックすると良いでしょう。

ただし、機能拡張はカスタム関数で用意されているので、セキュリティメンテナンスやバージョンアプメンテナンスのためにもできるだけ カスタム関数で機能拡張するように心がけてください。

修正したらその修正ソースに対するドキュメントをadd_to_修正ソース.phpの名前でサーバの同じディレクトリに置くと、メンテナンスの際に便利でしょう。


###カスタマイズ事例研究

多様なRSS機能、ピング送信、トラックバックなどのブログ機能が充実しており、サイト内リンクにおいて、「アンカータグ=ページタイトル=H1」の書式でページが記述されています。また、Googleが推奨しているURLリライトを行っています。

携帯からのアクセスも可能で、PCからも携帯からも同一URLで閲覧と書き込みができます。 クッキー機能のない機種でもセッション管理が行えるようにしているので、3キャリアともログインできます。エンコードはShift JIS。テーブルタグは自動的にはずしています。

サーバはXREAプラス。UTF-8、register_globals offで稼動しています。

Geeklog JapaneseとIvySOHOサイトはいずれもメンバー同士のコミュニケーション向けにGeeklogの掲示板プラグインと同時に、同じくオープンソースCMSのSNS「OpenPNE」を活用しています。SNSは、気軽な内部コミュニケーションや業務連絡などのクローズドな連絡には最適です。

##Geeklog日本語サポートサイト

#Geeklog Japanese

Geeklog日本語版ダウンロードサービスとGeeklog情報発信とサポート掲示板を運営しています。

様々なテーマを自由に選べます。

画像:テーマ「professional」元画像
画像:テーマ「Geek_and_Logloo」元画像
画像:テーマ「tony_red」元画像
画像:テーマ「IvySOHO」元画像
画像:テーマ「mobile」元画像


追加しているプラグインは、bad_behavior、ban、dbman、faqman、filemgmt、forum、glmenu 、links、polls、privmessages、spamx、staticpages、technorati、themedit、userconfig

アンケート機能により、導入サーバの順位などの調査をはじめました。

画像:導入サーバアンケート
画像:導入サーバアンケート
  • 併設サイト
  1. Geeklog wikiドキュメント URL:http://wiki.geeklog.jp
     GeeklogのドキュメントをすべてWikiで書いています。GeeklogにWikiプラグインをインストールして運営する選択肢もありましたが、情報量が多いため、サブドメインで独立させて専用プログラムで対応させました。機能説明からインストールドキュメント、運用マニュアル、開発資料、FAQまであらゆる情報を分散させること無く一括管理しています。
  2. Geeklog.jp SNS URL:http://biz.geeklog.jp
     Geeklog Japaneseでは一般参加の掲示板や、ログインメンバーだけの掲示板、管理者だけの掲示板など多様に運営していますが、さらにToDoやスケジュール管理、コミュニティの共同設営、画像アップ等、さらにコミュニケーションをとりやすいSNSをあらたに設置し、開発のコミュニケーションをとるようにしました。
  3. メールマガジンを適時配信しています。
  • PC用,携帯用URL共通:http://www.geeklog.jp
  • 運用・設置・管理 Geeklog Japaneseグループ


##SOHO支援サイト

#IvySOHO

仕事情報を配信。様々な活動、SEOセミナー、CMSセミナーの内容、ブログを配信しています。メールマガジンを適時配信しています。(メールマガジン受信者:8000名)

GoogleサイトマップやRSS配信、ピング送信、URLリライトで効果的なSEOを行っています。 GoogleマップスAPIを活用したコンテンツなどもあります。

追加しているプラグインは、bad_behavior、ban、dbman、faqman、forum、links、polls、privmessages、spamx、staticpages、themedit、userconfig。

画像:テーマ「IvySOHO」元画像
  • PC用,携帯用URL共通:http://www.ivysoho.com
  • サイトの目的:IvySOHO情報発信と掲示板
  • 併設サイト:IvySOHO SNS URL:http://ivysoho.jp
  • 運用・設置・管理 アイビーソーホー

##企業サイト

#アイビーソーホー

オープンソースCMS Geeklog、ZenCART、OpenPNE、MediaWiki等でホームページを構築します。ドメイン取得からサーバ管理、運営まですべてを提供しています。構築から初期運営の補助を行い、自立運営へ移行させることを主眼として各種サポートを行います。特に運営が難しい汎用CMSでも、直感的に操作できるGeeklogを採用しているので、はじめてホームページに関わる運営者グループも無理なくホームページ運営が行えます。

クライアントまたはメールマガジン登録者へは、メールマガジンを配信しています。

メインコンテンツは記事で記述していますが、表示の際には日時を表示させていません。(なお、話題の変数を利用して、通常は日時を非表示モードにしながらも、ある話題のときだけ日時を表示させることも可能です。参照:テーマの変数)

記事は作成時に自動的にピングを送信する設定です。

追加しているプラグインは、spamx、staticpages、themedit、userconfigのみです。

画像:元画像
  • PC用,携帯用URL共通:http://www.ivysoho.co.jp
  • サイトの目的:アイビーソーホー業務案内とメールマガジン配信
  • 運用・設置・管理 アイビーソーホー


##大学同窓会サイト

#大阪市立大学同窓会

大学関係のホームページ運営には、管理権限を細かく指定できるGeeklogは便利です。グループも、同窓生、学生、教員、と様々に分けて目的に応じて必要な情報を該当するグループへ送信するメールマガジン機能も便利です。

大阪市立大学の各同窓会、全学支援組織の学友会もGeeklogを活用しています。

同窓会をすべて同じシステムにすることでホームページ運営を効率化し、同窓会の運営者が運営を行って開発者は補助的な運営を行っています。

画像:学友会
画像:有恒会
画像:理学部同窓会
画像:医学部同窓会
画像:生活科学部同窓会
画像:よつば会

追加しているプラグインは、dbman、forum、links、spamx、staticpages、themedit、userconfig。

  • PC用,携帯用URL共通:http://www.osaka-cu.com/
  • 運営 各運営団体
  • 運営補助・設置・管理 アイビーソーホー

※現在このサイトはEUCコードなので携帯ハックはまだ作業していませんが、近い将来、携帯からの閲覧も可能になる予定です。

##中学校PTAサイト

#とよなかイレブンネット

「とよなかイレブンネット」は、豊中市立第十一中学校PTAサイトです。

学校関係者への連絡は、個人情報保護法施行後連絡網がなくなって連絡手段が限られるなか、ホームページが開設されました。

現在、役員に運用がまかされて記事や様々なイベントがアップされています。PTAの広報誌や折々の活動案内だけでなく、学校行事や体育祭の写真なども掲載されています。

特にメディアギャラリプラグインにより、学校行事の多くの写真をスライドショー形式や一覧表示形式で楽しめます。何百枚もある多くの写真も、あらかじめサーバにファイルを一括アップロードしておけば、メディアギャラリプラグインのバッチ処理機能でアルバムを自動作成することができます。ただし、この作業でFTPを利用する必要があるので、このコンテンツの作成のみ、開発会社で代行しています。(その他のコンテンツはすべてPTA役員により運営されています。)

携帯でも閲覧できるので、パソコンをもっていない家庭への連絡も可能で、外出先からもPTAからの情報を受信できます。

公的なホームページの運営は、個人情報の漏洩対策を万全にしながらも、管理運営が、毎年変わるPTA役員でも簡単に引き継ぐことができることが必須です。

設置開発会社側のルート管理者はユーザ情報も含め、すべてを管理しますが、PTA役員は、コンテンツの管理までとします。現在は複数の役員に記事などのコンテンツ編集権限を割り当て、ユーザ情報などを含むすべての管理権限は設置会社で管理しています。

運営者は個々にアカウントを取得しており、誰が記事を書いたかが把握できます。

運営を慎重にするため、現在は投稿やコメントの受付、トラックバックなどすべて受け付けていません。

記事の新規作成の際には、デフォルトでドラフトモードがチェックされており、記事を書いたらスタッフ全員へ記事を書いたことを伝えるためのメールフォームを設置しています。PTA会長は学校側の協力を得て、ドラフトモードのチェックをはずして公開する手順を踏みます。

記事作成のパーミッションデフォルトは(3,3,2,0)にして、記事編集権限を持つグループ運営者はだれでもその記事を編集でき、ログインしていないゲストユーザには閲覧できないモードとなります。

PTA会員へは、ユーザ名とパスワードを文書で伝えられ、それを元にログインすることで、PTAのみに公開されている様々なコンテンツを閲覧できます。

本来なら各PTAも個々にユーザ名とパスワードを取得して閲覧すべきですが、PTA会員かどうかの判断がシステムでは自動的に行うことができないため、ユーザ名固定で運営しています。

また、固定のほうがログインの手順がおなじになるのでログインするホームページに慣れていないユーザが多い場合や、閲覧制限を設けたい場合には便利です。

ただ、PTAから他のユーザにパスワードが漏れる危険性は否定できません。そのため、個人情報や顔写真で大きなサイズの写真を掲載していません。

追加しているプラグインは、bad_behavior、ban、dbman、links、spamx、staticpages、themedit、userconfig。


##医師会サイト

#平野区歯科医師会

歯科医師会に参加している歯科医院は100件を超え、それぞれの医療内容や地図情報の提供が大きな割合を占めます。そのためグーグルマップAPIを利用してすべての歯科医院を地図で検索するページを作成しました。

追加しているプラグインは、bad_behavior、ban、dbman、filemgmt、links、mediagallery、spamx、staticpages、themedit、userconfigです。

アカウント取得は承認制です。医師会会員はアカウントを新規登録申請し、会員の確認がとれた場合にのみ承認され、ログインできます。ログインすると、会員のみ閲覧できるアルバムやファイル、記事にアクセスできます。

画像:グーグルマップAPIで医院検索
画像:会員の写真アルバム
  • PC用,携帯用URL共通:http://www.hirano-shika.com
  • サイトの目的:歯科医師会会員地図情報等医療情報の提供と、会員のみ閲覧できる写真アルバムで総会や親睦会の写真を閲覧、会員のみ閲覧する各種ワード・エクセル等の資料の情報共有。
  • 運用 平野区医師会
  • 運用補助・設置・管理 アイビーソーホー
個人用ツール