Example #1
0
/**
 * 名簿の削除
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function delete_members($queries, $options = array())
{
    $queries = db_placeholder($queries);
    $options = array('softdelete' => isset($options['softdelete']) ? $options['softdelete'] : true, 'category' => isset($options['category']) ? $options['category'] : false, 'file' => isset($options['file']) ? $options['file'] : false);
    // 削除するデータのIDを取得
    $members = db_select(array('select' => 'id', 'from' => DATABASE_PREFIX . 'members AS members', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
    $deletes = array();
    foreach ($members as $member) {
        $deletes[] = intval($member['id']);
    }
    if ($options['softdelete'] === true) {
        // データを編集
        $resource = db_update(array('update' => DATABASE_PREFIX . 'members AS members', 'set' => array('deleted' => localdate('Y-m-d H:i:s')), 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    } else {
        // データを削除
        $resource = db_delete(array('delete_from' => DATABASE_PREFIX . 'members AS members', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['category'] === true) {
        // 関連する分類を削除
        $resource = delete_category_sets(array('where' => 'member_id IN(' . implode(',', array_map('db_escape', $deletes)) . ')'));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['file'] === true) {
        // 関連するファイルを削除
        foreach ($deletes as $delete) {
            directory_rmdir($GLOBALS['config']['file_targets']['member'] . $delete . '/');
        }
    }
    return $resource;
}
Example #2
0
/**
 * 分類の削除
 *
 * @param array $queries
 * @param array $options
 *
 * @return resource
 */
function delete_categories($queries, $options = array())
{
    $queries = db_placeholder($queries);
    $options = array('softdelete' => isset($options['softdelete']) ? $options['softdelete'] : true, 'associate' => isset($options['associate']) ? $options['associate'] : false);
    // 削除するデータのIDを取得
    $categories = db_select(array('select' => 'id', 'from' => DATABASE_PREFIX . 'categories AS categories', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
    $deletes = array();
    foreach ($categories as $category) {
        $deletes[] = intval($category['id']);
    }
    if ($options['associate'] === true) {
        // 関連するデータを削除
        $resource = delete_category_sets(array('where' => 'category_id IN(' . implode($deletes) . ')'));
        if (!$resource) {
            return $resource;
        }
    }
    if ($options['softdelete'] === true) {
        // データを編集
        $resource = db_update(array('update' => DATABASE_PREFIX . 'categories AS categories', 'set' => array('deleted' => localdate('Y-m-d H:i:s')), 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    } else {
        // データを削除
        $resource = db_delete(array('delete_from' => DATABASE_PREFIX . 'categories AS categories', 'where' => isset($queries['where']) ? $queries['where'] : '', 'limit' => isset($queries['limit']) ? $queries['limit'] : ''));
        if (!$resource) {
            return $resource;
        }
    }
    return $resource;
}