Geeklog upgrade注意点: jQuery1.9 マイグレートプラグインの活用

Geeklog
投稿者: 表示回数6,043 印刷用ページ

Geeklog 2.0.0では、jQuery v1.9.1が同梱され、次期バージョンGeeklog 2.1.0では、現リポジトリを見るとjQuery v1.10.2が同梱されるようです。

Geeklog 1.8で活用していたjQueryの関数が動かなくなった場合、jQueryのMigrate pluginが提供されているので、それを読み込むことで一気に解決します。

たとえば、jQuery 1.9からliveが使えなくなっています。
コンソールには以下のエラーが表示。
Uncaught TypeError: Object [object Object] has no method ‘live’

https://github.com/jquery/jquery-migrate/blob/1.2.1/README.md

対策:

Geeklog のテーマfooter.thtml

from:

{plg_footercode}

to:
{plg_footercode}
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>

Geeklog upgrade注意点: jQuery1.9以後でlive関数削除

Geeklog
投稿者: 表示回数7,046 印刷用ページ

Geeklog 2.0.0では、jQuery v1.9.1が同梱され、次期バージョンGeeklog 2.1.0では、現リポジトリを見るとjQuery v1.10.2が同梱されるようです。

Geeklog 1.8で活用していたjQueryの関数が動かなくなった場合、jQueryのバージョンに注意してください。

jQuery 1.9からliveが使えなくなっています。

コンソールには以下のエラーが表示。
Uncaught TypeError: Object [object Object] has no method ‘live’

jQuery1.9系からliveが削除されているようです。
以下のように、onに置き換えてください。

from:

$("a.foo").live("click", fn);

to:
$(document).on("click", "a.foo", fn);


参考blog:
http://memo.choimemo.net/?p=585

Geeklogメンテナンス中の .htaccess

Geeklog
投稿者: 表示回数6,789 印刷用ページ

どのURLにアクセスしてもブラウザに表示されるURLはそのままでGeeklogメンテナンス中を示すページを表示します。しかも、HTTPレスポンスコード503(過負荷/メンテナンスで一時的に利用不可)が返るので、検索エンジンに対しても一時的なメンテだと理解され、メンテナンス画面がインデックスされることはありません。

管理者が使っている一部のIPアドレスからのアクセスに対してはメンテ中を表示せず通常の処理/表示をします。

Geeklog日本語版では、メンテ中画面を出すページは日本語化プラグイン(Japanize)が提供している /japanize/disabledmsg.html が用意されているので、これを表示します。

設定方法

.htaccess(またはhttpd.conf)に以下を追加します。

ErrorDocument 503 /japanize/disabledmsg.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/japanize/disabledmsg.html
  RewriteCond %{REMOTE_ADDR} !=XXX.XXX.XXX.XXX
  RewriteCond %{REMOTE_ADDR} !=XXX.XXX.XXX.XXX
  RewriteRule ^.*$ - [R=503,L]
</IfModule>
※ RewriteCond %{REMOTE_ADDR} !=XXX.XXX.XXX.XXX ここに開発者側のIPアドレスを列記。

Geeklogとロゴの由来

Geeklog
投稿者: 表示回数6,041 印刷用ページ

[lightbox:/images/library/Image/geeklog/logo/geeklog-purple.png width:300 height:auto]

Geeklogの特長:

オープンソースソフトウェア関連の法的問題に関わる情報を発信し続け数々受賞してきた有名な法律ブログGroklaw(http://www.groklaw.net/)は世界的に有名であり、このサイトで活用されている。統制がとれた開発体系、明快な関数の命名規則や整理されたソース構造、充実したプラグインライブラリが特徴。jQueryを多用したビジュアルな旅行サイトなどにも活用。

開発者:
http://wiki.geeklog.net/index.php/Who_made_Geeklog%3F
2012年、日本人コミッター2名(mystral-kk, Dengen)誕生。

開発の経緯:

SecurityGeeksとNewsGeeksというサイトのために開発され、GPL ver.2で公開。 テンプレートのコードはLGPLのPHPLibから。

Geeklogは、Jason Whittenburgによって書き下ろされた後、オープンソースコミュニティによってプロジェクトが進んでいる。Geeklog の現在のメンテナーは Dirk Haun。

ロゴ:

Wikiに簡単ながら紹介されています。

http://wiki.geeklog.net/index.php/Geeklog_logo
Geeklog開発者のSimon Lordによる。Creative Commonsライセンスで配布。フォント部はAdobe商用フォント"VAG Rounded Black"。

画面がまっしろ。サイトがエラーになったときの対処法

Geeklog
投稿者: 表示回数16,965 印刷用ページ

Geeklogの場合は、以下の手順でサイトのエラーを表示して復旧させます。

  • php.iniでPHPエラー表示モードに変更します。
  • Geeklogのエラーログ /logs/error.logとサーバーのログを確認します。
  • Geeklogの管理画面にログインできる場合はCacheクリア。あるいはサーバーのcache用ディレクトリ(data/layout_cache/, data/layout_css)のcacheファイルを削除
  • Geeklogのsiteconfig.php に、以下の1行を追加して、デバッグモードにします。
    $_CONF['rootdebug'] = true;
    これでログインしていなくてもPHPエラーが表示されるようになります。
  • どこでエラーが発生しているか詳細な関数の実行経緯が表示されるので解析。
    原因に応じて、/admin/install/rescue.php(緊急レスキューツール) を実行してプラグインを無効にするなど。rescue.phpでたいてい解決します。

    [lightbox:/images/library/Image/geeklog/rescue/geelog-rescue.png width:auto height:250]

  • DBへの接続情報は、db-config.phpです。

Geeklog テーマエディタ―を編集してパンくずリストを表示する

Geeklog
投稿者: 表示回数6,609 印刷用ページ

テーマエディタ―を活用すると、テーマの編集から画像のアップロードまでできます。

1. Plugin Admin - install Themedit

[lightbox:/images/library/Image/geeklog/themedit/geklog_plugins_admin.png width:auto height:250]

プラグインのインストール順にプラグインが処理されます。依存されているプラグイン(日本語化プラグインやDataProxyプラグイン)は上位に配置してください。

日本語化プラグインは、日本語メールを利用するすべてのプラグインが依存しています。

DataProxyプラグインは、Sitemap Calendarjp プラグインが依存しています。

Geeklog DataBox Msater data

Geeklog
投稿者: 表示回数7,646 印刷用ページ

DataBoxのアトリビュート(Attributes)のタイプ(type)には、マスター(Master)を別途登録(regist)してそれを参照して作成するリスト(List)があります。

マスター(Master)で、種別を Country にして、各国のなまえ(Country name)、コード(code)などを一式登録(regist)します。その次のアトリビュート作成画面(Attributes admin)で、マスター(master) 「Country」を参照したリスト(List)を、テーマ変数(Theme variable)「country」で作成します。作成するデータのタイプのアトリビュート(Attributes)に登録。データ(create data)を作成します。

1. Create master for list attribute

[lightbox:/images/library/Image/geeklog/databox/geeklog_databox_master_create.png width:auto height:250]

SEOを意識した美しいURLの生成

Geeklog
投稿者:ゲストユーザー 表示回数8,493 印刷用ページ
URL生成はGoogleの評価対象の1つであると言われていますが、美しくルール化されたURLで生成されたサイトは管理しやすいので最初からURLのルールを意識して運営します。

Geeklogでは、記事、静的ページなど通常、生成するコンテンツはIDを指定します。

このIDの生成時に気を付けることは、

1.すべて小文字にすること
2.キーワードを含めること
3.複数キーワードで検索を狙いたい場合は、ハイフンでつなぐ
Googleはハイフンの利用を推奨しています。区切りにアンダーバーを使いません。アンダーバーを使えば、前後それぞれ繋げて1つと認識されます。

Geeklogの多言語切り替えの場合、同じコンテンツを多言語で用意する場合に、IDの最後に言語ID_ja _en _ko _zh などを追加します。

URLの生成で美しいのが、Geeklog本家サイトです。

事例:
http://www.geeklog.net/article.php/groklaw-shutting-down
http://www.geeklog.net/article.php/summer-of-code-2013-students
http://www.geeklog.net/article.php/geeklog-2.0.0
http://www.geeklog.net/article.php/geeklog-1.8.2
http://www.geeklog.net/article.php/geeklog-1.8.0

投稿記事は、投稿者はURLを指定できず、自動生成URLなので、以下のようなURLになります。
http://www.geeklog.net/article.php/2013062908235210