├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── build
├── pull.sh
└── push.sh
├── composer.json
├── fixture
├── .env.example
├── .gitattributes
├── .gitignore
├── Modules
│ ├── Blog
│ │ ├── Assets
│ │ │ └── .gitkeep
│ │ ├── Config
│ │ │ └── .gitkeep
│ │ ├── Console
│ │ │ └── .gitkeep
│ │ ├── Database
│ │ │ ├── Migrations
│ │ │ │ └── .gitkeep
│ │ │ └── Seeders
│ │ │ │ ├── .gitkeep
│ │ │ │ └── BlogDatabaseSeeder.php
│ │ ├── Entities
│ │ │ └── .gitkeep
│ │ ├── Http
│ │ │ ├── Controllers
│ │ │ │ ├── .gitkeep
│ │ │ │ └── BlogController.php
│ │ │ ├── Filters
│ │ │ │ └── .gitkeep
│ │ │ ├── Requests
│ │ │ │ └── .gitkeep
│ │ │ └── routes.php
│ │ ├── Providers
│ │ │ ├── .gitkeep
│ │ │ └── BlogServiceProvider.php
│ │ ├── Repositories
│ │ │ └── .gitkeep
│ │ ├── Resources
│ │ │ ├── lang
│ │ │ │ └── .gitkeep
│ │ │ └── views
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── index.blade.php
│ │ │ │ └── layouts
│ │ │ │ └── master.blade.php
│ │ ├── Tests
│ │ │ └── .gitkeep
│ │ ├── composer.json
│ │ ├── module.json
│ │ └── start.php
│ └── User
│ │ ├── Assets
│ │ └── .gitkeep
│ │ ├── Config
│ │ └── .gitkeep
│ │ ├── Console
│ │ └── .gitkeep
│ │ ├── Database
│ │ ├── Migrations
│ │ │ └── .gitkeep
│ │ └── Seeders
│ │ │ ├── .gitkeep
│ │ │ └── UserDatabaseSeeder.php
│ │ ├── Entities
│ │ └── .gitkeep
│ │ ├── Http
│ │ ├── Controllers
│ │ │ ├── .gitkeep
│ │ │ └── UserController.php
│ │ ├── Filters
│ │ │ └── .gitkeep
│ │ ├── Requests
│ │ │ └── .gitkeep
│ │ └── routes.php
│ │ ├── Providers
│ │ ├── .gitkeep
│ │ └── UserServiceProvider.php
│ │ ├── Repositories
│ │ └── .gitkeep
│ │ ├── Resources
│ │ ├── lang
│ │ │ └── .gitkeep
│ │ └── views
│ │ │ ├── .gitkeep
│ │ │ ├── index.blade.php
│ │ │ └── layouts
│ │ │ └── master.blade.php
│ │ ├── Tests
│ │ └── .gitkeep
│ │ ├── composer.json
│ │ ├── module.json
│ │ └── start.php
├── app
│ ├── Commands
│ │ └── Command.php
│ ├── Console
│ │ ├── Commands
│ │ │ └── Inspire.php
│ │ └── Kernel.php
│ ├── Events
│ │ └── Event.php
│ ├── Exceptions
│ │ └── Handler.php
│ ├── Handlers
│ │ ├── Commands
│ │ │ └── .gitkeep
│ │ └── Events
│ │ │ └── .gitkeep
│ ├── Http
│ │ ├── Controllers
│ │ │ ├── Auth
│ │ │ │ ├── AuthController.php
│ │ │ │ └── PasswordController.php
│ │ │ ├── Controller.php
│ │ │ ├── HomeController.php
│ │ │ └── WelcomeController.php
│ │ ├── Kernel.php
│ │ ├── Middleware
│ │ │ ├── Authenticate.php
│ │ │ ├── RedirectIfAuthenticated.php
│ │ │ └── VerifyCsrfToken.php
│ │ ├── Requests
│ │ │ └── Request.php
│ │ └── routes.php
│ ├── Providers
│ │ ├── AppServiceProvider.php
│ │ ├── BusServiceProvider.php
│ │ ├── ConfigServiceProvider.php
│ │ ├── EventServiceProvider.php
│ │ └── RouteServiceProvider.php
│ ├── Services
│ │ └── Registrar.php
│ └── User.php
├── artisan
├── composer.json
├── config
│ ├── app.php
│ ├── auth.php
│ ├── cache.php
│ ├── compile.php
│ ├── database.php
│ ├── filesystems.php
│ ├── mail.php
│ ├── queue.php
│ ├── services.php
│ ├── session.php
│ └── view.php
├── database
│ ├── .gitignore
│ ├── migrations
│ │ ├── .gitkeep
│ │ ├── 2014_10_12_000000_create_users_table.php
│ │ └── 2014_10_12_100000_create_password_resets_table.php
│ └── seeds
│ │ ├── .gitkeep
│ │ └── DatabaseSeeder.php
├── generators
│ └── .gitignore
├── gulpfile.js
├── package.json
├── phpspec.yml
├── phpunit.xml
├── public
│ ├── .htaccess
│ ├── css
│ │ └── app.css
│ ├── favicon.ico
│ ├── index.php
│ └── robots.txt
├── readme.md
├── resources
│ ├── assets
│ │ └── less
│ │ │ ├── app.less
│ │ │ └── bootstrap
│ │ │ ├── alerts.less
│ │ │ ├── badges.less
│ │ │ ├── bootstrap.less
│ │ │ ├── breadcrumbs.less
│ │ │ ├── button-groups.less
│ │ │ ├── buttons.less
│ │ │ ├── carousel.less
│ │ │ ├── close.less
│ │ │ ├── code.less
│ │ │ ├── component-animations.less
│ │ │ ├── dropdowns.less
│ │ │ ├── forms.less
│ │ │ ├── glyphicons.less
│ │ │ ├── grid.less
│ │ │ ├── input-groups.less
│ │ │ ├── jumbotron.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── media.less
│ │ │ ├── mixins.less
│ │ │ ├── mixins
│ │ │ ├── alerts.less
│ │ │ ├── background-variant.less
│ │ │ ├── border-radius.less
│ │ │ ├── buttons.less
│ │ │ ├── center-block.less
│ │ │ ├── clearfix.less
│ │ │ ├── forms.less
│ │ │ ├── gradients.less
│ │ │ ├── grid-framework.less
│ │ │ ├── grid.less
│ │ │ ├── hide-text.less
│ │ │ ├── image.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── nav-divider.less
│ │ │ ├── nav-vertical-align.less
│ │ │ ├── opacity.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── progress-bar.less
│ │ │ ├── reset-filter.less
│ │ │ ├── resize.less
│ │ │ ├── responsive-visibility.less
│ │ │ ├── size.less
│ │ │ ├── tab-focus.less
│ │ │ ├── table-row.less
│ │ │ ├── text-emphasis.less
│ │ │ ├── text-overflow.less
│ │ │ └── vendor-prefixes.less
│ │ │ ├── modals.less
│ │ │ ├── navbar.less
│ │ │ ├── navs.less
│ │ │ ├── normalize.less
│ │ │ ├── pager.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── popovers.less
│ │ │ ├── print.less
│ │ │ ├── progress-bars.less
│ │ │ ├── responsive-embed.less
│ │ │ ├── responsive-utilities.less
│ │ │ ├── scaffolding.less
│ │ │ ├── tables.less
│ │ │ ├── theme.less
│ │ │ ├── thumbnails.less
│ │ │ ├── tooltip.less
│ │ │ ├── type.less
│ │ │ ├── utilities.less
│ │ │ ├── variables.less
│ │ │ └── wells.less
│ ├── lang
│ │ └── en
│ │ │ ├── pagination.php
│ │ │ ├── passwords.php
│ │ │ └── validation.php
│ └── views
│ │ ├── app.blade.php
│ │ ├── auth
│ │ ├── login.blade.php
│ │ ├── password.blade.php
│ │ ├── register.blade.php
│ │ └── reset.blade.php
│ │ ├── emails
│ │ └── password.blade.php
│ │ ├── errors
│ │ └── 503.blade.php
│ │ ├── home.blade.php
│ │ ├── vendor
│ │ └── .gitkeep
│ │ └── welcome.blade.php
├── server.php
├── storage
│ ├── .gitignore
│ ├── app
│ │ └── .gitignore
│ ├── framework
│ │ ├── .gitignore
│ │ ├── cache
│ │ │ └── .gitignore
│ │ ├── sessions
│ │ │ └── .gitignore
│ │ └── views
│ │ │ └── .gitignore
│ └── logs
│ │ └── .gitignore
├── tests
│ ├── ExampleTest.php
│ └── TestCase.php
├── themes
│ └── default
│ │ ├── config
│ │ └── config.php
│ │ ├── lang
│ │ └── en
│ │ │ └── theme.php
│ │ ├── theme.json
│ │ └── views
│ │ └── index.php
└── vendor
│ └── .gitignore
├── phpunit.xml
├── src
└── Pingpong
│ ├── Generators
│ ├── .gitignore
│ ├── Console
│ │ ├── ConsoleCommand.php
│ │ ├── ControllerCommand.php
│ │ ├── FormCommand.php
│ │ ├── MigrationCommand.php
│ │ ├── ModelCommand.php
│ │ ├── PivotCommand.php
│ │ ├── RequestCommand.php
│ │ ├── ScaffoldCommand.php
│ │ ├── SeedCommand.php
│ │ └── ViewCommand.php
│ ├── ConsoleGenerator.php
│ ├── ControllerGenerator.php
│ ├── FileAlreadyExistsException.php
│ ├── FormDumpers
│ │ ├── FieldsDumper.php
│ │ ├── StubTrait.php
│ │ └── TableDumper.php
│ ├── FormGenerator.php
│ ├── Generator.php
│ ├── GeneratorsServiceProvider.php
│ ├── LICENSE
│ ├── MigrationGenerator.php
│ ├── Migrations
│ │ ├── NameParser.php
│ │ └── SchemaParser.php
│ ├── ModelGenerator.php
│ ├── PivotGenerator.php
│ ├── README.md
│ ├── RequestGenerator.php
│ ├── ScaffoldGenerator.php
│ ├── Scaffolders
│ │ └── ControllerScaffolder.php
│ ├── SeedGenerator.php
│ ├── Stub.php
│ ├── Stubs
│ │ ├── blank.stub
│ │ ├── console.stub
│ │ ├── controller
│ │ │ ├── plain.stub
│ │ │ ├── resource.stub
│ │ │ └── scaffold.stub
│ │ ├── filter.stub
│ │ ├── form
│ │ │ ├── checkbox.stub
│ │ │ ├── email.stub
│ │ │ ├── input.stub
│ │ │ ├── password.stub
│ │ │ ├── radio.stub
│ │ │ ├── select.stub
│ │ │ ├── text.stub
│ │ │ └── textarea.stub
│ │ ├── migration
│ │ │ ├── add.stub
│ │ │ ├── create.stub
│ │ │ ├── delete.stub
│ │ │ ├── drop.stub
│ │ │ ├── pivot.stub
│ │ │ └── plain.stub
│ │ ├── model.stub
│ │ ├── provider.stub
│ │ ├── request.stub
│ │ ├── scaffold
│ │ │ ├── row.stub
│ │ │ └── views
│ │ │ │ ├── create.stub
│ │ │ │ ├── edit.stub
│ │ │ │ ├── form.stub
│ │ │ │ ├── index.stub
│ │ │ │ └── show.stub
│ │ ├── seed.stub
│ │ ├── view.stub
│ │ └── views
│ │ │ └── master.stub
│ ├── ViewGenerator.php
│ ├── composer.json
│ └── config.php
│ ├── Menus
│ ├── .gitignore
│ ├── LICENSE
│ ├── Menu.php
│ ├── MenuBuilder.php
│ ├── MenuFacade.php
│ ├── MenuItem.php
│ ├── MenusServiceProvider.php
│ ├── Presenters
│ │ ├── Bootstrap
│ │ │ ├── NavMenuPresenter.php
│ │ │ ├── NavPillsPresenter.php
│ │ │ ├── NavTabPresenter.php
│ │ │ ├── NavbarPresenter.php
│ │ │ ├── NavbarRightPresenter.php
│ │ │ └── SidebarMenuPresenter.php
│ │ ├── Presenter.php
│ │ └── PresenterInterface.php
│ ├── README.md
│ ├── composer.json
│ ├── shots
│ │ └── multilevel-menu-pingpong.png
│ └── src
│ │ ├── config
│ │ └── config.php
│ │ └── views
│ │ ├── child
│ │ ├── dropdown.blade.php
│ │ └── item.blade.php
│ │ ├── default.blade.php
│ │ ├── item
│ │ ├── dropdown.blade.php
│ │ └── item.blade.php
│ │ ├── menu.blade.php
│ │ ├── nav-pills-justified.blade.php
│ │ ├── nav-pills-stacked.blade.php
│ │ ├── nav-pills.blade.php
│ │ ├── nav-tabs-justified.blade.php
│ │ ├── nav-tabs.blade.php
│ │ ├── navbar-left.blade.php
│ │ ├── navbar-right.blade.php
│ │ └── style.blade.php
│ ├── Modules
│ ├── .gitignore
│ ├── Collection.php
│ ├── Commands
│ │ ├── CommandCommand.php
│ │ ├── ControllerCommand.php
│ │ ├── DisableCommand.php
│ │ ├── DumpCommand.php
│ │ ├── EnableCommand.php
│ │ ├── GenerateFilterCommand.php
│ │ ├── GenerateProviderCommand.php
│ │ ├── GenerateRouteProviderCommand.php
│ │ ├── GeneratorCommand.php
│ │ ├── InstallCommand.php
│ │ ├── ListCommand.php
│ │ ├── MakeCommand.php
│ │ ├── MakeRequestCommand.php
│ │ ├── MigrateCommand.php
│ │ ├── MigrateRefreshCommand.php
│ │ ├── MigrateResetCommand.php
│ │ ├── MigrateRollbackCommand.php
│ │ ├── MigrationCommand.php
│ │ ├── ModelCommand.php
│ │ ├── PublishCommand.php
│ │ ├── PublishMigrationCommand.php
│ │ ├── PublishTranslationCommand.php
│ │ ├── SeedCommand.php
│ │ ├── SeedMakeCommand.php
│ │ ├── SetupCommand.php
│ │ ├── UpdateCommand.php
│ │ ├── UseCommand.php
│ │ └── stubs
│ │ │ ├── command.stub
│ │ │ ├── composer.stub
│ │ │ ├── controller.stub
│ │ │ ├── filter.stub
│ │ │ ├── json.stub
│ │ │ ├── migration
│ │ │ ├── add.stub
│ │ │ ├── create.stub
│ │ │ ├── delete.stub
│ │ │ ├── drop.stub
│ │ │ └── plain.stub
│ │ │ ├── model.stub
│ │ │ ├── provider.stub
│ │ │ ├── request.stub
│ │ │ ├── route-provider.stub
│ │ │ ├── routes.stub
│ │ │ ├── scaffold
│ │ │ ├── config.stub
│ │ │ └── provider.stub
│ │ │ ├── seeder.stub
│ │ │ ├── start.stub
│ │ │ └── views
│ │ │ ├── index.stub
│ │ │ └── master.stub
│ ├── Contracts
│ │ ├── PublisherInterface.php
│ │ ├── RepositoryInterface.php
│ │ └── RunableInterface.php
│ ├── Exceptions
│ │ └── ModuleNotFoundException.php
│ ├── Facades
│ │ └── Module.php
│ ├── Generators
│ │ ├── FileGenerator.php
│ │ ├── Generator.php
│ │ └── ModuleGenerator.php
│ ├── Json.php
│ ├── LICENSE
│ ├── Migrations
│ │ └── Migrator.php
│ ├── Module.php
│ ├── ModulesServiceProvider.php
│ ├── Process
│ │ ├── Installer.php
│ │ ├── Runner.php
│ │ └── Updater.php
│ ├── Providers
│ │ ├── BootstrapServiceProvider.php
│ │ ├── ConsoleServiceProvider.php
│ │ └── ContractsServiceProvider.php
│ ├── Publishing
│ │ ├── AssetPublisher.php
│ │ ├── LangPublisher.php
│ │ ├── MigrationPublisher.php
│ │ └── Publisher.php
│ ├── README.md
│ ├── Repository.php
│ ├── Routing
│ │ └── Controller.php
│ ├── Starter.php
│ ├── Traits
│ │ ├── MigrationLoaderTrait.php
│ │ └── ModuleCommandTrait.php
│ ├── composer.json
│ └── src
│ │ └── config
│ │ └── config.php
│ ├── Presenters
│ ├── .gitignore
│ ├── LICENSE
│ ├── Model.php
│ ├── PresentableInterface.php
│ ├── PresentableTrait.php
│ ├── Presenter.php
│ ├── README.md
│ └── composer.json
│ ├── Shortcode
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── Shortcode.php
│ ├── ShortcodeFacade.php
│ ├── ShortcodeServiceProvider.php
│ └── composer.json
│ ├── Support
│ ├── Json.php
│ ├── Stub.php
│ ├── Traits
│ │ ├── Imageable.php
│ │ └── Publishable.php
│ ├── composer.json
│ └── helpers.php
│ ├── Themes
│ ├── .gitignore
│ ├── Console
│ │ ├── CacheCommand.php
│ │ ├── ListCommand.php
│ │ ├── MakeCommand.php
│ │ ├── PublishCommand.php
│ │ └── stubs
│ │ │ ├── json.stub
│ │ │ ├── theme.stub
│ │ │ └── theme
│ │ │ ├── assets
│ │ │ └── .gitkeep
│ │ │ ├── config
│ │ │ └── config.php
│ │ │ ├── lang
│ │ │ └── en
│ │ │ │ └── .gitkeep
│ │ │ └── views
│ │ │ └── .gitkeep
│ ├── Finder.php
│ ├── LICENSE
│ ├── README.md
│ ├── Repository.php
│ ├── Theme.php
│ ├── ThemeFacade.php
│ ├── ThemesServiceProvider.php
│ ├── composer.json
│ ├── helpers.php
│ └── src
│ │ └── config
│ │ ├── .gitkeep
│ │ └── config.php
│ ├── Trusty
│ ├── .gitignore
│ ├── Exceptions
│ │ ├── ForbiddenException.php
│ │ └── PermissionDeniedException.php
│ ├── Facades
│ │ └── Trusty.php
│ ├── LICENSE
│ ├── Permission.php
│ ├── README.md
│ ├── Role.php
│ ├── Traits
│ │ ├── PermissionTrait.php
│ │ ├── SlugableTrait.php
│ │ └── TrustyTrait.php
│ ├── Trusty.php
│ ├── TrustyServiceProvider.php
│ ├── composer.json
│ └── src
│ │ ├── config
│ │ └── config.php
│ │ └── migrations
│ │ ├── .gitkeep
│ │ ├── 2014_11_02_051938_create_roles_table.php
│ │ ├── 2014_11_02_052125_create_permissions_table.php
│ │ ├── 2014_11_02_052410_create_role_user_table.php
│ │ └── 2014_11_02_092851_create_permission_role_table.php
│ └── Widget
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── Widget.php
│ ├── WidgetFacade.php
│ ├── WidgetServiceProvider.php
│ └── composer.json
└── tests
├── .gitkeep
├── Generators
├── .gitkeep
└── MigrationParserTest.php
├── Menus
├── BuilderTest.php
└── MenuTest.php
├── Modules
├── JsonTest.php
├── RepositoryTest.php
└── test.json
├── PingpongTestCase.php
├── Presenters
└── PresenterTest.php
├── Shortcode
├── FacadeTest.php
└── ShortcodeTest.php
├── Themes
├── .gitkeep
└── ThemeTest.php
├── Trusty
├── .gitkeep
└── TrustyTest.php
└── Widget
└── WidgetTest.php
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | /vendor/
3 | composer.phar
4 | composer.lock
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: php
2 |
3 | php:
4 | - 5.5
5 | - 5.6
6 | - hhvm
7 |
8 | matrix:
9 | allow_failures:
10 | - php: hhvm
11 |
12 | before_script:
13 | - travis_retry composer self-update
14 | - travis_retry composer install --prefer-source --no-interaction --dev
15 |
16 | script: phpunit
17 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015, Pingpong Labs
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * Neither the name of sky nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
29 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Pingpong Sky - An Extra Laravel Component
2 |
3 | [](https://travis-ci.org/pingpong-labs/sky)
4 |
5 | ### Version Compability
6 |
7 | Laravel | Pingpong Sky | PHP | Status
8 | :---------|:-----------------|:-------|:--------
9 | 4.* | 1.0.* |>= 5.4 | Ready
10 | 5.0.* | 2.0.* |>= 5.4 | Ready
11 | 5.1.* | 2.1.* |>= 5.5.9| Ready
12 |
13 | ### Documentation
14 |
15 | Documentation is located [here](http://sky.pingpong-labs.com).
16 |
17 | ### License
18 |
19 | This package is open-sourced software licensed under [The BSD 3-Clause License](http://opensource.org/licenses/BSD-3-Clause)
--------------------------------------------------------------------------------
/build/pull.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | BRANCH=$1
4 |
5 | git pull origin $BRANCH
6 | git subtree pull --prefix=src/Pingpong/Widget git@github.com:pingpong-labs/widget.git $BRANCH --squash
7 | git subtree pull --prefix=src/Pingpong/Shortcode git@github.com:pingpong-labs/shortcode.git $BRANCH --squash
8 | git subtree pull --prefix=src/Pingpong/Menus git@github.com:pingpong-labs/menus.git $BRANCH --squash
9 | git subtree pull --prefix=src/Pingpong/Presenters git@github.com:pingpong-labs/presenters.git $BRANCH --squash
10 | git subtree pull --prefix=src/Pingpong/Modules git@github.com:pingpong-labs/modules.git $BRANCH --squash
11 | git subtree pull --prefix=src/Pingpong/Generators git@github.com:pingpong-labs/generators.git $BRANCH --squash
12 | git subtree pull --prefix=src/Pingpong/Trusty git@github.com:pingpong-labs/trusty.git $BRANCH --squash
13 | git subtree pull --prefix=src/Pingpong/Themes git@github.com:pingpong-labs/themes.git $BRANCH --squash
14 | git subtree pull --prefix=src/Pingpong/Support git@github.com:pingpong-labs/support.git $BRANCH --squash
15 |
--------------------------------------------------------------------------------
/build/push.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | BRANCH=$1
4 |
5 | git push origin $BRANCH
6 | git subtree push --prefix=src/Pingpong/Widget git@github.com:pingpong-labs/widget.git $BRANCH --squash
7 | git subtree push --prefix=src/Pingpong/Shortcode git@github.com:pingpong-labs/shortcode.git $BRANCH --squash
8 | git subtree push --prefix=src/Pingpong/Menus git@github.com:pingpong-labs/menus.git $BRANCH --squash
9 | git subtree push --prefix=src/Pingpong/Presenters git@github.com:pingpong-labs/presenters.git $BRANCH --squash
10 | git subtree push --prefix=src/Pingpong/Modules git@github.com:pingpong-labs/modules.git $BRANCH --squash
11 | git subtree push --prefix=src/Pingpong/Generators git@github.com:pingpong-labs/generators.git $BRANCH --squash
12 | git subtree push --prefix=src/Pingpong/Trusty git@github.com:pingpong-labs/trusty.git $BRANCH --squash
13 | git subtree push --prefix=src/Pingpong/Themes git@github.com:pingpong-labs/themes.git $BRANCH --squash
14 | git subtree push --prefix=src/Pingpong/Support git@github.com:pingpong-labs/support.git $BRANCH --squash
15 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong/sky",
3 | "description": "An Extra Laravel Component",
4 | "license": "BSD-3-Clause",
5 | "homepage": "http://sky.pingpong-labs.com",
6 | "authors": [
7 | {
8 | "name": "Pingpong Labs",
9 | "email": "pingpong.labs@gmail.com"
10 | }
11 | ],
12 | "minimum-stability": "stable",
13 | "require": {
14 | "php": ">=5.4.0",
15 | "laravel/framework": "5.1.*",
16 | "laravelcollective/html": "~5.0",
17 | "doctrine/dbal": "~2.5"
18 | },
19 | "require-dev": {
20 | "mockery/mockery": "~0.9",
21 | "phpunit/phpunit": "~4",
22 | "pingpong/testing": "2.1.*"
23 | },
24 | "autoload": {
25 | "psr-4": {
26 | "Pingpong\\": "src/Pingpong"
27 | },
28 | "classmap": [
29 | "tests/PingpongTestCase.php"
30 | ],
31 | "files": [
32 | "src/Pingpong/Support/helpers.php"
33 | ],
34 | "classmap": [
35 | "tests/PingpongTestCase.php"
36 | ]
37 | },
38 | "suggest": {
39 | "erusev/parsedown-extra": "Required for markdown helper."
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/fixture/.env.example:
--------------------------------------------------------------------------------
1 | APP_ENV=local
2 | APP_DEBUG=true
3 | APP_KEY=SomeRandomString
4 |
5 | DB_HOST=localhost
6 | DB_DATABASE=homestead
7 | DB_USERNAME=homestead
8 | DB_PASSWORD=secret
9 |
10 | CACHE_DRIVER=file
11 | SESSION_DRIVER=file
12 |
--------------------------------------------------------------------------------
/fixture/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 |
--------------------------------------------------------------------------------
/fixture/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | .env
3 |
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Assets/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Config/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Config/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Console/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Console/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Database/Migrations/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Database/Migrations/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Database/Seeders/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Database/Seeders/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Database/Seeders/BlogDatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call("OthersTableSeeder");
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Entities/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Entities/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Http/Controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Http/Controllers/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Http/Controllers/BlogController.php:
--------------------------------------------------------------------------------
1 | 'blog', 'namespace' => 'Modules\Blog\Http\Controllers'], function()
4 | {
5 | Route::get('/', 'BlogController@index');
6 | });
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Providers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Providers/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Providers/BlogServiceProvider.php:
--------------------------------------------------------------------------------
1 | Hello World
6 |
7 | @stop
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Resources/views/layouts/master.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Module Blog
8 |
9 |
10 | @yield('content')
11 |
12 |
--------------------------------------------------------------------------------
/fixture/Modules/Blog/Tests/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/Blog/Tests/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/Blog/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong-modules/blog",
3 | "description": "",
4 | "authors": [
5 | {
6 | "name": "Pingpong Labs",
7 | "email": "pingpong.labs@gmail.com"
8 | }
9 | ],
10 | "autoload": {
11 | "psr-4": {
12 | "Modules\\Blog\\": ""
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/fixture/Modules/Blog/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Blog",
3 | "alias": "blog",
4 | "description": "",
5 | "keywords": [],
6 | "active": 1,
7 | "priority": 0,
8 | "providers": [],
9 | "aliases":{},
10 | "files": [
11 | "start.php"
12 | ]
13 | }
--------------------------------------------------------------------------------
/fixture/Modules/Blog/start.php:
--------------------------------------------------------------------------------
1 | call("OthersTableSeeder");
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/fixture/Modules/User/Entities/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/User/Entities/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/User/Http/Controllers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/User/Http/Controllers/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/User/Http/Controllers/UserController.php:
--------------------------------------------------------------------------------
1 | 'user', 'namespace' => 'Modules\User\Http\Controllers'], function()
4 | {
5 | Route::get('/', 'UserController@index');
6 | });
--------------------------------------------------------------------------------
/fixture/Modules/User/Providers/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/User/Providers/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/User/Providers/UserServiceProvider.php:
--------------------------------------------------------------------------------
1 | Hello World
6 |
7 | @stop
--------------------------------------------------------------------------------
/fixture/Modules/User/Resources/views/layouts/master.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Module User
8 |
9 |
10 | @yield('content')
11 |
12 |
--------------------------------------------------------------------------------
/fixture/Modules/User/Tests/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/Modules/User/Tests/.gitkeep
--------------------------------------------------------------------------------
/fixture/Modules/User/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong-modules/user",
3 | "description": "",
4 | "authors": [
5 | {
6 | "name": "Pingpong Labs",
7 | "email": "pingpong.labs@gmail.com"
8 | }
9 | ],
10 | "autoload": {
11 | "psr-4": {
12 | "Modules\\User\\": ""
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/fixture/Modules/User/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "User",
3 | "alias": "user",
4 | "description": "",
5 | "keywords": [],
6 | "active": 1,
7 | "priority": 0,
8 | "providers": [],
9 | "aliases": [],
10 | "files": [
11 | "start.php"
12 | ]
13 | }
--------------------------------------------------------------------------------
/fixture/Modules/User/start.php:
--------------------------------------------------------------------------------
1 | comment(PHP_EOL.Inspiring::quote().PHP_EOL);
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/fixture/app/Console/Kernel.php:
--------------------------------------------------------------------------------
1 | command('inspire')
26 | ->hourly();
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/fixture/app/Events/Event.php:
--------------------------------------------------------------------------------
1 | isHttpException($e))
40 | {
41 | return $this->renderHttpException($e);
42 | }
43 | else
44 | {
45 | return parent::render($request, $e);
46 | }
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/fixture/app/Handlers/Commands/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/app/Handlers/Commands/.gitkeep
--------------------------------------------------------------------------------
/fixture/app/Handlers/Events/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/app/Handlers/Events/.gitkeep
--------------------------------------------------------------------------------
/fixture/app/Http/Controllers/Auth/AuthController.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
33 | $this->registrar = $registrar;
34 |
35 | $this->middleware('guest', ['except' => 'getLogout']);
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/fixture/app/Http/Controllers/Auth/PasswordController.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
33 | $this->passwords = $passwords;
34 |
35 | $this->middleware('guest');
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/fixture/app/Http/Controllers/Controller.php:
--------------------------------------------------------------------------------
1 | middleware('auth');
24 | }
25 |
26 | /**
27 | * Show the application dashboard to the user.
28 | *
29 | * @return Response
30 | */
31 | public function index()
32 | {
33 | return view('home');
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/fixture/app/Http/Controllers/WelcomeController.php:
--------------------------------------------------------------------------------
1 | middleware('guest');
24 | }
25 |
26 | /**
27 | * Show the application welcome screen to the user.
28 | *
29 | * @return Response
30 | */
31 | public function index()
32 | {
33 | return view('welcome');
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/fixture/app/Http/Kernel.php:
--------------------------------------------------------------------------------
1 | 'App\Http\Middleware\Authenticate',
28 | 'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
29 | 'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
30 | ];
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/fixture/app/Http/Middleware/Authenticate.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
24 | }
25 |
26 | /**
27 | * Handle an incoming request.
28 | *
29 | * @param \Illuminate\Http\Request $request
30 | * @param \Closure $next
31 | * @return mixed
32 | */
33 | public function handle($request, Closure $next)
34 | {
35 | if ($this->auth->guest())
36 | {
37 | if ($request->ajax())
38 | {
39 | return response('Unauthorized.', 401);
40 | }
41 | else
42 | {
43 | return redirect()->guest('auth/login');
44 | }
45 | }
46 |
47 | return $next($request);
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/fixture/app/Http/Middleware/RedirectIfAuthenticated.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
25 | }
26 |
27 | /**
28 | * Handle an incoming request.
29 | *
30 | * @param \Illuminate\Http\Request $request
31 | * @param \Closure $next
32 | * @return mixed
33 | */
34 | public function handle($request, Closure $next)
35 | {
36 | if ($this->auth->check())
37 | {
38 | return new RedirectResponse(url('/home'));
39 | }
40 |
41 | return $next($request);
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/fixture/app/Http/Middleware/VerifyCsrfToken.php:
--------------------------------------------------------------------------------
1 | 'required',
23 | 'password' => 'required',
24 | ];
25 |
26 | $validation = Validator::make($data = Input::all(), $rules);
27 |
28 | if($validation->fails())
29 | {
30 | throw new RuntimeException("Validation failed");
31 | }
32 |
33 | return $data;
34 | });
--------------------------------------------------------------------------------
/fixture/app/Providers/AppServiceProvider.php:
--------------------------------------------------------------------------------
1 | app->bind(
29 | 'Illuminate\Contracts\Auth\Registrar',
30 | 'App\Services\Registrar'
31 | );
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/fixture/app/Providers/BusServiceProvider.php:
--------------------------------------------------------------------------------
1 | mapUsing(function($command)
17 | {
18 | return Dispatcher::simpleMapping(
19 | $command, 'App\Commands', 'App\Handlers\Commands'
20 | );
21 | });
22 | }
23 |
24 | /**
25 | * Register any application services.
26 | *
27 | * @return void
28 | */
29 | public function register()
30 | {
31 | //
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/fixture/app/Providers/ConfigServiceProvider.php:
--------------------------------------------------------------------------------
1 | [
15 | 'EventListener',
16 | ],
17 | ];
18 |
19 | /**
20 | * Register any other events for your application.
21 | *
22 | * @param \Illuminate\Contracts\Events\Dispatcher $events
23 | * @return void
24 | */
25 | public function boot(DispatcherContract $events)
26 | {
27 | parent::boot($events);
28 |
29 | //
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/fixture/app/Providers/RouteServiceProvider.php:
--------------------------------------------------------------------------------
1 | group(['namespace' => $this->namespace], function($router)
39 | {
40 | require app_path('Http/routes.php');
41 | });
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/fixture/app/Services/Registrar.php:
--------------------------------------------------------------------------------
1 | 'required|max:255',
19 | 'email' => 'required|email|max:255|unique:users',
20 | 'password' => 'required|confirmed|min:6',
21 | ]);
22 | }
23 |
24 | /**
25 | * Create a new user instance after a valid registration.
26 | *
27 | * @param array $data
28 | * @return User
29 | */
30 | public function create(array $data)
31 | {
32 | return User::create([
33 | 'name' => $data['name'],
34 | 'email' => $data['email'],
35 | 'password' => bcrypt($data['password']),
36 | ]);
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/fixture/app/User.php:
--------------------------------------------------------------------------------
1 | [
17 |
18 | realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'),
19 | realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'),
20 | realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'),
21 | realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'),
22 | realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'),
23 |
24 | ],
25 |
26 | /*
27 | |--------------------------------------------------------------------------
28 | | Compiled File Providers
29 | |--------------------------------------------------------------------------
30 | |
31 | | Here you may list service providers which define a "compiles" function
32 | | that returns additional files that should be compiled, providing an
33 | | easy way to get common files from any packages you are utilizing.
34 | |
35 | */
36 |
37 | 'providers' => [
38 | //
39 | ],
40 |
41 | ];
42 |
--------------------------------------------------------------------------------
/fixture/config/services.php:
--------------------------------------------------------------------------------
1 | [
18 | 'domain' => '',
19 | 'secret' => '',
20 | ],
21 |
22 | 'mandrill' => [
23 | 'secret' => '',
24 | ],
25 |
26 | 'ses' => [
27 | 'key' => '',
28 | 'secret' => '',
29 | 'region' => 'us-east-1',
30 | ],
31 |
32 | 'stripe' => [
33 | 'model' => 'User',
34 | 'secret' => '',
35 | ],
36 |
37 | ];
38 |
--------------------------------------------------------------------------------
/fixture/config/view.php:
--------------------------------------------------------------------------------
1 | [
17 | realpath(base_path('resources/views'))
18 | ],
19 |
20 | /*
21 | |--------------------------------------------------------------------------
22 | | Compiled View Path
23 | |--------------------------------------------------------------------------
24 | |
25 | | This option determines where all the compiled Blade templates will be
26 | | stored for your application. Typically, this is within the storage
27 | | directory. However, as usual, you are free to change this value.
28 | |
29 | */
30 |
31 | 'compiled' => realpath(storage_path().'/framework/views'),
32 |
33 | ];
34 |
--------------------------------------------------------------------------------
/fixture/database/.gitignore:
--------------------------------------------------------------------------------
1 | *.sqlite
2 |
--------------------------------------------------------------------------------
/fixture/database/migrations/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/database/migrations/.gitkeep
--------------------------------------------------------------------------------
/fixture/database/migrations/2014_10_12_000000_create_users_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
18 | $table->string('name');
19 | $table->string('email')->unique();
20 | $table->string('password', 60);
21 | $table->rememberToken();
22 | $table->timestamps();
23 | });
24 | }
25 |
26 | /**
27 | * Reverse the migrations.
28 | *
29 | * @return void
30 | */
31 | public function down()
32 | {
33 | Schema::drop('users');
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/fixture/database/migrations/2014_10_12_100000_create_password_resets_table.php:
--------------------------------------------------------------------------------
1 | string('email')->index();
18 | $table->string('token')->index();
19 | $table->timestamp('created_at');
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | *
26 | * @return void
27 | */
28 | public function down()
29 | {
30 | Schema::drop('password_resets');
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/fixture/database/seeds/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/database/seeds/.gitkeep
--------------------------------------------------------------------------------
/fixture/database/seeds/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call('UserTableSeeder');
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/fixture/generators/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/fixture/gulpfile.js:
--------------------------------------------------------------------------------
1 | var elixir = require('laravel-elixir');
2 |
3 | /*
4 | |--------------------------------------------------------------------------
5 | | Elixir Asset Management
6 | |--------------------------------------------------------------------------
7 | |
8 | | Elixir provides a clean, fluent API for defining some basic Gulp tasks
9 | | for your Laravel application. By default, we are compiling the Less
10 | | file for our application, as well as publishing vendor resources.
11 | |
12 | */
13 |
14 | elixir(function(mix) {
15 | mix.less('app.less');
16 | });
17 |
--------------------------------------------------------------------------------
/fixture/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "devDependencies": {
3 | "gulp": "^3.8.8",
4 | "laravel-elixir": "*"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/fixture/phpspec.yml:
--------------------------------------------------------------------------------
1 | suites:
2 | main:
3 | namespace: App
4 | psr4_prefix: App
5 | src_path: app
--------------------------------------------------------------------------------
/fixture/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 | ./tests/
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/fixture/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 |
3 | Options -MultiViews
4 |
5 |
6 | RewriteEngine On
7 |
8 | # Redirect Trailing Slashes...
9 | RewriteRule ^(.*)/$ /$1 [L,R=301]
10 |
11 | # Handle Front Controller...
12 | RewriteCond %{REQUEST_FILENAME} !-d
13 | RewriteCond %{REQUEST_FILENAME} !-f
14 | RewriteRule ^ index.php [L]
15 |
16 |
--------------------------------------------------------------------------------
/fixture/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/public/favicon.ico
--------------------------------------------------------------------------------
/fixture/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/app.less:
--------------------------------------------------------------------------------
1 | @import "bootstrap/bootstrap";
2 |
3 | @btn-font-weight: 300;
4 | @font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif;
5 |
6 | body, label, .checkbox label {
7 | font-weight: 300;
8 | }
9 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/badges.less:
--------------------------------------------------------------------------------
1 | //
2 | // Badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .badge {
8 | display: inline-block;
9 | min-width: 10px;
10 | padding: 3px 7px;
11 | font-size: @font-size-small;
12 | font-weight: @badge-font-weight;
13 | color: @badge-color;
14 | line-height: @badge-line-height;
15 | vertical-align: baseline;
16 | white-space: nowrap;
17 | text-align: center;
18 | background-color: @badge-bg;
19 | border-radius: @badge-border-radius;
20 |
21 | // Empty badges collapse automatically (not available in IE8)
22 | &:empty {
23 | display: none;
24 | }
25 |
26 | // Quick fix for badges in buttons
27 | .btn & {
28 | position: relative;
29 | top: -1px;
30 | }
31 | .btn-xs & {
32 | top: 0;
33 | padding: 1px 5px;
34 | }
35 |
36 | // Hover state, but only for links
37 | a& {
38 | &:hover,
39 | &:focus {
40 | color: @badge-link-hover-color;
41 | text-decoration: none;
42 | cursor: pointer;
43 | }
44 | }
45 |
46 | // Account for badges in navs
47 | .list-group-item.active > &,
48 | .nav-pills > .active > a > & {
49 | color: @badge-active-color;
50 | background-color: @badge-active-bg;
51 | }
52 | .list-group-item > & {
53 | float: right;
54 | }
55 | .list-group-item > & + & {
56 | margin-right: 5px;
57 | }
58 | .nav-pills > li > a > & {
59 | margin-left: 3px;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/bootstrap.less:
--------------------------------------------------------------------------------
1 | // Core variables and mixins
2 | @import "variables.less";
3 | @import "mixins.less";
4 |
5 | // Reset and dependencies
6 | @import "normalize.less";
7 | @import "print.less";
8 | @import "glyphicons.less";
9 |
10 | // Core CSS
11 | @import "scaffolding.less";
12 | @import "type.less";
13 | @import "code.less";
14 | @import "grid.less";
15 | @import "tables.less";
16 | @import "forms.less";
17 | @import "buttons.less";
18 |
19 | // Components
20 | @import "component-animations.less";
21 | @import "dropdowns.less";
22 | @import "button-groups.less";
23 | @import "input-groups.less";
24 | @import "navs.less";
25 | @import "navbar.less";
26 | @import "breadcrumbs.less";
27 | @import "pagination.less";
28 | @import "pager.less";
29 | @import "labels.less";
30 | @import "badges.less";
31 | @import "jumbotron.less";
32 | @import "thumbnails.less";
33 | @import "alerts.less";
34 | @import "progress-bars.less";
35 | @import "media.less";
36 | @import "list-group.less";
37 | @import "panels.less";
38 | @import "responsive-embed.less";
39 | @import "wells.less";
40 | @import "close.less";
41 |
42 | // Components w/ JavaScript
43 | @import "modals.less";
44 | @import "tooltip.less";
45 | @import "popovers.less";
46 | @import "carousel.less";
47 |
48 | // Utility classes
49 | @import "utilities.less";
50 | @import "responsive-utilities.less";
51 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
8 | margin-bottom: @line-height-computed;
9 | list-style: none;
10 | background-color: @breadcrumb-bg;
11 | border-radius: @border-radius-base;
12 |
13 | > li {
14 | display: inline-block;
15 |
16 | + li:before {
17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18 | padding: 0 5px;
19 | color: @breadcrumb-color;
20 | }
21 | }
22 |
23 | > .active {
24 | color: @breadcrumb-active-color;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: (@font-size-base * 1.5);
9 | font-weight: @close-font-weight;
10 | line-height: 1;
11 | color: @close-color;
12 | text-shadow: @close-text-shadow;
13 | .opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: @close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | .opacity(.5);
21 | }
22 |
23 | // Additional properties for button version
24 | // iOS requires the button element instead of an anchor tag.
25 | // If you want the anchor version, it requires `href="#"`.
26 | button& {
27 | padding: 0;
28 | cursor: pointer;
29 | background: transparent;
30 | border: 0;
31 | -webkit-appearance: none;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/component-animations.less:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | .transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 | visibility: hidden;
21 |
22 | &.in { display: block; visibility: visible; }
23 | tr&.in { display: table-row; }
24 | tbody&.in { display: table-row-group; }
25 | }
26 |
27 | .collapsing {
28 | position: relative;
29 | height: 0;
30 | overflow: hidden;
31 | .transition-property(~"height, visibility");
32 | .transition-duration(.35s);
33 | .transition-timing-function(ease);
34 | }
35 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/jumbotron.less:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding: @jumbotron-padding (@jumbotron-padding / 2);
8 | margin-bottom: @jumbotron-padding;
9 | color: @jumbotron-color;
10 | background-color: @jumbotron-bg;
11 |
12 | h1,
13 | .h1 {
14 | color: @jumbotron-heading-color;
15 | }
16 | p {
17 | margin-bottom: (@jumbotron-padding / 2);
18 | font-size: @jumbotron-font-size;
19 | font-weight: 200;
20 | }
21 |
22 | > hr {
23 | border-top-color: darken(@jumbotron-bg, 10%);
24 | }
25 |
26 | .container &,
27 | .container-fluid & {
28 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
29 | }
30 |
31 | .container {
32 | max-width: 100%;
33 | }
34 |
35 | @media screen and (min-width: @screen-sm-min) {
36 | padding: (@jumbotron-padding * 1.6) 0;
37 |
38 | .container &,
39 | .container-fluid & {
40 | padding-left: (@jumbotron-padding * 2);
41 | padding-right: (@jumbotron-padding * 2);
42 | }
43 |
44 | h1,
45 | .h1 {
46 | font-size: (@font-size-base * 4.5);
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/labels.less:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | // --------------------------------------------------
4 |
5 | .label {
6 | display: inline;
7 | padding: .2em .6em .3em;
8 | font-size: 75%;
9 | font-weight: bold;
10 | line-height: 1;
11 | color: @label-color;
12 | text-align: center;
13 | white-space: nowrap;
14 | vertical-align: baseline;
15 | border-radius: .25em;
16 |
17 | // Add hover effects, but only for links
18 | a& {
19 | &:hover,
20 | &:focus {
21 | color: @label-link-hover-color;
22 | text-decoration: none;
23 | cursor: pointer;
24 | }
25 | }
26 |
27 | // Empty labels collapse automatically (not available in IE8)
28 | &:empty {
29 | display: none;
30 | }
31 |
32 | // Quick fix for labels in buttons
33 | .btn & {
34 | position: relative;
35 | top: -1px;
36 | }
37 | }
38 |
39 | // Colors
40 | // Contextual variations (linked labels get darker on :hover)
41 |
42 | .label-default {
43 | .label-variant(@label-default-bg);
44 | }
45 |
46 | .label-primary {
47 | .label-variant(@label-primary-bg);
48 | }
49 |
50 | .label-success {
51 | .label-variant(@label-success-bg);
52 | }
53 |
54 | .label-info {
55 | .label-variant(@label-info-bg);
56 | }
57 |
58 | .label-warning {
59 | .label-variant(@label-warning-bg);
60 | }
61 |
62 | .label-danger {
63 | .label-variant(@label-danger-bg);
64 | }
65 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/media.less:
--------------------------------------------------------------------------------
1 | .media {
2 | // Proper spacing between instances of .media
3 | margin-top: 15px;
4 |
5 | &:first-child {
6 | margin-top: 0;
7 | }
8 | }
9 |
10 | .media-right,
11 | .media > .pull-right {
12 | padding-left: 10px;
13 | }
14 |
15 | .media-left,
16 | .media > .pull-left {
17 | padding-right: 10px;
18 | }
19 |
20 | .media-left,
21 | .media-right,
22 | .media-body {
23 | display: table-cell;
24 | vertical-align: top;
25 | }
26 |
27 | .media-middle {
28 | vertical-align: middle;
29 | }
30 |
31 | .media-bottom {
32 | vertical-align: bottom;
33 | }
34 |
35 | // Reset margins on headings for tighter default spacing
36 | .media-heading {
37 | margin-top: 0;
38 | margin-bottom: 5px;
39 | }
40 |
41 | // Media list variation
42 | //
43 | // Undo default ul/ol styles
44 | .media-list {
45 | padding-left: 0;
46 | list-style: none;
47 | }
48 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------------------------------
3 |
4 | // Utilities
5 | @import "mixins/hide-text.less";
6 | @import "mixins/opacity.less";
7 | @import "mixins/image.less";
8 | @import "mixins/labels.less";
9 | @import "mixins/reset-filter.less";
10 | @import "mixins/resize.less";
11 | @import "mixins/responsive-visibility.less";
12 | @import "mixins/size.less";
13 | @import "mixins/tab-focus.less";
14 | @import "mixins/text-emphasis.less";
15 | @import "mixins/text-overflow.less";
16 | @import "mixins/vendor-prefixes.less";
17 |
18 | // Components
19 | @import "mixins/alerts.less";
20 | @import "mixins/buttons.less";
21 | @import "mixins/panels.less";
22 | @import "mixins/pagination.less";
23 | @import "mixins/list-group.less";
24 | @import "mixins/nav-divider.less";
25 | @import "mixins/forms.less";
26 | @import "mixins/progress-bar.less";
27 | @import "mixins/table-row.less";
28 |
29 | // Skins
30 | @import "mixins/background-variant.less";
31 | @import "mixins/border-radius.less";
32 | @import "mixins/gradients.less";
33 |
34 | // Layout
35 | @import "mixins/clearfix.less";
36 | @import "mixins/center-block.less";
37 | @import "mixins/nav-vertical-align.less";
38 | @import "mixins/grid-framework.less";
39 | @import "mixins/grid.less";
40 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/alerts.less:
--------------------------------------------------------------------------------
1 | // Alerts
2 |
3 | .alert-variant(@background; @border; @text-color) {
4 | background-color: @background;
5 | border-color: @border;
6 | color: @text-color;
7 |
8 | hr {
9 | border-top-color: darken(@border, 5%);
10 | }
11 | .alert-link {
12 | color: darken(@text-color, 10%);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/background-variant.less:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | .bg-variant(@color) {
4 | background-color: @color;
5 | a&:hover {
6 | background-color: darken(@color, 10%);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/border-radius.less:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | .border-top-radius(@radius) {
4 | border-top-right-radius: @radius;
5 | border-top-left-radius: @radius;
6 | }
7 | .border-right-radius(@radius) {
8 | border-bottom-right-radius: @radius;
9 | border-top-right-radius: @radius;
10 | }
11 | .border-bottom-radius(@radius) {
12 | border-bottom-right-radius: @radius;
13 | border-bottom-left-radius: @radius;
14 | }
15 | .border-left-radius(@radius) {
16 | border-bottom-left-radius: @radius;
17 | border-top-left-radius: @radius;
18 | }
19 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/buttons.less:
--------------------------------------------------------------------------------
1 | // Button variants
2 | //
3 | // Easily pump out default styles, as well as :hover, :focus, :active,
4 | // and disabled options for all buttons
5 |
6 | .button-variant(@color; @background; @border) {
7 | color: @color;
8 | background-color: @background;
9 | border-color: @border;
10 |
11 | &:hover,
12 | &:focus,
13 | &.focus,
14 | &:active,
15 | &.active,
16 | .open > .dropdown-toggle& {
17 | color: @color;
18 | background-color: darken(@background, 10%);
19 | border-color: darken(@border, 12%);
20 | }
21 | &:active,
22 | &.active,
23 | .open > .dropdown-toggle& {
24 | background-image: none;
25 | }
26 | &.disabled,
27 | &[disabled],
28 | fieldset[disabled] & {
29 | &,
30 | &:hover,
31 | &:focus,
32 | &.focus,
33 | &:active,
34 | &.active {
35 | background-color: @background;
36 | border-color: @border;
37 | }
38 | }
39 |
40 | .badge {
41 | color: @background;
42 | background-color: @color;
43 | }
44 | }
45 |
46 | // Button sizes
47 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
48 | padding: @padding-vertical @padding-horizontal;
49 | font-size: @font-size;
50 | line-height: @line-height;
51 | border-radius: @border-radius;
52 | }
53 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/center-block.less:
--------------------------------------------------------------------------------
1 | // Center-align a block level element
2 |
3 | .center-block() {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | }
8 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/clearfix.less:
--------------------------------------------------------------------------------
1 | // Clearfix
2 | //
3 | // For modern browsers
4 | // 1. The space content is one way to avoid an Opera bug when the
5 | // contenteditable attribute is included anywhere else in the document.
6 | // Otherwise it causes space to appear at the top and bottom of elements
7 | // that are clearfixed.
8 | // 2. The use of `table` rather than `block` is only necessary if using
9 | // `:before` to contain the top-margins of child elements.
10 | //
11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12 |
13 | .clearfix() {
14 | &:before,
15 | &:after {
16 | content: " "; // 1
17 | display: table; // 2
18 | }
19 | &:after {
20 | clear: both;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/hide-text.less:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | //
3 | // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
4 | // mixins being reused as classes with the same name, this doesn't hold up. As
5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6 | //
7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8 |
9 | // Deprecated as of v3.0.1 (will be removed in v4)
10 | .hide-text() {
11 | font: ~"0/0" a;
12 | color: transparent;
13 | text-shadow: none;
14 | background-color: transparent;
15 | border: 0;
16 | }
17 |
18 | // New mixin to use as of v3.0.1
19 | .text-hide() {
20 | .hide-text();
21 | }
22 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/image.less:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 | .img-responsive(@display: block) {
10 | display: @display;
11 | max-width: 100%; // Part 1: Set a maximum relative to the parent
12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
13 | }
14 |
15 |
16 | // Retina image
17 | //
18 | // Short retina mixin for setting background-image and -size. Note that the
19 | // spelling of `min--moz-device-pixel-ratio` is intentional.
20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
21 | background-image: url("@{file-1x}");
22 |
23 | @media
24 | only screen and (-webkit-min-device-pixel-ratio: 2),
25 | only screen and ( min--moz-device-pixel-ratio: 2),
26 | only screen and ( -o-min-device-pixel-ratio: 2/1),
27 | only screen and ( min-device-pixel-ratio: 2),
28 | only screen and ( min-resolution: 192dpi),
29 | only screen and ( min-resolution: 2dppx) {
30 | background-image: url("@{file-2x}");
31 | background-size: @width-1x @height-1x;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/labels.less:
--------------------------------------------------------------------------------
1 | // Labels
2 |
3 | .label-variant(@color) {
4 | background-color: @color;
5 |
6 | &[href] {
7 | &:hover,
8 | &:focus {
9 | background-color: darken(@color, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/list-group.less:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | .list-group-item-variant(@state; @background; @color) {
4 | .list-group-item-@{state} {
5 | color: @color;
6 | background-color: @background;
7 |
8 | a& {
9 | color: @color;
10 |
11 | .list-group-item-heading {
12 | color: inherit;
13 | }
14 |
15 | &:hover,
16 | &:focus {
17 | color: @color;
18 | background-color: darken(@background, 5%);
19 | }
20 | &.active,
21 | &.active:hover,
22 | &.active:focus {
23 | color: #fff;
24 | background-color: @color;
25 | border-color: @color;
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/nav-divider.less:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | .nav-divider(@color: #e5e5e5) {
6 | height: 1px;
7 | margin: ((@line-height-computed / 2) - 1) 0;
8 | overflow: hidden;
9 | background-color: @color;
10 | }
11 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/nav-vertical-align.less:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | .navbar-vertical-align(@element-height) {
7 | margin-top: ((@navbar-height - @element-height) / 2);
8 | margin-bottom: ((@navbar-height - @element-height) / 2);
9 | }
10 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/opacity.less:
--------------------------------------------------------------------------------
1 | // Opacity
2 |
3 | .opacity(@opacity) {
4 | opacity: @opacity;
5 | // IE8 filter
6 | @opacity-ie: (@opacity * 100);
7 | filter: ~"alpha(opacity=@{opacity-ie})";
8 | }
9 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/pagination.less:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
4 | > li {
5 | > a,
6 | > span {
7 | padding: @padding-vertical @padding-horizontal;
8 | font-size: @font-size;
9 | }
10 | &:first-child {
11 | > a,
12 | > span {
13 | .border-left-radius(@border-radius);
14 | }
15 | }
16 | &:last-child {
17 | > a,
18 | > span {
19 | .border-right-radius(@border-radius);
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/panels.less:
--------------------------------------------------------------------------------
1 | // Panels
2 |
3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
4 | border-color: @border;
5 |
6 | & > .panel-heading {
7 | color: @heading-text-color;
8 | background-color: @heading-bg-color;
9 | border-color: @heading-border;
10 |
11 | + .panel-collapse > .panel-body {
12 | border-top-color: @border;
13 | }
14 | .badge {
15 | color: @heading-bg-color;
16 | background-color: @heading-text-color;
17 | }
18 | }
19 | & > .panel-footer {
20 | + .panel-collapse > .panel-body {
21 | border-bottom-color: @border;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/progress-bar.less:
--------------------------------------------------------------------------------
1 | // Progress bars
2 |
3 | .progress-bar-variant(@color) {
4 | background-color: @color;
5 |
6 | // Deprecated parent class requirement as of v3.2.0
7 | .progress-striped & {
8 | #gradient > .striped();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/reset-filter.less:
--------------------------------------------------------------------------------
1 | // Reset filters for IE
2 | //
3 | // When you need to remove a gradient background, do not forget to use this to reset
4 | // the IE filter for IE9 and below.
5 |
6 | .reset-filter() {
7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
8 | }
9 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/resize.less:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | .resizable(@direction) {
4 | resize: @direction; // Options: horizontal, vertical, both
5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6 | }
7 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/responsive-visibility.less:
--------------------------------------------------------------------------------
1 | // Responsive utilities
2 |
3 | //
4 | // More easily include all the states for responsive-utilities.less.
5 | .responsive-visibility() {
6 | display: block !important;
7 | table& { display: table; }
8 | tr& { display: table-row !important; }
9 | th&,
10 | td& { display: table-cell !important; }
11 | }
12 |
13 | .responsive-invisibility() {
14 | display: none !important;
15 | }
16 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/size.less:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | .size(@width; @height) {
4 | width: @width;
5 | height: @height;
6 | }
7 |
8 | .square(@size) {
9 | .size(@size; @size);
10 | }
11 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/tab-focus.less:
--------------------------------------------------------------------------------
1 | // WebKit-style focus
2 |
3 | .tab-focus() {
4 | // Default
5 | outline: thin dotted;
6 | // WebKit
7 | outline: 5px auto -webkit-focus-ring-color;
8 | outline-offset: -2px;
9 | }
10 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/table-row.less:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | .table-row-variant(@state; @background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table > thead > tr,
7 | .table > tbody > tr,
8 | .table > tfoot > tr {
9 | > td.@{state},
10 | > th.@{state},
11 | &.@{state} > td,
12 | &.@{state} > th {
13 | background-color: @background;
14 | }
15 | }
16 |
17 | // Hover states for `.table-hover`
18 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
19 | .table-hover > tbody > tr {
20 | > td.@{state}:hover,
21 | > th.@{state}:hover,
22 | &.@{state}:hover > td,
23 | &:hover > .@{state},
24 | &.@{state}:hover > th {
25 | background-color: darken(@background, 5%);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/text-emphasis.less:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | .text-emphasis-variant(@color) {
4 | color: @color;
5 | a&:hover {
6 | color: darken(@color, 10%);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/mixins/text-overflow.less:
--------------------------------------------------------------------------------
1 | // Text overflow
2 | // Requires inline-block or block for proper styling
3 |
4 | .text-overflow() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: @line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | &:extend(.clearfix all);
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: @pager-bg;
19 | border: 1px solid @pager-border;
20 | border-radius: @pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: @pager-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: @pager-disabled-color;
50 | background-color: @pager-bg;
51 | cursor: @cursor-disabled;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/responsive-embed.less:
--------------------------------------------------------------------------------
1 | // Embeds responsive
2 | //
3 | // Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 | .embed-responsive {
6 | position: relative;
7 | display: block;
8 | height: 0;
9 | padding: 0;
10 | overflow: hidden;
11 |
12 | .embed-responsive-item,
13 | iframe,
14 | embed,
15 | object,
16 | video {
17 | position: absolute;
18 | top: 0;
19 | left: 0;
20 | bottom: 0;
21 | height: 100%;
22 | width: 100%;
23 | border: 0;
24 | }
25 |
26 | // Modifier class for 16:9 aspect ratio
27 | &.embed-responsive-16by9 {
28 | padding-bottom: 56.25%;
29 | }
30 |
31 | // Modifier class for 4:3 aspect ratio
32 | &.embed-responsive-4by3 {
33 | padding-bottom: 75%;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | display: block;
9 | padding: @thumbnail-padding;
10 | margin-bottom: @line-height-computed;
11 | line-height: @line-height-base;
12 | background-color: @thumbnail-bg;
13 | border: 1px solid @thumbnail-border;
14 | border-radius: @thumbnail-border-radius;
15 | .transition(border .2s ease-in-out);
16 |
17 | > img,
18 | a > img {
19 | &:extend(.img-responsive);
20 | margin-left: auto;
21 | margin-right: auto;
22 | }
23 |
24 | // Add a hover state for linked versions only
25 | a&:hover,
26 | a&:focus,
27 | a&.active {
28 | border-color: @link-color;
29 | }
30 |
31 | // Image captions
32 | .caption {
33 | padding: @thumbnail-caption-padding;
34 | color: @thumbnail-caption-color;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | .clearfix();
11 | }
12 | .center-block {
13 | .center-block();
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | .text-hide();
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | visibility: hidden !important;
48 | }
49 |
50 |
51 | // For Affix plugin
52 | // -------------------------
53 |
54 | .affix {
55 | position: fixed;
56 | }
57 |
--------------------------------------------------------------------------------
/fixture/resources/assets/less/bootstrap/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @well-bg;
12 | border: 1px solid @well-border;
13 | border-radius: @border-radius-base;
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: @border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: @border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/fixture/resources/lang/en/pagination.php:
--------------------------------------------------------------------------------
1 | '« Previous',
17 | 'next' => 'Next »',
18 |
19 | ];
20 |
--------------------------------------------------------------------------------
/fixture/resources/lang/en/passwords.php:
--------------------------------------------------------------------------------
1 | "Passwords must be at least six characters and match the confirmation.",
17 | "user" => "We can't find a user with that e-mail address.",
18 | "token" => "This password reset token is invalid.",
19 | "sent" => "We have e-mailed your password reset link!",
20 | "reset" => "Your password has been reset!",
21 |
22 | ];
23 |
--------------------------------------------------------------------------------
/fixture/resources/views/auth/password.blade.php:
--------------------------------------------------------------------------------
1 | @extends('app')
2 |
3 | @section('content')
4 |
5 |
6 |
7 |
8 |
Reset Password
9 |
10 | @if (session('status'))
11 |
12 | {{ session('status') }}
13 |
14 | @endif
15 |
16 | @if (count($errors) > 0)
17 |
18 |
Whoops! There were some problems with your input.
19 |
20 | @foreach ($errors->all() as $error)
21 | {{ $error }}
22 | @endforeach
23 |
24 |
25 | @endif
26 |
27 |
45 |
46 |
47 |
48 |
49 |
50 | @endsection
51 |
--------------------------------------------------------------------------------
/fixture/resources/views/emails/password.blade.php:
--------------------------------------------------------------------------------
1 | Click here to reset your password: {{ url('password/reset/'.$token) }}
2 |
--------------------------------------------------------------------------------
/fixture/resources/views/errors/503.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
33 |
34 |
35 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/fixture/resources/views/home.blade.php:
--------------------------------------------------------------------------------
1 | @extends('app')
2 |
3 | @section('content')
4 |
5 |
6 |
7 |
8 |
Home
9 |
10 |
11 | You are logged in!
12 |
13 |
14 |
15 |
16 |
17 | @endsection
18 |
--------------------------------------------------------------------------------
/fixture/resources/views/vendor/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/fixture/resources/views/vendor/.gitkeep
--------------------------------------------------------------------------------
/fixture/resources/views/welcome.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
37 |
38 |
39 |
40 |
41 |
Laravel 5
42 |
{{ Inspiring::quote() }}
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/fixture/server.php:
--------------------------------------------------------------------------------
1 |
7 | */
8 |
9 | $uri = urldecode(
10 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
11 | );
12 |
13 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the
14 | // built-in PHP web server. This provides a convenient way to test a Laravel
15 | // application without having installed a "real" web server software here.
16 | if ($uri !== '/' and file_exists(__DIR__.'/public'.$uri))
17 | {
18 | return false;
19 | }
20 |
21 | require_once __DIR__.'/public/index.php';
22 |
--------------------------------------------------------------------------------
/fixture/storage/.gitignore:
--------------------------------------------------------------------------------
1 | laravel.log
2 | /meta
--------------------------------------------------------------------------------
/fixture/storage/app/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/fixture/storage/framework/.gitignore:
--------------------------------------------------------------------------------
1 | config.php
2 | routes.php
3 | compiled.php
4 | services.json
5 | events.scanned.php
6 | routes.scanned.php
7 |
--------------------------------------------------------------------------------
/fixture/storage/framework/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/fixture/storage/framework/sessions/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/fixture/storage/framework/views/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/fixture/storage/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/fixture/tests/ExampleTest.php:
--------------------------------------------------------------------------------
1 | call('GET', '/');
13 |
14 | $this->assertEquals(200, $response->getStatusCode());
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/fixture/tests/TestCase.php:
--------------------------------------------------------------------------------
1 | make('Illuminate\Contracts\Console\Kernel')->bootstrap();
15 |
16 | return $app;
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/fixture/themes/default/config/config.php:
--------------------------------------------------------------------------------
1 | 'bar'
5 | ];
--------------------------------------------------------------------------------
/fixture/themes/default/lang/en/theme.php:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 | ./tests/
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.phar
3 | composer.lock
4 | .DS_Store
5 | /.idea
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Console/FormCommand.php:
--------------------------------------------------------------------------------
1 | argument('table'),
33 | $this->option('fields')
34 | );
35 |
36 | $this->line($generator->render());
37 | }
38 |
39 | /**
40 | * The array of command arguments.
41 | *
42 | * @return array
43 | */
44 | public function getArguments()
45 | {
46 | return [
47 | ['table', InputArgument::OPTIONAL, 'The name of table being used.', null],
48 | ];
49 | }
50 |
51 | /**
52 | * The array of command options.
53 | *
54 | * @return array
55 | */
56 | public function getOptions()
57 | {
58 | return [
59 | ['fields', 'f', InputOption::VALUE_OPTIONAL, 'The form fields.', null],
60 | ];
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/ConsoleGenerator.php:
--------------------------------------------------------------------------------
1 | getAppNamespace().'Console\\Commands\\';
32 | }
33 |
34 | /**
35 | * Get template replacements.
36 | *
37 | * @return array
38 | */
39 | public function getReplacements()
40 | {
41 | return array_merge(parent::getReplacements(), [
42 | 'command' => $this->option('command', 'command:name'),
43 | 'description' => $this->option('description', 'Command description'),
44 | ]);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/FileAlreadyExistsException.php:
--------------------------------------------------------------------------------
1 | name = $name;
33 | $this->fields = $fields;
34 | }
35 |
36 | /**
37 | * Render the form.
38 | *
39 | * @return string
40 | */
41 | public function render()
42 | {
43 | if ($this->fields) {
44 | return $this->renderFromFields();
45 | }
46 |
47 | return $this->renderFromDb();
48 | }
49 |
50 | /**
51 | * Render form from database.
52 | *
53 | * @return string
54 | */
55 | public function renderFromDb()
56 | {
57 | return (new TableDumper($this->name))->render();
58 | }
59 |
60 | /**
61 | * Render form from fields option.
62 | *
63 | * @return string
64 | */
65 | public function renderFromFields()
66 | {
67 | return (new FieldsDumper($this->fields))->render();
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/GeneratorsServiceProvider.php:
--------------------------------------------------------------------------------
1 | publishes([
37 | __DIR__ . '/Stubs/' => $templatePath
38 | ], 'stubs');
39 |
40 | $configPath = config_path('generators.php');
41 |
42 | $this->publishes([
43 | __DIR__.'/config.php' => $configPath,
44 | ], 'config');
45 |
46 | if (file_exists($configPath)) {
47 | $this->mergeConfigFrom($configPath, 'generators');
48 | }
49 | }
50 |
51 | /**
52 | * Register the service provider.
53 | */
54 | public function register()
55 | {
56 | foreach ($this->consoles as $console) {
57 | $this->commands('Pingpong\Generators\Console\\'.$console.'Command');
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Pingpong Labs
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * Neither the name of generators nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
29 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/README.md:
--------------------------------------------------------------------------------
1 | Laravel 5 Generators
2 | ==============
3 |
4 | Official documentation is located [here](http://sky.pingpong-labs.com/docs/2.0/generators)
--------------------------------------------------------------------------------
/src/Pingpong/Generators/SeedGenerator.php:
--------------------------------------------------------------------------------
1 | getBasePath().$this->getName().'.php';
32 | }
33 |
34 | /**
35 | * Get name of class.
36 | *
37 | * @return string
38 | */
39 | public function getName()
40 | {
41 | $name = parent::getName();
42 |
43 | $suffix = $this->master ? 'DatabaseSeeder' : 'TableSeeder';
44 |
45 | return $name.$suffix;
46 | }
47 |
48 | /**
49 | * Get root namespace.
50 | *
51 | * @return string
52 | */
53 | public function getRootNamespace()
54 | {
55 | return false;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stub.php:
--------------------------------------------------------------------------------
1 |
2 | {!! Form::label('$NAME$', '', ['class' => 'col-md-2 control-label']) !!}
3 |
4 | {!! Form::checkbox('$NAME$') !!}
5 | $LABEL$
6 |
7 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/form/email.stub:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/form/input.stub:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/form/password.stub:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/form/radio.stub:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/form/select.stub:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/form/text.stub:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/form/textarea.stub:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/migration/add.stub:
--------------------------------------------------------------------------------
1 | increments('id');
18 | $FIELDS$
19 | $table->timestamps();
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | *
26 | * @return void
27 | */
28 | public function down()
29 | {
30 | Schema::drop('$TABLE$');
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/migration/delete.stub:
--------------------------------------------------------------------------------
1 | increments('id');
28 | $FIELDS$
29 | $table->timestamps();
30 | });
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/migration/pivot.stub:
--------------------------------------------------------------------------------
1 | integer('$COLUMN_ONE$_id')->unsigned()->index();
18 | $table->foreign('$COLUMN_ONE$_id')->references('id')->on('$TABLE_ONE$')->onDelete('cascade');
19 | $table->integer('$COLUMN_TWO$_id')->unsigned()->index();
20 | $table->foreign('$COLUMN_TWO$_id')->references('id')->on('$TABLE_TWO$')->onDelete('cascade');
21 | $TIMESTAMP$
22 | });
23 | }
24 |
25 | /**
26 | * Reverse the migrations.
27 | *
28 | * @return void
29 | */
30 | public function down()
31 | {
32 | Schema::drop('$TABLE_PIVOT$');
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/migration/plain.stub:
--------------------------------------------------------------------------------
1 |
2 | $LABEL$
3 | {!! $$VAR$->$COLUMN$ !!}
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/scaffold/views/create.stub:
--------------------------------------------------------------------------------
1 | @extends('$EXTENDS$')
2 |
3 | @section('content')
4 |
5 |
6 |
7 | Add New $STUDLY_SINGULAR_ENTITY$
8 |
11 |
12 |
13 | @include('$PREFIX_DOT$$LOWER_PLURAL_ENTITY$.form')
14 |
15 |
16 |
17 | @stop
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/scaffold/views/edit.stub:
--------------------------------------------------------------------------------
1 | @extends('$EXTENDS$')
2 |
3 | @section('content')
4 |
5 |
6 |
7 | Edit $STUDLY_SINGULAR_ENTITY$
8 |
11 |
12 |
13 | @include('$PREFIX_DOT$$LOWER_PLURAL_ENTITY$.form', ['model' => $$LOWER_SINGULAR_ENTITY$])
14 |
15 |
16 |
17 | @stop
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/scaffold/views/form.stub:
--------------------------------------------------------------------------------
1 | @if (count($errors) > 0)
2 |
3 |
Whoops! There were some problems with your input.
4 |
5 | @foreach ($errors->all() as $error)
6 | {{ $error }}
7 | @endforeach
8 |
9 |
10 | @endif
11 |
12 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/scaffold/views/show.stub:
--------------------------------------------------------------------------------
1 | @extends('$EXTENDS$')
2 |
3 | @section('content')
4 |
5 |
6 | Show $STUDLY_SINGULAR_ENTITY$
7 |
11 |
12 |
13 |
14 | ID
15 | {!! $$LOWER_SINGULAR_ENTITY$->id !!}
16 |
17 | $SHOW_BODY$
18 |
19 | Created At
20 | {!! $$LOWER_SINGULAR_ENTITY$->created_at !!}
21 |
22 |
23 |
24 | @stop
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/seed.stub:
--------------------------------------------------------------------------------
1 | call("OthersTableSeeder");
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/view.stub:
--------------------------------------------------------------------------------
1 | @extends('$EXTENDS$')
2 |
3 | @section('$SECTION$')
4 |
5 | $CONTENT$
6 |
7 | @endsection
--------------------------------------------------------------------------------
/src/Pingpong/Generators/Stubs/views/master.stub:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Laravel
8 |
9 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
22 |
23 |
24 |
25 | @yield('content')
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong/generators",
3 | "description": "Laravel Generators",
4 | "license": "BSD-3-Clause",
5 | "keywords": [
6 | "laravel",
7 | "generators",
8 | "pingpong"
9 | ],
10 | "authors": [
11 | {
12 | "name": "Pingpong Labs",
13 | "email": "pingpong.labs@gmail.com"
14 | }
15 | ],
16 | "require": {
17 | "php": ">=5.4.0",
18 | "illuminate/filesystem": "5.1.*",
19 | "illuminate/support": "5.1.*",
20 | "pingpong/support": "2.1.*",
21 | "doctrine/dbal": "~2.5"
22 | },
23 | "require-dev": {
24 | "mockery/mockery": "~0.9",
25 | "phpunit/phpunit": "~4"
26 | },
27 | "autoload": {
28 | "psr-4": {
29 | "Pingpong\\Generators\\": ""
30 | }
31 | },
32 | "minimum-stability": "stable"
33 | }
34 |
--------------------------------------------------------------------------------
/src/Pingpong/Generators/config.php:
--------------------------------------------------------------------------------
1 | base_path('resources/pingpong/generators/stubs')
5 | ];
--------------------------------------------------------------------------------
/src/Pingpong/Menus/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.phar
3 | composer.lock
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Pingpong Labs
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 |
8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 |
10 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
11 |
12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/src/Pingpong/Menus/MenuFacade.php:
--------------------------------------------------------------------------------
1 | '.PHP_EOL;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/Presenters/Bootstrap/NavTabPresenter.php:
--------------------------------------------------------------------------------
1 | '.PHP_EOL;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/Presenters/Bootstrap/NavbarRightPresenter.php:
--------------------------------------------------------------------------------
1 | '.PHP_EOL;
13 | }
14 |
15 | /**
16 | * {@inheritdoc }.
17 | */
18 | public function getMenuWithDropDownWrapper($item)
19 | {
20 | return '
21 |
22 | '.$item->getIcon().' '.$item->title.'
23 |
24 |
25 |
28 | '
29 | .PHP_EOL;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/Presenters/PresenterInterface.php:
--------------------------------------------------------------------------------
1 | =5.3.0",
21 | "illuminate/support": "5.1.*",
22 | "illuminate/config": "5.1.*",
23 | "illuminate/view": "5.1.*",
24 | "laravelcollective/html": "~5.0"
25 | },
26 | "require-dev": {
27 | "phpunit/phpunit": "~4",
28 | "mockery/mockery": "~0.9"
29 | },
30 | "autoload": {
31 | "psr-4": {
32 | "Pingpong\\Menus\\": ""
33 | }
34 | },
35 | "minimum-stability": "stable"
36 | }
37 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/shots/multilevel-menu-pingpong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/src/Pingpong/Menus/shots/multilevel-menu-pingpong.png
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/config/config.php:
--------------------------------------------------------------------------------
1 | array(
6 | 'navbar' => 'Pingpong\Menus\Presenters\Bootstrap\NavbarPresenter',
7 | 'navbar-right' => 'Pingpong\Menus\Presenters\Bootstrap\NavbarRightPresenter',
8 | 'nav-pills' => 'Pingpong\Menus\Presenters\Bootstrap\NavPillsPresenter',
9 | 'nav-tab' => 'Pingpong\Menus\Presenters\Bootstrap\NavTabPresenter',
10 | 'sidebar' => 'Pingpong\Menus\Presenters\Bootstrap\SidebarMenuPresenter',
11 | 'navmenu' => 'Pingpong\Menus\Presenters\Bootstrap\NavMenuPresenter',
12 | ),
13 |
14 | 'ordering' => false,
15 |
16 | );
17 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/child/dropdown.blade.php:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/child/item.blade.php:
--------------------------------------------------------------------------------
1 | @if ($item->isDivider())
2 |
3 | @elseif ($item->isHeader())
4 |
5 | @else
6 |
7 |
8 | {{ $item->title }}
9 |
10 |
11 | @endif
12 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/default.blade.php:
--------------------------------------------------------------------------------
1 |
2 | @include('menus::menu')
3 |
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/item/dropdown.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ $item->title }}
4 |
5 |
6 |
15 |
16 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/item/item.blade.php:
--------------------------------------------------------------------------------
1 | @if ($item->isDivider())
2 |
3 | @elseif ($item->isHeader())
4 |
5 | @else
6 |
7 | getAttributes() !!}>
8 | {!! $item->getIcon() !!}
9 | {{ $item->title }}
10 |
11 |
12 | @endif
13 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/menu.blade.php:
--------------------------------------------------------------------------------
1 | @foreach ($items as $item)
2 | @if ($item->hasChilds())
3 | @include('menus::item.dropdown', compact('item'))
4 | @else
5 | @include('menus::item.item', compact('item'))
6 | @endif
7 | @endforeach
8 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/nav-pills-justified.blade.php:
--------------------------------------------------------------------------------
1 |
2 | @include('menus::menu')
3 |
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/nav-pills-stacked.blade.php:
--------------------------------------------------------------------------------
1 |
2 | @include('menus::menu')
3 |
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/nav-pills.blade.php:
--------------------------------------------------------------------------------
1 |
2 | @include('menus::menu')
3 |
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/nav-tabs-justified.blade.php:
--------------------------------------------------------------------------------
1 |
2 | @include('menus::menu')
3 |
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/nav-tabs.blade.php:
--------------------------------------------------------------------------------
1 |
2 | @include('menus::menu')
3 |
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/navbar-left.blade.php:
--------------------------------------------------------------------------------
1 |
2 | @include('menus::menu')
3 |
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/navbar-right.blade.php:
--------------------------------------------------------------------------------
1 |
2 | @include('menus::menu')
3 |
4 |
--------------------------------------------------------------------------------
/src/Pingpong/Menus/src/views/style.blade.php:
--------------------------------------------------------------------------------
1 |
50 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.phar
3 | composer.lock
4 | .DS_Store
5 | /wiki
6 | .idea/
7 | /fixture/vendor
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Collection.php:
--------------------------------------------------------------------------------
1 | items;
18 | }
19 |
20 | /**
21 | * Get the collection of items as a plain array.
22 | *
23 | * @return array
24 | */
25 | public function toArray()
26 | {
27 | return array_map(function ($value) {
28 | if ($value instanceof Module) {
29 | return $value->json()->getAttributes();
30 | }
31 |
32 | return $value instanceof Arrayable ? $value->toArray() : $value;
33 |
34 | }, $this->items);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/DisableCommand.php:
--------------------------------------------------------------------------------
1 | laravel['modules']->findOrFail($this->argument('module'));
32 |
33 | if ($module->enabled()) {
34 | $module->disable();
35 |
36 | $this->info("Module [{$module}] disabled successful.");
37 | } else {
38 | $this->comment("Module [{$module}] has already disabled.");
39 | }
40 | }
41 |
42 | /**
43 | * Get the console command arguments.
44 | *
45 | * @return array
46 | */
47 | protected function getArguments()
48 | {
49 | return array(
50 | array('module', InputArgument::REQUIRED, 'Module name.'),
51 | );
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/EnableCommand.php:
--------------------------------------------------------------------------------
1 | laravel['modules']->findOrFail($this->argument('module'));
32 |
33 | if ($module->disabled()) {
34 | $module->enable();
35 |
36 | $this->info("Module [{$module}] enabled successful.");
37 | } else {
38 | $this->comment("Module [{$module}] has already enabled.");
39 | }
40 | }
41 |
42 | /**
43 | * Get the console command arguments.
44 | *
45 | * @return array
46 | */
47 | protected function getArguments()
48 | {
49 | return array(
50 | array('module', InputArgument::REQUIRED, 'Module name.'),
51 | );
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/UpdateCommand.php:
--------------------------------------------------------------------------------
1 | laravel['modules']->update($name = $this->getModuleName());
35 |
36 | $this->info("Module [{$name}] updated successfully.");
37 | }
38 |
39 | /**
40 | * Get the console command arguments.
41 | *
42 | * @return array
43 | */
44 | protected function getArguments()
45 | {
46 | return array(
47 | array('module', InputArgument::OPTIONAL, 'The name of module will be updated.'),
48 | );
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/UseCommand.php:
--------------------------------------------------------------------------------
1 | argument('module'));
33 |
34 | if (!$this->laravel['modules']->has($module)) {
35 | $this->error("Module [{$module}] does not exists.");
36 |
37 | return;
38 | }
39 |
40 | $this->laravel['modules']->setUsed($module);
41 |
42 | $this->info("Module [{$module}] used successfully.");
43 | }
44 |
45 | /**
46 | * Get the console command arguments.
47 | *
48 | * @return array
49 | */
50 | protected function getArguments()
51 | {
52 | return array(
53 | array('module', InputArgument::REQUIRED, 'The name of module will be used.'),
54 | );
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/stubs/command.stub:
--------------------------------------------------------------------------------
1 | increments('id');
18 | $FIELDS$
19 | $table->timestamps();
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | *
26 | * @return void
27 | */
28 | public function down()
29 | {
30 | Schema::drop('$TABLE$');
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/stubs/migration/delete.stub:
--------------------------------------------------------------------------------
1 | increments('id');
28 | $FIELDS$
29 | $table->timestamps();
30 | });
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/stubs/migration/plain.stub:
--------------------------------------------------------------------------------
1 | '$LOWER_NAME$', 'namespace' => '$MODULE_NAMESPACE$\$STUDLY_NAME$\Http\Controllers'], function()
4 | {
5 | Route::get('/', '$STUDLY_NAME$Controller@index');
6 | });
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/stubs/scaffold/config.stub:
--------------------------------------------------------------------------------
1 | '$STUDLY_NAME$'
5 | ];
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/stubs/seeder.stub:
--------------------------------------------------------------------------------
1 | call("OthersTableSeeder");
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/stubs/start.stub:
--------------------------------------------------------------------------------
1 | Hello World
6 |
7 |
8 | This view is loaded from module: {!! config('$LOWER_NAME$.name') !!}
9 |
10 |
11 | @stop
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Commands/stubs/views/master.stub:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Module $STUDLY_NAME$
8 |
9 |
10 | @yield('content')
11 |
12 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Contracts/PublisherInterface.php:
--------------------------------------------------------------------------------
1 | module = $module;
25 | }
26 |
27 | /**
28 | * Run the given command.
29 | *
30 | * @param string $command
31 | */
32 | public function run($command)
33 | {
34 | passthru($command);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Process/Updater.php:
--------------------------------------------------------------------------------
1 | module->findOrFail($module);
15 |
16 | $packages = $module->get('require', []);
17 |
18 | chdir(base_path());
19 |
20 | foreach ($packages as $name => $version) {
21 | $package = "\"{$name}:{$version}\"";
22 |
23 | $this->run("composer require {$package}");
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Providers/BootstrapServiceProvider.php:
--------------------------------------------------------------------------------
1 | app['modules']->boot();
15 | }
16 |
17 | /**
18 | * Register the provider.
19 | */
20 | public function register()
21 | {
22 | $this->app['modules']->register();
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Providers/ContractsServiceProvider.php:
--------------------------------------------------------------------------------
1 | app->bind(
15 | 'Pingpong\Modules\Contracts\RepositoryInterface',
16 | 'Pingpong\Modules\Repository'
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Publishing/AssetPublisher.php:
--------------------------------------------------------------------------------
1 | repository->assetPath($this->module->getLowerName());
22 | }
23 |
24 | /**
25 | * Get source path.
26 | *
27 | * @return string
28 | */
29 | public function getSourcePath()
30 | {
31 | return $this->getModule()->getExtraPath(
32 | $this->repository->config('paths.generator.assets')
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Publishing/LangPublisher.php:
--------------------------------------------------------------------------------
1 | module->getLowerName();
22 |
23 | return base_path("resources/lang/{$name}");
24 | }
25 |
26 | /**
27 | * Get source path.
28 | *
29 | * @return string
30 | */
31 | public function getSourcePath()
32 | {
33 | return $this->getModule()->getExtraPath(
34 | $this->repository->config('paths.generator.lang')
35 | );
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Publishing/MigrationPublisher.php:
--------------------------------------------------------------------------------
1 | repository->config('paths.migration');
15 | }
16 |
17 | /**
18 | * Get source path.
19 | *
20 | * @return string
21 | */
22 | public function getSourcePath()
23 | {
24 | return $this->getModule()->getExtraPath($this->repository->config('paths.generator.migration'));
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/README.md:
--------------------------------------------------------------------------------
1 | Laravel 5 Modules
2 | ==============
3 |
4 | Official documentation is located [here](http://sky.pingpong-labs.com/docs/2.0/modules)
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Routing/Controller.php:
--------------------------------------------------------------------------------
1 | in($path)->files()->name('autoload.php')->depth('<= 3')->followLinks();
27 |
28 | foreach ($autoloads as $file) {
29 | $files->requireOnce($file->getRealPath());
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Traits/MigrationLoaderTrait.php:
--------------------------------------------------------------------------------
1 | laravel['modules']->getModulePath($module).$this->getMigrationGeneratorPath();
15 |
16 | $files = $this->laravel['files']->glob($path.'/*_*.php');
17 |
18 | foreach ($files as $file) {
19 | $this->laravel['files']->requireOnce($file);
20 | }
21 | }
22 |
23 | /**
24 | * Get migration generator path.
25 | *
26 | * @return string
27 | */
28 | protected function getMigrationGeneratorPath()
29 | {
30 | return $this->laravel['modules']->config('paths.generator.migration');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/Traits/ModuleCommandTrait.php:
--------------------------------------------------------------------------------
1 | argument('module') ?: $this->laravel['modules']->getUsedNow();
15 |
16 | $module = $this->laravel['modules']->findOrFail($module);
17 |
18 | return $module->getStudlyName();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Pingpong/Modules/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong/modules",
3 | "description": "Laravel Modules",
4 | "keywords": [
5 | "modules",
6 | "laravel",
7 | "pingpong",
8 | "hmvc",
9 | "module"
10 | ],
11 | "license": "BSD-3-Clause",
12 | "authors": [
13 | {
14 | "name": "Pingpong Labs",
15 | "email": "pingpong.labs@gmail.com"
16 | }
17 | ],
18 | "require": {
19 | "php": ">=5.4.0",
20 | "laravel/framework": "5.1.*",
21 | "pingpong/generators": "2.1.*",
22 | "pingpong/support": "2.1.*",
23 | "laravelcollective/html": "~5.0"
24 | },
25 | "require-dev": {
26 | "phpunit/phpunit": "~4",
27 | "mockery/mockery": "~0.9"
28 | },
29 | "autoload": {
30 | "psr-4": {
31 | "Pingpong\\Modules\\": ""
32 | }
33 | },
34 | "minimum-stability": "stable"
35 | }
36 |
--------------------------------------------------------------------------------
/src/Pingpong/Presenters/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.phar
3 | composer.lock
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/src/Pingpong/Presenters/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Pingpong Labs
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/src/Pingpong/Presenters/Model.php:
--------------------------------------------------------------------------------
1 | entity = $entity;
22 | }
23 |
24 | /**
25 | * Get entity class.
26 | *
27 | * @return PresentableInterface
28 | */
29 | public function getEntity()
30 | {
31 | return $this->entity;
32 | }
33 |
34 | /**
35 | * Handle call to __get method.
36 | *
37 | * @param $key
38 | *
39 | * @return mixed
40 | */
41 | public function __get($key)
42 | {
43 | if (method_exists($this, $key)) {
44 | return call_user_func(array($this, $key));
45 | }
46 |
47 | return $this->entity->{$key};
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Pingpong/Presenters/README.md:
--------------------------------------------------------------------------------
1 | Laravel 5 View Presenter
2 | ==============
3 |
4 | Official documentation is located [here](http://sky.pingpong-labs.com/docs/2.0/presenters)
--------------------------------------------------------------------------------
/src/Pingpong/Presenters/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong/presenters",
3 | "description": "Laravel Presenter",
4 | "keywords": [
5 | "laravel",
6 | "pingpong",
7 | "simple",
8 | "presenters"
9 | ],
10 | "license": "MIT",
11 | "authors": [
12 | {
13 | "name": "Pingpong Labs",
14 | "email": "pingpong.labs@gmail.com"
15 | }
16 | ],
17 | "require": {
18 | "php": ">=5.4.0",
19 | "illuminate/database": "5.1.*",
20 | "illuminate/support": "5.1.*",
21 | "illuminate/container": "5.1.*"
22 | },
23 | "autoload": {
24 | "psr-4": {
25 | "Pingpong\\Presenters\\": ""
26 | }
27 | },
28 | "minimum-stability": "stable"
29 | }
30 |
--------------------------------------------------------------------------------
/src/Pingpong/Shortcode/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.phar
3 | composer.lock
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/src/Pingpong/Shortcode/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Pingpong Labs
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 |
8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 |
10 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
11 |
12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/src/Pingpong/Shortcode/README.md:
--------------------------------------------------------------------------------
1 | Laravel 5 Shortcode
2 | ==============
3 |
4 | Official documentation is located [here](http://sky.pingpong-labs.com/docs/2.0/shortcode)
--------------------------------------------------------------------------------
/src/Pingpong/Shortcode/ShortcodeFacade.php:
--------------------------------------------------------------------------------
1 | app['shortcode'] = $this->app->share(function ($app) {
22 | return new Shortcode();
23 | });
24 | }
25 |
26 | /**
27 | * Get the services provided by the provider.
28 | *
29 | * @return array
30 | */
31 | public function provides()
32 | {
33 | return array('shortcode');
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Pingpong/Shortcode/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong/shortcode",
3 | "description": "Laravel - Simple shortcode based on wordpress shortcode",
4 | "keywords": [
5 | "pingpong",
6 | "laravel",
7 | "shortcode",
8 | "wordpress"
9 | ],
10 | "license": "BSD-3-Clause",
11 | "authors": [
12 | {
13 | "name": "Pingpong Labs",
14 | "email": "pingpong.labs@gmail.com"
15 | }
16 | ],
17 | "require": {
18 | "php": ">=5.4.0",
19 | "illuminate/container": "5.1.*",
20 | "illuminate/support": "5.1.*"
21 | },
22 | "require-dev": {
23 | "phpunit/phpunit": "~4",
24 | "mockery/mockery": "~0.9"
25 | },
26 | "autoload": {
27 | "psr-4": {
28 | "Pingpong\\Shortcode\\": ""
29 | }
30 | },
31 | "minimum-stability": "stable"
32 | }
33 |
--------------------------------------------------------------------------------
/src/Pingpong/Support/Traits/Imageable.php:
--------------------------------------------------------------------------------
1 | getImagePath())) {
15 | @unlink($path);
16 |
17 | return true;
18 | }
19 |
20 | return false;
21 | }
22 |
23 | /**
24 | * Get image path.
25 | *
26 | * @return string
27 | */
28 | public function getImagePath()
29 | {
30 | return public_path(static::$path.$this->image);
31 | }
32 |
33 | /**
34 | * Get image url.
35 | *
36 | * @return string
37 | */
38 | public function getImageUrl()
39 | {
40 | return asset(static::$path.$this->image);
41 | }
42 |
43 | /**
44 | * Accessor for "image_url".
45 | *
46 | * @param string $value
47 | *
48 | * @return string
49 | */
50 | public function getImageUrlAttribute($value)
51 | {
52 | return $this->getImageUrl();
53 | }
54 |
55 | /**
56 | * Determine whether the current file has image.
57 | *
58 | * @return bool
59 | */
60 | public function hasImage()
61 | {
62 | return !empty($this->image) && file_exists($this->getImagePath());
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/Pingpong/Support/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong/support",
3 | "description": "Support Component of Pingpong Sky Package",
4 | "license": "BSD-3-Clause",
5 | "authors": [
6 | {
7 | "name": "Pingpong Labs",
8 | "email": "pingpong.labs@gmail.com"
9 | }
10 | ],
11 | "require": {
12 | "php": ">=5.4.0",
13 | "illuminate/filesystem": "5.1.*",
14 | "illuminate/support": "5.1.*",
15 | "erusev/parsedown-extra": "0.7.*"
16 | },
17 | "autoload": {
18 | "psr-4": {
19 | "Pingpong\\Support\\": ""
20 | },
21 | "files": [
22 | "helpers.php"
23 | ]
24 | },
25 | "minimum-stability": "stable"
26 | }
27 |
--------------------------------------------------------------------------------
/src/Pingpong/Themes/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.phar
3 | composer.lock
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/src/Pingpong/Themes/Console/CacheCommand.php:
--------------------------------------------------------------------------------
1 | clear();
29 | $this->cache();
30 | }
31 |
32 | /**
33 | * Clear cached themes.
34 | */
35 | protected function clear()
36 | {
37 | $this->laravel['themes']->forgetCache();
38 |
39 | $this->info('Theme cache cleared!');
40 | }
41 |
42 | /**
43 | * Cache the themes.
44 | */
45 | protected function cache()
46 | {
47 | $this->laravel['themes']->cache();
48 |
49 | $this->info('Themes cached successfully!');
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/Pingpong/Themes/Console/ListCommand.php:
--------------------------------------------------------------------------------
1 | table(['Name', 'Path', 'Enabled', 'Active'], $this->getRows());
29 | }
30 |
31 | /**
32 | * Get table rows.
33 | *
34 | * @return array
35 | */
36 | public function getRows()
37 | {
38 | $rows = [];
39 |
40 | $themes = $this->laravel['themes']->all();
41 |
42 | foreach ($themes as $theme) {
43 | $rows[] = [
44 | $theme->getName(),
45 | $theme->getPath(),
46 | $theme->enabled() ? 'Yes' : 'No',
47 | $theme->isActive() ? 'Yes' : 'No',
48 | ];
49 | }
50 |
51 | return $rows;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/Pingpong/Themes/Console/stubs/json.stub:
--------------------------------------------------------------------------------
1 | {
2 | "name": "$NAME$",
3 | "description": "",
4 | "author": [
5 | {
6 | "name": "",
7 | "email": ""
8 | }
9 | ],
10 | "files": [
11 | "theme.php"
12 | ]
13 | }
--------------------------------------------------------------------------------
/src/Pingpong/Themes/Console/stubs/theme.stub:
--------------------------------------------------------------------------------
1 | 'value'
5 | ];
6 |
--------------------------------------------------------------------------------
/src/Pingpong/Themes/Console/stubs/theme/lang/en/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/src/Pingpong/Themes/Console/stubs/theme/lang/en/.gitkeep
--------------------------------------------------------------------------------
/src/Pingpong/Themes/Console/stubs/theme/views/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/src/Pingpong/Themes/Console/stubs/theme/views/.gitkeep
--------------------------------------------------------------------------------
/src/Pingpong/Themes/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Pingpong Labs
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 |
8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 |
10 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
11 |
12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/src/Pingpong/Themes/README.md:
--------------------------------------------------------------------------------
1 | Laravel 5 Themes
2 | ==============
3 |
4 | Official documentation is located [here](http://sky.pingpong-labs.com/docs/2.0/themes)
--------------------------------------------------------------------------------
/src/Pingpong/Themes/ThemeFacade.php:
--------------------------------------------------------------------------------
1 | =5.4.0",
19 | "illuminate/support": "5.1.*",
20 | "illuminate/filesystem": "5.1.*",
21 | "illuminate/translation": "5.1.*",
22 | "illuminate/view": "5.1.*",
23 | "illuminate/config": "5.1.*",
24 | "pingpong/support": "2.1.*"
25 | },
26 | "require-dev": {
27 | "phpunit/phpunit": "~4",
28 | "mockery/mockery": "~0.9"
29 | },
30 | "autoload": {
31 | "psr-4": {
32 | "Pingpong\\Themes\\": ""
33 | }
34 | },
35 | "minimum-stability": "stable"
36 | }
37 |
--------------------------------------------------------------------------------
/src/Pingpong/Themes/helpers.php:
--------------------------------------------------------------------------------
1 | view($view, $data, $mergeData);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Pingpong/Themes/src/config/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/src/Pingpong/Themes/src/config/.gitkeep
--------------------------------------------------------------------------------
/src/Pingpong/Themes/src/config/config.php:
--------------------------------------------------------------------------------
1 | 'default',
6 |
7 | 'path' => base_path('resources/themes'),
8 |
9 | 'cache' => [
10 | 'enabled' => false,
11 | 'key' => 'pingpong.themes',
12 | 'lifetime' => 86400,
13 | ],
14 |
15 | );
16 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.phar
3 | composer.lock
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/Exceptions/ForbiddenException.php:
--------------------------------------------------------------------------------
1 | belongsToMany(config('trusty.model.permission'))->withTimestamps();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/README.md:
--------------------------------------------------------------------------------
1 | Trusty - Roles and Permissions for Laravel 5
2 | ==============
3 |
4 | Official documentation is located [here](http://sky.pingpong-labs.com/docs/2.0/trusty)
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/Traits/PermissionTrait.php:
--------------------------------------------------------------------------------
1 | beforeFilter(function () use ($permissions) {
19 | Trusty::filterByPermission($permissions);
20 | });
21 | }
22 |
23 | /**
24 | * Filter the specified request by the given roles.
25 | *
26 | * @param string|array $roles
27 | */
28 | public function beforeRole($roles)
29 | {
30 | $roles = is_array($roles) ? $roles : func_get_args();
31 |
32 | $this->beforeFilter(function () use ($roles) {
33 | Trusty::filterByRole($roles);
34 | });
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/Traits/SlugableTrait.php:
--------------------------------------------------------------------------------
1 | attributes['slug'] = Str::slug($value, '_');
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/TrustyServiceProvider.php:
--------------------------------------------------------------------------------
1 | publishes([
22 | __DIR__.'/src/migrations/' => base_path('/database/migrations'),
23 | __DIR__.'/src/config/config.php' => config_path('trusty.php'),
24 | ]);
25 | $this->mergeConfigFrom(__DIR__.'/src/config/config.php', 'trusty');
26 | }
27 |
28 | /**
29 | * Register the service provider.
30 | */
31 | public function register()
32 | {
33 | $this->app['trusty'] = $this->app->share(function ($app) {
34 | $auth = $app['auth']->driver();
35 |
36 | return new Trusty($auth, $app['router']);
37 | });
38 | }
39 |
40 | /**
41 | * Get the services provided by the provider.
42 | *
43 | * @return array
44 | */
45 | public function provides()
46 | {
47 | return array('trusty');
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong/trusty",
3 | "description": "Roles and Permissions for Laravel 4",
4 | "keywords": [
5 | "roles",
6 | "permissions",
7 | "laravel",
8 | "pingpong"
9 | ],
10 | "license": "BSD-3-Clause",
11 | "authors": [
12 | {
13 | "name": "Pingpong Labs",
14 | "email": "pingpong.labs@gmail.com"
15 | }
16 | ],
17 | "require": {
18 | "php": ">=5.4.0",
19 | "illuminate/auth": "5.1.*",
20 | "illuminate/support": "5.1.*",
21 | "illuminate/routing": "5.1.*",
22 | "illuminate/database": "5.1.*"
23 | },
24 | "require-dev": {
25 | "phpunit/phpunit": "~4",
26 | "mockery/mockery": "~0.9"
27 | },
28 | "autoload": {
29 | "psr-4": {
30 | "Pingpong\\Trusty\\": ""
31 | }
32 | },
33 | "minimum-stability": "stable"
34 | }
35 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/src/config/config.php:
--------------------------------------------------------------------------------
1 | [
6 | 'user' => 'App\User',
7 | 'role' => 'Pingpong\Trusty\Role',
8 | 'permission' => 'Pingpong\Trusty\Permission',
9 | ],
10 |
11 | ];
12 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/src/migrations/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/src/Pingpong/Trusty/src/migrations/.gitkeep
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/src/migrations/2014_11_02_051938_create_roles_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
15 | $table->string('name');
16 | $table->string('slug')->unique();
17 | $table->text('description')->nullable();
18 | $table->timestamps();
19 | });
20 | }
21 |
22 | /**
23 | * Reverse the migrations.
24 | */
25 | public function down()
26 | {
27 | Schema::drop('roles');
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/src/migrations/2014_11_02_052125_create_permissions_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
15 | $table->string('name');
16 | $table->string('slug')->unique();
17 | $table->text('description')->nullable();
18 | $table->timestamps();
19 | });
20 | }
21 |
22 | /**
23 | * Reverse the migrations.
24 | */
25 | public function down()
26 | {
27 | Schema::drop('permissions');
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/src/migrations/2014_11_02_052410_create_role_user_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
16 | $table->integer('role_id')->unsigned()->index();
17 | $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
18 | $table->integer('user_id')->unsigned()->index();
19 | $table->foreign('user_id')->references('id')->on(config('auth.table'))->onDelete('cascade');
20 | $table->timestamps();
21 | });
22 | }
23 |
24 | /**
25 | * Reverse the migrations.
26 | */
27 | public function down()
28 | {
29 | Schema::dropIfExists('role_user');
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Pingpong/Trusty/src/migrations/2014_11_02_092851_create_permission_role_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
15 | $table->integer('permission_id')->unsigned()->index();
16 | $table->foreign('permission_id')->references('id')->on('permissions')->onDelete('cascade');
17 | $table->integer('role_id')->unsigned()->index();
18 | $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
19 | $table->timestamps();
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | */
26 | public function down()
27 | {
28 | Schema::drop('permission_role');
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Pingpong/Widget/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | composer.phar
3 | composer.lock
4 | .DS_Store
5 | /.idea
--------------------------------------------------------------------------------
/src/Pingpong/Widget/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 Pingpong Labs
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/src/Pingpong/Widget/README.md:
--------------------------------------------------------------------------------
1 | Laravel 5 Widget
2 | ==============
3 |
4 | Official documentation is located [here](http://sky.pingpong-labs.com/docs/2.0/widget)
--------------------------------------------------------------------------------
/src/Pingpong/Widget/WidgetFacade.php:
--------------------------------------------------------------------------------
1 | app['widget'] = $this->app->share(function ($app) {
23 | $blade = $app['view']->getEngineResolver()->resolve('blade')->getCompiler();
24 |
25 | return new Widget($blade, $app);
26 | });
27 |
28 | $this->app->booting(function () {
29 | $loader = AliasLoader::getInstance();
30 | $loader->alias('Widget', 'Pingpong\Widget\WidgetFacade');
31 |
32 | $file = app_path('widgets.php');
33 |
34 | if (file_exists($file)) {
35 | include $file;
36 | }
37 | });
38 | }
39 |
40 | /**
41 | * Get the services provided by the provider.
42 | *
43 | * @return array
44 | */
45 | public function provides()
46 | {
47 | return array('widget');
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Pingpong/Widget/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pingpong/widget",
3 | "description": "Simple Widget System for Laravel Framework",
4 | "keywords": [
5 | "widget",
6 | "laravel",
7 | "pingpong"
8 | ],
9 | "license": "MIT",
10 | "authors": [
11 | {
12 | "name": "Pingpong Labs",
13 | "email": "pingpong.labs@gmail.com"
14 | }
15 | ],
16 | "require": {
17 | "php": ">=5.3.0",
18 | "illuminate/support": "5.1.*",
19 | "illuminate/container": "5.1.*",
20 | "illuminate/view": "5.1.*",
21 | "illuminate/routing": "5.1.*"
22 | },
23 | "require-dev": {
24 | "mockery/mockery": "~0.9",
25 | "phpunit/phpunit": "~4"
26 | },
27 | "autoload": {
28 | "psr-4": {
29 | "Pingpong\\Widget\\": ""
30 | }
31 | },
32 | "minimum-stability": "dev"
33 | }
34 |
--------------------------------------------------------------------------------
/tests/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/tests/.gitkeep
--------------------------------------------------------------------------------
/tests/Generators/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/tests/Generators/.gitkeep
--------------------------------------------------------------------------------
/tests/Modules/test.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Test",
3 | "dependencies": {
4 | "pingpong\/modules": "1.*",
5 | "pingpong\/admin": "1.*"
6 | },
7 | "alias": "test"
8 | }
--------------------------------------------------------------------------------
/tests/PingpongTestCase.php:
--------------------------------------------------------------------------------
1 | model = new UserModel;
28 | }
29 |
30 | public function testPresenterUsingMagicAccess()
31 | {
32 | return $this->assertEquals('foo@domain.com', $this->model->present()->email);
33 | }
34 |
35 | public function testCallMethod()
36 | {
37 | return $this->assertEquals('foo@domain.com', $this->model->present()->email());
38 | }
39 | }
--------------------------------------------------------------------------------
/tests/Shortcode/FacadeTest.php:
--------------------------------------------------------------------------------
1 | 'Pingpong\Shortcode\ShortcodeFacade'];
8 | }
9 |
10 | protected function getPackageProviders()
11 | {
12 | return ['Pingpong\Shortcode\ShortcodeServiceProvider'];
13 | }
14 |
15 | }
16 |
17 | class FacadeTest extends ShortcodeTestCase {
18 |
19 | public function testUsingFacade()
20 | {
21 | Shortcode::register('foo', function ()
22 | {
23 | return 'bar';
24 | });
25 |
26 | $this->assertEquals('foo', Shortcode::compile('foo'));
27 | }
28 |
29 | }
--------------------------------------------------------------------------------
/tests/Themes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/tests/Themes/.gitkeep
--------------------------------------------------------------------------------
/tests/Trusty/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pingpong-labs/sky/eaedc672c0f75a6c73b4ad89561ed6a3d1e3dfb6/tests/Trusty/.gitkeep
--------------------------------------------------------------------------------