Context links
概要
context links モジュールは、簡単なマークアップ規則を使って文脈に関連 した情報(情報源)へのリンクを作成する機能を提供します。リンクは、記述された 文字列そのものか、関連情報にリンクする特定の文字列、アイコンを挿入した状態 で表示されます。
サイトの管理者は異なった "class" のcontext link を定義することが 出来ます。 それぞれの "class" は例示に利用される特定の文字列か アイコンを定義することが出来ます。 また、 "class" が指定されなかった ときのデフォルトの "class" を指定することが出来ます。
"context links" を挿入するときの記述法:
[?class:URLkeyword link-text]
または、 デフォルトclass を利用するための、
[?:URLkeyword link-text]
Notes:
- 参照される URL は、相対リンク(例:some/link)で表されて、 same サイト 内の情報にリンクされている場合があります。また、絶対リンク(例:http://some.site/) で表されて、他のサイトの情報にリンクされている場合もあります。
- URLkeyword のオプションとして、URLkeywordの先頭に ^ (caret) を付加することで 新しいウィンドウにリンク先を開きます。 また ` (backtick) を付加すれば カレントウィンドウにリンク先を開きます。
- right bracket("]") を URLkeyword または link-text に含めるには、 バックスラッシュによってエスケープする必要があります (\])。 同様に、バックスラッシュ(\)を含める場合もバックスラッシュによってエスケープする必要があります (\\)。
以下は現在、このサイトで定義されている context link の class の一覧です。

(Context links のヘルプより)
モジュールをインストールしたままのデフォルトの状態で、デフォルトclassでリンクを作成する分には<a></a>を使って記述するのと機能的な違いはさほどありません。
しいて挙げるのであれば 記述が簡潔になる と言うことでしょうか。
むしろ、このモジュールの注目すべき機能は、日常的に記述するリンク先は登録しておけるという点です。例えば、このサイト"jcom"という class で登録しておいて、
[?jcom:page/29 はじめに]
と記述すれば
はじめに
と言うリンクが作成できると言うことになります。
設定
- 公開先に登録されている「5.x-1.1」の「Download」から、「contextlinks-5.x-1.1.tar.gz」がダウンロードできます。
- ダウンロードしたファイルを解凍します。
- 解凍して取り出された「contextlinks」フォルダ以下をDrupalの「sites/all/modules」にアップロードします。
- モジュール管理メニュー(管理→サイトの構築→モジュール)にて「その他」グループに表示されている「contextlinks」にチェックを入れて「設定の保存」で有効にします。
「contextlinks」モジュールのインストールが終了するとサイト設定メニュー(管理→サイトの設定)に「Context links」設定メニューがリンクされます。
「概要」と「追加」の2種類のタブメニューが用意されています。
- 「概要」は現在登録されている class の一覧を表示しています。
- 「デフォルト」項目が有効になっている class が、class 名を省略した時に利用されます。
- 「URLテンプレート/画像/テキスト」「表示する位置」「新しいウィンドウで開く」「リンクテキスト」は設定されている内容です。右側の「編集」をクリックすることで設定画面に移ります。 ここでの設定項目は「追加」タブメニューの class の新規追加の設定画面と同一の内容です。
- 「追加」タブメニューは class を新規で登録する場合に使用します。 設定内容については「概要」タブメニューから「編集」を選んで移行した画面と同一の内容です。
- 「class名」…class名はユニーク(重複がない)である必要があります。a-zのアルファベット文学、0-9の数字、それとハイフン(-)とアンダーライン(_)を使用することができます。
- 「URLテンプレート」…このクラスを使用したときにリンクに設定されるアドレスのメインの部分です。ここで設定したアドレスの後に URLkeyword の文字が追加されたモノがリンク設定でリンク先として展開されます。 例えば、モジュールデフォルトの google という class のテンプレートには http://www.google.com/search?q= と設定されています。 context link の記述で fooの検索 [Google] としたときの結果は http://www.google.com/search?q=foo とリンクが設定されます。 テンプレートアドレスの中間のアドレスを URLkeyword で置き換えたいときには、プレースホルダー {} を利用します。 例えば、http://www.google.com/search?q={}&hl=en&lr=lang_sr のテンプレートで drpal という URLkeyword 使った場合は http://www.google.com/search?q=drupal&hl=en&lr=lang_sr というリンクが設定されます。
- 「リンクテキスト」…context links を記述したときの link-text にリンクを設定します。この後の「画像とテキスト文字列」項目がいずれも設定されていないときに自動的に有効となります。 2007/03/30現在の確認事項:このオプションは条件によってオフに設定できるはずの項目ですが、どのような条件でも設定の保存時には勝手に有効に設定されるという挙動が確認されています。バグなのか間違った日本語訳からくる解釈の違いからなのかは現在判っていません。
- 「画像のURL」…アイコン画像として使う画像のアドレスを指定します。使わない場合は空欄のままにしておきます。アイコンはリンク作成時に縦/横1.2emにサイズを強制されて表示されます。正方形の画像を用意してください。
- 「テキスト文字列」…ここで設定したテキスト文字列にリンクを設定します。ブラケット[]またはプレースホルダー{}で囲うことが出来ます。この場合、テキスト文字のみリンクが設定されます。
- 「表示する位置」…link-textに対して画像またはテキスト文字列を表示する位置を指定します。
上記の設定の他に、設定メニュー(管理→サイトの設定)の「入力書式」の設定も必要です。
- 「contextlinks」を設定したいフィルターの「設定」を開いてください。フィルターを新規に追加する場合は「入力書式の追加」から追加します。
- 「フィルタ」項目に「Context links」がありますので、チェックを入れて「設定の保存」で保存してください。
- コンテンツの投稿をする際に、テキスト欄の下部にリンクされる「入力書式」より、「contextlinks」を設定したフィルタを選択して投稿してください。
日本語化
日本語化するためにはpoファイルのインポートが必要です。
このページに添付してあるファイル「contextlinks-5.x-1.1-ja.tar.gz」が利用できます。
- 日本語情報集約サイトDrupal-jBox.netで公開されている日本語プロフィール+jBoxモジュールを利用している場合はモジュールをアップロードする前にモジュールのフォルダ「contextlinks」内に、添付ファイルを解凍して出てくる「po」フォルダ以下をコピーしてください。モジュールを有効にした際に自動的にpoファイルがインポートされます。
- 上記以外の方は、ローカライゼーションメニュー(管理→サイトの設定→ローカライゼーション)のインポートから、「po」フォルダ内の「ja.po」ファイルをインポートしてください。
色々と、ありがとうございます。
至らないところばかりですが、よろしくお願いします。
何かありましたら、遠慮無く叱ってください<(_ _)>
大丈夫ですね。
それでは、宜しくお願いします。
長々とすみませんでした。m(__)m
一番新しいAdSenseモジュールのをコミットしてみました。
なんか変な事していたらご指摘ください<(_ _)>
なれるまで、大きいへまをしないことを祈ります(T.T)
はい。モジュールのリビジョンは参照しません。
その点は考えたのですが、参照するメリットはあまりないのですがデメリットは多いので、参照しないことにしました。
参照しないことによるデメリットは、一部翻訳されない部分が残ることと不要な翻訳がDBに入ることですので、問題のないレベルだと思います。
モジュールがまるっきり書き直し…とかでもない限りは通常は翻訳が当たらないところなんてさほど多くないんですからねぇ…(^-^;△フキフキ
リビジョン間の差分も含められるといいのかな?
でも、そうすると不要なデータが山のように出来る手しまうかな…(^-^;△フキフキ
そう考えると、あっさり切っちゃって正解なのかな?
そんなイメージなんですかね?違ってるのかな…(^_^;)
うーん。違うような…。
逆に履歴が残るから、フォルダ掘ってコピーする(=原本を残す)必要がないわけです。原本は履歴ごとレポジトリにありますので、作業は直接チェックアウトしたフォルダで出来ます。
あ、ブランチの例えですか。それでしたら「そういう使い方もあります」ですね。
他にはDrupalもそうですが、異なるバージョンを並行してメンテする時は、異なるブランチで行いますね。独立してメンテできますし、必要なら別のブランチで行った修正を取り込むこともできます。
-------------------
さて、amayadoriさんのsourceforge.jpのアカウントは、プロジェクト開発者として登録しました。これで、CVSへの追加/修正が可能です。
で、その方法ですが、前回書いたとおりSSH経由でレポジトリにアクセスする必要がありますので、TortoiseCVSでSSHを使えるように設定します。
まず、SSHは公開鍵方式の暗号化を行いますので、公開キーと非公開キーの2つを作成します。そして、公開キーをsourceforge.jpに登録し、非公開キーをTortoiseCVSから参照できるようにします。
具体的な手順ですが、TortoiseCVSのフォルダにあるputtygen.exeを使います。
puttygen.exeを起動してGenerateボタンを押すと上の部分にメータが出ますので、その下辺りでマウスをぐりぐりしてください。メータが2回最後まで達すると公開キーと非公開キーが出来上がります。
次に、Save private keyボタンを押して非公開キーをファイルにセーブします。このファイルはCVSを使う度に使用しますので、ご自分のフォルダに保管しておいてください。
公開キーはsourceforge.jpに登録しますので、puttygen.exeのダイアログは閉じずに、sourceforge.jpにログインしてください。そして、「アカウント管理」メニューから管理ページに移動し、ページの一番下の[鍵の編集]リンクをクリックしてください。「CVS/SVN/SSHで共有する公開鍵」ページに移りますので、そこに公開キーをコピペして「更新」ボタンを押します。
公開キーはputtygen.exeのダイアログ上部の"ssh-rsa"で始まる英数字の羅列です。これをコピペしてください。
「更新」ボタン後のページの一番下で「CVS/SVN/SSHで共有する公開鍵」が"1"になっていればOkです。公開キーが登録されました。
今度は、TortoiseCVSの設定です。右クリックのCVSメニューから「オプション」を実行してください。ダイアログの「ツール」タブを選び、一番下の「SSH parameters」欄を、
-i "非公開キーファイル" -l "%u" "%h"
とします。先頭に-iオプションを書き加えればいいと思います。非公開キーファイルは、先ほど保存したファイルのフルパスを入れてください。
これで「Ok」すれば設定終了です。
-------------------
SSHの設定が済めば、レポジトリに開発者向けアクセスができます。
チェックアウトの際、CVSROOTに
:ext:amayadori@cvs.sourceforge.jp:/cvsroot/drupal-jp
を指定すれば開発者向けアクセスになります。その他の手順は以前書いたものと同じです。
はい。モジュールのリビジョンは参照しません。
その点は考えたのですが、参照するメリットはあまりないのですがデメリットは多いので、参照しないことにしました。
参照しないことによるデメリットは、一部翻訳されない部分が残ることと不要な翻訳がDBに入ることですので、問題のないレベルだと思います。
sourceforge.jpのアカウントは amayadori で取得してました。
とか言っていたのですが、なんぞ、昨日の夜から今日の早朝までサーバーに接続できなくなっていたので、復習は出来ませんでした<(_ _)>ごめんなさい。要するにあれですよね。
データをいじるときには同じ階層の中にフォルダを掘って、その中にファイルをコピーしてそれをいじる…。
そんなイメージなんですかね?違ってるのかな…(^_^;)
TortoiseCVSは自宅マシンにインストールしたのでまだ確認してません(出来ないのですが)ので、家に帰り着いたら覗いてみます。
sourceforge.jpのユーザー名は確か、amayadoriで取ったような気がします。いい加減なことは言えないので、家に帰って確認したらご報告します。
昨日、ローカルのファイルを見てふと思ったのですが、モジュール名.poの形式で収録されていましたよね。うろ覚え何で違ったらアレですけど(^_^;) これは、モジュールのリビジョンには対応していないと言うことでしょうかね?
例えば、今日ここにアップしたAdSenseのpoは5.x-1.2の抽出poを基に日本語化したものですが、本家には5.x-1.3がリリースされていて、モジュール次第ですが同じpoでは上手くない場合も出てくるような気がするのですが、そう言った対応はどうなのでしょうか?そう言うのも上手くできる仕掛けになっているのかも?
家に帰ってからTortoiseCVSを前にして復習します…<(_ _)>
(^^
「ブランチ」が解り辛いかと思うのですがどうでしょう?
視覚的に「ブランチ」を見るには、チェックアウトしたファイルの上で、右クリックによるCVSメニューから「リビジョングラフ」を選んで頂けば、グラフが図示されます。
今回の翻訳ファイルは修正を行っていないので、まだ解り辛いかもしれませんが、例えばtranslations/ja/ja.poのリビジョングラフを見て頂けば:
(ja.po)
|
+--[1.1]---(DRUPAL-5)
|
[1.1.2.1]
このようなグラフになっていると思います。(絵はズレますが感じは判りますよね?)
数字を含んだ四角が、そのファイルの各リビジョン(過去のある時点でのファイル内容)で、角丸四角がブランチです。
DRUPAL-5のブランチに新たに修正を加えると、次のリビジョンは「1.1.2.2」となります。また、デフォルトのブランチ(枝というより幹?)は、グラフに表示されていませんがHEADという名前で「1.1」の下に繋がります。そこに新しい修正を加えれば、次のリビジョンは「1.2」です。
ブランチの使い方は開発のポリシーによりますが、ここでは本家CVSのポリシーにあわせています。Drupalの各バージョンに対応した開発はそれようのブランチで行い、バージョンアップの際はHEADから新たにブランチを発生させます。
ですから、「DRUPAL-5」はDrupal 5.x用の開発ブランチですね。
新たな翻訳ファイルも「DRUPAL-5」のブランチに加えていってください。update_localeモジュールは、実行中のDrupalのバージョンにあったブランチから翻訳をインポートしますので。
---------------------
さて、前置きが長くなりましたが、翻訳ファイルを加える方法です。以下にその方法を書きますが、まだその通りしないでください。理由は後で説明します。
まず、「DRUPAL-5」ブランチをチェックアウト(アップデート)したローカルのディレクトリ内に新しい翻訳ファイルをコピーします。モジュールの翻訳ファイルは、translations/ja/modules/の下に「プロジェクト名.po」のファイル名です。
次に、コピーしたファイルの上で「CVS 追加」メニューを選び、ダイアログでコピーしたファイルがチェックされているのを確認してOkします。これで、レポジトリに追加されます。
が、これではまだ追加を予約しただけで、実際にファイルは追加されていません。
実際に追加するには、ファイルの上で「CVS コミット」メニューを選びます。そのダイアログでコメントを書いてOkすれば、レポジトリに実際にファイルが追加されます。
コメントも履歴に残りログに出力され、そのリビジョンの変更がなぜ行われたかなどの情報を書き記す為に使われます。でも、余り気にせずに書いて構いません。日本語も入れられます。
既にあるファイルを修正する場合は、そのファイルを修正した後、同じように「コミット」します。ローカルフォルダで行った追加、修正をレポジトリに反映させる操作が「コミット」です。
翻訳ファイルをレポジトリに入れる基本作業は以上です。
---------------------
それで本番ですが、「:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/drupal-jp」は読み出し専用ですので、ここには書き込み(追加)出来ません。(^^
開発作業は、http://sourceforge.jp/cvs/?group_id=1932 の下側に書かれている「SSHを使った開発者向けアクセス」で行わなければなりません。が、アクセス方法が若干異なるだけで、作業自体は上述したものと同じです。
さて、この「SSHを使った開発者向けアクセス」を行うためには、まず、amayadoriさんのsourceforge.jpユーザを開発者登録しなければなりませんので、ユーザ名を教えていただけますか?
その上で、SSHの設定を行って頂かなければなりません。SSHはTortoiseCVS付属のものが使えますので、新たにソフトをインストールする必要はありません。
ということで、また次回。(^^
次回は「TortoiseCVSでSSHを使おう!」です(笑
遅くなりました。
夕方から忙しくなってしまったので、家に帰ってきてからじっくり挑もうと思ってたら、こんな時間になってしまいました(;^_^A アセアセ…
とりあえず、仰せのところまでは無事にたどり着きました。
まだ、用語がしっくりしていないので雰囲気を感じた程度ですが、そのうちなれていくと期待して(^-^;△フキフキ
では、次の授業をお願いいたします<(_ _)>