TOP ▲ itcore TOPTIPStool_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;
}