<?php
	// セッション開始
	if(!isset($_SESSION)){ 
		session_start(); 
	}
	// セッションチェックをする
	if (!isset($_SESSION["user_id"]) || !isset($_SESSION["user_name"])) {
		
		// ログイン画面を表示する
		include("../wn_system/index.php");
		
		// 処理を終了する
		die();
	}

//var_dump($_POST);

	// mode送信無し ⇒ 不正な画面遷移
	if (!isset($_POST["mode"]) || $_POST["mode"] == "") {
		
		// ログイン画面を表示する
		include("../wn_system/index.php");
		
		// 処理を終了する
		die();
	}
	
	// 更新の場合はコンテンツを取得する
	if ($_POST["mode"] == "upd") {
		// ファイルを開く
		$html = file_get_contents($_POST["id"] . ".html");
		
		// 正規表現で編集内容を配列で取得する
		preg_match('/<div.*?class\s*=\s*[\"|\']unit(.*?)[\"|\'].*?>(.+?)<\/div><!--\sunit\s-->/s', $html, $matches);
		
		// 該当の部分のみを抽出する
		$contents = $matches[2];
		
		// NEW表示状態の場合
		if ($_POST["new"] == "on" || $_POST["new"] == "1") {
			
			$new_checked = "checked = 'checked'";
		}
		else {
			
			$new_checked = "";
		}
		
		// 優先表示状態の場合
		if ($_POST["primal"] == "on" || $_POST["primal"] == "1") {
			
			$primal_checked = "checked = 'checked'";
		}
		else {
			
			$primal_checked = "";
		}
	}
	// 新規の場合は、コンテンツに空値をセットする
	else if ($_POST["mode"] == "add") {
		
		$_POST["releasedate"] = "";
		$_POST["title"] = "";
		$_POST["status"] = "";
		$_POST["id"] = "";
		$contents = "";
		$new_checked = "";
		$primal_checked = "";
	}
	// 更新モードの場合
	else if ($_POST["mode"] == "edit") {
		
		// 新規追加の場合
		if ($_POST["add_or_upd"] == "add") {
			
			// ファイル名を取得する
			$target_filename = get_new_filename (str_replace("/", "", $_POST["releasedate"]));
			
			// ベースファイルをコピーする
			copy("../wn_system/base/whatsnew_base.html", $target_filename);
			chmod($target_filename, 0777); //パーミッション変更（20220825追記)
		}
		// 更新の場合
		else {
			
			// ファイル名を取得する
			$target_filename = $_POST["id"] . ".html";
		}
		
		// NEWがON（選択状態）の場合
		if (isset($_POST["new"]) and ($_POST["new"] == "on" || $_POST["new"] == "1")) {
			
			// NEWを追加文字列に代入する
			$add_new = "<span class='new'>new</span>";
		}
		// NEWがONではない（非選択状態）の場合
		else {
			
			// 追加文字列に空値を代入する
			$add_new = "";
		}
		
		// ファイル内容を読み出す
		$moto_kiji = file_get_contents ("../wn_system/base/whatsnew_base.html");
		
		$new_kiji = str_replace("TITLE", $_POST["title"] . $add_new, $moto_kiji);
		$new_kiji = str_replace("RELEASEDATE", $_POST["releasedate"], $new_kiji);
		$new_kiji = str_replace('<div class="unit">CONTENT</div>', '<div class="unit">' . $_POST["contents"] . '</div>', $new_kiji);
		
		// ファイル上書き
		$a = fopen($target_filename, "w");
		@fwrite($a, $new_kiji);
		fclose($a);
		
		$_POST["id"] = str_replace(".html", "", $target_filename);
		$contents = $_POST["contents"];
		
		// NEW表示状態の場合
		if (isset($_POST["new"]) && ($_POST["new"] == "on" || $_POST["new"] == "1")) {
			
			$new_checked = "checked = 'checked'";
		}
		else {
			
			$new_checked = "";
		}
		
		// 優先表示状態の場合
		if (isset($_POST["primal"]) && ($_POST["primal"] == "on" || $_POST["primal"] == "1")) {
			
			$primal_checked = "checked = 'checked'";
		}
		else {
			
			$primal_checked = "";
		}
		
		// 新規追加の場合
		if ($_POST["add_or_upd"] == "add") {
			
			$str_add_data_csv = $_POST["id"];
			$str_add_data_csv .= "," . str_replace("/", "",$_POST["releasedate"]);
			$str_add_data_csv .= ',"' . $_POST["title"] . '"';
			
			if (isset($_POST["status"]) && $_POST["status"] == "released") {
				$str_add_data_csv .= ",1";
			}
			else {
				$str_add_data_csv .= ",0";
			}
			$str_add_data_csv .= "," . date('Ymd');
			
			if (isset($_POST["new"]) && ($_POST["new"] == "on" || $_POST["new"] == "1")) {
				$str_add_data_csv .= ",1";
			}
			else {
				$str_add_data_csv .= ",0";
			}
			if (isset($_POST["primal"]) && ($_POST["primal"] == "on" || $_POST["primal"] == "1")) {
				$str_add_data_csv .= ",1";
			}
			else {
				$str_add_data_csv .= ",0";
			}
			$str_add_data_csv .= "\n";
			
			// data.csvに追記
			$a = fopen("../wn_system/data/datas.csv", "a");
			@fwrite($a, $str_add_data_csv);
			fclose($a);
			
			$_POST["mode"] = "upd";
		}
		// 更新の場合
		else {
			
			$tmp_str = "";
			
			// データCSVを読み込む
			$fp = fopen("../wn_system/data/datas.csv", 'r');
			
			while( ! feof( $fp ) ){
				
				$datas = explode(',', fgets( $fp));
				
				// 空行以外で該当のIDと合致するもの
				if(count($datas) > 1 && $datas[0] != "ID" && $datas[0] == $_POST["id"]){
					
					$tmp_str .= $_POST["id"];
					$tmp_str .= "," . str_replace("/", "",$_POST["releasedate"]);
					$tmp_str .= ',"' . $_POST["title"] . '"';
					
					if (isset($_POST["status"]) && $_POST["status"] == "released") {
						$tmp_str .= ",1";
					}
					else {
						$tmp_str .= ",0";
					}
					$tmp_str .= "," . date('Ymd');
					
					if (isset($_POST["new"]) && ($_POST["new"] == "on" || $_POST["new"] == "1")) {
						$tmp_str .= ",1";
					}
					else {
						$tmp_str .= ",0";
					}
					if (isset($_POST["primal"]) && ($_POST["primal"] == "on" || $_POST["primal"] == "1")) {
						$tmp_str .= ",1";
					}
					else {
						$tmp_str .= ",0";
					}
					
					$tmp_str .= "\n";
				}
				// 空行以外
				else if (count($datas) > 1) {
					$tmp_str .= $datas[0];
					$tmp_str .= "," . $datas[1];
					$tmp_str .= ',' . $datas[2];
					$tmp_str .= "," . $datas[3];
					$tmp_str .= "," . $datas[4];
					$tmp_str .= "," . $datas[5];
					$tmp_str .= "," . $datas[6];
				}
			}
			fclose($fp);
			
			$aaa = fopen("../wn_system/data/datas.csv", "w");
			@fwrite($aaa, $tmp_str);
			fclose($aaa);
		}
		
		
		$_POST["id"] = str_replace(".html", "", $target_filename);
		$contents = $_POST["contents"];
		
		// NEW表示状態の場合
		if (isset($_POST["new"]) && ($_POST["new"] == "on" || $_POST["new"] == "1")) {
			
			$new_checked = "checked = 'checked'";
		}
		else {
			
			$new_checked = "";
		}
		
		// 優先表示状態の場合
		if (isset($_POST["primal"]) && ($_POST["primal"] == "on" || $_POST["primal"] == "1")) {
			
			$primal_checked = "checked = 'checked'";
		}
		else {
			
			$primal_checked = "";
		}
	}
?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<meta name="robots" content="noindex,nofollow" />
	<link rel="stylesheet" href="../wn_system/css/style.css">
	<link rel="stylesheet" href="../wn_system/js/jquery-ui.min.css">
	<title>北星学園大学 文学部 心理・応用コミュニケーション学科お知らせ管理画面</title>
	<link rel="stylesheet" href="../wn_system/Trumbowyg-master/dist/ui/trumbowyg.css">
</head>
<body>
	<script src="../wn_system/js/jquery-3.3.1.min.js"></script>
	<script src="../wn_system/js/jquery-ui.min.js"></script>
	<script src="../wn_system/js/datepicker-ja.js"></script>
	<script src="../wn_system/js/system_edit.js"></script>
	<script src="../wn_system/Trumbowyg-master/dist/trumbowyg.js"></script>
	<script src="../wn_system/Trumbowyg-master/dist/langs/ja.min.js"></script>
	<script src="../wn_system/Trumbowyg-master/dist/plugins/upload/trumbowyg.upload.js"></script>
<form name="form1">
<textarea style="display:none;" name="oldContents" value="1" cols="50" rows=5 maxlength="10"><?php echo($contents); ?></textarea>
</form>
	<script>
	const textarea1 = document.form1.oldContents;

            $(document).on('keydown', function (e) {
                if (e.which === 27) {
                    console.log('ESCAPE');
                }
            });
            
            $('#editor').trumbowyg({
                lang:'ja'
            })
            .on('dblclick', function(){
                $(this).trumbowyg();
            })
            .on('tbwinit tbwfocus tbwblur tbwchange tbwresize tbwpaste tbwopenfullscreen tbwclosefullscreen tbwclose', function(e){console.log(e.type);
            });
            

            $('#enable-disabled-textarea').click(function () {
                $('#disabled-textarea').trumbowyg('enable');
            });
            $('#disable-disabled-textarea').click(function () {
                $('#disabled-textarea').trumbowyg('disable');
            });


            /** Default editor configuration **/
            $('#simple-editor')
            .trumbowyg({
                btns: ['strong', 'em', 'del']
            })
            .on('dblclick', function(){
                $(this).trumbowyg();
            });


            /* Add imagur parameters to upload plugin */
            var uploadOptions = {
                serverPath: 'https://api.imgur.com/3/image',
                fileFieldName: 'image',
                headers: {'Authorization': 'Client-ID 9e57cb1c4791cea'},
                urlPropertyName: 'data.link',
                imageWidthModalEdit: true
            };

            /** Full flat button pane **/
            $('#flat-buttonpane')
            .trumbowyg({
                btns: [
                    ['viewHTML'],
                    ['p', 'blockquote', 'h1', 'h2', 'h3', 'h4'],
                    ['strong', 'em', 'underline', 'del'],
                    ['superscript', 'subscript'],
                    ['createLink', 'unlink'],
                    ['insertImage'],
                    ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
                    ['unorderedList', 'orderedList'],
                    ['horizontalRule'],
                    ['removeformat'],

                    ['upload', 'base64', 'noembed'],
                    ['ruby'],
                    ['foreColor', 'backColor'],
                    ['preformatted'],
                    ['template'],
                    ['fullscreen', 'close']
                ],
                plugins: {
                    upload: uploadOptions,
                    templates: [
                        {
                            name: 'Template 1',
                            html: '<p>I am a template!</p>'
                        },
                        {
                            name: 'Template 2',
                            html: '<p>I am a different template!</p>'
                        }
                    ]
                }
            });


            /********************************************************
             * Customized button pane + buttons groups + dropdowns
             * Use upload and base64 plugins
             *******************************************************/

            /* Add new words for customs btnsDef just below */
            $.extend(true, $.trumbowyg.langs, {
                ja: {
                    align: '並び',
                    image: '画像'
                }
            });
            var customizedButtonPaneTbwOptions = {
                lang: 'ja',
                fixedBtnPane: true,
                btnsGrps: {
                    test: ['strong', 'em'] // Custom nammed group
                },
                btnsDef: {
                    // Customizables dropdowns
                    align: {
                        dropdown: ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
                        ico: 'justifyLeft'
                    },
                    image: {
                        dropdown: ['insertImage', 'upload', 'base64', 'noembed'],
                        ico: 'insertImage'
                    }
                },
                btns: [
                    ['viewHTML'],
                    ['formatting'],
                    ['align'],
                    ['image'],
                    ['foreColor', 'backColor'],
                    ['preformatted'],
                    ['fullscreen', 'close']
                ],
                plugins: {
                    upload: uploadOptions
                }
            };
            $('#customized-buttonpane')
            .trumbowyg(customizedButtonPaneTbwOptions)
            .on('dblclick', function(){
                $(this).trumbowyg(customizedButtonPaneTbwOptions);
            });



            /** Simple customization with current options **/
            var formTbwOptions = {
                lang: 'ja',
                mobile: true,
                fixedBtnPane: true,
                fixedFullWidth: true,
                semantic: true,
                resetCss: true,
                removeformatPasted: true,
                tagsToRemove: ['script', 'style'],
                imageWidthModalEdit: true,

                autogrow: true,
                autogrowOnEnter: true,

                btnsDef: {
                    strong: {
                        fn: 'bold',
                        key: 'G'
                    }
                }
            };
            $('#form-content')
            .trumbowyg(formTbwOptions);



            /** Dynamic Iframe **/

            // Create the iframe element.
            var $iframe = $('<iframe/>').css({
                width: '900px',
                height: 800,
                border: 0
            });
            $('#dynamic-iframe-example').append($iframe);
            
            // Get the document of the iframe.
            var $editor = $('<div>', {
                    id: 'editor'
                }).html(
                      textarea1.innerText);
            
            setTimeout(function(){
                var contextIframe = $iframe.contents()[0];
                // Set the style on the head of the iframe.
                $('head', contextIframe).append($('<link>', {
                    href: '../wn_system/Trumbowyg-master/dist/ui/trumbowyg.css',
                    rel: 'stylesheet'
                }));
                // Set the content to be editable.
                $('body', contextIframe).append($editor);

                $editor
                .trumbowyg({
                	lang:'ja',
		            btns: [['viewHTML'],['undo', 'redo'],['strong', 'em', 'underline', 'strikethrough'], 'horizontalRule', 'link', 'upload', 'insertImage', ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'], ['unorderedList', 'orderedList']],
		            autogrow: true,
		            imageWidthModalEdit: true,
		            plugins : {
		            	upload:{
		            		serverPath:'upload.php',
		            		urlPropertyName:'url',
		            	}
		            }
                })
                .on('dblclick', function(){
                    $(this).trumbowyg();
                });
            }, 500);


            /** Editor with placeholder **/
            $('#placeholder-editor')
            .trumbowyg({
              autogrowOnEnter: true,
            })
            .on('dblclick', function(){
                $(this).trumbowyg();
            })
            .on('tbwfocus', function(){
                console.log('focus event fired');
            })
            .on('tbwblur', function(){
                console.log('blur event fired');
            });
            // フォーム送信時
			$('.submit-btn').on('click', function () {
			  // 日本語入力時のバグ対策
			  $('.trumbowyg-viewHTML-button').trigger('mousedown');
			});
			
	</script>
	<div class="cont edit_ttl">
	<form action="edit.php" method="POST" name="editWhatsnew" />
		<!--header start-->
		<div style="float:right;margin:10px;width:200px;">
			<?php echo($_SESSION["user_name"]); ?>さん　<a href="../wn_system/logoff.php">ログアウト</a>
	    </div>
			<h1>お知らせ編集画面</h1>
	    <br clear="both" />
		<!--header end-->
		<!--main start-->
		<div class="foot_btn">
<?php
			// 公開ステータスが公開中の場合
			if (isset($_POST["status"]) && ($_POST["status"] == 1 || $_POST["status"] == "released")) {
				echo ('<label><input type="radio" name="status" value="unrelease" />公開しない</label>&nbsp;<label><input type="radio" name="status" value="released" checked="checked" />公開する</label><br>');
			}
			else {
				echo('<label><input type="radio" name="status" value="unrelease" checked="checked" />公開しない</label>&nbsp;<label><input type="radio" name="status" value="released" />公開する</label><br>');
			}
			
			if ($_POST["mode"] == "add") {
				echo('<input type="button" onClick="chkBeforeSubmit()" value="新規追加" />');
			}
			else {
				echo('<input type="button" onClick="chkBeforeSubmit()" value="更新" />');
			}
?>
				<input type="hidden" name="add_or_upd" value="<?php echo($_POST["mode"]); ?>" />
				<input type="hidden" name="mode" value="edit" />
				<input type="hidden" name="id" value="<?php echo($_POST["id"]); ?>" />
				<input type="button" onClick="javascript:clkPreviewBtn();" value="プレビュー" />
				<input type="button" onClick="javascript:clkBackBtn();" value="戻る" />
		</div>
		<dl style="width:500px;" id="dl_edit">
			<dt>記事タイトル</dt>
			<dd><input id="edit_title" type="text" name="title" value="<?php echo($_POST["title"]); ?>" style="width:330px;" /></dd>
			<dt>公開日付</dt>
			<dd>
				<input id="edit_releasedate" type="text" name="releasedate" style="width:100px;" value="<?php echo($_POST["releasedate"]); ?>" readonly />
				　　<label for="new">NEW</label>　
				<input type="checkbox" id="edit_new" name="new" <?php echo($new_checked); ?> />
				　　<label for="primal">優先</label>　
				<input type="checkbox" id="edit_primal" name="primal" <?php echo($primal_checked); ?> />
			</dd>
		</dl>
		<br clear="both" />
		<!--main end-->
	</div>
	</form>
</body>
</html>
<?php
	function get_new_filename ($releasedate) {
		
		$filename_base = str_replace ( "/", "", $releasedate);
		
		// ファイル存在確認
		if (file_exists($filename_base . ".html")) {
			
			$add_str = "a";
			
			while (file_exists($filename_base . $add_str . ".html")) {
				++$add_str;
			}
			
			return $filename_base . $add_str . ".html";
		}
		else {
			return $filename_base . ".html";
		}
	}
?>