# リンクプラグイン

リンクセクションはかつてGeeklogのコアコードの一部でしたが、Geeklog 1.4.0よりプラグインとして分離されました。

## 設定

リンクプラグインの設定は、「管理者用メニュー - コンフィギュレーション - リンク」から変更できます。

### リンクの表示に関する設定

項目(変数) | デフォルト | 説明
--- | --- | ---
ログインを要求する(linksloginrequired) | いいえ(0) | はい(1)にすると、登録ユーザしかリンクセクションにアクセスできなくなります。 この設定値よりも、「管理者用メニュー - コンフィギュレーション - Geeklog - ユーザと投稿」の「すべてにログインを要求する(loginrequired)」の設定の方が優先されるます。「すべてにログインを要求する」をはい(1)にすると、リンクプラグインでログインを要求していなくても、ゲストユーザはリンクセクションにアクセスできなくなります。
カテゴリの表示カラム数(linkcols) | 3 | 1カラム（列）ごとに表示するリンクカテゴリの数を指定します。
ページあたりのリンク数(linksperpage) | 10 | 1ページごとに表示するリンクの数を指定します。
トップ10を表示する(show_top10) | `はい(true)` | 「カテゴリの表示カラム数(linkcols)」と「ページあたりのリンク数(linksperpage)」がともに 0 でないとき、リンクプラグインはそのトップページに最もクリックされたリンクの上位10位を自動的に表示します。表示したくなければ、この設定をいいえ(`false`)にします。
カテゴリの説明を表示する(show_category_descriptions) | `はい(true)` | はい(true)にすると、カテゴリを表示するときにサブカテゴリの説明を表示します。
新規ウィンドウ(new_window) | `false` | 外部サイトへのリンクを新規ウィンドウで開くかどうかを指定します。 注意: このオプションは注意してください。ユーザが操作時に当惑したり、いらいらする可能性があります。

### リンクの管理

項目(変数) | デフォルト | 説明
--- | --- | ---
新着情報ブロックに表示しない(hidenewlinks) | いいえ(0) | はい(1)にすると、新規リンクが新着情報ブロックに表示されなくなります。
新規リンクと見なす期間(newlinksinterval) | 1209600（秒） | リンクが登録されてどれくらいの間、新着とみなされ、サイトの新着情報ブロックに表示されるかを決める期間を指定します（単位：秒）。デフォルトは1,209,600秒、つまり、2週間です。
メニューに表示しない(hidelinksmenu) | いいえ(0) | はい(1)にすると、サイトのメニューに「リンク」メニューを表示しません。
リンクの投稿を管理者が承認する(linksubmission) | はい(1) | はい(1)にすると、ユーザが投稿したリンクは管理者の承認待ちの状態になり、いいえ(0)にすると、即座に登録・表示されます。
メールで通知する(notification) | いいえ(0) | はい(1)にすると、新規リンクが投稿されたときに、管理者にEメールで通知します。
所有者の削除と共に削除する(delete_links) | いいえ(0) | はい(1)にすると、リンク所有者のアカウントが削除されたときに、所有していたすべてのリンクが削除され、いいえ(0)にすると、Rootグループに属するユーザ（たとえば、サイトの管理者）に引き継がれます。
リンク保存後の画面遷移(aftersave) | リンク管理を表示する(list) | リンクを保存した後にどのページへ移動するかを指定します。 リンク先サイトを表示する(item): リンク先サイトへ移動します。 リンク管理を表示する(list): 管理者用のリンクのリストを表示します（デフォルト）。 公開リンクリストを表示する(plugin): 公開されているリンク一覧を表示します。 Homeを表示する(home): サイトのHomeページ（トップページ）を表示します。 管理画面TOPを表示する(admin): 管理画面を表示します。
トップカテゴリのID(root) | site | 最上位のリンクカテゴリに使用するリンクIDを指定します。

## リンクプラグインのインデックスページのレイアウト

リンクプラグインのインデックスページ（トップページ）のレイアウト全般は、上述の「カテゴリの表示カラム数(linkcols)」と「ページあたりのリンク数(linksperpage)」で決定されます。

すべてのリンクを1列に並べたい場合は、この2つに 0 を設定してください。リンクの数が少ない場合は、これが最も合理的です。「ページあたりのリンク数(linksperpage)」だけを 0 にすると、現在のカテゴリがすべて1ページで表示されます。「カテゴリの表示カラム数(linkcols)」だけを 0 に設定すると、複数ページにわたってすべてのリンクが表示されます（カテゴリは表示されません）。

### テンプレートファイル

リンクセクションのレイアウトをさらに変更したい場合は、テンプレートファイルを変更してください。現在ではプラグインのディレクトリ、つまり、

`/path/to/geeklog/plugins/links/templates/`

にあります。

旧バージョン(1.4.0よりも前)のGeeklog用に作成されたテーマを使用している場合は、テーマのディレクトリに "links" ディレクトリがあるかもしれませんが、ここはもはや使用されていないので削除しても差し支えありません。

## 自動タグ

リンクプラグインは、`[link:]`という自動タグを提供します。このタグを使用すると、完全なURLを記述せずに、リンクセクションに表示されているリンクを記事やコメントなどに埋め込むことができます。コロンの後にリンクIDを記述してください。リンクが作成され、元のリンクのタイトルがリンクテキストとして使用されます。別の方法としては、リンクIDの後に半角スペースに続けて独自のリンクテキストを指定することもできます(閉じカッコの前でなければなりません)。

geeklog.netを例に取ると、

- `[link:20030921074903113]` は `<a href="http://www.geeklog.net/links/portal.php/link/20030921074903113">Groklaw</a>` に変換されます。
- `[event:20030921074903113 read everything about the SCO case]` は `<a href="http://www.geeklog.net/links/portal.php/link/20030921074903113">read everything about the SCO case</a>` に変換されます。

リンクのクリック数を数えるために、`[link:]`自動タグは常にGeeklogの `portal.php` 経由のリンクを作成することにご注意ください。