+
+ db["logpath"] = cgi["logpath"]
+ db["logdisplay"] = cgi["logdisplay"]
+
+ if db["logpath"].blank? || db["logdisplay"].blank?
+ params["action"] = ""
+ end
+ when "back"
+
+ # 削除確認画面
+ when "delconfirm"
+ db["logdelindex"] = params["logdelindex"].to_i
+
+ if db["logdelindex"] < 1
+ db["error"] = "<span style='color: #ff0000'>ログファイルの削除パラメタが不正です。</span><br>"
+ params["action"] = ""
+ end
+ # 削除処理
+ when "delexec"
+ if cgi["logdelindex"].to_i < 1
+ params["action"] = ""
+ params["mode"] = "error"
+ db["error"] = "ログファイルの削除中に重大なエラーが発生しました。<br>環境を見直してください。"
+ return
+ else
+ # 記事ファイルを削除します
+ File.delete(XMLPATH + File.basename(db["loglist"].path[db["logdelindex"]]))
+ # ログリストから削除します
+ db["loglist"].path.delete_at(cgi["logdelindex"].to_i)
+ db["loglist"].display.delete_at(cgi["logdelindex"].to_i)
+ db["loglist"].to_xml
+ # 保持している情報を更新する
+ db["loglist"] = LogList.readxml(LISTXMLPATH)
+ db["entry"] = []
+ end
+
+ # 編集画面
+ when "edit"
+ db["logeditindex"] = params["logdelindex"].to_i
+
+ db["logpath"] = db["loglist"].path[db["logeditindex"]]
+ db["logdisplay"] = db["loglist"].display[db["logeditindex"]]
+
+ if db["logeditindex"] == 0
+ db["error"] = "<span style='color: #ff0000'>ログファイルの編集パラメタが不正です。</span><br>"
+ params["action"] = ""
+ end
+ # 編集確認画面
+ when "editconfirm"
+ checkflag = true
+ db["loglist"].path.each_with_index do |val, i|
+ if db["logeditindex"] != i
+ if params["logpath"].to_s == db["loglist"].path[i].to_s
+ checkflag = false
+ end
+ end
+ end
+
+ if checkflag == false
+ params["action"] = "edit"
+ db["error"] = "<span style='color: #ff0000'>同一のファイルが存在します!別の名前を指定してください。</span><br>"
+ else
+ db["loginsertindex"] = params["loginsertindex"].to_i
+
+ db["logpath"] = params["logpath"].to_s
+ db["logdisplay"] = params["logdisplay"].to_s
+ end
+ # 編集実行
+ when "editexec"
+ checkflag = true
+ db["loglist"].path.each_with_index do |val, i|
+ if db["logeditindex"] != i
+ if params["logpath"].to_s == db["loglist"].path[i].to_s
+ checkflag = false
+ end
+ end
+ end
+
+ if checkflag == false
+ params["action"] = ""
+ params["mode"] = "error"
+ db["error"] = "ログファイルの編集中に重大なエラーが発生しました。<br>環境を見直してください。"
+ return
+ else
+ db["loginsertindex"] = params["loginsertindex"].to_i
+
+ db["logpath"] = params["logpath"].to_s
+ db["logdisplay"] = params["logdisplay"].to_s
+
+ # ファイルを移動します
+ if XMLPATH + File.basename(db["loglist"].path[db["logeditindex"]]) != XMLPATH + File.basename(db["logpath"])
+ FileUtils.move(XMLPATH + File.basename(db["loglist"].path[db["logeditindex"]]), XMLPATH + File.basename(db["logpath"]))
+ # ログリストを更新します
+ db["loglist"].path.delete_at(db["logeditindex"])
+ db["loglist"].display.delete_at(db["logeditindex"])
+ db["loglist"].path.insert(db["loginsertindex"] + 1, db["logpath"])
+ db["loglist"].display.insert(db["loginsertindex"] + 1, db["logdisplay"])
+ db["loglist"].to_xml
+ end
+ end
+
+ # 初期表示画面
+ else
+ # 現在編集中のデータを強制的に最上のファイルパスに変更
+ session["filepath"] = db["loglist"].path[0]
+
+ # 前月の時刻を作成します
+ prevmonth = (DateTime.now << 1)
+
+ # 前月の時刻を元に、ディフォルト書式を生成します
+ db["logpath"] = FEEDXMLDIR + prevmonth.strftime("%Y%m") + ".xml"
+ db["logdisplay"] = prevmonth.strftime("%Y年%m月").gsub("年0", "年")