/** * Get the path to a view on disk. * * @param $view * * @return string * @throws \Exception */ protected function path($view) { $root = \Bundle::path(\Bundle::name($view)) . 'views'; $path = $root . DS . \Bundle::element($view); if (file_exists($path)) { return $path; } throw new \Exception("View [{$view}] does not exist."); }
/** * Parse a language key into its bundle, file, and line segments. * * Language lines follow a {bundle}::{file}.{line} naming convention. * * @param string $key * @return array */ protected function parse($key) { $bundle = Bundle::name($key); $segments = explode('.', Bundle::element($key)); // If there are not at least two segments in the array, it means that // the developer is requesting the entire language line array to be // returned. If that is the case, we'll make the item "null". if (count($segments) >= 2) { $line = implode('.', array_slice($segments, 1)); return array($bundle, $segments[0], $line); } else { return array($bundle, $segments[0], null); } }
function get_by_list($name = 'main', $slides = false) { if ($name === '*') { if ($route = \Vane\Route::current() and $route->lastServer) { $name = \Bundle::element($route->lastServer->name); $name = S::tryUnprefix(strtok($name, '@'), 'block.'); } else { $name = null; } } $default = $this->in('default', 'main'); if (!$name and !$default) { return E_INPUT; } $query = ProductListItem::order_by('sort'); $name and $query->where('type', '=', $name); $default and $query->or_where('type', '=', $default); if ($list = $query->get()) { if ($default and !S::first($list, array('?->type === ?', $name))) { $type = $default; } else { $type = $name; } $list = S::keep($list, array('?->type === ?', $type)); $goods = S::keys(Product::all(prop('product', $list)), '?->id'); $ordered = array(); foreach ($list as $item) { $product =& $goods[$item->product]; if ($product and (!$slides or $product->image)) { $product->extra = $item->extra; $ordered[] = $product; } } $this->layout = $slides ? '.slides' : '.index'; return static::listResponse($slides ? 1000 : 320, $ordered); } }
/** * Parse a key and return its bundle, file, and key segments. * * Configuration items are named using the {bundle}::{file}.{item} convention. * * @param string $key * @return array */ protected static function parse($key) { // First, we'll check the keyed cache of configuration items, as this will // be the fastest method of retrieving the configuration option. After an // item is parsed, it is always stored in the cache by its key. if (array_key_exists($key, static::$cache)) { return static::$cache[$key]; } $bundle = Bundle::name($key); $segments = explode('.', Bundle::element($key)); // If there are not at least two segments in the array, it means that the // developer is requesting the entire configuration array to be returned. // If that is the case, we'll make the item field "null". if (count($segments) >= 2) { $parsed = array($bundle, $segments[0], implode('.', array_slice($segments, 1))); } else { $parsed = array($bundle, $segments[0], null); } return static::$cache[$key] = $parsed; }
/** * Test the Bundle::element method. * * @group laravel */ public function testElementCanBeRetrievedFromIdentifier() { $this->assertEquals('something', Bundle::element('something')); $this->assertEquals('something.else', Bundle::element('something.else')); $this->assertEquals('something.else', Bundle::element('bundle::something.else')); }