mirror of
https://github.com/flarum/framework.git
synced 2025-02-06 21:30:45 +08:00
parent
833056dd68
commit
25c8ab0a35
|
@ -16,6 +16,7 @@ use Flarum\Frontend\Assets;
|
||||||
use Flarum\Frontend\Compiler\Source\SourceCollector;
|
use Flarum\Frontend\Compiler\Source\SourceCollector;
|
||||||
use Flarum\Frontend\Frontend as ActualFrontend;
|
use Flarum\Frontend\Frontend as ActualFrontend;
|
||||||
use Flarum\Frontend\RecompileFrontendAssets;
|
use Flarum\Frontend\RecompileFrontendAssets;
|
||||||
|
use Flarum\Http\RouteCollection;
|
||||||
use Flarum\Http\RouteHandlerFactory;
|
use Flarum\Http\RouteHandlerFactory;
|
||||||
use Illuminate\Contracts\Container\Container;
|
use Illuminate\Contracts\Container\Container;
|
||||||
|
|
||||||
|
@ -122,15 +123,20 @@ class Frontend implements ExtenderInterface
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$routes = $container->make("flarum.$this->frontend.routes");
|
$container->resolving(
|
||||||
$factory = $container->make(RouteHandlerFactory::class);
|
"flarum.{$this->frontend}.routes",
|
||||||
|
function (RouteCollection $collection, Container $container) {
|
||||||
|
/** @var RouteHandlerFactory $factory */
|
||||||
|
$factory = $container->make(RouteHandlerFactory::class);
|
||||||
|
|
||||||
foreach ($this->routes as $route) {
|
foreach ($this->routes as $route) {
|
||||||
$routes->get(
|
$collection->get(
|
||||||
$route['path'], $route['name'],
|
$route['path'], $route['name'],
|
||||||
$factory->toFrontend($this->frontend, $route['content'])
|
$factory->toFrontend($this->frontend, $route['content'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function registerContent(Container $container)
|
private function registerContent(Container $container)
|
||||||
|
|
|
@ -37,8 +37,16 @@ class LanguagePack implements ExtenderInterface, LifecycleInterface
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var LocaleManager $locales */
|
$container->resolving(
|
||||||
$locales = $container->make(LocaleManager::class);
|
LocaleManager::class,
|
||||||
|
function (LocaleManager $locales) use ($extension, $locale, $title) {
|
||||||
|
$this->registerLocale($locales, $extension, $locale, $title);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function registerLocale(LocaleManager $locales, Extension $extension, $locale, $title)
|
||||||
|
{
|
||||||
$locales->addLocale($locale, $title);
|
$locales->addLocale($locale, $title);
|
||||||
|
|
||||||
$directory = $extension->getPath().'/locale';
|
$directory = $extension->getPath().'/locale';
|
||||||
|
|
|
@ -27,33 +27,35 @@ class Locales implements ExtenderInterface, LifecycleInterface
|
||||||
|
|
||||||
public function extend(Container $container, Extension $extension = null)
|
public function extend(Container $container, Extension $extension = null)
|
||||||
{
|
{
|
||||||
/** @var LocaleManager $locales */
|
$container->resolving(
|
||||||
$locales = $container->make(LocaleManager::class);
|
LocaleManager::class,
|
||||||
|
function (LocaleManager $locales) {
|
||||||
|
foreach (new DirectoryIterator($this->directory) as $file) {
|
||||||
|
if (! $file->isFile()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (new DirectoryIterator($this->directory) as $file) {
|
$extension = $file->getExtension();
|
||||||
if (! $file->isFile()) {
|
if (! in_array($extension, ['yml', 'yaml'])) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$locales->addTranslations(
|
||||||
|
$file->getBasename(".$extension"),
|
||||||
|
$file->getPathname()
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
);
|
||||||
$extension = $file->getExtension();
|
|
||||||
if (! in_array($extension, ['yml', 'yaml'])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$locales->addTranslations(
|
|
||||||
$file->getBasename(".$extension"),
|
|
||||||
$file->getPathname()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onEnable(Container $container, Extension $extension)
|
public function onEnable(Container $container, Extension $extension)
|
||||||
{
|
{
|
||||||
$container->make('flarum.locales')->clearCache();
|
$container->make(LocaleManager::class)->clearCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onDisable(Container $container, Extension $extension)
|
public function onDisable(Container $container, Extension $extension)
|
||||||
{
|
{
|
||||||
$container->make('flarum.locales')->clearCache();
|
$container->make(LocaleManager::class)->clearCache();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
namespace Flarum\Extend;
|
namespace Flarum\Extend;
|
||||||
|
|
||||||
use Flarum\Extension\Extension;
|
use Flarum\Extension\Extension;
|
||||||
|
use Flarum\Http\RouteCollection;
|
||||||
use Flarum\Http\RouteHandlerFactory;
|
use Flarum\Http\RouteHandlerFactory;
|
||||||
use Illuminate\Contracts\Container\Container;
|
use Illuminate\Contracts\Container\Container;
|
||||||
|
|
||||||
|
@ -69,19 +70,21 @@ class Routes implements ExtenderInterface
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var \Flarum\Http\RouteCollection $collection */
|
$container->resolving(
|
||||||
$collection = $container->make("flarum.{$this->appName}.routes");
|
"flarum.{$this->appName}.routes",
|
||||||
|
function (RouteCollection $collection, Container $container) {
|
||||||
|
/** @var RouteHandlerFactory $factory */
|
||||||
|
$factory = $container->make(RouteHandlerFactory::class);
|
||||||
|
|
||||||
/** @var RouteHandlerFactory $factory */
|
foreach ($this->routes as $route) {
|
||||||
$factory = $container->make(RouteHandlerFactory::class);
|
$collection->addRoute(
|
||||||
|
$route['method'],
|
||||||
foreach ($this->routes as $route) {
|
$route['path'],
|
||||||
$collection->addRoute(
|
$route['name'],
|
||||||
$route['method'],
|
$factory->toController($route['handler'])
|
||||||
$route['path'],
|
);
|
||||||
$route['name'],
|
}
|
||||||
$factory->toController($route['handler'])
|
}
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user