https://github.com/torann/device-view
Dynamically change Laravel views based on the visitor's device.
https://github.com/torann/device-view
Last synced: 10 months ago
JSON representation
Dynamically change Laravel views based on the visitor's device.
- Host: GitHub
- URL: https://github.com/torann/device-view
- Owner: Torann
- License: bsd-2-clause
- Created: 2015-07-25T20:09:37.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2018-02-01T20:02:09.000Z (over 8 years ago)
- Last Synced: 2025-04-22T18:53:04.987Z (about 1 year ago)
- Language: PHP
- Size: 13.7 KB
- Stars: 14
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Laravel Device View
[](https://packagist.org/packages/torann/device-view)
[](https://www.patreon.com/torann)
[](https://gratipay.com/~torann)
[](https://flattr.com/profile/torann)
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=4CJA2A97NPYVU)
- [Device View on Packagist](https://packagist.org/packages/torann/device-view)
- [Device View on GitHub](https://github.com/Torann/device-view)
Dynamically change Laravel views based on the visitor's device.
## Installation
### Composer
From the command line run:
```
composer require torann/device-view
```
### Setup
This package extends Laravel's built in `ViewServiceProvider`, so that provider must be replaced in `app/app.php`.
Replace the instance of `'Illuminate\View\ViewServiceProvider',` with `'Torann\DeviceView\DeviceViewServiceProvider',`.
### Publish the configurations
Run this on the command line from the root of your project:
```
$ php artisan vendor:publish --provider="Torann\DeviceView\DeviceViewServiceProvider"
```
A configuration file will be publish to `config/device-view.php`.
## Configuration
The default settings are for the device views to be in the `views` directory in `resources/` with the default theme called `default`.
```
resources/
views/
default/
mobile/
tablet/
```
## Usage
A standard call to `View::make('index')` will look for an index view in `resources/views/default/`. However, if a theme is specified with
`$app['view.finder']->setDeviceView('mobile');` prior to calling `View::make()` then the view will first be looked for in `resources/views/mobile/views`.
If the view is not found for the current theme the default theme will then be searched.
### Facade
The `DeviceView` facade can also be used if preferred `DeviceView::setDeviceView('mobile')` by adding an entry for `Torann\DeviceView\Facades\DeviceView` to `config/app.php`.
### Helper Methods
**DeviceView::getPlatform()**
Return the user's operating system.
## Example
Given a directory structure of:
```
resources/
views/
default/
layout.blade.php
admin.blade.php
mobile/
layout.blade.php
```
```
View::make('layout'); // Loads resources/views/default/layout.blade.php
$app['view.finder']->setDeviceView('default');
View::make('layout'); // Loads resources/views/mobile/layout.blade.php
View::make('admin'); // Loads resources/views/default/admin.blade.php
```