function testGetRelURL() { $local = 'http://example.org/directory'; $subdomain = 'http://cdn.example.org/directory'; $external = 'http://upstatement.com'; $rel_url = '/directory/'; $this->assertEquals('/directory', TimberURLHelper::get_rel_url($local)); $this->assertEquals($subdomain, TimberURLHelper::get_rel_url($subdomain)); $this->assertEquals($external, TimberURLHelper::get_rel_url($external)); $this->assertEquals($rel_url, TimberURLHelper::get_rel_url($rel_url)); }
/** * * * @return string */ function get_path() { return TimberURLHelper::get_rel_url($this->get_link()); }
/** * * * @param Twig_Environment $twig * @return Twig_Environment */ function add_timber_filters($twig) { /* image filters */ $twig->addFilter(new Twig_SimpleFilter('resize', array('TimberImageHelper', 'resize'))); $twig->addFilter(new Twig_SimpleFilter('retina', array('TimberImageHelper', 'retina_resize'))); $twig->addFilter(new Twig_SimpleFilter('letterbox', array('TimberImageHelper', 'letterbox'))); $twig->addFilter(new Twig_SimpleFilter('tojpg', array('TimberImageHelper', 'img_to_jpg'))); /* debugging filters */ $twig->addFilter(new Twig_SimpleFilter('docs', 'twig_object_docs')); $twig->addFilter(new Twig_SimpleFilter('get_class', 'get_class')); $twig->addFilter(new Twig_SimpleFilter('get_type', 'get_type')); $twig->addFilter(new Twig_SimpleFilter('print_r', function ($arr) { return print_r($arr, true); })); $twig->addFilter(new Twig_SimpleFilter('print_a', function ($arr) { return '<pre>' . self::object_docs($arr, true) . '</pre>'; })); /* other filters */ $twig->addFilter(new Twig_SimpleFilter('stripshortcodes', 'strip_shortcodes')); $twig->addFilter(new Twig_SimpleFilter('array', array($this, 'to_array'))); $twig->addFilter(new Twig_SimpleFilter('excerpt', 'wp_trim_words')); $twig->addFilter(new Twig_SimpleFilter('function', array($this, 'exec_function'))); $twig->addFilter(new Twig_SimpleFilter('pretags', array($this, 'twig_pretags'))); $twig->addFilter(new Twig_SimpleFilter('sanitize', 'sanitize_title')); $twig->addFilter(new Twig_SimpleFilter('shortcodes', 'do_shortcode')); $twig->addFilter(new Twig_SimpleFilter('time_ago', array($this, 'time_ago'))); $twig->addFilter(new Twig_SimpleFilter('wpautop', 'wpautop')); $twig->addFilter(new Twig_SimpleFilter('relative', function ($link) { return TimberURLHelper::get_rel_url($link, true); })); $twig->addFilter(new Twig_SimpleFilter('date', array($this, 'intl_date'))); $twig->addFilter(new Twig_SimpleFilter('truncate', function ($text, $len) { return TimberHelper::trim_words($text, $len); })); /* actions and filters */ $twig->addFunction(new Twig_SimpleFunction('action', function ($context) { $args = func_get_args(); array_shift($args); $args[] = $context; call_user_func_array('do_action', $args); }, array('needs_context' => true))); $twig->addFilter(new Twig_SimpleFilter('apply_filters', function () { $args = func_get_args(); $tag = current(array_splice($args, 1, 1)); return apply_filters_ref_array($tag, $args); })); $twig->addFunction(new Twig_SimpleFunction('function', array(&$this, 'exec_function'))); $twig->addFunction(new Twig_SimpleFunction('fn', array(&$this, 'exec_function'))); $twig->addFunction(new Twig_SimpleFunction('shortcode', 'do_shortcode')); /* TimberObjects */ $twig->addFunction(new Twig_SimpleFunction('TimberPost', function ($pid, $PostClass = 'TimberPost') { if (is_array($pid) && !TimberHelper::is_array_assoc($pid)) { foreach ($pid as &$p) { $p = new $PostClass($p); } return $pid; } return new $PostClass($pid); })); $twig->addFunction(new Twig_SimpleFunction('TimberImage', function ($pid, $ImageClass = 'TimberImage') { if (is_array($pid) && !TimberHelper::is_array_assoc($pid)) { foreach ($pid as &$p) { $p = new $ImageClass($p); } return $pid; } return new $ImageClass($pid); })); $twig->addFunction(new Twig_SimpleFunction('TimberTerm', function ($pid, $TermClass = 'TimberTerm') { if (is_array($pid) && !TimberHelper::is_array_assoc($pid)) { foreach ($pid as &$p) { $p = new $TermClass($p); } return $pid; } return new $TermClass($pid); })); $twig->addFunction(new Twig_SimpleFunction('TimberUser', function ($pid, $UserClass = 'TimberUser') { if (is_array($pid) && !TimberHelper::is_array_assoc($pid)) { foreach ($pid as &$p) { $p = new $UserClass($p); } return $pid; } return new $UserClass($pid); })); /* TimberObjects Alias */ $twig->addFunction(new Twig_SimpleFunction('Post', function ($pid, $PostClass = 'TimberPost') { if (is_array($pid) && !TimberHelper::is_array_assoc($pid)) { foreach ($pid as &$p) { $p = new $PostClass($p); } return $pid; } return new $PostClass($pid); })); $twig->addFunction(new Twig_SimpleFunction('Image', function ($pid, $ImageClass = 'TimberImage') { if (is_array($pid) && !TimberHelper::is_array_assoc($pid)) { foreach ($pid as &$p) { $p = new $ImageClass($p); } return $pid; } return new $ImageClass($pid); })); $twig->addFunction(new Twig_SimpleFunction('Term', function ($pid, $TermClass = 'TimberTerm') { if (is_array($pid) && !TimberHelper::is_array_assoc($pid)) { foreach ($pid as &$p) { $p = new $TermClass($p); } return $pid; } return new $TermClass($pid); })); $twig->addFunction(new Twig_SimpleFunction('User', function ($pid, $UserClass = 'TimberUser') { if (is_array($pid) && !TimberHelper::is_array_assoc($pid)) { foreach ($pid as &$p) { $p = new $UserClass($p); } return $pid; } return new $UserClass($pid); })); /* bloginfo and translate */ $twig->addFunction('bloginfo', new Twig_SimpleFunction('bloginfo', function ($show = '', $filter = 'raw') { return get_bloginfo($show, $filter); })); $twig->addFunction('__', new Twig_SimpleFunction('__', function ($text, $domain = 'default') { return __($text, $domain); })); /* get_twig is deprecated, use timber/twig */ $twig = apply_filters('get_twig', $twig); $twig = apply_filters('timber/twig', $twig); return $twig; }
/** * @param string $url */ private function init_with_url($url) { $this->abs_url = $url; if (TimberURLHelper::is_local($url)) { $this->file = ABSPATH . TimberURLHelper::get_rel_url($url); $this->file_loc = ABSPATH . TimberURLHelper::get_rel_url($url); } }
/** * @deprecated */ static function get_rel_url($url, $force = false) { return TimberURLHelper::get_rel_url($url, $force); }
/** * @return string */ public function get_path() { $link = $this->get_link(); $rel = TimberURLHelper::get_rel_url($link, true); return apply_filters('timber_term_path', $rel, $this); }
/** * @api * @return string the relative path to the theme (ex: `/wp-content/themes/my-timber-theme`) */ public function path() { return TimberURLHelper::get_rel_url($this->link()); }
/** * * * @return string */ function get_path() { return TimberURLHelper::remove_trailing_slash(TimberURLHelper::get_rel_url($this->get_link())); }