コード例 #1
0
 public function __construct()
 {
     $controllers = clearbase_get_controllers();
     $select_options = array();
     foreach ($controllers as $key => $controller) {
         $select_options[$key] = $controller->Title();
     }
     asort($select_options);
     $select_options = array('-1' => __('No controller specified', 'clearbase')) + $select_options;
     parent::__construct(array(array('id' => 'controller', 'type' => 'sectionstart'), array('id' => 'postmeta.clearbase_controller', 'class' => 'clearbase-controller-switcher', 'title' => __("Controller", 'clearbase'), 'desc' => __("Specifies a controller for this folder", 'clearbase'), 'type' => 'select', 'options' => $select_options), array('id' => 'controller', 'type' => 'sectionend')));
 }
コード例 #2
0
/**
* 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);
}