TOP ▲
itcore TOP
> TIPS
> tool_memo.php
タグ:php tool ソース tool メモ情報 | itcore 2021年
<?php
//--------------------------------------------------------------
// memo.php memo情報
//--------------------------------------------------------------
include_once "../.env.php"; // 環境依存インクルード
include_once "inc_common.php"; // 共通インクルード
list($datetime1, $datetime2, $self, $menu) = uInit(); // 初期設定
$title = "memo情報";
$link = uDbConnect(
$env_db_host,
$env_db_user,
$env_db_pass,
$env_db_db,
$env_db_port
); // DB接続
//--------------------
// ヘッダ
//--------------------
echo <<<EOT
<html><head>
<link rel="icon" type="image/svg+xml" href="icons/wrench.svg">
<title>$title</title>
</head>
<body style="font-family: monospace, monospace; word-break: break-all;">
<style>
table, th, td {
border: solid 1px gray;
border-spacing: 0;
}
th {
background-color: skyblue;
}
td {
padding: 5px;
}
textarea {
width: 100%;
}
.u-text {
width: 100%;
}
</style>
<h1>$title $datetime1</h1>
$menu
<hr>
<script>
function uJsClear() {
document.form1.txt_tantou.value = "";
document.form1.chk_end.checked = false;
}
</script>
<form name=form1 method=post action=$self>
EOT;
//--------------------
// ツール
//--------------------
// 固定情報
$parm1_desc = "分類";
$update_dt_desc = "最終更新日時";
// 処理
// 制御系データ
$mode = uForm("mode");
$id = uForm("id");
$fm = uForm("fm");
$type = "memo"; // メモ情報
$html_debug = "";
// 画面から入力があるデータはエスケープする。
$object = uFormEscape("object");
$name = uFormEscape("name");
$description = uFormEscape("description");
$memo = uFormEscape("memo");
$parm1 = uFormEscape("parm1");
$parm2 = uFormEscape("parm2");
$parm3 = uFormEscape("parm3");
$list1 = uFormEscape("list1");
$list2 = uFormEscape("list2");
$list3 = uFormEscape("list3");
// 検索条件■セッション変数に保存
$memo_a_chk_parm1 = uFormKensaku("memo_a_chk_parm1", []);
$txt_word = uFormKensaku("txt_word");
// 共通的な変数の初期化
$html_td = $html_submit = $html_hidden = "";
$no = 0;
//--------------------
// 削除■実行
//--------------------
if ("" != uForm("sub_delete_go")) {
$sql = "delete from t01_object where id=$id";
$result = u_mysqli_query($sql);
}
//--------------------
// 削除■確認
//--------------------
if ("delete" == $mode) {
$sql = "select * from t01_object where id=$id";
$o1 = uQueryOne($sql);
echo <<<EOT
<input type=hidden name=id value="$id">
オブジェクト削除
<table border=1>
<tr><th>オブジェクト<td>$o1->object
<tr><th>名前<td>$o1->name
<tr><th>説明<td>$o1->description
</table>
<input type=submit name=sub_delete_go value="削除">
<input type=button value="キャンセル" onClick="history.go(-1);">
EOT;
}
//--------------------
// 新規登録 更新
//--------------------
if ("" != uForm("sub_update_go") || "" != uForm("sub_new_go")) {
$sql = "t01_object set type='$type', object='$object', name='$name', description='$description'";
$sql .= ", parm1='$parm1', parm2='$parm2', parm3='$parm3'";
$sql .= ", list1='$list1', list2='$list2', list3='$list3', memo='$memo'";
if ("" != uForm("sub_new_go")) {
$sql = "insert into $sql";
} elseif ("" != uForm("sub_update_go")) {
$sql = "update $sql where id=$id";
}
$result = u_mysqli_query($sql);
$mode = $fm;
}
//--------------------
// TOP
//--------------------
if ("" == $mode) {
$sql = "select distinct parm1 from t01_object where type='$type' order by parm1";
$result = u_mysqli_query($sql);
$no = 0;
$html_chk_parm1 = "";
while ($o1 = mysqli_fetch_object($result)) {
$checked = "";
if (false !== array_search($o1->parm1, $memo_a_chk_parm1)) {
$checked = "checked";
}
$parm1_input_desc = $o1->parm1;
//if ("" == $o1->parm1) $parm1_input_desc = "入力なし";
$html_chk_parm1 .= "<input class=memo_a_chk_parm1 type=checkbox name=memo_a_chk_parm1[] value='$o1->parm1' $checked>$parm1_input_desc\n";
}
$sql = "select * from t01_object where type='$type'";
$s1 = "";
foreach ($memo_a_chk_parm1 as $idx => $chk_parm1) {
if ($s1 != "") {
$s1 .= " or ";
}
$s1 .= "parm1='$chk_parm1'";
}
if ("" != $s1) {
$sql .= " and ($s1)";
}
if ("" != $txt_word) {
$sql .= "and (name like'%$txt_word%' or memo like'%$txt_word%')";
}
$sql .= "order by update_dt DESC";
$result = u_mysqli_query($sql);
$no = 0;
while ($o1 = mysqli_fetch_object($result)) {
$no++;
$html_td .= "<tr><td align=right>$no<td>$o1->update_dt";
//$html_td .= "<td>".uLink($o1->list1, 20);
$html_td .= "<td>$o1->object";
$html_td .= "<td>$o1->parm1";
$html_td .= "<td>$o1->name";
$html_td .= "<td><textarea rows=5 cols=45 readonly>$o1->memo</textarea>";
$html_td .= "<td><a href=$self?id=$o1->id&mode=detail>詳細</a>";
$html_td .= " <a href=$self?mode=update&id=$o1->id>修正</a>";
//$html_td .= "<td>$o1->parm1";
//$html_td .= "<td>".uFormEscape($parm1);
}
echo <<<EOT
■メモ情報一覧■<a href=$self?mode=new>新規追加</a><br>
<table>
ソート:{$update_dt_desc}
<tr><th>分類<td>$html_chk_parm1
<th>フリーワード(名前、メモ情報)<td><input type=text name=txt_word value="$txt_word">
<td><input type=submit name=sub_kensaku value="検索実行">
<INPUT TYPE=button VALUE="クリア" onClick="uJsClear()">
</table>
<table>
<tr><th>No<th>$update_dt_desc<th>オブジェクト<th>$parm1_desc<th>名前<th>メモ情報<th>操作
$html_td
</table>
EOT;
}
//--------------------
// 詳細
//--------------------
if ("detail" == $mode || "update" == $mode || "new" == $mode) {
if ("new" != $mode) {
$sql = "select * from t01_object where id='$id'";
$obj = uQueryOne($sql, "not_found_ok");
if ($obj) {
$id = $obj->id;
$object = $obj->object;
$name = $obj->name;
$description = $obj->description;
$memo = $obj->memo;
$parm1 = $obj->parm1;
$parm2 = $obj->parm2;
$parm3 = $obj->parm3;
$list1 = $obj->list1;
$list2 = $obj->list2;
$list3 = $obj->list3;
}
}
$html_henkou = $html_ope = $html_submit = "";
if ("detail" == $mode) {
// リンク情報を加工
$a_line = explode("\n", $memo);
$no1 = 0;
$memo = "";
foreach ($a_line as $line) {
if ("http" == substr($line, 0, 4)) {
// <a target=_blank href=http[s]://xxx>http[s]://xxx</a>\n
$s1 = "<a target=_blank href=$line>$line</a><br>";
} else {
$s1 = uHtmlPre($line);
}
$memo .= "$s1\n";
$no1++;
}
$html_ope = <<<EOT
<tr><th>操作<td>
<a href=$self?mode=update&id=$obj->id&fm=detail>修正</a>
<a href=$self?mode=delete&id=$obj->id>削除</a>
EOT;
$html_ope = "<tr><th>最終更新<td>$obj->update_dt<br>\n$html_ope\n";
}
// 新規作成の時は自動発番
if ("new" == $mode) {
$object = hs_object_new($link, $type); // 自動発番
//echo "debug161 object=$object type=$type<br>\n";
}
if ("update" == $mode || "new" == $mode) {
$html_hidden .= "<input type=hidden name=id value=$id>";
$html_hidden .= "<input type=hidden name=fm value=$fm>";
$object = "<input type=text class=u-text name=object value='$object' required>";
$name = "<input type=text class=u-text name=name value='$name'>";
$description = "<textarea class=u-text name=description>$description</textarea>";
$parm1 = "<input type=text class=u-text name=parm1 value='$parm1'>";
$memo = "<textarea name=memo rows=30 cols=90>$memo</textarea>\n";
}
if ("new" == $mode) {
$html_submit .= "<input type=submit name=sub_new_go value=登録><br>\n";
} elseif ("update" == $mode) {
$html_submit .= "<input type=submit name=sub_update_go value=更新><br>\n";
$html_ope = "<tr><th>最終更新<td>$obj->update_dt<br>\n$html_ope\n";
}
echo <<<EOT
$html_hidden
オブジェクト詳細
<table border=1>
<tr><th>種類<td>$type
<tr><th>オブジェクト<td>$object
<tr><th>名前<td>$name
<tr><th>説明<td>$description
<tr><th>分類<td>$parm1
<tr><th>メモ<td>$memo
$html_ope
</table>
$html_submit<br>
<a href="#" onclick="history.back(); return false;">前の画面に戻る</a>
EOT;
}