質問箱/2376

カテゴリ
サマリInterWikiNameにメールアドレス
バージョン1.4.3以降
投稿者xpoint?
状態完了
投稿日2004-10-07 (木) 09:23:13

質問

社内ローカルでPukiWikiを3本ほど立てております. で,あるといいなとおもって,いろいろ探してみましたが 見つからなかったので,ここで質問させていただきます. 本来の目的とは違うかもしれませんが.... InterWikiNameにメールアドレスの登録はできないものでしょうか? たとえば,

[hoge@aaa.aaa.jp hoge]mail

といった感じで. 社内では各個人というのはWEBページを持っているわけではなく,メールのみがほとんどなので,このような機能が実現できればと... 今は,暫定的にtrackerでlistbox3を使用してリストに

[[hoge:hoge@aaa.aaa.jp]]

としてリンクしているのですが,何か他にいい方法があれば 教えていただけるとありがたいです.よろしくお願いします.

回答

  • ちょっと違うかもしれませんが、私の理解でInterWiki機能を拡張してみました。 -- teanan 2004-10-07 (木) 10:09:13
    • lib/make_link.phpへのパッチ(740行目付近)
      $interwikinames = array();
      foreach (get_source($interwiki) as $line)
      {
      -	if (preg_match('/\[((?:(?:https?|ftp|news):\/\/|\.\.?\/)[!~*\'();\/?:\@&=+\$,%#\w.-]*)\s([^\]]+)\]\s?([^\s]*)/',$line,$matches))
      +	if (preg_match('/\[((?:(?:https?|ftp|news):\/\/|\.\.?\/|mailto:)[!~*\'();\/?:\@&=+\$,%#\w.-]*)\s([^\]]+)\]\s?([^\s]*)/',$line,$matches))
      	{
      		$interwikinames[$matches[2]] = array($matches[1],$matches[3]);
      	}
    • InterWikiNameへの登録
      [mailto:$1@hogehoge.jp mail] raw
  • 登録後に下記のように指定すると、メールアドレスへのリンクになります。
    [[mail:address]]  // → mailto:address@hogehoge.jp
  • こんな感じでいかがでしょうか? -- teanan 2004-10-07 (木) 10:09:13
  • 早速ありがとうございます.たしかにそのようにしてもできますねぇ...
    できれば,
    • InterWikiNameへの登録
      [mailto:UserName@DomainName 氏名] raw?
      でできるといいのですが.....
      trackerなので,フォーマットつくって,
      [[[氏名]]]
      としてしまえば,リンクできるようにしたいのです. -- xpoint? 2004-10-07 (木) 11:37:04
  • とりあえず.... InterWikiNameではないのですが,$line_rulesを使用して目的は達することができましたが.....
    これだと編集が管理者(設置者)しかできなくなってしまいますねぇ.... やっぱり,InterWikiNameでできれば... -- xpoint? 2004-10-07 (木) 14:17:46
  • Interwikiname 関係ないですね。単に 氏名を書いて簡単にメールアドレスの変換がしたいだけですよね これって。同一のドメインの人が多いからドメイン部を簡単に表記したいなら teanan さんの解はありですけど,InterWikiNameはリンクでないのでxpoint さんが欲しいのは別解法がいるような気がしてます -- merlin 2004-10-07 (木) 14:41:55
    • これって 設定ページに置いてある E-Mailアドレス変換表から mail addlerss への変換 を行うインラインプラグインのが スマートのような気がします。 たとえば &n2m(氏名); って書くと 設定ページのリストからさがして <a href="mailto:hoghoge@domain> 氏名 </a> なんてのを作ってくれるやつ -- merlin 2004-10-07 (木) 14:51:54
    • このような用途に使えるか試していませんが、自作プラグイン/def.inc.phpとか・・・ -- teanan 2004-10-07 (木) 15:06:05
      • それを一発かますのは便利かもしれませんね。 名字氏名って書かないで 名字 氏名とか書く人がいらっしゃいますから.. -- merlin 2004-10-07 (木) 15:13:58
  • ありがとうございます.自作プラグイン/def.inc.phpで実現することができました.
    今の使い方で行くと,trackerでフォーマットが決まっていて,氏名はlistbox3で選択しているので,
    簡単にdefのリスト作って実現できました.
    defの定義では,以下の様にしました.
    :<a href="mailto:MailAddress">氏名</a>|氏名
    trackerでは,
    &def([user_name]);
    これで実現した方が他のところで変換されたくない時都合がいいですね. -- xpoint? 2004-10-07 (木) 15:55:20
  • このような定義で動作するということは、なんか別の意味でやばそうな気が (^^; -- teanan 2004-10-07 (木) 16:10:30
    • あーやっぱり・・・ (^^; -- teanan 2004-10-07 (木) 16:35:36
  • ちょっと問題*1がありますので、下記のようにdefプラグインを修正してから使ったほうが良さそうです。 -- teanan 2004-10-07 (木) 17:01:43
    • プラグインのパッチ当て
      187行目付近
         foreach($temp as $key => $data){
             $temp[$key] = trim($data);
         }
      -  $name = trim($regs[1]);
      +  $name = convert_html(htmlspecialchars(trim($regs[1])));
         $this->defs[DEF_PAGENAME][$name] = new DEF_Definition($name);
    • defへの定義
      :MailAddress@hogehoge.jp|氏名
  • あ,そこまで深く考えてませんでした.....よかったのかな????&worried; パッチあてて使用します.ありがとうございました. -- xpoint? 2004-10-07 (木) 18:40:00
  • 今,変更してみましたが....これだと 氏名によってメールアドレスが置換されますよね. どうも,2重に変換されないようで.....
    :MailAddress@hogehoge.jp|氏名
    で定義するして...
    &def(氏名);
    とすると,メールアドレスがダイレクトに表示.
    [[氏名:&def(氏名)]]
    とすると,表示は
    [[氏名:メールアドレス]]
    となってしまいます.&worried; -- xpoint? 2004-10-07 (木) 18:54:21
  • ああ、すみません考慮不足でした (^^;
    • プラグインのパッチ当て*2
      $name = convert_html(trim($regs[1]));
    • defの定義
      :[[氏名>MailAddress@hogehoge.jp]]|氏名
      これでどうでしょう? -- teanan 2004-10-07 (木) 19:16:51
  • あ!いま,def.ini.phpみてて同じこと思いつきました.これで思ったとおりの動きになりました.ありがとうございます. -- xpoint? 2004-10-07 (木) 19:25:24


*1 いわゆるXSS脆弱性。作者のKentさんには通報しておきました (^^;
*2 htmlspecialcharsはいりませんでした

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-10-07 (木) 19:25:41
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.350 sec.

OSDN