} } else { if (empty($warnings)) { $_SESSION['post']['user'] = $post['user']; // フォワード forward('/admin/user_post'); } else { $_view['user'] = $post['user']; $_view['warnings'] = $warnings; } } } } else { // 初期データを取得 if (empty($_GET['id'])) { $_view['user'] = default_users(); } else { $users = select_users(array('where' => array('id = :id', array('id' => $_GET['id'])))); if (empty($users)) { warning('編集データが見つかりません。'); } else { $_view['user'] = $users[0]; } } // 投稿セッションを初期化 unset($_SESSION['post']); // 編集開始日時を記録 if (!empty($_GET['id'])) { $_SESSION['update']['user'] = localdate('Y-m-d H:i:s'); } }
/** * ユーザの編集 * * @param array $queries * @param array $options * * @return resource */ function update_users($queries, $options = array()) { $queries = db_placeholder($queries); $options = array('id' => isset($options['id']) ? $options['id'] : null, 'update' => isset($options['update']) ? $options['update'] : null); // 最終編集日時を確認 if (isset($options['id']) && isset($options['update']) && (!isset($queries['set']['modified']) || $queries['set']['modified'] !== false)) { $users = db_select(array('from' => DATABASE_PREFIX . 'users', 'where' => array('id = :id AND modified > :update', array('id' => $options['id'], 'update' => $options['update'])))); if (!empty($users)) { error('編集開始後にデータが更新されています。'); } } // 初期値を取得 $defaults = default_users(); if (isset($queries['set']['modified'])) { if ($queries['set']['modified'] === false) { unset($queries['set']['modified']); } } else { $queries['set']['modified'] = $defaults['modified']; } // データを編集 $queries['update'] = DATABASE_PREFIX . 'users'; $resource = db_update($queries); return $resource; }