public function create_route() { $route_string = $this->containing_post_type . "/:name/" . $this->contained_post_type; \Routes::map($route_string, function ($params) { $posts = get_posts(array('name' => $params['name'], 'post_type' => $this->containing_post_type)); if ($posts) { $wp_post = $posts[0]; $query = array('post_type' => $this->contained_post_type, 'connected_type' => $this->p2p_connection_type, 'connected_items' => $wp_post->ID); } $params += array('archive_title' => $this->get_archive_title_string($wp_post, $this->contained_post_type), 'containing_post_type' => $this->containing_post_type, 'contained_post_type' => $this->contained_post_type, 'p2p_connection_type' => $this->p2p_connection_type); \Routes::load($this->template, $params, $query, 200); }); $paginated_route_string = $this->containing_post_type . "/:name/" . $this->contained_post_type . "/page/:pg"; \Routes::map($paginated_route_string, function ($params) { $posts = get_posts(array('name' => $params['name'], 'post_type' => $this->containing_post_type)); if ($posts) { $wp_post = $posts[0]; $query = array('post_type' => $this->contained_post_type, 'connected_type' => $this->p2p_connection_type, 'connected_items' => $wp_post->ID, 'paged' => $params['pg']); $params += array('archive_title' => $this->get_archive_title_string($wp_post, $this->contained_post_type), 'containing_post_type' => $this->containing_post_type, 'contained_post_type' => $this->contained_post_type, 'p2p_connection_type' => $this->p2p_connection_type); } \Routes::load($this->template, $params, $query, 200); }); }
/** * Add route. * * @param string $route * @param callable $callback * @param array $args * @deprecated since 0.20.0 */ public static function add_route($route, $callback, $args = array()) { Routes::map($route, $callback, $args); }
/** * Add route. * * @param string $route * @param callable $callback * @param array $args * @deprecated since 0.20.0 and will be removed in 1.1 */ public static function add_route($route, $callback, $args = array()) { Helper::warn('Timber::add_route (and accompanying methods for load_view, etc. Have been deprecated and will soon be removed. Please update your theme with Route::map. You can read more in the 1.0 Upgrade Guide: https://github.com/timber/timber/wiki/1.0-Upgrade-Guide'); \Routes::map($route, $callback, $args); }
function testRouteWithClassCallback() { Routes::map('classroute', array('TestRoutes', 'testCallback')); $this->go_to(home_url('classroute')); $this->matchRoutes(); global $matches; $this->assertEquals(1, count($matches)); }
<?php Routes::map(':controller/:action/:id');
function testVerySimpleRoutePreceedingSlash() { $_SERVER['REQUEST_METHOD'] = 'GET'; global $matches; $matches = array(); $phpunit = $this; Routes::map('/gobbles', function () use($phpunit) { global $matches; $matches = array(); $matches[] = true; }); $this->go_to(home_url('gobbles')); $this->matchRoutes(); $this->assertEquals(1, count($matches)); }