static function add_component($name, $mapper, $layout = 'work') { self::$component_original_names[strtolower($name)] = $name; self::$component_names[strtolower($name)] = "Component_{$name}"; self::$component_module_prefix[strtolower($name)] = "Component.{$name}"; self::$component_names[$name] = "Component_{$name}"; if (is_string($mapper)) { $mapper = Core::make($mapper); } if (self::$enable_rest && ($mapper instanceof WS_Services_REST_Application || is_array($mapper))) { $app = is_array($mapper) ? $mapper : array(); if (is_string($mapper)) { $app['class'] = $mapper; } if (is_object($mapper)) { $app['instance'] = $mapper; $mapper->name = $name; } if (!isset($app['prefix'])) { $app['prefix'] = Core_Strings::downcase($name); } self::$dispatcher->map($name, $app); } else { self::$mappers[$name] = $mapper; } self::$layouts[$name] = $layout; $dir = self::component_dir($name); Text_Insertions::filter()->add_views_paths(array($dir . '/app/views', $dir . '/views')); Events::call('cms.add_component', $name, $mapper, $layout); }
protected function setup() { $dir = $this->dir(); Text_Insertions::filter()->add_views_paths(array($dir . '/app/views', $dir . '/views')); }
protected function filter_custom($content) { return Text_Insertions::filter()->process($content, array('layout' => $this)); }