function _ctools_drush_filter_exportables

Filters a collection of exportables based on filters.

Parameters

$exportables:

$filter:

1 call to _ctools_drush_filter_exportables()
_ctools_drush_export_info in drush/ctools.drush.inc
Return array of CTools exportable info based on available tables returned from ctools_export_get_schemas().

File

drush/ctools.drush.inc, line 866

Code

function _ctools_drush_filter_exportables($exportables, $filter) {
    $eval = FALSE;
    if (is_string($filter)) {
        switch ($filter) {
            // Show enabled exportables only.
            case 'enabled':
                $eval = '_ctools_drush_object_is_disabled';
                break;
            // Show disabled exportables only.
            case 'disabled':
                $eval = '_ctools_drush_object_is_enabled';
                break;
            // Show overridden exportables only.
            case 'overridden':
                $eval = '_ctools_drush_object_is_not_overridden';
                break;
            // Show database only exportables.
            case 'database':
                $eval = '_ctools_drush_object_is_not_db_only';
                break;
            // Show code only exportables.
            case 'code':
                $eval = '_ctools_drush_object_is_not_code_only';
                break;
            // Do nothing.
            case 'all':
                break;
            default:
                drush_log(dt('Invalid filter option. Available options are: enabled, disabled, overridden, database, and code.'), 'error');
                return;
        }
        if ($eval) {
            foreach ($exportables as $table => $objects) {
                foreach ($objects as $key => $object) {
                    if ($eval($object)) {
                        unset($exportables[$table][$key]);
                    }
                }
            }
        }
    }
    return array_filter($exportables);
}