カテゴリ | |
サマリ | 編集認証時が可能で、未認証の時に文字列を出したい。 |
バージョン | 1.4.3 |
投稿者 | toba |
状態 | 完了 |
投稿日 | |
編集認証フラグ($edit_auth)が1で、認証されていない時だけ特定の文字列を表示させることは可能ですか?
個人的にはフッタの近くに、
認証されていない時には「ページの新規・編集にはパスワードが必要です。パスワードは管理者にお問合せください。」と小さく注意文を表示させたいのです。
pukiwiki.skin.ja.phpに何か仕掛けをすればいいのかとも思いましたが、認証の時にどういう動きをしているのかがわかりませんでした。
どうぞお教えください。
- 名無しさん
フッタに表示、編集権限の有無、の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
無事、名無しさんの方法で実現させることが出来ました。ありがとうございました。
認証時と非認証時でツールバーを切替えたい†
- バージョン 1.4.5_1
- 投稿者 shige
- 投稿日
認証時と非認証時でツールバーを切替えたいと考えています。
- 認証時
- 非認証時
- 新規、編集など編集関連の項目を非表示する。
といった具合です。
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
- 改造の意図についてですが、スキンから「編集」の項目を削除しても依然として編集行為は可能ですのでご注意ください。それでも良いというのなら、スキンの中にある変数 $rw を改造するだけでご希望の状態になります(PKWK_READONLY にからんで、その部分は実装済みです) これで「編集」などのリンクは表示されなくなりますから、残りを調整するだけで良くなると思います。 -- henoheno
- 早速のご回答有り難う御座います。変数 $rw を改造して、PKWK_READONLY=1時に編集項目を非表示にすることまではできました。ここでindex.php?cmd=editで編集を使用とする(認証状態にする)と「Error message : PKWK_READONLY prohibits editing」と出力されてしまいます。ここで編集用のメニューが出せればGoodなんですが。なに良い方法はありますでしょうか? -- shige
- こんにちは。ご希望の状態は PKWK_READONLY に 1 をセットすることではなくて、auth の状態に合わせて $rw の値を変更することではないですか? -- henoheno
- pukiwiki.ini.phpを以下のように編集したら解決いたしました。henohenoさん、何度もアドバイスありがとうございます。
35: //$rw = ! PKWK_READONLY;
36: if ( !edit_auth($page,TRUE,FALSE)) {$rw=0;}else{$rw=1;}
PHPの文法が分からないのでこの程度ですみません。 -- shige
- うーむ、上手くいったと思ったのですがindex.phpにアクセスするだけで認証ダイアログが表示されるようになってしまいました。この方法ではまずいでしょうか。 -- shige
- でも認証ダイアログがでなかったらいつどこで認証するつもりなんですか? --
- 1.4.4の時は、index.phpにアクセスした時はダイアログは出さず(出力されない)で、index.php?cmd=editや認証が必要なページにアクセスした場合に認証ダイアログを出すように上段のアドバイスを元に改造して実現できていました。要するに一般訪問者モード(非認証)と管理者モード(認証)を作りたいのです(この考え方が間違っているのかもしれませんが・・・・。)。ちなみにPKWK_READONLYというのは編集する度にpukiwiki.ini.phpのフラグをたて直さないと駄目なんですよね? -- shige