snowfire/snowfire-app

此包最新版本(1.0)没有提供许可证信息。

1.0 2015-02-10 09:26 UTC

This package is auto-updated.

Last update: 2024-09-10 19:06:12 UTC


README

此包可以使您的Laravel应用连接到Snowfire。

安装此包

将此添加到您的composer.json文件中

"snowfire/snowfire-app": "dev-master"

将此添加到您的config/app.php中的服务提供者

'Snowfire\App\SnowfireServiceProvider'

将此添加到您的app/Http/Kernel.php中的路由中间件

'snowfire' => 'Snowfire\App\Middleware\SnowfireMiddleware',
'snowfireAdmin' => 'Snowfire\App\Middleware\SnowfireAdminMiddleware',

发布配置文件

$ php artisan vendor:publish

为Snowfire安装创建数据库表

$ php artisan migrate

填充数据

将此添加到您的DatabaseSeeder.php文件

$this->call('\Snowfire\App\Storage\Seeder');

CSRF保护

如果您在app/Http/Kernel.php中启用了CSRF中间件,请打开app/Http/Middleware/VerifyCsrfToken.php并添加以下内容到handle方法中

if ($request->header('User-Agent') == 'Snowfire')
{
	return $next($request);
}

集成可能性

有两种不同的方式将您的应用连接到Snowfire。作为管理区域中的链接和作为公开操作。

示例

假设您有一系列事件。一个公开操作可能像http://your-app.com/events/all这样的链接,它将渲染一个HTML <ul> 列表。然后您将有一个从Snowfire到http://your-app.com/admin的管理链接,允许用户添加/编辑/删除事件。

首先将您的操作添加到config/snowfire_app.php

return [
	'id' => 'demo_app',
	'name' => 'Demo app',
	'tab' => 'admin',
	'actions' => [
		'events' => 'action.events.index',
		'event' => 'action.events.show',
	]
];

此配置将管理链接添加为名为snowfire.tab的命名路由,并为所有事件添加一个路由。标签和操作都是可选的(但您需要其中之一,对吧?)

您的routes.php文件

// Admin routes
Route::group(['prefix' => 'admin/{snowfireAppId}', 'before' => 'snowfireAppAuth', 'namespace' => 'Admin'], function()
{
	Route::get('/', ['as' => 'admin.index', function($appId)
    {
        return 'Admin for appId: ' . $appId;
    }]);

});

// Action routes
Route::group(['namespace' => 'Action'], function()
{
	Route::get('events', ['uses' => 'EventsController@index', 'as' => 'action.events.index']);
	Route::get('events/{id}', ['uses' => 'EventsController@event', 'as' => 'action.events.show']);
});

这创建了一个管理路由和一个公开操作。管理路由背后有一个snowfireAppAuth过滤器,确保用户已登录且受信任。

您的Snowfire片段到公开事件列表

登录Snowfire并安装应用(系统 -> 应用)

http://your-hosted-app.com/snowfire/install

使用此代码创建一个新的片段

<?xml version="1.0" encoding="utf-8"?>
<snippet>
    <name>All events</name>
    <html><![CDATA[
		{ com_application2 (
            id: '{{ component_id_0 }}',
            description: 'Demo App',
            app: 'demo_app',
            action: 'events',
            debug: 'true'
        ) }
	]]></html>
</snippet>

警告:将应用添加到根/(即主页)目前不受支持。请创建一个子页面以添加您的应用。

现在只需将片段添加到页面,它将显示事件列表。

链接

当您在Snowfire内部渲染的操作中工作时,您需要使用

<a href="{{ Snowfire::route('my.route') }}">A linked route</a>

这将确保链接在Snowfire内部正常工作。