Ejemplo n.º 1
0
            }
        } else {
            if (empty($warnings)) {
                $_SESSION['post']['member'] = $post['member'];
                // フォワード
                forward('/admin/member_post');
            } else {
                $_view['member'] = $post['member'];
                $_view['warnings'] = $warnings;
            }
        }
    }
} else {
    // 初期データを取得
    if (empty($_GET['id'])) {
        $_view['member'] = default_members();
    } else {
        $members = select_members(array('where' => array('members.id = :id', array('id' => $_GET['id']))), array('associate' => true));
        if (empty($members)) {
            warning('編集データが見つかりません。');
        } else {
            $_view['member'] = $members[0];
        }
    }
    if (isset($_GET['_type']) && $_GET['_type'] === 'json') {
        // 名簿情報を取得
        header('Content-Type: application/json; charset=' . MAIN_CHARSET);
        echo json_encode(array('status' => 'OK', 'data' => $_view, 'files' => array('image_01' => $_view['member']['image_01'] ? file_mimetype($_view['member']['image_01']) : null, 'image_02' => $_view['member']['image_02'] ? file_mimetype($_view['member']['image_02']) : null)));
        exit;
    } else {
        // 投稿セッションを初期化
Ejemplo n.º 2
0
/**
 * 名簿の編集
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function update_members($queries, $options = array())
{
    $queries = db_placeholder($queries);
    $options = array('id' => isset($options['id']) ? $options['id'] : null, 'update' => isset($options['update']) ? $options['update'] : null, 'category_sets' => isset($options['category_sets']) ? $options['category_sets'] : array(), 'files' => isset($options['files']) ? $options['files'] : array());
    // 最終編集日時を確認
    if (isset($options['id']) && isset($options['update']) && (!isset($queries['set']['modified']) || $queries['set']['modified'] !== false)) {
        $members = db_select(array('from' => DATABASE_PREFIX . 'members', 'where' => array('id = :id AND modified > :update', array('id' => $options['id'], 'update' => $options['update']))));
        if (!empty($members)) {
            error('編集開始後にデータが更新されています。');
        }
    }
    // 初期値を取得
    $defaults = default_members();
    if (isset($queries['set']['modified'])) {
        if ($queries['set']['modified'] === false) {
            unset($queries['set']['modified']);
        }
    } else {
        $queries['set']['modified'] = $defaults['modified'];
    }
    // データを編集
    $queries['update'] = DATABASE_PREFIX . 'members';
    $resource = db_update($queries);
    if (!$resource) {
        return $resource;
    }
    // IDを取得
    $id = $options['id'];
    if (isset($options['category_sets'])) {
        // 分類を編集
        $resource = delete_category_sets(array('where' => array('member_id = :id', array('id' => $id))));
        if (!$resource) {
            return $resource;
        }
        foreach ($options['category_sets'] as $category_id) {
            $resource = insert_category_sets(array('values' => array('category_id' => $category_id, 'member_id' => $id)));
            if (!$resource) {
                return $resource;
            }
        }
    }
    if (!empty($options['files'])) {
        // 関連するファイルを削除
        remove_members($id, $options['files']);
        // 関連するファイルを保存
        save_members($id, $options['files']);
    }
    return $resource;
}