label305/auja-laravel

此包已被废弃,不再维护。没有建议的替代包。

为 Laravel 4 或 5 应用程序设置 Auja 的库。Auja 是一个易于使用、易于实现的用于管理数据的后台界面。

v3.0.0-alpha2 2014-12-16 10:55 UTC

This package is not auto-updated.

Last update: 2020-02-21 16:02:01 UTC


README

弃用

此仓库将不再维护,并将在 2017 年初被删除。

关于

Build Status Coverage Status Dependency Status Latest Stable Version Total Downloads Latest Unstable Version

Auja 是一个易于使用、易于实现的 admin 界面。它提供了一个简单直观的方式来查看和操作您的数据,这样您可以专注于更重要的事情。Auja 设计得既用户友好又开发者友好,通过提供一些工具,您可以在几分钟内设置您的 admin 界面。

Auja JavaScript 前端 提供图形用户界面。为了确定其内容,它依赖于您实现的 JSON 网络服务。Auja-PHP 反过来,提供了一个面向对象的方法来从 PHP 应用程序提供这些 JSON 消息。在这个存储库中,您将找到一个 Laravel 实现,您可以将其用于您的 Laravel 项目。

Auja Screenshot

相关仓库

安装和设置

由于 Auja 使用了 PHP 后端库和 JavaScript 前端库,因此安装 Auja 需要一些额外的步骤,这可能与您习惯的其他库不同。

  1. 设置 Laravel 以与 Bower 和 Gulp 一起工作(如果您还没有这样做的话)。这在 Laravel 5 中默认完成,但您仍需要使用 bowergulp 全局安装 npm

  2. 修改 gulpfile.js,以确保在运行 gulp 时将所有 Auja 的资源和脚本放置在正确的文件夹中。

    var elixir = require('laravel-elixir');
    
    elixir(function(mix) {
        mix
        // .sass('app.scss') // included in Laravel 5 but not manditory
        .copy('auja/auja.min.js', 'public/js/vendor/auja.js')
        .copy('auja/auja.css', 'public/css/vendor/auja.css')
        .copy('trumbowyg/dist/ui/trumbowyg.min.css', 'public/css/vendor/trumbowyg.css')
        .copy('Ionicons/css/ionicons.min.css', 'public/css/vendor/ionicons.css')
        .copy('Ionicons/fonts/ionicons.ttf', 'public/css/fonts/ionicons.ttf')
        .copy('Ionicons/fonts/ionicons.woff', 'public/css/fonts/ionicons.woff')
        .copy('animate.css/animate.min.css', 'public/css/vendor/animate.css');
    });
  3. 通过 bower 安装 Auja JavaScript 文件。通过 bower 安装时,gulp 命令会自动由 bower 调用。

    $ bower install auja
  4. 通过 composer 安装 Auja Laravel 库。此库依赖于 Auja-PHP,它是与 JavaScript 前端通信的 API 包装器。

    $ composer require label305/auja-laravel:dev-dev
  5. 发布 Auja 配置文件和主视图

    $ php artisan config:publish label305/auja-laravel
    $ php artisan view:publish label305/auja-laravel
  6. AdminServiceProviderAujaFacadeAujaRouteFacade 添加到您的 app.php 配置文件中。

    'providers' => [
        ...
        'YourApp\Providers\AdminServiceProvider',
    ],
    'aliases' => [
        ...
        'Auja' => 'Label305\AujaLaravel\Facade\AujaFacade',
        'AujaRoute' => 'Label305\AujaLaravel\Facade\AujaRouteFacade',
    ],
  7. 自定义 auja-laravel/config.php 文件,并指定要包含在 Admin 界面中的模型。

  8. 创建 app/controllers/Admin/ClubsController.phpapp/Http/Controllers/Admin/ClubsController.php,以在 admin 界面中管理 Clubs。您可以为此做所有模型。以下是一个示例

    <?php namespace YourApp\Http\Controllers\Admin;
    
    use Illuminate\Routing\Controller;
    
    class ClubsController extends Controller {
    
        public function index()
        {
            if (Input::has('q')) {
                $items = Club::where('title', 'LIKE', sprintf('%%%s%%', Input::get('q')))->simplePaginate(10);
            } else {
                $items = Club::simplePaginate(10);
            }
    
            $linkTarget = urldecode(URL::route(AujaRoute::getEditName('Club'), '%d'));
    
            return Response::json(
                Auja::itemsFor($this, $items, $linkTarget)
            );
        }
    
        public function store()
        {
            Club::create(Input::all());
            return Response::json(
                new Message()
            );
        }
    
        public function update($id)
        {
            $page = Club::find($id);
            $page->fill(Input::all());
            $page->save();
    
            return Response::json(
                new Message()
            );
        }
    
        public function delete($id)
        {
            $page = Club::find($id);
            $page->delete($id);
    
            return Response::json(
                new Message()
            );
        }
    }
  9. 现在设置管理面板的路由。

```php
AujaRoute::group(['before'=> 'auth'], function() {

    AujaRoute::resource('Club', 'YourApp\Http\Controllers\Admin\ClubsController');
    AujaRoute::resource('Team', 'YourApp\Http\Controllers\Admin\TeamsController');
});
```
  1. 提示:将以下行添加到您的 .gitignore
```
node_modules
/public/css/vendor
/public/js/vendor
```

配置Laravel使用Bower和Gulp

  1. 请确保已安装node.js和npm

  2. 安装bowergulp

    $ npm install -g bower gulp
  3. 请确保您已经为Laravel和gulp设置了.bowerrc文件。顺便说一句,这些是Laravel 5的默认值,但也可以在其他版本上使用。

    {
        "directory": "vendor/bower_components",
        "scripts": {
            "postinstall": "gulp publish"
        }
    }
  4. 安装Laravel 5默认包含的javascript依赖项。如果您使用其他版本,请将package.json文件添加到项目根目录。

    {
        "devDependencies": {
            "gulp": "^3.8.8",
            "laravel-elixir": "*"
        }
    }

    然后运行

    $ npm install
  5. 在项目根目录中设置gulpfile.js

    var elixir = require('laravel-elixir');
    
    elixir(function(mix) {
        // mix.sass('app.scss'); // included in Laravel 5 but not manditory
    });
  6. 现在您已经设置好了。Laravel 5还包括一个bower.json文件,但放置此文件对于其他版本不是必需的。

    {
        "name": "Laravel Application",
        "dependencies": {
            "bootstrap-sass-official": "~3.3.1",
            "font-awesome": "~4.2.0",
            "auja": "~3.0.0"
        }
    }

自定义模型配置

您可以在Auja配置文件中为models键提供自己的ModelConfig子类。这样,您可以自定义icons等。

  1. 创建一个新的类,该类扩展了ModelConfig,例如UserConfig

    class UserConfig extends ModelConfig {
    
        public function getModelClass()
        {
            return 'User';
        }
    
        public function getIcon()
        {
            return Icons::ion_ios7_person;
        }
    
        public function isSearchable()
        {
            return false;
        }
    }
  2. 修改auja-laravel/config.php文件以引用此新类。

    'models' => [
        ...
        'YourApp\Admin\Configurations\UserConfig'
    ],

自定义Auja支持控制器

默认情况下,Auja提供了一个默认的支持控制器来处理身份验证和提供主接口清单。如果您想使用自己的AujaSupportController来处理身份验证,您可以实现自己的。创建一个YourSupportController.php。此文件包含有关管理员区域应包含哪些信息和管理员如何进行身份验证的信息。

  1. 在配置中将route设置为null,并创建自己的控制器路由。

    AujaRoute::group(['prefix' => 'admin'], function() {
        AujaRoute::support('YourApp\Http\Controllers\Admin\YourSupportController');
    });
    
    AujaRoute::group(['before'=> 'auth', 'prefix' => 'admin'], function() {
        AujaRoute::resource('Club', 'YourApp\Http\Controllers\Admin\ClubsController');
        AujaRoute::resource('Team', 'YourApp\Http\Controllers\Admin\TeamsController');
    });
  2. 创建YourSupportController.php文件,并确保它实现了AujaSupportControllerInterface

    <?php namespace YourApp\Http\Controllers\Admin;
    
    use Illuminate\Routing\Controller;
    use Label305\Auja\Shared\Message;
    
    class YourSupportController extends Controller implements AujaSupportControllerInterface {
    
        public function index()
        {
            return View::make('auja-laravel::admin/index');
        }
    
        public function manifest()
        {
            $username = Auth::user() == null ? null : Auth::user()->name;
            $authenticationForm = Auja::authenticationForm('Welcome Administrator!', 'admin/login');
    
            $main = Auja::main(
                'Your Awesome App',
                Auth::check(),
                $username,
                'admin/logout',
                $authenticationForm
            );
    
            $main->setColor(Main::COLOR_MAIN, '#00FF00');
            $main->setColor(Main::COLOR_ALERT, '#00FF00');
            $main->setColor(Main::COLOR_SECONDARY, '#666666');
    
            return Response::json($main);
        }
    
        public function login()
        {
            Auth::attempt(['email' => Input::get('email'), 'password' => Input::get('password')]);
    
            $message = new Message();
            $message->setAuthenticated(Auth::check());
            return Response::json($message);
        }
    
        public function logout()
        {
            Auth::logout();
            return Redirect::to('admin');
        }
    }

许可证

版权所有 2014 Label305 B.V.

根据Apache许可证版本2.0(“许可证”)授权;除非符合许可证规定或书面同意,否则不得使用此文件。您可以在以下位置获得许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言规定,请参阅许可证。