bound($abstract) ? $container->makeWith($abstract, $parameters) : $container->makeWith("sage.{$abstract}", $parameters); } /** * Get / set the specified configuration value. * * If an array is passed as the key, we will assume you want to set an array of values. * * @param array|string $key * @param mixed $default * @return mixed|\Roots\Sage\Config * @copyright Taylor Otwell * @link https://github.com/laravel/framework/blob/c0970285/src/Illuminate/Foundation/helpers.php#L254-L265 */ function config($key = null, $default = null) { if (is_null($key)) { return sage('config'); } if (is_array($key)) { return sage('config')->set($key); } return sage('config')->get($key, $default); } /** * @param string $file * @param array $data * @return string */ function template($file, $data = []) { return sage('blade')->render($file, $data); } /** * Retrieve path to a compiled blade view * @param $file * @param array $data * @return string */ function template_path($file, $data = []) { return sage('blade')->compiledPath($file, $data); } /** * @param $asset * @return string */ function asset_path($asset) { return sage('assets')->getUri($asset); } /** * @param string|string[] $templates Possible template files * @return array */ function filter_templates($templates) { return collect($templates) ->map(function ($template) { return preg_replace('#\.(blade\.)?php$#', '', ltrim($template)); }) ->flatMap(function ($template) { $paths = apply_filters('sage/filter_templates/paths', ['views', 'resources/views']); return collect($paths) ->flatMap(function ($path) use ($template) { return [ "{$path}/{$template}.blade.php", "{$path}/{$template}.php", "{$template}.blade.php", "{$template}.php", ]; }); }) ->filter() ->unique() ->all(); } /** * @param string|string[] $templates Relative path to possible template files * @return string Location of the template */ function locate_template($templates) { return \locate_template(filter_templates($templates)); } /** * Determine whether to show the sidebar * @return bool */ function display_sidebar() { static $display; isset($display) || $display = apply_filters('sage/display_sidebar', false); return $display; } /** * Page titles * @return string */ function title() { if (is_home()) { if ($home = get_option('page_for_posts', true)) { return get_the_title($home); } return __('Latest Posts', 'sage'); } if (is_archive()) { return get_the_archive_title(); } if (is_search()) { return sprintf(__('Search Results for %s', 'sage'), get_search_query()); } if (is_404()) { return __('Not Found', 'sage'); } return get_the_title(); }