• ベストアンサー

yybbsの専用アイコン

こんにちは。 KENT-WEBさんのyybbs(アイコンあり)を使っているのですが、「管理人専用アイコン」機能がありますよね? あれを「Aさん専用」「Bさん専用」…というように複数設置したいのですが、perlのソースをどのように書き換えたらよろしいのでしょうか? 既にこのような機能を実践されている方、回答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jo_
  • ベストアンサー率37% (6/16)
回答No.2

ホントに専用にしたいんですね・・・^^; その場合は、ちょっと面倒くさくなるんですが、、、 とりあえず管理者用の認証処理をそのまま真似てしまってはどうでしょうか? いろいろ組み込んでみたら行数が分からなくなってしまったので、 大体の行数で位置を書いてますが、コトバを検索しながら実際の位置を捜してください。。。 まずは77行目付近。 # 管理者用マスタパスワード (英数字で8文字以内) $pass = '0123'; $a_pass = '1111'; $b_pass = '2222'; Aさん用とBさん用のパスワードを定義しましょう。 今は適当に数字を書いただけなので、ちゃんとしたパスワードを設定してあげてください。 (あとでこのパスワードをAさんとBさんに連絡してくださいね^^;) 次に、91行目付近。 # 管理者専用アイコン機能 (0=no 1=yes) # → 【使い方】記事投稿時に「管理者アイコン」を選択し、パスワードに # 「管理用パスワード」を入力して下さい。 $my_icon = 1; $a_icon = 1; $b_icon = 1; 管理者専用アイコン機能をONにするのは当然ですが、 更にAさん用とBさん用にもこの機能を使うことができるようにフラグを追加してあげてください。 更にその下、97行目付近。 # 管理者専用アイコンの「ファイル名」を指定 $my_gif = 'admin.gif'; $a_gif = 'a_san.gif'; $b_gif = 'b_san.gif'; Aさん用とBさん用のGIFファイルをここで定義してあげましょう。(ファイル名は実際に使うもので) 次、記事表示部です。 ここからはソースの中をいじることになるので注意してください。 360行目付近。 750行目付近。 1400行目付近。 # 管理者アイコンを配列に付加 合計3ヶ所に"配列にアイコンを追加させる"という処理があります。   if ($my_icon) {     push(@icon1,"$my_gif");     push(@icon2,"管理者用");   } (管理者用アイコンより上に表示された方が自然だと思うので、) このif文の上へ、   if ($a_icon) {     push(@icon1,"$a_gif");     push(@icon2,"Aさん専用");   }   if ($b_icon) {     push(@icon1,"$b_gif");     push(@icon2,"Bさん専用");   } このif文2つを入れます。 3ヶ所とも同じ事をやってください。 そして、1450行目付近。   # 管理アイコンのチェック   if ($my_icon && $in{'icon'} eq $my_gif) {     if ($in{'pwd'} ne $pass) { &error("管理用アイコンは管理者専用です"); }   } というのがあるので、この下へ   if ($a_icon && $in{'icon'} eq $a_gif) {     if ($in{'pwd'} ne $a_pass) { &error("このアイコンはAさん専用です"); }   }   if ($b_icon && $in{'icon'} eq $b_gif) {     if ($in{'pwd'} ne $b_pass) { &error("このアイコンはBさん専用です"); }   } と追加してください。 これはチェック処理なので管理者チェックの上でも下でもどちらでも構いません。 これで実現できるかと思います。(動作確認済みです) あと、ソースは一部全角スペースを使って書いてあるので(構成が崩れないように) コピペする時は全角スペース1つを半角スペース2つに変換してください。

FujisakiKeiko
質問者

お礼

ありがとうございます! 早速試してみますね!

その他の回答 (2)

  • jo_
  • ベストアンサー率37% (6/16)
回答No.3

すみません、下のコメントに書き忘れたんですが・・・。 下に書いた例はAさんとBさん、2人分だけなので、もっとたくさん追加したい場合は、同様にCさん、Dさん・・・と後ろへくっ付けてください。 逆にAさんだけならば、Bさんに関する処理は全部取っちゃってください。 で、(念のためですが・・・)表示される部分、"Aさん"とか"Bさん"の部分ですが、使う方の名前に置き換えてくださいね^^;

  • jo_
  • ベストアンサー率37% (6/16)
回答No.1

こんにちは。 以前このBBSを使っていましたのでその時にやったことを・・・。 85行目から89行目、以下のようになっているかと思います。 # アイコンを定義(上下は必ずペアで) @icon1 = ('bear.gif','cat.gif','cow.gif','dog.gif','fox.gif','hituji.gif', 'monkey.gif','zou.gif','mouse.gif','panda.gif','pig.gif','usagi.gif'); @icon2 = ('くま','ねこ','うし','いぬ','きつね','ひつじ', 'さる','ぞう','ねずみ','パンダ','ぶた','うさぎ'); この『@icon1』というところが、実際のファイル名、 で、『@icon2』のところが表示される名称になってます。 「Aさん専用」と表示させるには、『@icon2』の方へ付け加えてあげればOKです。 そしてAさん用のアイコンファイル(多分".gif"ですよね)を『@icon1』の方へ付け加えてあげましょう。 なので、そのまま後ろへ付け加える形で書くと・・・。 # アイコンを定義(上下は必ずペアで) @icon1 = ('bear.gif','cat.gif','cow.gif','dog.gif','fox.gif','hituji.gif', 'monkey.gif','zou.gif','mouse.gif','panda.gif','pig.gif','usagi.gif','a_san.gif','b_san.gif'); @icon2 = ('くま','ねこ','うし','いぬ','きつね','ひつじ', 'さる','ぞう','ねずみ','パンダ','ぶた','うさぎ','Aさん専用','Bさん専用'); という感じになります。 もちろん、ファイル名の方は今、適当に付けた名前なので 自分が使用する名前に変えてあげてください^^ あと、『@icon1』と『@icon2』はちゃんと対応がとれるように並べましょう。 でないと、ちゃんと表示されなくなってしまいます。 こんなんで、ご理解いただけたでしょうか??^^;

FujisakiKeiko
質問者

補足

それですと、「Aさん」でなくても「Aさん専用~」を使えてしまいますよね。 管理人専用アイコンは、書き込み時のパスワードが「管理用パスワード」で、かつアイコンリストから「管理者用」を選んだときにのみ使えるじゃないですか。 あの機能を複数アイコンに対して使えないかな…と思ったのです。 いろいろ考えたのですが、なにぶん勉強不足で全然分かりませんので、助けてください~(+_+)

関連するQ&A

専門家に質問してみよう