Esempio n. 1
0
/**
 * 分類の編集
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function update_categories($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)) {
        $categories = db_select(array('from' => DATABASE_PREFIX . 'categories', 'where' => array('id = :id AND modified > :update', array('id' => $options['id'], 'update' => $options['update']))));
        if (!empty($categories)) {
            error('編集開始後にデータが更新されています。');
        }
    }
    // 初期値を取得
    $defaults = default_categories();
    if (isset($queries['set']['modified'])) {
        if ($queries['set']['modified'] === false) {
            unset($queries['set']['modified']);
        }
    } else {
        $queries['set']['modified'] = $defaults['modified'];
    }
    // データを編集
    $queries['update'] = DATABASE_PREFIX . 'categories';
    $resource = db_update($queries);
    if (!$resource) {
        return $resource;
    }
    return $resource;
}
Esempio n. 2
0
            warning($warnings);
        }
    } else {
        if (empty($warnings)) {
            $_SESSION['post']['category'] = $post['category'];
            // フォワード
            forward('/admin/category_post');
        } else {
            $_view['category'] = $post['category'];
            $_view['warnings'] = $warnings;
        }
    }
} else {
    // 初期データを取得
    if (empty($_GET['id'])) {
        $_view['category'] = default_categories();
    } else {
        $categories = select_categories(array('where' => array('id = :id', array('id' => $_GET['id']))));
        if (empty($categories)) {
            warning('編集データが見つかりません。');
        } else {
            $_view['category'] = $categories[0];
        }
    }
    // 投稿セッションを初期化
    unset($_SESSION['post']);
    // 編集開始日時を記録
    if (!empty($_GET['id'])) {
        $_SESSION['update']['category'] = localdate('Y-m-d H:i:s');
    }
}