/** * Gets a Clearbase controller * * @param string $selector * @return mixed|Clearbase_View_Controller|null */ function clearbase_get_controller($selector = '', $traverse = true) { $controllers = clearbase_get_controllers(); if (empty($selector) || is_numeric($selector) || $selector instanceof WP_Post) { //attempt to load a controller from a folder; $folder = clearbase_load_folder($selector); $controller_id = clearbase_get_value('postmeta.clearbase_controller', '', $folder); while ($traverse && empty($id) && !is_wp_error($folder) && 0 != $folder->post_parent) { $folder = clearbase_load_folder($folder->post_parent); $controller_id = clearbase_get_value('postmeta.clearbase_controller', '', $folder); } $selector = $controller_id; } $controller = $controllers[$selector]; return apply_filters('clearbase_get_controller', $controller, $selector); }
function clearbase_get_first_attachment($type = '', $folder_id = null) { $folder = clearbase_load_folder($folder_id); if (is_wp_error($folder)) { return $folder; } global $wpdb; $folder_id = absint($folder->ID); $order = clearbase_get_value('postmeta.attachment_order', 'DESC', $folder); if ('ASC' == $order || 'DESC' == $order) { $order = 'DESC'; } //force a proper sorting order $and_where_mime = wp_post_mime_type_where($type); $attachment = $wpdb->get_row("SELECT * FROM {$wpdb->posts} WHERE post_parent = {$folder_id} \n AND post_type='attachment' {$and_where_mime} ORDER BY menu_order {$order} LIMIT 1"); return $attachment ? new WP_Post($attachment) : null; }
function clearbase_default_folder_image_src($folder_id = null, $image_size = 'thumbnail') { $folder = clearbase_load_folder($folder_id); if (is_wp_error($folder)) { return $folder; } if ('full' == $image_size) { $image_src = array(CLEARBASE_URL . '/images/folder150x150.png', 150, 150); } else { $image_src = array(CLEARBASE_URL . '/images/folder40x40.png', 40, 40); } if ($attachment = clearbase_get_first_attachment('image', $folder)) { $image_src = wp_get_attachment_image_src($attachment->ID, $image_size); } return apply_filters('clearbase_default_folder_image_src', $image_src, $folder, $image_size); }