public function __construct($args) { extract($args); if ($slug) { $plural = inflector()->titleize($plural ? $plural : inflector()->pluralize($slug)); $name = inflector()->titleize($name ? $name : inflector()->humanize($slug)); $menu_name = $menu_name ? inflector()->titleize($menu_name) : $plural; $all_items = $all_items ? inflector()->titleize($all_items) : 'All ' . $plural; $labels = array('name' => _x($plural, 'post type general name', CREATIVE_LITTLE_DOMAIN), 'singular_name' => _x($name, 'post type singular name', CREATIVE_LITTLE_DOMAIN), 'menu_name' => _x($menu_name, 'admin menu', CREATIVE_LITTLE_DOMAIN), 'name_admin_bar' => _x($name, 'add new on admin bar', CREATIVE_LITTLE_DOMAIN), 'add_new' => _x('Add New', $slug, CREATIVE_LITTLE_DOMAIN), 'add_new_item' => __('Add New ' . $name, CREATIVE_LITTLE_DOMAIN), 'new_item' => __('New ' . $name, CREATIVE_LITTLE_DOMAIN), 'edit_item' => __('Edit ' . $name, CREATIVE_LITTLE_DOMAIN), 'view_item' => __('View ' . $name, CREATIVE_LITTLE_DOMAIN), 'all_items' => __($all_items, CREATIVE_LITTLE_DOMAIN), 'search_items' => __('Search ' . $plural, CREATIVE_LITTLE_DOMAIN), 'parent_item_colon' => __('Parent ' . $plural . ':', CREATIVE_LITTLE_DOMAIN), 'not_found' => __('No ' . strtolower($plural) . ' found.', CREATIVE_LITTLE_DOMAIN), 'not_found_in_trash' => __('No ' . strtolower($plural) . ' found in Trash.', CREATIVE_LITTLE_DOMAIN)); $args = array('labels' => $labels, 'public' => $public, 'publicly_queryable' => $publicly_queryable, 'show_ui' => true, 'show_in_menu' => $show_in_menu, 'query_var' => true, 'rewrite' => $rewrite && $rewrite !== true ? $rewrite : array('slug' => inflector()->dasherize(strtolower($slug))), 'capability_type' => 'post', 'has_archive' => $has_archive ? strtolower($plural) : false, 'menu_icon' => $icon, 'hierarchical' => $hierarchical, 'menu_position' => null, 'supports' => $supports); register_post_type($slug, $args); if (method_exists($this, 'save_' . $slug)) { add_action('save_post', array($this, 'save_' . $slug)); } if ($row_actions) { $actionType = $hierarchical ? 'page' : 'post'; add_filter($actionType . '_row_actions', function ($actions, $post) { if ($post->post_type == $slug) { foreach ($row_actions as $action_key => $action) { $actions[$action_key] = '<a href="' . admin_url('post.php?post=' . $post->ID . '&action=' . $action_key) . '">' . $action['name'] . '</a>'; } } return $actions; }, 10, 2); add_action('admin_init', function () { if (isset($_REQUEST['post']) && isset($_REQUEST['action']) && isset($row_actions[$_REQUEST['action']])) { if (isset($row_actions[$_REQUEST['action']]['callback']) && $row_actions[$_REQUEST['action']]['callback'] && method_exists($this, $row_actions[$_REQUEST['action']]['callback'])) { call_user_func(array(__CLASS__, $row_actions[$_REQUEST['action']]['callback'])); } } }); } } }
public function action($controller, $action = '', $id = '') { if (empty($controller)) { wp_send_json_error("Controller is not set"); } if (empty($action)) { $action = $this->http->method() == 'POST' ? 'save' : 'get'; } $singleController = inflector()->camelize(inflector()->singularize($controller) . '_controller'); $pluralController = inflector()->camelize(inflector()->pluralize($controller) . '_controller'); if (!class_exists($class = $this->app->getControllerName($singleController))) { if (!class_exists($class = $this->app->getControllerName($pluralController))) { wp_send_json_error("Controllers {$singleController} and {$pluralController} do not exist"); } else { $controller = $pluralController; } } else { $controller = $singleController; } if (!method_exists($class, $action)) { wp_send_json_error("Controller {$controller} does not have method {$action}", 400); } $this->app->call(array($this->app->make($class), 'beforeFilter')); $this->app->call(array($this->app->make($class), $action), compact('id')); }
public function __construct() { if ($this->slug) { $plural = inflector()->titleize($this->plural ? $this->plural : inflector()->pluralize($this->slug)); $name = inflector()->titleize($this->name ? $this->name : inflector()->humanize($this->slug)); register_taxonomy($this->slug, $this->post_types, array('label' => __($name), 'hierarchical' => $this->hierarchical, 'labels' => array('name' => _x($plural, 'wpkit'), 'singular_name' => _x($name, 'wpkit'), 'search_items' => __('Search ' . $plural), 'all_items' => __('All ' . $plural), 'parent_item' => __('Parent ' . $name), 'parent_item_colon' => __('Parent ' . $name . ':'), 'edit_item' => __('Edit ' . $name), 'update_item' => __('Update ' . $name), 'add_new_item' => __('Add New ' . $name), 'new_item_name' => __('New ' . $name . ' Name'), 'menu_name' => __($plural)), 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => $this->rewrite && $this->rewrite !== true ? $this->rewrite : array('slug' => inflector()->dasherize(strtolower($this->slug))))); if ($this->belongs_to) { add_action('admin_menu', function () use($plural) { add_submenu_page('edit.php?post_type=' . $this->belongs_to, $plural, $plural, 'edit_others_posts', 'edit-tags.php?taxonomy=' . $this->slug . '&post_type=' . $this->belongs_to); }); } } }
public function __construct($args) { extract($args); if ($slug) { $plural = inflector()->titleize($plural ? $plural : inflector()->pluralize($slug)); $name = inflector()->titleize($name ? $name : inflector()->humanize($slug)); $labels = array('name' => _x($plural, CREATIVE_LITTLE_DOMAIN), 'singular_name' => _x($name, CREATIVE_LITTLE_DOMAIN), 'search_items' => __('Search ' . $plural), 'all_items' => __('All ' . $plural), 'parent_item' => __('Parent ' . $name), 'parent_item_colon' => __('Parent ' . $name . ':'), 'edit_item' => __('Edit ' . $name), 'update_item' => __('Update ' . $name), 'add_new_item' => __('Add New ' . $name), 'new_item_name' => __('New ' . $name . ' Name'), 'menu_name' => __($plural)); $args = array('label' => __($name), 'hierarchical' => $hierarchical, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => $rewrite ? $rewrite : array('slug' => $slug)); register_taxonomy($slug, $post_types, $args); if ($belongs_to) { add_action('admin_menu', function () { add_submenu_page('edit.php?post_type=' . $belongs_to, $plural, $plural, 'edit_others_posts', 'edit-tags.php?taxonomy=' . $slug . '&post_type=' . $belongs_to); }); } flush_rewrite_rules(); } }
public function addIntegration($integration, $settings) { if ($this->inWp()) { if (!$this->hasIntegration($integration)) { $core_integration_class = 'WPKit\\Integrations\\' . inflector()->camelize($integration); $integration_class = $this->getNamespace() . '\\Integrations\\' . inflector()->camelize($integration); if (class_exists($core_integration_class)) { $this->integrations[$integration] = $this->make($core_integration_class, compact('settings')); } else { if (class_exists($integration_class)) { $this->integrations[$integration] = $this->make($integration_class, compact('settings')); } } } } else { // admin error } }
public static function add_integration($integration, $settings) { if (!self::has_integration($integration)) { $core_integration_class = 'WPKit\\Integrations\\' . inflector()->camelize($integration); $integration_class = 'App\\Integrations\\' . inflector()->camelize($integration); if (class_exists($core_integration_class)) { self::$integrations[$integration] = self::make($core_integration_class, $settings); } else { if (class_exists($integration_class)) { self::$integrations[$integration] = self::make($integration_class, $settings); } } } }