torann / device-view
Provides support for device based view layouts in Laravel.
Installs: 6 360
Dependents: 0
Suggesters: 0
Security: 0
Stars: 14
Watchers: 4
Forks: 1
Open Issues: 0
Requires
- php: >=5.5.9
- illuminate/support: ~5.1
- mobiledetect/mobiledetectlib: 2.*
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-10-08 09:34:42 UTC
README
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