• R/O
  • HTTP
  • SSH
  • HTTPS

magic3: Commit

Cloud computing platform


Commit MetaInfo

Revision295b665e984e44704477a5e9a3ba785be7b7b3a5 (tree)
Time2018-08-11 16:07:09
Authornaoki hirata <naoki@magi...>
Commiternaoki hirata

Log Message

ランディングページ管理画面更新。

Change Summary

Incremental Difference

--- a/widgets/admin_main/include/container/admin_mainLandingpageWidgetContainer.php
+++ b/widgets/admin_main/include/container/admin_mainLandingpageWidgetContainer.php
@@ -127,7 +127,7 @@ class admin_mainLandingpageWidgetContainer extends admin_mainMainteBaseWidgetCon
127127 $pageLink = $this->createPageLink($pageNo, self::LINK_PAGE_COUNT, $currentBaseUrl, 'selpage($1);return false;');
128128
129129 $this->db->getLandingPageList(self::DEFAULT_LIST_COUNT, $pageNo, array($this, 'itemListLoop'));
130- if (!$this->isExistsContent) $this->tmpl->setAttribute('itemlist', 'visibility', 'hidden');// コンテンツ項目がないときは、一覧を表示しない
130+ if (count($this->serialArray) == 0) $this->tmpl->setAttribute('itemlist', 'visibility', 'hidden');// コンテンツ項目がないときは、一覧を表示しない
131131
132132 $this->tmpl->addVar("_widget", "serial_list", implode($this->serialArray, ','));// 表示項目のシリアル番号を設定
133133 }
@@ -145,6 +145,7 @@ class admin_mainLandingpageWidgetContainer extends admin_mainMainteBaseWidgetCon
145145 $newId = $request->trimValueOf('item_id'); // 新規ランディングページID
146146 $name = $request->trimValueOf('item_name'); // ランディングページ名
147147 $password = $request->trimValueOf('password'); // ページ運用者用初期パスワード
148+ $visible = $request->trimCheckedValueOf('item_visible'); // 公開制御
148149
149150 $replaceNew = false; // データを再取得するかどうか
150151 if ($act == 'add'){ // 新規追加のとき
@@ -164,16 +165,23 @@ class admin_mainLandingpageWidgetContainer extends admin_mainMainteBaseWidgetCon
164165 if ($this->getMsgCount() == 0){
165166 $userName = $newId . self::DEFAULT_USER_NAME_SUFFIX;
166167
168+ // ランディングページのページ運用ユーザを追加
167169 $ret = $this->_db->addNewLoginUser($userName, $newId, $password, UserInfo::USER_TYPE_MANAGER/*システム運用者*/, 1/*ログイン可能*/, null/*有効期間開始*/, null/*有効期間終了*/, $newSerial,
168170 ''/*制限ウィジェットなし*/, self::USER_TYPE_OPTION/*ページ運営者*/);
171+ if ($ret){
172+ // ユーザ情報取得
173+ $ret = $this->_db->getLoginUserRecordBySerial($newSerial, $row);
174+
175+ // ランディングページ情報を新規追加
176+ $ownerId = $row['lu_id'];
177+ $ret= $this->db->updateLandingPage(0/*新規*/, $newId, $name, $visible, $ownerId, $newSerial);
178+ }
169179
170180 if ($ret){ // データ追加成功のとき
171181 $this->setMsg(self::MSG_GUIDANCE, $this->_('Item added.')); // データを追加しました
172182
173183 // 運用ログ出力
174- $ret = $this->_mainDb->getUserBySerial($newSerial, $row, $groupRows);
175- if ($ret) $loginUserId = $row['lu_id'];
176- $this->gOpeLog->writeUserInfo(__METHOD__, 'ユーザ情報を追加しました。アカウント: ' . $account, 2100, 'userid=' . $loginUserId . ', username=' . $name);
184+ $this->gOpeLog->writeUserInfo(__METHOD__, 'ユーザ情報を追加しました。アカウント: ' . $account, 2100, 'userid=' . $ownerId . ', username=' . $userName);
177185
178186 $this->serialNo = $newSerial;
179187 $reloadData = true; // データの再読み込み
@@ -213,6 +221,7 @@ class admin_mainLandingpageWidgetContainer extends admin_mainMainteBaseWidgetCon
213221 }
214222 } else { // 初期状態
215223 $replaceNew = true; // データを再取得
224+ $visible = 1; // 公開制御
216225 }
217226 // 表示データ再取得
218227 if ($replaceNew){
@@ -235,6 +244,7 @@ class admin_mainLandingpageWidgetContainer extends admin_mainMainteBaseWidgetCon
235244 }
236245
237246 $this->tmpl->addVar("_widget", "name", $this->convertToDispString($name)); // ページ名
247+ $this->tmpl->addVar("_widget", "visible", $this->convertToCheckedString($visible)); // 公開制御
238248 }
239249 /**
240250 * ランディングページIDをテンプレートに設定する
@@ -246,22 +256,17 @@ class admin_mainLandingpageWidgetContainer extends admin_mainMainteBaseWidgetCon
246256 */
247257 function itemListLoop($index, $fetchedRow, $param)
248258 {
249- $value = $this->convertToDispString($fetchedRow['mn_id']);
250-
251- $accessPointName = str_replace('用アクセスポイント', '', $fetchedRow['pg_name']); // アクセスポイント名
252259 $row = array(
253260 'index' => $index, // インデックス番号
254- 'value' => $value, // ランディングページID
255- 'name' => $this->convertToDispString($fetchedRow['mn_name']), // ランディングページID名
256- 'access_point_name' => $this->convertToDispString($accessPointName),
257- 'sort_order' => $this->convertToDispString($fetchedRow['mn_sort_order']), // ソート順
258- 'ref_count' => $this->_db->getMenuIdRefCount($value) // ランディングページID使用数
261+ 'id' => $this->convertToDispString($fetchedRow['lp_id']), // ランディングページID
262+ 'name' => $this->convertToDispString($fetchedRow['lp_name']), // ランディングページID名
263+ 'date' => $this->convertToDispDateTime($fetchedRow['lp_regist_dt'], 0/*ロングフォーマット*/, 10/*時分*/) // 作成日時
259264 );
260- $this->tmpl->addVars('id_list', $row);
261- $this->tmpl->parseTemplate('id_list', 'a');
265+ $this->tmpl->addVars('itemlist', $row);
266+ $this->tmpl->parseTemplate('itemlist', 'a');
262267
263268 // 表示中項目のページサブIDを保存
264- $this->serialArray[] = $value;
269+ $this->serialArray[] = $fetchedRow['lp_serial'];
265270 return true;
266271 }
267272 }
--- a/widgets/admin_main/include/db/admin_mainDb.php
+++ b/widgets/admin_main/include/db/admin_mainDb.php
@@ -3521,5 +3521,130 @@ class admin_mainDb extends BaseDb
35213521 $queryStr .= 'AND lp_id = ? ';
35223522 return $this->isRecordExists($queryStr, array($id));
35233523 }
3524+ /**
3525+ * ランディングページ情報を更新
3526+ *
3527+ * @param string $serial シリアル番号(0のときは新規登録)
3528+ * @param string $id ランディングページID
3529+ * @param string $name 名前
3530+ * @param bool $visible 表示制御
3531+ * @param int $ownerId 所有者ID
3532+ * @param int $newSerial 新規シリアル番号
3533+ * @return true = 正常、false=異常
3534+ */
3535+ function updateLandingPage($serial, $id, $name, $visible, $ownerId, &$newSerial)
3536+ {
3537+ $now = date("Y/m/d H:i:s"); // 現在日時
3538+ $userId = $this->gEnv->getCurrentUserId(); // 現在のユーザ
3539+ $regDt = $now; // 作成日時
3540+
3541+ // トランザクション開始
3542+ $this->startTransaction();
3543+
3544+ // 前レコードの削除状態チェック
3545+ $historyIndex = 0;
3546+ if (empty($serial)){ // 新規登録のとき
3547+ $queryStr = 'SELECT * FROM _landing_page ';
3548+ $queryStr .= 'WHERE lp_id = ? ';
3549+ $queryStr .= 'ORDER BY lp_history_index DESC ';
3550+ $ret = $this->selectRecord($queryStr, array($id), $row);
3551+ if ($ret){
3552+ if (!$row['lp_deleted']){ // レコード存在していれば終了
3553+ $this->endTransaction();
3554+ return false;
3555+ }
3556+ $historyIndex = $row['lp_history_index'] + 1;
3557+ }
3558+ } else { // 更新のとき
3559+ // 指定のシリアルNoのレコードが削除状態でないかチェック
3560+ $queryStr = 'SELECT * FROM _landing_page ';
3561+ $queryStr .= 'WHERE lp_serial = ? ';
3562+ $ret = $this->selectRecord($queryStr, array(intval($serial)), $row);
3563+ if ($ret){ // 既に登録レコードがあるとき
3564+ if ($row['lp_deleted']){ // レコードが削除されていれば終了
3565+ $this->endTransaction();
3566+ return false;
3567+ }
3568+ $historyIndex = $row['lp_history_index'] + 1;
3569+
3570+ // 識別ID,ページ所有者,作成日時は変更不可
3571+ $id = $row['lp_id'];
3572+ $ownerId = $row['lp_owner_id'];
3573+ $regDt = $row['lp_regist_dt']; // 作成日時
3574+ } else { // 存在しない場合は終了
3575+ $this->endTransaction();
3576+ return false;
3577+ }
3578+
3579+ // 古いレコードを削除
3580+ $queryStr = 'UPDATE _landing_page ';
3581+ $queryStr .= 'SET lp_deleted = true, '; // 削除
3582+ $queryStr .= 'lp_update_user_id = ?, ';
3583+ $queryStr .= 'lp_update_dt = ? ';
3584+ $queryStr .= 'WHERE lp_serial = ?';
3585+ $ret = $this->execStatement($queryStr, array($userId, $now, intval($serial)));
3586+ if (!$ret){
3587+ $this->endTransaction();
3588+ return false;
3589+ }
3590+ }
3591+
3592+ // データを追加
3593+ $queryStr = 'INSERT INTO _landing_page ';
3594+ $queryStr .= '(lp_id, lp_history_index, lp_name, lp_visible, lp_owner_id, lp_regist_dt, lp_create_user_id, lp_create_dt) ';
3595+ $queryStr .= 'VALUES ';
3596+ $queryStr .= '(?, ?, ?, ?, ?, ?, ?, ?)';
3597+ $this->execStatement($queryStr, array($id, $historyIndex, $name, intval($visible), intval($ownerId), $regDt, $userId, $now));
3598+
3599+ // 新規のシリアル番号取得
3600+ $queryStr = 'SELECT MAX(lp_serial) AS ns FROM _landing_page ';
3601+ $ret = $this->selectRecord($queryStr, array(), $row);
3602+ if ($ret) $newSerial = $row['ns'];
3603+
3604+ // トランザクション確定
3605+ $ret = $this->endTransaction();
3606+ return $ret;
3607+ }
3608+ /**
3609+ * ランディングページ情報の削除
3610+ *
3611+ * @param array $serial シリアルNo
3612+ * @return true=成功、false=失敗
3613+ */
3614+ function delLandingPage($serial)
3615+ {
3616+ $now = date("Y/m/d H:i:s"); // 現在日時
3617+ $user = $this->gEnv->getCurrentUserId(); // 現在のユーザ
3618+
3619+ if (!is_array($serial) || count($serial) <= 0) return true;
3620+
3621+ // トランザクション開始
3622+ $this->startTransaction();
3623+
3624+ // 指定のシリアルNoのレコードが削除状態でないかチェック
3625+ for ($i = 0; $i < count($serial); $i++){
3626+ $queryStr = 'SELECT * FROM _landing_page ';
3627+ $queryStr .= 'WHERE lp_deleted = false '; // 未削除
3628+ $queryStr .= 'AND lp_serial = ? ';
3629+ $ret = $this->isRecordExists($queryStr, array($serial[$i]));
3630+ // 存在しない場合は、既に削除されたとして終了
3631+ if (!$ret){
3632+ $this->endTransaction();
3633+ return false;
3634+ }
3635+ }
3636+
3637+ // レコードを削除
3638+ $queryStr = 'UPDATE _landing_page ';
3639+ $queryStr .= 'SET lp_deleted = true, '; // 削除
3640+ $queryStr .= 'lp_update_user_id = ?, ';
3641+ $queryStr .= 'lp_update_dt = ? ';
3642+ $queryStr .= 'WHERE lp_serial in (' . implode($serial, ',') . ') ';
3643+ $this->execStatement($queryStr, array($user, $now));
3644+
3645+ // トランザクション確定
3646+ $ret = $this->endTransaction();
3647+ return $ret;
3648+ }
35243649 }
35253650 ?>
--- a/widgets/admin_main/include/template/landingpage.tmpl.html
+++ b/widgets/admin_main/include/template/landingpage.tmpl.html
@@ -99,8 +99,8 @@ $(function() {
9999 <td><input type="checkbox" name="item{INDEX}_selected" /></td>
100100 <td><div class="form-control-static m3config_item"><a href="#" onclick="editItemByMenuId('{ID}');">{ID}</a></div></td>
101101 <td>{NAME}</td>
102+ <td>{STATUS}</td>
102103 <td>{DATE}</td>
103- <td>{LINK}</td>
104104 <td>{ADMIN_LINK}</td>
105105 </tr>
106106 </patTemplate:tmpl>
Show on old repository browser