質問箱/2282

カテゴリ
サマリ編集認証時が可能で、未認証の時に文字列を出したい。
バージョン1.4.3
投稿者toba?
状態完了
投稿日2004-08-02 (MON) 23:06:29

質問

編集認証フラグ($edit_auth)が1で、認証されていない時だけ特定の文字列を表示させることは可能ですか?

個人的にはフッタの近くに、 認証されていない時には「ページの新規・編集にはパスワードが必要です。パスワードは管理者にお問合せください。」と小さく注意文を表示させたいのです。

pukiwiki.skin.ja.phpに何か仕掛けをすればいいのかとも思いましたが、認証の時にどういう動きをしているのかがわかりませんでした。 どうぞお教えください。

回答

  • 名無しさん 2004-08-02 (MON) 23:38:57

    フッタに表示、編集権限の有無、の2点とすると、pukiwiki.skin.ja.phpに

     <div id="footer">
    +<?php if ( !edit_auth($page,TRUE,FALSE)) { ?>
    +<p>ページの新規・編集にはパスワードが必要です。パスワードは管理者にお問合せください。</p>
    +<?php } ?>
      Modified by <a href="<?php echo $modifierlink ?>"><?php echo $modifie
    という辺りでは。
  • toba? 2004-08-03 (TUE) 08:47:58

    無事、名無しさんの方法で実現させることが出来ました。ありがとうございました。



認証時と非認証時でツールバーを切替えたい

  • バージョン 1.4.5_1
  • 投稿者 shige
  • 投稿日 2005-03-04 (金) 21:42:09

質問

認証時と非認証時でツールバーを切替えたいと考えています。

  • 認証時
    • 新規、編集など編集関連の項目を表示する。
  • 非認証時
    • 新規、編集など編集関連の項目を非表示する。 といった具合です。

1.4.4を使用していた時は、$edit_authフラグ(続・質問箱/282を参考)をpukiwiki.skin.ja.phpに作り込み実現していたのですが、1.4.5_1に移行したところ

Headers already sent at /home/User/User/www/lib/html.php line 425.

とエラーが出てしまいました。どのようにしたら切替が可能でしょうか?

回答

  • こんにちは :) PukiWiki 1.4.5_1 が出力を開始する以前 (スキンファイルの、pkwk_common_headers()より前) にデータを出力しているとこのエラーが表示されるのですが、この状態でエラーを出さずに放っておくと、PukiWikiが出力するHTTPヘッダがブラウザに正しく渡されなくなりますから、こうならないように修正して下さい。すなわち [1] pkwk_common_headers() より前にコードを追加する場合は、専用の変数に値を収めるだけにする(出力しない)。 [2] pkwk_common_headers() からpkwk_output_dtd() が終了するまでの部分はいじらない [3] それ以降の部分で、先の変数の中身を出力するなり、別途PHPコードを埋め込んで下さい -- henoheno 2005-03-05 (土) 10:47:26
  • 改造の意図についてですが、スキンから「編集」の項目を削除しても依然として編集行為は可能ですのでご注意ください。それでも良いというのなら、スキンの中にある変数 $rw を改造するだけでご希望の状態になります(PKWK_READONLY にからんで、その部分は実装済みです) これで「編集」などのリンクは表示されなくなりますから、残りを調整するだけで良くなると思います。 -- henoheno 2005-03-05 (土) 10:52:37
  • 早速のご回答有り難う御座います。変数 $rw を改造して、PKWK_READONLY=1時に編集項目を非表示にすることまではできました。ここでindex.php?cmd=editで編集を使用とする(認証状態にする)と「Error message : PKWK_READONLY prohibits editing」と出力されてしまいます。ここで編集用のメニューが出せればGoodなんですが。なに良い方法はありますでしょうか? -- shige 2005-03-05 (土) 22:00:46
    • こんにちは。ご希望の状態は PKWK_READONLY に 1 をセットすることではなくて、auth の状態に合わせて $rw の値を変更することではないですか? -- henoheno 2005-03-05 (土) 22:39:10
  • pukiwiki.ini.phpを以下のように編集したら解決いたしました。henohenoさん、何度もアドバイスありがとうございます。
35: //$rw    = ! PKWK_READONLY;
36: if ( !edit_auth($page,TRUE,FALSE)) {$rw=0;}else{$rw=1;}

PHPの文法が分からないのでこの程度ですみません。 -- shige 2005-03-05 (土) 23:23:09

  • うーむ、上手くいったと思ったのですがindex.phpにアクセスするだけで認証ダイアログが表示されるようになってしまいました。この方法ではまずいでしょうか。 -- shige 2005-03-06 (日) 00:05:48
    • でも認証ダイアログがでなかったらいつどこで認証するつもりなんですか? -- 2005-03-06 (日) 00:23:33
  • 1.4.4の時は、index.phpにアクセスした時はダイアログは出さず(出力されない)で、index.php?cmd=editや認証が必要なページにアクセスした場合に認証ダイアログを出すように上段のアドバイスを元に改造して実現できていました。要するに一般訪問者モード(非認証)と管理者モード(認証)を作りたいのです(この考え方が間違っているのかもしれませんが・・・・。)。ちなみにPKWK_READONLYというのは編集する度にpukiwiki.ini.phpのフラグをたて直さないと駄目なんですよね? -- shige 2005-03-06 (日) 00:37:26
    • PKWK_READONLY の機能や意図については dev:BugTrack/744 を参照して下さい。 -- henoheno 2005-03-06 (日) 09:48:43
    • 1.4.4時代に具体的にどう改造されていたかがわからないとフォローが難しそうですね (^^; -- henoheno 2005-03-06 (日) 09:52:48


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-03-10 (木) 22:33:48
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.289 sec.

OSDN