Compare commits
198 Commits
71d203d873
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b0ae121363 | ||
|
|
8c22515397 | ||
|
|
30bfd34ee3 | ||
|
|
d46dc081ef | ||
|
|
acc2260745 | ||
|
|
11e1a3ea54 | ||
|
|
643efdb404 | ||
|
|
e3564b524f | ||
|
|
7da73b92a9 | ||
|
|
d0190a7b35 | ||
|
|
2b5a905a2d | ||
|
|
e4d91c2af5 | ||
|
|
4f2c134b67 | ||
|
|
de39b84975 | ||
|
|
06b2bd704b | ||
|
|
f5b39618f6 | ||
|
|
12c498a125 | ||
|
|
c8fd7e8a51 | ||
|
|
144d0844e8 | ||
|
|
7a0f727c86 | ||
| b64defe7fc | |||
|
|
6333ff6433 | ||
| f28e1609ae | |||
|
|
99720de0ca | ||
| ee8d50cf6c | |||
|
|
ae0e83def6 | ||
|
|
68ae6f9161 | ||
| 47a7590bf5 | |||
|
|
863381a226 | ||
| 4bd72b1349 | |||
|
|
94eddea78b | ||
| 6abe7ba61a | |||
|
|
7f1688ee89 | ||
|
|
34f5cfca73 | ||
|
|
676569256e | ||
|
|
5cd69739e5 | ||
|
|
b24fdc8e41 | ||
|
|
e12fcf8ad7 | ||
|
|
5b4b0011ea | ||
|
|
5e3604da33 | ||
|
|
aec6690c9e | ||
|
|
3e7490531d | ||
|
|
c7243f31a0 | ||
|
|
2e1f496eea | ||
|
|
92c66e4ed9 | ||
|
|
37745e8ae9 | ||
|
|
eb9813c239 | ||
|
|
9dc9b30afa | ||
|
|
761cec4257 | ||
|
|
0e2148956f | ||
| 1863ff766f | |||
| 96748c0c01 | |||
| c16a2db01d | |||
| df4d48a327 | |||
| 187fc7b273 | |||
| 06e7741d3b | |||
| 262aec618b | |||
| 98a9cd2c53 | |||
| 21ca729958 | |||
| 367527098d | |||
| a86f8e56a1 | |||
| c1ddaa15c6 | |||
| 39f1ee4823 | |||
| 71a5d3a690 | |||
|
|
6db6de8e49 | ||
|
|
e06ce1507b | ||
| 3ef630c7cc | |||
| 2ba81f8550 | |||
| f3fa2c109a | |||
| 52df85716b | |||
| 22292e10ed | |||
| 9428e1d2ee | |||
| 1c587684f3 | |||
| 918255be1c | |||
|
|
35a5aa636f | ||
|
|
e2551b1dab | ||
|
|
552c638571 | ||
|
|
a930fb7216 | ||
|
|
58ea5c0c85 | ||
|
|
8616cb3d56 | ||
|
|
dbca7e2bc5 | ||
|
|
437e6243e7 | ||
|
|
9698f9b103 | ||
|
|
6008d3175b | ||
|
|
8d1e79f1b7 | ||
|
|
ab7246e123 | ||
|
|
d9627a54c4 | ||
|
|
6c732f90e8 | ||
|
|
1dadbc62af | ||
|
|
7f07a28b98 | ||
|
|
cff9948dda | ||
|
|
059b1ed47a | ||
|
|
0699269fb2 | ||
|
|
a3e8b05008 | ||
|
|
389e5c6523 | ||
| ba06608ee0 | |||
| 8da0481296 | |||
| 885ce2b2cc | |||
|
|
6d91e1d3ca | ||
|
|
5ebf7f20be | ||
|
|
cc1eba5959 | ||
|
|
3b55a1cf42 | ||
|
|
f4444d44e3 | ||
|
|
35713d2974 | ||
|
|
6044a670d7 | ||
|
|
173d9dcaf6 | ||
|
|
a7d1347319 | ||
|
|
92769463cd | ||
|
|
47eb0952d4 | ||
|
|
e7bae27951 | ||
|
|
50d6a97fce | ||
|
|
9d96efc022 | ||
|
|
539dd88d42 | ||
|
|
d9c933b79a | ||
|
|
84355b1121 | ||
|
|
70d25c3cea | ||
|
|
b628404977 | ||
|
|
e1823a1322 | ||
| 9364ebecad | |||
|
|
16808e6280 | ||
|
|
e194e93784 | ||
|
|
e551e55158 | ||
|
|
2799b1843f | ||
|
|
52f38b4c00 | ||
|
|
e2f114a7a8 | ||
|
|
cc58f5931c | ||
|
|
23d88ac143 | ||
|
|
56adc60788 | ||
|
|
72da998965 | ||
|
|
2db970e8c6 | ||
|
|
80256669b1 | ||
|
|
738107515c | ||
|
|
e96198bc3d | ||
|
|
c5b9e88ad3 | ||
|
|
7c05b92703 | ||
|
|
9ae62ab798 | ||
|
|
d495cdde37 | ||
|
|
644d4f9b12 | ||
|
|
5948154ae1 | ||
|
|
d75ab273ff | ||
|
|
909126c05a | ||
|
|
077fb0236f | ||
|
|
ecfbb47f1e | ||
|
|
e06ecf297f | ||
|
|
684cba6085 | ||
|
|
e0c11c50f5 | ||
| 34ca1486bd | |||
|
|
6220a405a3 | ||
|
|
239bff06ce | ||
|
|
8fcd34759f | ||
|
|
4db20ca296 | ||
|
|
e7459cf026 | ||
|
|
26f9a71061 | ||
|
|
9370b21d84 | ||
|
|
be485c7300 | ||
|
|
c81ba184b3 | ||
|
|
58e291d0d3 | ||
|
|
f4ba89a6eb | ||
|
|
9c80727a03 | ||
|
|
4aa1fef3ad | ||
|
|
249f7a7d4c | ||
|
|
cdd394a8d4 | ||
|
|
6041398e10 | ||
|
|
1d94e7da7f | ||
|
|
25b3d41bf1 | ||
|
|
180c5d01be | ||
|
|
46a39588de | ||
|
|
fd2b17689c | ||
|
|
5b9dc7c7f3 | ||
|
|
04b4a3b3e5 | ||
|
|
742c126a0a | ||
|
|
8ce3a1d7b3 | ||
|
|
38410b00c7 | ||
|
|
6d5eff146d | ||
|
|
43c14de45d | ||
|
|
5187062cb1 | ||
|
|
eaea761366 | ||
|
|
1a8bbeb084 | ||
|
|
a0baa0230f | ||
|
|
d445d90069 | ||
|
|
2895ba283b | ||
| 67cb7c25f3 | |||
|
|
55aa88c0f6 | ||
|
|
8acacc0c68 | ||
| c1ef2d7070 | |||
|
|
ec43f6d753 | ||
| dbf77d437c | |||
|
|
7907dd0a46 | ||
| fd855bc3e0 | |||
| 8463c6f6f1 | |||
| 4fcf6fffcc | |||
| 1648a5cd42 | |||
| 59226a1765 | |||
| 60be2d8cb2 | |||
| 9f323af73c | |||
| f3c1780c5e | |||
| ef47e845eb | |||
| 964fb3429c |
39
.env.example
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
APP_NAME="NH Gooi"
|
||||||
|
APP_ENV=production
|
||||||
|
APP_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
APP_DEBUG=false
|
||||||
|
APP_LOG_LEVEL=error
|
||||||
|
APP_URL=https://dev.nhgooi.nl
|
||||||
|
IMAGE_BASE_URL=https://dev.nhgooi.nl
|
||||||
|
|
||||||
|
API_URL=https://api.nhgooi.nl/
|
||||||
|
|
||||||
|
BROADCAST_DRIVER=log
|
||||||
|
CACHE_DRIVER=file
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
QUEUE_DRIVER=sync
|
||||||
|
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_DRIVER=smtp
|
||||||
|
MAIL_HOST=in-v3.mailjet.com
|
||||||
|
MAIL_PORT=25
|
||||||
|
MAIL_USERNAME=mailjet_username
|
||||||
|
MAIL_PASSWORD=mailjet_password
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
|
||||||
|
PUSHER_APP_ID=
|
||||||
|
PUSHER_APP_KEY=
|
||||||
|
PUSHER_APP_SECRET=
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=nhgooi.nl
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=dbname
|
||||||
|
DB_USERNAME=6fmstats
|
||||||
|
DB_PASSWORD=dbpass
|
||||||
|
|
||||||
|
CACHE_DRIVER=file
|
||||||
|
QUEUE_DRIVER=sync
|
||||||
5
.gitattributes
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
* text=auto
|
||||||
|
*.css linguist-vendored
|
||||||
|
*.scss linguist-vendored
|
||||||
|
*.js linguist-vendored
|
||||||
|
CHANGELOG.md export-ignore
|
||||||
12
.gitignore
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/node_modules
|
||||||
|
/public/hot
|
||||||
|
/public/storage
|
||||||
|
/storage/*.key
|
||||||
|
/vendor
|
||||||
|
/.idea
|
||||||
|
/.vagrant
|
||||||
|
Homestead.json
|
||||||
|
Homestead.yaml
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
.env
|
||||||
5
.hgignore.orig
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
syntax: glob
|
||||||
|
|
||||||
|
.env
|
||||||
|
storage
|
||||||
|
website/public/images/banners
|
||||||
38
Dockerfile
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
FROM php:8.1-apache
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get -y install \
|
||||||
|
g++ \
|
||||||
|
libcurl4-gnutls-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
libxslt-dev \
|
||||||
|
libzip-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
msmtp \
|
||||||
|
unzip \
|
||||||
|
git \
|
||||||
|
ssl-cert \
|
||||||
|
locales \
|
||||||
|
--no-install-recommends \
|
||||||
|
&& docker-php-ext-install pdo pdo_mysql mysqli xsl xml zip opcache \
|
||||||
|
&& a2enmod rewrite ssl proxy proxy_http headers \
|
||||||
|
&& apt-get purge -y g++ \
|
||||||
|
&& apt-get autoremove -y \
|
||||||
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Get latest Composer
|
||||||
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||||
|
|
||||||
|
# Update the default apache site with the config we created.
|
||||||
|
ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf
|
||||||
|
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
# COPY . /var/www/html
|
||||||
|
|
||||||
|
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
|
||||||
|
chown -R www-data:www-data storage/framework && \
|
||||||
|
chmod -R 775 storage
|
||||||
|
|
||||||
|
RUN php artisan cache:clear && \
|
||||||
|
php artisan config:clear && \
|
||||||
|
php artisan view:clear
|
||||||
38
Dockerfile.dev
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
FROM php:8.1-apache
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get -y install \
|
||||||
|
g++ \
|
||||||
|
libcurl4-gnutls-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
libxslt-dev \
|
||||||
|
libzip-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
msmtp \
|
||||||
|
unzip \
|
||||||
|
git \
|
||||||
|
ssl-cert \
|
||||||
|
locales \
|
||||||
|
--no-install-recommends \
|
||||||
|
&& docker-php-ext-install pdo pdo_mysql mysqli xsl xml zip opcache \
|
||||||
|
&& a2enmod rewrite ssl proxy proxy_http headers \
|
||||||
|
&& apt-get purge -y g++ \
|
||||||
|
&& apt-get autoremove -y \
|
||||||
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Get latest Composer
|
||||||
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||||
|
|
||||||
|
# Update the default apache site with the config we created.
|
||||||
|
ADD docker/apache.dev.conf /etc/apache2/sites-enabled/000-default.conf
|
||||||
|
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
COPY . /var/www/html
|
||||||
|
|
||||||
|
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
|
||||||
|
chown -R www-data:www-data storage/framework && \
|
||||||
|
chmod -R 775 storage
|
||||||
|
|
||||||
|
# RUN php artisan cache:clear && \
|
||||||
|
# php artisan config:clear && \
|
||||||
|
# php artisan view:clear
|
||||||
37
Gruntfile.js
vendored
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
module.exports = function(grunt) {
|
||||||
|
|
||||||
|
// Project configuration.
|
||||||
|
grunt.initConfig({
|
||||||
|
pkg: grunt.file.readJSON('package.json'),
|
||||||
|
uglify: {
|
||||||
|
options: {
|
||||||
|
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
src: 'public/js/functions.js',
|
||||||
|
dest: 'public/js/functions.min.js'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
concat: {
|
||||||
|
js: {
|
||||||
|
src: ['resources/assets/js/functions/*.js'],
|
||||||
|
dest: 'public/js/functions.js'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
scripts: {
|
||||||
|
files: 'resources/assets/js/functions/*.js',
|
||||||
|
tasks: ['concat', 'uglify'],
|
||||||
|
options: {
|
||||||
|
interrupt: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Load the plugin that provides the "uglify" task.
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||||
|
|
||||||
|
};
|
||||||
2
app/Console/Kernel.php
Normal file → Executable file
@@ -27,7 +27,7 @@ class Kernel extends ConsoleKernel
|
|||||||
*/
|
*/
|
||||||
protected function schedule(Schedule $schedule)
|
protected function schedule(Schedule $schedule)
|
||||||
{
|
{
|
||||||
$this->API_URL = env('API_URL', 'https://api-dev.nhgooi.nl/');
|
$this->API_URL = env('API_URL', 'https://api.nhgooi.nl/');
|
||||||
|
|
||||||
// Update latest news (3 items)
|
// Update latest news (3 items)
|
||||||
$schedule->call(function() {
|
$schedule->call(function() {
|
||||||
|
|||||||
7
app/Exceptions/Handler.php
Normal file → Executable file
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Exceptions;
|
namespace App\Exceptions;
|
||||||
|
|
||||||
use Exception;
|
//use Exception;
|
||||||
|
use Throwable;
|
||||||
use Illuminate\Auth\AuthenticationException;
|
use Illuminate\Auth\AuthenticationException;
|
||||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||||
|
|
||||||
@@ -30,7 +31,7 @@ class Handler extends ExceptionHandler
|
|||||||
* @param \Exception $exception
|
* @param \Exception $exception
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function report(Exception $exception)
|
public function report(Throwable $exception)
|
||||||
{
|
{
|
||||||
parent::report($exception);
|
parent::report($exception);
|
||||||
}
|
}
|
||||||
@@ -42,7 +43,7 @@ class Handler extends ExceptionHandler
|
|||||||
* @param \Exception $exception
|
* @param \Exception $exception
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function render($request, Exception $exception)
|
public function render($request, Throwable $exception)
|
||||||
{
|
{
|
||||||
return parent::render($request, $exception);
|
return parent::render($request, $exception);
|
||||||
}
|
}
|
||||||
|
|||||||
0
app/Helpers/FormatterHelper.php
Normal file → Executable file
0
app/Http/Controllers/Auth/ForgotPasswordController.php
Normal file → Executable file
0
app/Http/Controllers/Auth/LoginController.php
Normal file → Executable file
0
app/Http/Controllers/Auth/RegisterController.php
Normal file → Executable file
0
app/Http/Controllers/Auth/ResetPasswordController.php
Normal file → Executable file
10
app/Http/Controllers/CalendarController.php
Normal file → Executable file
@@ -10,20 +10,20 @@ class CalendarController extends Controller
|
|||||||
{
|
{
|
||||||
parent::registerView($request, 'agenda', $id);
|
parent::registerView($request, 'agenda', $id);
|
||||||
$apiResult = $this->API('agenda/item/' . (int)$id);
|
$apiResult = $this->API('agenda/item/' . (int)$id);
|
||||||
$calendarEvent = new \Model\CalendarEvent($apiResult);
|
$calendarEvent = new \Model\CalendarEvent($apiResult->news);
|
||||||
|
|
||||||
return view('calendarevent', ['event' => $calendarEvent, 'metadata' => $calendarEvent->metadata]);
|
return view('calendarevent', array_merge($this->getSidebareData(), ['event' => $calendarEvent, 'metadata' => $calendarEvent->metadata]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function overview(Request $request)
|
public function overview(Request $request)
|
||||||
{
|
{
|
||||||
$apiResult = $this->API('agenda/overzicht');
|
$apiResult = $this->API('agenda/overzicht?aantal=100');
|
||||||
$calendar = [];
|
$calendar = [];
|
||||||
foreach($apiResult as $calendarItem)
|
foreach($apiResult->events as $calendarItem)
|
||||||
{
|
{
|
||||||
$calendar[] = new \Model\CalendarEvent($calendarItem);
|
$calendar[] = new \Model\CalendarEvent($calendarItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('calendarlist', ['events' => $calendar]);
|
return view('calendarlist', array_merge($this->getSidebareData(), ['events' => $calendar]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
258
app/Http/Controllers/Controller.php
Normal file → Executable file
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
|
||||||
use Illuminate\Routing\Controller as BaseController;
|
|
||||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
|
||||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||||
|
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||||
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Routing\Controller as BaseController;
|
||||||
use Illuminate\Support\Facades\Session;
|
use Illuminate\Support\Facades\Session;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Illuminate\Support\Facades\View;
|
use Illuminate\Support\Facades\View;
|
||||||
@@ -14,113 +14,191 @@ use Illuminate\Support\Facades\View;
|
|||||||
class Controller extends BaseController
|
class Controller extends BaseController
|
||||||
{
|
{
|
||||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||||
|
|
||||||
protected $API_URL;
|
|
||||||
|
|
||||||
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
|
|
||||||
{
|
|
||||||
$data = json_decode(Storage::disk('local')->get($file));
|
|
||||||
foreach($path as $subobject) { $data = $data->$subobject; }
|
|
||||||
$items = [];
|
|
||||||
foreach($data as $item_data)
|
|
||||||
{
|
|
||||||
$items[] = new $class($item_data);
|
|
||||||
if($maxItems && count($items) == $maxItems) { break; }
|
|
||||||
}
|
|
||||||
|
|
||||||
return $items;
|
protected $API_URL;
|
||||||
}
|
|
||||||
|
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
|
||||||
|
{
|
||||||
|
$data = json_decode(Storage::get($file));
|
||||||
|
foreach ($path as $subobject) {
|
||||||
|
$data = $data->$subobject ?? [];
|
||||||
|
}
|
||||||
|
$items = [];
|
||||||
|
foreach ($data as $item_data) {
|
||||||
|
$items[] = new $class($item_data);
|
||||||
|
if ($maxItems && count($items) == $maxItems) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
||||||
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
|
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
|
||||||
|
|
||||||
$blogs = $this->getDataFromFileAndConvert('blogs.json', [], '\Model\Blog', 1);
|
//View::share('onAir', file_get_contents(url('onair')));
|
||||||
$activeBlog = count($blogs) && $blogs[0]->is_active ? $blogs[0] : null;
|
View::composer('widgets.laatstenieuws', function ($view) {
|
||||||
View::share('activeBlog', $activeBlog);
|
$view->with('data', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'));
|
||||||
|
});
|
||||||
|
View::composer('widgets.populairnieuws', function ($view) {
|
||||||
|
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem'));
|
||||||
|
});
|
||||||
|
View::composer('widgets.nustraks', function ($view) {
|
||||||
|
$data = json_decode(Storage::get('nu_straks.json'))->schedule;
|
||||||
|
$programs = [];
|
||||||
|
foreach ($data as $item_data) {
|
||||||
|
$programs[] = $program = new \Model\Program($item_data->program);
|
||||||
|
$program->start = self::JsonToDateTime($item_data->start);
|
||||||
|
$program->end = self::JsonToDateTime($item_data->end);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Need a bit of slack here, otherwise the current program may show up
|
||||||
|
$now = new \DateTimeImmutable('2 minutes ago');
|
||||||
|
$data = json_decode(Storage::get('zojuist.json'))->schedule;
|
||||||
|
$i = 0;
|
||||||
|
foreach (array_reverse($data) as $item_data) {
|
||||||
|
$recent = $program = new \Model\Program($item_data->program);
|
||||||
|
$recent->start = self::JsonToDateTime($item_data->start);
|
||||||
|
$recent->end = self::JsonToDateTime($item_data->end);
|
||||||
|
if (($recent->end < $now) && (!$recent->nonstop) && (!$recent->rerun)) {
|
||||||
|
$view->with('recent', $recent);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//View::share('onAir', file_get_contents(url('onair')));
|
$view->with('data', $programs);
|
||||||
View::composer('widgets.laatstenieuws', function($view) {
|
});
|
||||||
$view->with('data', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'));
|
View::composer('widgets.laatstepodcasts', function ($view) {
|
||||||
});
|
$view->with(
|
||||||
View::composer('widgets.populairnieuws', function($view) {
|
'data',
|
||||||
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', [], '\Model\NewsItem'));
|
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast')
|
||||||
});
|
);
|
||||||
View::composer('widgets.nustraks', function($view) {
|
});
|
||||||
$data = json_decode(Storage::disk('local')->get('nu_straks.json'))->schedule;
|
View::composer('widgets.regioagenda', function ($view) {
|
||||||
$programs = [];
|
$view->with('data', $this->getDataFromFileAndConvert('regioagenda.json', [], '\Model\CalendarEvent'));
|
||||||
foreach($data as $item_data)
|
});
|
||||||
{
|
View::composer('widgets.beelden', function ($view) {
|
||||||
$programs[] = $program = new \Model\Program($item_data->program);
|
$view->with('data', $this->getDataFromFileAndConvert('beelden.json', ['items'], '\Model\NewsItem'));
|
||||||
$program->start = new \DateTimeImmutable($item_data->start->date, new \DateTimeZone($item_data->start->timezone));
|
});
|
||||||
$program->end = new \DateTimeImmutable($item_data->end->date, new \DateTimeZone($item_data->end->timezone));
|
View::composer('widgets.menu', function ($view) {
|
||||||
}
|
$view->with('news', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'))
|
||||||
|
->with('popular', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem', 3))
|
||||||
|
->with(
|
||||||
|
'podcasts',
|
||||||
|
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast')
|
||||||
|
);
|
||||||
|
});
|
||||||
|
View::composer('widgets.menu', function($view) {
|
||||||
|
$view->with('items', json_decode(Storage::get('static/menu.json')));
|
||||||
|
});
|
||||||
|
|
||||||
// Need a bit of slack here, otherwise the current program may show up
|
View::share('disableBanners', env('DISABLE_BANNERS', false));
|
||||||
$now = new \DateTimeImmutable('2 minutes ago');
|
|
||||||
$data = json_decode(Storage::disk('local')->get('zojuist.json'))->schedule;
|
|
||||||
$i = 0;
|
|
||||||
foreach(array_reverse($data) as $item_data)
|
|
||||||
{
|
|
||||||
$recent = $program = new \Model\Program($item_data->program);
|
|
||||||
$recent->start = new \DateTimeImmutable($item_data->start->date, new \DateTimeZone($item_data->start->timezone));
|
|
||||||
$recent->end = new \DateTimeImmutable($item_data->end->date, new \DateTimeZone($item_data->end->timezone));
|
|
||||||
if(($recent->end < $now) && (!$recent->nonstop) && (!$recent->rerun)) {
|
|
||||||
$view->with('recent', $recent);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$view->with('data', $programs);
|
|
||||||
});
|
|
||||||
View::composer('widgets.laatstepodcasts', function($view) {
|
|
||||||
$view->with('data', $this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
|
|
||||||
});
|
|
||||||
View::composer('widgets.regioagenda', function($view) {
|
|
||||||
$view->with('data', $this->getDataFromFileAndConvert('regioagenda.json', [], '\Model\CalendarEvent'));
|
|
||||||
});
|
|
||||||
View::composer('widgets.beelden', function($view) {
|
|
||||||
$view->with('data', $this->getDataFromFileAndConvert('beelden.json', ['items'], '\Model\NewsItem'));
|
|
||||||
});
|
|
||||||
View::composer('widgets.menu', function($view) {
|
|
||||||
$view->with('news', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'))
|
|
||||||
->with('popular', $this->getDataFromFileAndConvert('populair_nieuws.json', [], '\Model\NewsItem', 3))
|
|
||||||
->with('podcasts', $this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function registerView(Request $request, $type, $id)
|
protected function registerView(Request $request, $type, $id)
|
||||||
{
|
{
|
||||||
if(config('app.env') == 'local') {
|
if (config('app.env') == 'local') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
app('db')->insert('INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)', [
|
app('db')->insert(
|
||||||
'type' => $type,
|
'INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)',
|
||||||
'id' => $id,
|
[
|
||||||
'ip' => $request->server('REMOTE_ADDR'),
|
'type' => $type,
|
||||||
'session' => md5(Session::getId()),
|
'id' => $id,
|
||||||
'referer' => $request->server('HTTP_REFERRER')
|
'ip' => $request->server('REMOTE_ADDR'),
|
||||||
]);
|
'session' => md5(Session::getId()),
|
||||||
|
'referer' => $request->server('HTTP_REFERRER')
|
||||||
|
]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function API($url)
|
protected function API($url)
|
||||||
{
|
{
|
||||||
return json_decode(file_get_contents($this->API_URL . $url));
|
$arrContextOptions = [
|
||||||
|
'ssl' => [
|
||||||
|
"verify_peer" => false,
|
||||||
|
"verify_peer_name" => false,
|
||||||
|
],
|
||||||
|
'http' => [
|
||||||
|
'method' => 'GET',
|
||||||
|
'header' => 'X-Api-Key: ' . sha1(request()->server('REMOTE_ADDR')) . "\r\n"
|
||||||
|
. 'X-User-Agent: ' . request()->server('HTTP_USER_AGENT') . "\r\n"
|
||||||
|
]
|
||||||
|
];
|
||||||
|
//\dump($http_response_header);
|
||||||
|
$result = @file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions));
|
||||||
|
return $result ? json_decode($result) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static function JsonToDateTime($obj)
|
protected function checkAPI($url)
|
||||||
{
|
{
|
||||||
return new \DateTime($obj->date, new \DateTimeZone($obj->timezone));
|
return $this->get_http_response_code($this->API_URL . $url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __call($method, $arguments) {
|
protected function get_http_response_code($url)
|
||||||
if(substr($method, 0, 5) == 'view_') {
|
{
|
||||||
$view = substr($method, 5);
|
$headers = get_headers($url);
|
||||||
if(view()->exists($view)) { return view($view); }
|
return substr($headers[0], 9, 3);
|
||||||
}
|
}
|
||||||
return abort(404);
|
|
||||||
|
|
||||||
|
|
||||||
|
protected static function JsonToDateTime($obj)
|
||||||
|
{
|
||||||
|
return is_object($obj) ? new \DateTime($obj->date, new \DateTimeZone($obj->timezone)) : \Carbon\Carbon::parse($obj)->setTimezone(date_default_timezone_get());
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
public function __call($method, $arguments)
|
||||||
|
{
|
||||||
|
if (substr($method, 0, 5) == 'view_') {
|
||||||
|
$view = substr($method, 5);
|
||||||
|
if (view()->exists($view)) {
|
||||||
|
return view($view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return abort(404);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function getSidebareData()
|
||||||
|
{
|
||||||
|
$populair = [];
|
||||||
|
$apiResult = $this->API('nieuws/populair?aantal=5');
|
||||||
|
foreach ($apiResult->news as $_newsItem) {
|
||||||
|
$populair[] = new \Model\NewsItem($_newsItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
$newsItems = [];
|
||||||
|
$apiResult = $this->API('nieuws/overzicht?aantal=5');
|
||||||
|
foreach ($apiResult->news as $_newsItem) {
|
||||||
|
$newsItems[] = new \Model\NewsItem($_newsItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ['newsItems' => $newsItems, 'populair' => $populair];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function static_page($slug)
|
||||||
|
{
|
||||||
|
if (view()->exists($slug)) {
|
||||||
|
return view($slug);
|
||||||
|
}
|
||||||
|
|
||||||
|
$page = $this->API('statisch/' . $slug);
|
||||||
|
if ($page == null) {
|
||||||
|
return abort(404);
|
||||||
|
}
|
||||||
|
|
||||||
|
$page->published = Controller::JsonToDateTime($page->published);
|
||||||
|
if ($page->edited) {
|
||||||
|
$page->edited = Controller::JsonToDateTime($page->edited);
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('static', compact('page'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
37
app/Http/Controllers/HomeController.php
Normal file → Executable file
@@ -2,36 +2,29 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use \Model\NewsItem;
|
use \Model\NewsItem;
|
||||||
|
|
||||||
class HomeController extends Controller
|
class HomeController extends Controller
|
||||||
{
|
{
|
||||||
public function show()
|
public function show(Request $request)
|
||||||
{
|
{
|
||||||
$apiResult = $this->API('nieuws/overzicht?aantal=12');
|
$page = (int)$request->get('pagina', 1);
|
||||||
|
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int)max(1, $page) . '&aantal=10');
|
||||||
$news = [];
|
$news = [];
|
||||||
foreach($apiResult->news as $newsItem)
|
foreach ($apiResult->news as $newsItem) {
|
||||||
{
|
$news[] = new \Model\NewsItem($newsItem);
|
||||||
$news[] = new \Model\NewsItem($newsItem);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$apiResult = $this->API('programma/schema/nustraks');
|
$populair = [];
|
||||||
$comingUp = [];
|
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
|
||||||
foreach($apiResult->schedule as $program)
|
foreach ($apiResult->news as $newsItem) {
|
||||||
{
|
$populair[] = new \Model\NewsItem($newsItem);
|
||||||
$comingUp[] = [
|
|
||||||
'start' => self::JsonToDateTime($program->start),
|
|
||||||
'end' => self::JsonToDateTime($program->end),
|
|
||||||
'program' => new \Model\Program($program->program)
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$apiResult = $this->API('podcast/overzicht?aantal=20');
|
$apiResult = $this->API('podcast/overzicht?aantal=15');
|
||||||
$podcasts = [];
|
$index = array_rand($apiResult->podcasts);
|
||||||
foreach($apiResult->podcasts as $podcast) {
|
$podcast = new \Model\Podcast($apiResult->podcasts[$index]);
|
||||||
$podcasts[] = new \Model\Podcast($podcast);
|
return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
||||||
}
|
|
||||||
|
|
||||||
return view('home', ['news' => $news, 'podcasts' => $podcasts, 'comingUp' => $comingUp]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
0
app/Http/Controllers/ImagesController.php
Normal file → Executable file
38
app/Http/Controllers/JobsController.php
Normal file → Executable file
@@ -6,19 +6,19 @@ use Illuminate\Http\Request;
|
|||||||
use \Model\JobOpening;
|
use \Model\JobOpening;
|
||||||
|
|
||||||
class JobsController extends Controller
|
class JobsController extends Controller
|
||||||
{
|
{
|
||||||
private static function TimestampToDateTime($timestamp) {
|
private static function TimestampToDateTime($timestamp) {
|
||||||
$result = new \DateTime;
|
$result = new \DateTime;
|
||||||
$result->setTimestamp($timestamp);
|
$result->setTimestamp($timestamp);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show(Request $request, $id)
|
public function show(Request $request, $id)
|
||||||
{
|
{
|
||||||
parent::registerView($request, 'nieuws', $id);
|
parent::registerView($request, 'nieuws', $id);
|
||||||
$apiResult = $this->API('vacatures/details/' . $id);
|
$apiResult = $this->API('vacatures/details/' . $id);
|
||||||
$jobsItem = new \Model\JobOpening($apiResult->item);
|
$jobsItem = new \Model\JobOpening($apiResult->item);
|
||||||
return view('jobsitem', ['job' => $jobsItem, 'metadata' => $jobsItem->metadata]);
|
return view('jobsitem', array_merge($this->getSidebareData(), ['job' => $jobsItem, 'metadata' => $jobsItem->metadata]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function overview(Request $request)
|
public function overview(Request $request)
|
||||||
@@ -29,24 +29,27 @@ class JobsController extends Controller
|
|||||||
private function listJobs(Request $request, $url, $title = null)
|
private function listJobs(Request $request, $url, $title = null)
|
||||||
{
|
{
|
||||||
$page = (int)$request->get('pagina', 1);
|
$page = (int)$request->get('pagina', 1);
|
||||||
$apiResult = $this->API('vacatures/' . $url . '?pagina=' . (int)max(1, $page));
|
#$apiResult = $this->API('vacatures/' . $url . '?pagina=' . (int)max(1, $page));
|
||||||
$jobs = [];
|
$jobs = [];
|
||||||
foreach($apiResult->jobs as $jobsItem)
|
#foreach($apiResult->jobs as $jobsItem)
|
||||||
{
|
#{
|
||||||
$jobs[] = new \Model\JobOpening($jobsItem);
|
# $jobs[] = new \Model\JobOpening($jobsItem);
|
||||||
}
|
#}
|
||||||
|
|
||||||
return view('jobslist', ['title' => $title, 'jobs' => $jobs]);
|
return view('jobslist', array_merge($this->getSidebareData(), ['title' => $title, 'jobs' => $jobs]));
|
||||||
//return view($request->ajax() ? 'partial/jobslist_small' : ($title == null ? 'home' : 'jobslist'), ['title' => $title, 'jobs' => $jobs, 'searchURL' => 'vacatures/zoeken']);
|
//return view($request->ajax() ? 'partial/jobslist_small' : ($title == null ? 'home' : 'jobslist'), ['title' => $title, 'jobs' => $jobs, 'searchURL' => 'vacatures/zoeken']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function bijeenkomst() {
|
public function bijeenkomst() {
|
||||||
return view('kennismakingsbijeenkomst', ['a' => 2]);
|
return view('kennismakingsbijeenkomst', ['a' => 2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function aanmelden(Request $request) {
|
public function aanmelden(Request $request) {
|
||||||
|
if(!(trim(strtolower($request['antispam'])) == 'vijf' || trim($request['antispam']) == 5)) {
|
||||||
|
return view('kennismakingsbijeenkomst', ['antispam' => 'failed']);
|
||||||
|
}
|
||||||
$data = array('email' => $request->input('email'), 'name' => $request->input('name'));
|
$data = array('email' => $request->input('email'), 'name' => $request->input('name'));
|
||||||
$message = $request['message'] ? "Hierover schreef je zelf het volgende: " . $request['message'] : '';
|
$message = $request['message'] ? "De informatie die je bij ons achtergelaten hebt is: " . $request['message'] : '';
|
||||||
/*
|
/*
|
||||||
$body = <<<BODY
|
$body = <<<BODY
|
||||||
Beste {$request['name']},
|
Beste {$request['name']},
|
||||||
@@ -67,14 +70,15 @@ BODY;
|
|||||||
$body = <<<BODY
|
$body = <<<BODY
|
||||||
Beste {$request['name']},
|
Beste {$request['name']},
|
||||||
|
|
||||||
Wat leuk dat je je hebt aangemeld om kennis te maken met NH Gooi!
|
Wat leuk dat je je hebt aangemeld om kennis te maken met NH Gooi! Dank voor je interesse. Wij nemen binnenkort contact met je op voor een kennismaking. $message
|
||||||
|
|
||||||
We kunnen je van alles aanbieden: van radio en podcasts maken tot techniek en van TV-interview produceren tot marketing en communicatie. $message
|
We nemen binnenkort persoonlijk contact met je op om ons nader voor te stellen en om te kijken waar je bij ons zou passen, via {$request['email']} of telefonisch op {$request['phone']}.
|
||||||
Onze geplande kennismakingsbijeenkomst op 27 november kon door de aangescherpte Coronamaatregelen niet doorgaan, maar we nemen binnenkort persoonlijk contact met je op om ons nader voor te stellen en om te kijken waar je bij ons zou passen, via {$request['email']} of telefonisch op {$request['phone']}.
|
|
||||||
|
|
||||||
Hartelijke groeten,
|
Graag tot binnenkort en hartelijke groet.
|
||||||
|
|
||||||
Het team van NH Gooi
|
Het team van NH Gooi,
|
||||||
|
|
||||||
|
Léon Haver
|
||||||
|
|
||||||
BODY;
|
BODY;
|
||||||
\Mail::raw($body, function($message) use($data) {
|
\Mail::raw($body, function($message) use($data) {
|
||||||
@@ -82,7 +86,7 @@ BODY;
|
|||||||
->from('meebouwen@nhgooi.nl', 'meebouwen@nhgooi.nl')
|
->from('meebouwen@nhgooi.nl', 'meebouwen@nhgooi.nl')
|
||||||
->bcc('meebouwen@nhgooi.nl', 'meebouwen@nhgooi.nl')
|
->bcc('meebouwen@nhgooi.nl', 'meebouwen@nhgooi.nl')
|
||||||
->to($data['email'], $data['name'])
|
->to($data['email'], $data['name'])
|
||||||
->subject('Aanmelding kennismakingsdag');
|
->subject('Meebouwen aan NH Gooi');
|
||||||
});
|
});
|
||||||
|
|
||||||
return view('kennismakingsbijeenkomst', ['bevestiging' => $request->input('email')]);
|
return view('kennismakingsbijeenkomst', ['bevestiging' => $request->input('email')]);
|
||||||
|
|||||||
0
app/Http/Controllers/KerkdienstController.php
Normal file → Executable file
191
app/Http/Controllers/NewsController.php
Normal file → Executable file
@@ -6,69 +6,108 @@ use Illuminate\Http\Request;
|
|||||||
use \Model\NewsItem;
|
use \Model\NewsItem;
|
||||||
|
|
||||||
class NewsController extends Controller
|
class NewsController extends Controller
|
||||||
{
|
{
|
||||||
private static function TimestampToDateTime($timestamp) {
|
private static function TimestampToDateTime($timestamp)
|
||||||
$result = new \DateTime;
|
{
|
||||||
$result->setTimestamp($timestamp);
|
$result = new \DateTime;
|
||||||
return $result;
|
$result->setTimestamp($timestamp);
|
||||||
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show(Request $request, $id)
|
public function show(Request $request, $id)
|
||||||
{
|
{
|
||||||
parent::registerView($request, 'nieuws', $id);
|
parent::registerView($request, 'nieuws', $id);
|
||||||
$apiResult = $this->API('nieuws/bericht/' . $id);
|
$preview = "";
|
||||||
$newsItem = new \Model\NewsItem($apiResult->news);
|
if(request()->get('preview', null) != null) {
|
||||||
|
$preview = "?preview=" . request()->get('preview');
|
||||||
|
}
|
||||||
|
$apiResult = $this->API('nieuws/bericht/' . $id . $preview);
|
||||||
|
$newsItem = new \Model\NewsItem($apiResult->news);
|
||||||
|
|
||||||
switch($apiResult->version) {
|
switch ($apiResult->version) {
|
||||||
case 1:
|
case 1:
|
||||||
return view('newsitem', ['news' => $newsItem, 'metadata' => $newsItem->metadata]);
|
if (!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
$source = $apiResult->source;
|
if(isset($apiResult->source->article)) {
|
||||||
$newsItem->published = self::TimestampToDateTime($source->created);
|
$source = $apiResult->source->article;
|
||||||
$newsItem->edited = self::TimestampToDateTime($source->updated);
|
$newsItem->published = self::TimestampToDateTime($source->created);
|
||||||
$newsItem->author = $source->author;
|
$newsItem->edited = self::TimestampToDateTime($source->updated);
|
||||||
$newsItem->images = null; // Images will be embedded
|
$newsItem->author = $source->author;
|
||||||
$newsItem->video = null; // Videos will be embedded
|
$newsItem->images = null; // Images will be embedded
|
||||||
$newsItem->content = $source->blocks;
|
$newsItem->video = null; // Videos will be embedded
|
||||||
return view('newsitem', ['news' => $newsItem, 'metadata' => $newsItem->metadata]);
|
$newsItem->content = $source->blocks;
|
||||||
|
} elseif(isset($apiResult->source->blocks)) {
|
||||||
|
$newsItem->content = $apiResult->source->blocks;
|
||||||
|
}
|
||||||
|
return view('newsitem', array_merge($this->getSidebareData(), ['type' => $apiResult->type, 'news' => $newsItem, 'metadata' => $newsItem->metadata, 'searchURL' => 'nieuws/zoeken']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function overview(Request $request)
|
public function overview(Request $request)
|
||||||
{
|
{
|
||||||
return $this->listNews($request, 'overzicht');
|
return $this->listNews($request, 'overzicht', null, 'items-more-news', 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function more(Request $request)
|
||||||
|
{
|
||||||
|
$page = (int)$request->get('pagina', 1);
|
||||||
|
$id = $request->get('id', '');
|
||||||
|
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int)max(1, $page) . '&aantal=5');
|
||||||
|
$news = [];
|
||||||
|
foreach ($apiResult->news as $newsItem) {
|
||||||
|
$news[] = new \Model\NewsItem($newsItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('partial/newslist_small', ['id' => $id, 'news' => $news]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function populair(Request $request)
|
||||||
|
{
|
||||||
|
$page = (int)$request->get('pagina', 1);
|
||||||
|
$id = $request->get('id', '');
|
||||||
|
$populair = [];
|
||||||
|
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
|
||||||
|
foreach ($apiResult->news as $_newsItem) {
|
||||||
|
$populair[] = new \Model\NewsItem($_newsItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('partial/newslist_small', ['id' => $id, 'news' => $populair]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function taglist(Request $request, $tag)
|
||||||
|
{
|
||||||
|
return $this->listNews($request, 'tag/' . $tag, ucfirst($tag));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function regionlist(Request $request, $region)
|
public function regionlist(Request $request, $region)
|
||||||
{
|
{
|
||||||
return $this->listNews($request, 'regio/' . $region, ucfirst($region));
|
return $this->listNews($request, 'tag/' . $region, ucfirst($region));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function themelist(Request $request, $theme)
|
public function themelist(Request $request, $theme)
|
||||||
{
|
{
|
||||||
return $this->listNews($request, 'thema/' . $theme, ucfirst($theme));
|
return $this->listNews($request, 'tag/' . $theme, ucfirst($theme));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function search(Request $request, $query)
|
public function search(Request $request, $query)
|
||||||
{
|
{
|
||||||
return $this->listNews($request, 'zoeken/' . $query, 'Zoekresultaat')->with('query', urldecode($query));
|
return $this->listNews($request, 'zoeken/' . $query, 'Zoekresultaat')->with('query', urldecode($query));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function activeblog()
|
public function activeblog()
|
||||||
{
|
{
|
||||||
$apiResult = $this->API('blog/overzicht');
|
$apiResult = $this->API('blog/overzicht');
|
||||||
if(count($apiResult)) {
|
if (count($apiResult)) {
|
||||||
$blog = new \Model\Blog($apiResult[0]);
|
$blog = new \Model\Blog($apiResult[0]);
|
||||||
if($blog->is_active) {
|
if ($blog->is_active) {
|
||||||
return redirect($blog->url);
|
return redirect($blog->url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return abort(404);
|
return abort(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function blog(Request $request, $id)
|
public function blog(Request $request, $id)
|
||||||
{
|
{
|
||||||
@@ -76,60 +115,92 @@ class NewsController extends Controller
|
|||||||
|
|
||||||
$page = (int)$request->get('pagina', 1);
|
$page = (int)$request->get('pagina', 1);
|
||||||
$hasNext = true;
|
$hasNext = true;
|
||||||
while($page > 0) {
|
while ($page > 0) {
|
||||||
$apiResult = $this->API('blog/overzicht/' . (int)$id . '?pagina=' . (int)max(1, $page));
|
$apiResult = $this->API('blog/overzicht/' . (int)$id . '?pagina=' . (int)max(1, $page));
|
||||||
|
|
||||||
$blog = new \Model\Blog($apiResult->blog);
|
|
||||||
$items = [];
|
|
||||||
foreach($apiResult->items as $blogItem)
|
|
||||||
{
|
|
||||||
$items[] = new \Model\NewsItem($blogItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(count($items) || ($page == 1))
|
|
||||||
{
|
|
||||||
return view('blog', ['blog' => $blog, 'pagina' => $page, 'items' => $items, 'hasNext' => $hasNext && count($items) == 15]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$hasNext = false;
|
$blog = new \Model\Blog($apiResult->blog);
|
||||||
--$page;
|
$items = [];
|
||||||
|
foreach ($apiResult->items as $blogItem) {
|
||||||
|
$items[] = new \Model\NewsItem($blogItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($items) || ($page == 1)) {
|
||||||
|
return view('blog', ['blog' => $blog, 'pagina' => $page, 'items' => $items, 'hasNext' => $hasNext && count($items) == 15]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$hasNext = false;
|
||||||
|
--$page;
|
||||||
}
|
}
|
||||||
|
|
||||||
return abort(404);
|
return abort(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function listNews(Request $request, $url, $title = null)
|
private function listNews(Request $request, $url, $title = null, $id = 'items', $total = null)
|
||||||
{
|
{
|
||||||
|
if ($request->ajax()) {
|
||||||
|
$total = 5;
|
||||||
|
}
|
||||||
$page = (int)$request->get('pagina', 1);
|
$page = (int)$request->get('pagina', 1);
|
||||||
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page));
|
if ($url == 'overzicht' && $request->get('dateStart', null) && $request->get('dateEnd', null)) {
|
||||||
|
$url = 'datum/' . $request->get('dateStart', null) . '/' . $request->get('dateEnd', null);
|
||||||
|
}
|
||||||
|
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page) . ($total ? '&aantal=' . $total : ''));
|
||||||
$news = [];
|
$news = [];
|
||||||
foreach($apiResult->news as $newsItem)
|
foreach ($apiResult->news ?? [] as $newsItem) {
|
||||||
{
|
|
||||||
$news[] = new \Model\NewsItem($newsItem);
|
$news[] = new \Model\NewsItem($newsItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view($request->ajax() ? 'partial/newslist_small' : ($title == null ? 'home' : 'newslist'), ['title' => $title, 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
$populair = [];
|
||||||
|
if ($title == null) {
|
||||||
|
$total = 5;
|
||||||
|
}
|
||||||
|
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1,
|
||||||
|
$page) . ($total ? '&aantal=' . $total : ''));
|
||||||
|
foreach ($apiResult->news as $newsItem) {
|
||||||
|
$populair[] = new \Model\NewsItem($newsItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
$podcast = null;
|
||||||
|
$podcasts = [];
|
||||||
|
if ($title == null) {
|
||||||
|
$apiResult = $this->API('podcast/overzicht?aantal=3');
|
||||||
|
$podcast = new \Model\Podcast($apiResult->podcasts[0]);
|
||||||
|
foreach ($apiResult->podcasts as $_podcast) {
|
||||||
|
$podcasts[] = new \Model\Podcast($_podcast);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$newsItems = [];
|
||||||
|
$apiResult = $this->API('nieuws/overzicht?aantal=5');
|
||||||
|
foreach ($apiResult->news as $_newsItem) {
|
||||||
|
$newsItems[] = new \Model\NewsItem($_newsItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
return view($request->ajax() ? ($title == null ? 'partial/home_newslist_small' : 'partial/newslist_small') : ($title == null ? 'news' : 'newslist'), ['populair' => $populair, 'newsItems' => $newsItems, 'podcasts' => $podcasts, 'podcast' => $podcast, 'id' => $id, 'title' => $title, 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function popular()
|
public function popular()
|
||||||
{
|
{
|
||||||
$apiResult = $this->API('nieuws/populair');
|
$apiResult = $this->API('nieuws/populair');
|
||||||
$news = [];
|
$news = [];
|
||||||
foreach($apiResult as $newsItem)
|
foreach ($apiResult->news as $newsItem) {
|
||||||
{
|
|
||||||
$news[] = new \Model\NewsItem($newsItem);
|
$news[] = new \Model\NewsItem($newsItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('popularnews', ['news' => $news]);
|
return view('popularnews', ['news' => $news]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function regionieuws()
|
public function regionieuws()
|
||||||
{
|
{
|
||||||
|
$data = $this->API('nieuws/regionieuws.json');
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => $this->API_URL . 'nieuws/regionieuws',
|
'source' => $this->API_URL . 'nieuws/regionieuws.mp3',
|
||||||
'title' => 'Regionieuws',
|
'title' => 'Regionieuws',
|
||||||
'content' => 'het laatste nieuws uit de regio',
|
'content' => 'het laatste nieuws uit de regio',
|
||||||
'isStream' => false,
|
'isStream' => false,
|
||||||
'canDownload' => true ]);
|
'canDownload' => true,
|
||||||
|
'lengte' => $data->length * 0.25,
|
||||||
|
'waveform' => $data
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
19
app/Http/Controllers/PodcastController.php
Normal file → Executable file
@@ -15,28 +15,37 @@ class PodcastController extends Controller
|
|||||||
$action = 'programma/' . (int)$programma;
|
$action = 'programma/' . (int)$programma;
|
||||||
$viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma));
|
$viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->getPodcastList($request, $action, $viewData);
|
return $this->getPodcastList($request, $action, $viewData);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getPodcastList(Request $request, $action, $viewData = [])
|
private function getPodcastList(Request $request, $action, $viewData = [])
|
||||||
{
|
{
|
||||||
$page = (int)$request->get('pagina', 1);
|
$page = (int)$request->get('pagina', 1);
|
||||||
$apiResult = $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=100');
|
$apiResult = $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=8');
|
||||||
$podcasts = [];
|
$podcasts = [];
|
||||||
foreach($apiResult->podcasts as $podcast)
|
foreach($apiResult->podcasts as $podcast)
|
||||||
{
|
{
|
||||||
$podcasts[] = new \Model\Podcast($podcast);
|
$podcasts[] = new \Model\Podcast($podcast);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view($request->ajax() ? 'partial.podcastitems' : 'podcastseries', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken']));
|
return view($request->ajax() ? 'partial.podcastitems' : 'podcastseries', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => true]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function podcast(Request $request, $id)
|
public function podcast(Request $request, $id)
|
||||||
{
|
{
|
||||||
parent::registerView($request, 'podcast', $id);
|
parent::registerView($request, 'podcast', $id);
|
||||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||||
$podcast = new \Model\Podcast($apiResult);
|
$podcast = new \Model\Podcast($apiResult);
|
||||||
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata]);
|
$podcasts = [];
|
||||||
|
if($podcast->program) {
|
||||||
|
$apiResult = $this->API('podcast/programma/' . (int)$podcast->program->id . '?pagina=1&aantal=5');
|
||||||
|
$podcasts = [];
|
||||||
|
foreach($apiResult->podcasts as $p)
|
||||||
|
{
|
||||||
|
$podcasts[] = new \Model\Podcast($p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'isPodcast' => true]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
74
app/Http/Controllers/RadioController.php
Normal file → Executable file
@@ -7,55 +7,74 @@ use \Model\Programma;
|
|||||||
|
|
||||||
class RadioController extends Controller
|
class RadioController extends Controller
|
||||||
{
|
{
|
||||||
public function schedule(Request $request, $shiftWeeks = 0)
|
public function schedule(Request $request, $date = '')
|
||||||
{
|
{
|
||||||
$apiResult = $this->API('programma/schema/week/' . (int)$shiftWeeks);
|
$start = $date ? (new \DateTime($date))->format('Y-m-d') : (new \DateTime("-2 day"))->format('Y-m-d');
|
||||||
$start = self::JsonToDateTime($apiResult->startdate);
|
$end = $date ? (new \DateTime($date))->modify('+1 day')->format('Y-m-d') : (new \DateTime("+3 day"))->format('Y-m-d');
|
||||||
$end = self::JsonToDateTime($apiResult->enddate);
|
$apiResult = $this->API('programma/schema/periode/' . $start . '/' . $end);
|
||||||
|
|
||||||
$schedule = [];
|
$schedule = [];
|
||||||
foreach($apiResult->schedule as $program)
|
foreach($apiResult->schedule as $program)
|
||||||
{
|
{
|
||||||
$schedule[] = [
|
$schedule[self::JsonToDateTime($program->start)->format('Ymd')][] = [
|
||||||
'starttime' => self::JsonToDateTime($program->start),
|
'starttime' => self::JsonToDateTime($program->start),
|
||||||
'endtime' => self::JsonToDateTime($program->end),
|
'endtime' => self::JsonToDateTime($program->end),
|
||||||
'shift' => (int)$shiftWeeks,
|
'shift' => 0,
|
||||||
'program' => new \Model\Program($program->program)
|
'program' => new \Model\Program($program->program)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
return view($request->ajax() ? 'radioscheduleweek' : 'radioschedule', ['start' => $start, 'end' => $end, 'schedule' => $schedule, 'shift' => $shiftWeeks]);
|
if ($date) {
|
||||||
|
$days = [
|
||||||
|
'custom' => (new \DateTime($date))->format('Ymd'),
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
$days = [
|
||||||
|
'day_before_yesterday' => (new \DateTime("-2 day"))->format('Ymd'),
|
||||||
|
'yesterday' => (new \DateTime("yesterday"))->format('Ymd'),
|
||||||
|
'today' => (new \DateTime("now"))->format('Ymd'),
|
||||||
|
'tomorrow' => (new \DateTime("+1 day"))->format('Ymd'),
|
||||||
|
'day_after_tomorrow' => (new \DateTime("+2 day"))->format('Ymd'),
|
||||||
|
'custom' => (new \DateTime($date))->format('Ymd'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return view($request->ajax() ? 'partial/radioscheduleweek' : 'radioschedule', ['start' => $start, 'end' => $end, 'schedule' => $schedule, 'shift' => 0, 'days' => $days, 'date' => $date]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onair()
|
public function onair()
|
||||||
{
|
{
|
||||||
$data = $this->API('programma/schema/onair');
|
$data = $this->API('programma/schema/onair');
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function program($id)
|
public function program($id)
|
||||||
{
|
{
|
||||||
$apiResult = $this->API('programma/details/' . (int)$id);
|
$apiResult = $this->API('programma/details/' . (int)$id);
|
||||||
|
if($apiResult == null) {
|
||||||
|
return abort(404);
|
||||||
|
}
|
||||||
return view('radioprogram', ['program' => new \Model\Program($apiResult)]);
|
return view('radioprogram', ['program' => new \Model\Program($apiResult)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function podcast(Request $request, $id)
|
public function podcast(Request $request, $id, $title = '')
|
||||||
{
|
{
|
||||||
|
if($this->checkAPI('podcast/details/' . (int)$id) != "200"){
|
||||||
|
return view('podcastitem', array_merge($this->getSidebareData(), ['title' => $title, 'podcast' => null, 'metadata' => null, 'related' => [], 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]));
|
||||||
|
}
|
||||||
|
|
||||||
parent::registerView($request, 'podcast', $id);
|
parent::registerView($request, 'podcast', $id);
|
||||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||||
$podcast = new \Model\Podcast($apiResult);
|
$podcast = new \Model\Podcast($apiResult);
|
||||||
|
|
||||||
$related = [];
|
$page = (int)$request->get('pagina', 1);
|
||||||
if($podcast->program != null)
|
$apiResult = $this->API('podcast/overzicht?pagina=' . (int)max(1, $page) . '&aantal=6');
|
||||||
|
$podcasts = [];
|
||||||
|
foreach($apiResult->podcasts as $_podcast)
|
||||||
{
|
{
|
||||||
$apiRelated = $this->API("podcast/programma/{$podcast->program->id}?date={$podcast->created->format('Y-m-d')}");
|
$podcasts[] = new \Model\Podcast($_podcast);
|
||||||
foreach($apiRelated->podcasts as $relatedItem)
|
|
||||||
{
|
|
||||||
$related[] = new \Model\Podcast($relatedItem);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata, 'related' => $related, 'searchURL' => 'gemist/zoeken']);
|
return view($request->ajax() ? 'partial/podcastitems' : 'podcastitem', ['title' => $title, 'podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function podcasts(Request $request, $programma = null)
|
public function podcasts(Request $request, $programma = null)
|
||||||
@@ -66,20 +85,21 @@ class RadioController extends Controller
|
|||||||
$action = 'programma/' . (int)$programma;
|
$action = 'programma/' . (int)$programma;
|
||||||
$viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma));
|
$viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->getPodcastList($request, $action, $viewData);
|
return $this->getPodcastList($request, $action, array_merge($this->getSidebareData(), $viewData));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function searchpodcast(Request $request, $query)
|
public function searchpodcast(Request $request, $query)
|
||||||
{
|
{
|
||||||
return $this->getPodcastList($request, 'zoeken/' . $query)->with('query', urldecode($query));
|
return $this->getPodcastList($request, 'zoeken/' . $query)->with('query', urldecode($query));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function terugluisteren(Request $request)
|
public function terugluisteren(Request $request)
|
||||||
{
|
{
|
||||||
$programs = [];
|
$programs = [];
|
||||||
$now = new \DateTimeImmutable('2 minutes ago');
|
$now = new \DateTimeImmutable('2 minutes ago');
|
||||||
$apiResult = $this->API('programma/schema/recent');
|
$page = (int)$request->get('pagina', 1);
|
||||||
|
$apiResult = $this->API('programma/schema/recent?pagina=' . (int)max(1, $page) . '&aantal=12');
|
||||||
foreach($apiResult->schedule as $item) {
|
foreach($apiResult->schedule as $item) {
|
||||||
if(!$item->program->nonstop && !$item->program->rerun) {
|
if(!$item->program->nonstop && !$item->program->rerun) {
|
||||||
$item->start = self::JsonToDateTime($item->start);
|
$item->start = self::JsonToDateTime($item->start);
|
||||||
@@ -90,9 +110,9 @@ class RadioController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('programlist', ['programs' => array_reverse($programs)]);
|
return view($request->ajax() ? 'partial/programitems' : 'programlist', ['programs' => array_reverse($programs), 'isPodcast' => false]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getPodcastList(Request $request, $action, $viewData = [])
|
private function getPodcastList(Request $request, $action, $viewData = [])
|
||||||
{
|
{
|
||||||
$page = (int)$request->get('pagina', 1);
|
$page = (int)$request->get('pagina', 1);
|
||||||
@@ -103,7 +123,7 @@ class RadioController extends Controller
|
|||||||
$podcasts[] = new \Model\Podcast($podcast);
|
$podcasts[] = new \Model\Podcast($podcast);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view($request->ajax() ? 'partial.podcastitems' : 'podcastlist', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken']));
|
return view($request->ajax() ? 'partial/podcastitems' : 'podcastlist', array_merge($viewData, ['id' => 'items-podcasts', 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
0
app/Http/Controllers/SpecialController.php
Normal file → Executable file
57
app/Http/Controllers/StreamController.php
Normal file → Executable file
@@ -13,22 +13,36 @@ class StreamController extends Controller
|
|||||||
{
|
{
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => self::$STREAM_URL . 'mp3live',
|
'source' => self::$STREAM_URL . 'mp3live',
|
||||||
'title' => 'Luister live',
|
'title' => 'Luister live',
|
||||||
|
'lengte' => 0,
|
||||||
|
'waveform' => null,
|
||||||
'content' => 'de live-uitzending van NH Gooi.',
|
'content' => 'de live-uitzending van NH Gooi.',
|
||||||
'isStream' => true ]);
|
'isStream' => true ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function livetv()
|
public function livetv()
|
||||||
{
|
{
|
||||||
return view('watch', ['stream' => 'https://rrr.sz.xlcdn.com/?account=nhnieuws&file=nhgooi&type=live&service=wowza&protocol=https&output=playlist.m3u8']);
|
return view('watch', ['title' => 'Kijk NH Gooi Tv', 'stream' => 'https://rrr.sz.xlcdn.com/?account=nhnieuws&file=nhgooi&type=live&service=wowza&protocol=https&output=playlist.m3u8']);
|
||||||
// return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/tv']);
|
// return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/tv']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function studio()
|
public function studio()
|
||||||
{
|
{
|
||||||
return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/live/studio']);
|
// return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/live/studio']);
|
||||||
|
return view('watch', ['title' => 'Kijk NH Gooi Tv Studio', 'stream' => 'https://studiocam.nhgooi.nl/studiocam/live/index.m3u8']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function inline(Request $request, $id)
|
||||||
|
{
|
||||||
|
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||||
|
$podcast = new \Model\Podcast($apiResult);
|
||||||
|
if(sha1($id . ':' . date('Y-m-d')) != $request->get('auth')) {
|
||||||
|
// return view('widgets/podcastplayer', ['podcast' => null]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('widgets/podcastplayer', ['podcast' => $podcast]);
|
||||||
|
}
|
||||||
|
|
||||||
public function podcast(Request $request, $id)
|
public function podcast(Request $request, $id)
|
||||||
{
|
{
|
||||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||||
@@ -38,16 +52,23 @@ class StreamController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => $this->API_URL . 'podcast/download' . $apiResult->url . '?auth=' . $podcast->auth,
|
'source' => $this->API_URL . 'podcast/stream/' . $apiResult->url,
|
||||||
'title' => $podcast->title,
|
'title' => $podcast->title,
|
||||||
'content' => $podcast->title,
|
'content' => $podcast->title,
|
||||||
'isStream' => false,
|
'lengte' => $podcast->duration / 1000,
|
||||||
'canDownload' => true ]);
|
'waveform' => $podcast->waveform,
|
||||||
|
'isStream' => false,
|
||||||
|
'canDownload' => $this->API_URL . 'podcast/download/' . $apiResult->url ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
|
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
|
||||||
$date = (new \DateTimeImmutable())->setDate($year, $month, $day)->setTime($hour, 0, 0);
|
$date = (new \DateTimeImmutable())->setDate($year, $month, $day)->setTime($hour, 0, 0);
|
||||||
$current = $date->add(\DateInterval::createFromDateString($offset . ' hours'));
|
$current = $date->add(\DateInterval::createFromDateString($offset . ' hours'));
|
||||||
|
|
||||||
|
$programma = $this->API("programma/details/" . $current->Format("Y/m/d/H"));
|
||||||
|
if(!$programma->is_beschikbaar) {
|
||||||
|
return view('listen', ['notAvailable' => true]);
|
||||||
|
}
|
||||||
|
|
||||||
$hours = [];
|
$hours = [];
|
||||||
for($i = 0; $i < $duration; $i++) {
|
for($i = 0; $i < $duration; $i++) {
|
||||||
@@ -55,12 +76,14 @@ class StreamController extends Controller
|
|||||||
$url = '/luister/programma/' . $date->format('Y/m/d/H') . '/' . $duration . '/' . $i;
|
$url = '/luister/programma/' . $date->format('Y/m/d/H') . '/' . $duration . '/' . $i;
|
||||||
$hours[$offset == $i ? '#' : $url] = 'Uur ' . ($i + 1) . ' (' . $other->format('H') . ':00)';
|
$hours[$offset == $i ? '#' : $url] = 'Uur ' . ($i + 1) . ' (' . $other->format('H') . ':00)';
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => $this->API_URL . 'programma/download/' . $current->format('Y/m/d/H') . '/1',
|
'source' => $this->API_URL . 'programma/stream/' . $current->format('Y/m/d/H'),
|
||||||
'tabs' => $hours,
|
'tabs' => $hours,
|
||||||
'title' => 'Uitzending terugluisteren',
|
'title' => 'Uitzending terugluisteren',
|
||||||
'content' => 'de uitzending van ' . $current->format('d-m-Y, H') . ':00 uur',
|
'lengte' => $programma->waveform->length,
|
||||||
|
'waveform' => $programma->waveform,
|
||||||
|
'content' => $programma->programma->name . ' van ' . $current->format('d-m-Y, H') . ':00 uur',
|
||||||
'isStream' => false,
|
'isStream' => false,
|
||||||
'canDownload' => false ]);
|
'canDownload' => false ]);
|
||||||
}
|
}
|
||||||
@@ -68,18 +91,18 @@ class StreamController extends Controller
|
|||||||
public function gemeenteraad(Request $request) {
|
public function gemeenteraad(Request $request) {
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => self::$STREAM_URL . 'gemhuizen',
|
'source' => self::$STREAM_URL . 'gemhuizen',
|
||||||
'title' => 'Gemeenteraad Huizen',
|
'title' => 'Gemeenteraad Huizen',
|
||||||
'content' => 'de openbare vergadering van de gemeenteraad Huizen',
|
'content' => 'de openbare vergadering van de gemeenteraad Huizen',
|
||||||
'isStream' => true,
|
'isStream' => true,
|
||||||
'canDownload' => false ]);
|
'canDownload' => false ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function kerkdienst(Request $request) {
|
public function kerkdienst(Request $request) {
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => $this->API_URL . 'kerkdienst/download',
|
'source' => $this->API_URL . 'kerkdienst/stream',
|
||||||
'title' => 'Kerkdienst gemist',
|
'title' => 'Kerkdienst gemist',
|
||||||
'content' => 'de kerkdienst van afgelopen zondag',
|
'content' => 'de kerkdienst van afgelopen zondag',
|
||||||
'isStream' => false,
|
'isStream' => false,
|
||||||
'canDownload' => true ]);
|
'canDownload' => $this->API_URL . 'kerkdienst/download' ]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
0
app/Http/Kernel.php
Normal file → Executable file
0
app/Http/Middleware/EncryptCookies.php
Normal file → Executable file
0
app/Http/Middleware/RedirectIfAuthenticated.php
Normal file → Executable file
0
app/Http/Middleware/TrimStrings.php
Normal file → Executable file
0
app/Http/Middleware/VerifyCsrfToken.php
Normal file → Executable file
23
app/Models/Blog.php
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class Blog extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $description;
|
||||||
|
public $news_category;
|
||||||
|
public $start_date;
|
||||||
|
public $end_date;
|
||||||
|
public $is_active;
|
||||||
|
|
||||||
|
public $url;
|
||||||
|
|
||||||
|
public function __construct($data, $images = null, $podcast = null) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->start_date);
|
||||||
|
parent::ConvertToDateTime($this->end_date);
|
||||||
|
|
||||||
|
$this->url = "/blog/{$this->id}/" . parent::url_slug($this->title);
|
||||||
|
}
|
||||||
|
}
|
||||||
67
app/Models/CalendarEvent.php
Executable file
@@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class CalendarEvent extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $region;
|
||||||
|
public $content;
|
||||||
|
public $starts;
|
||||||
|
public $ends;
|
||||||
|
public $images;
|
||||||
|
public $podcast;
|
||||||
|
public $video;
|
||||||
|
public $keywords;
|
||||||
|
public $url;
|
||||||
|
public $metadata;
|
||||||
|
public $tags;
|
||||||
|
|
||||||
|
public function __construct($data, $images = null, $podcast = null) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->starts);
|
||||||
|
parent::ConvertToDateTime($this->ends);
|
||||||
|
|
||||||
|
$this->keywords = null;
|
||||||
|
if(isset($data->keywords)) {
|
||||||
|
if(is_array($data->keywords)) {
|
||||||
|
$this->keywords = $data->keywords;
|
||||||
|
} else if(trim($data->keywords)) {
|
||||||
|
$this->keywords = explode(' ', $data->keywords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($podcast)
|
||||||
|
{
|
||||||
|
$this->podcast = new \Model\Podcast($podcast);
|
||||||
|
} else if(isset($data->podcast) && $data->podcast) {
|
||||||
|
$this->podcast = new \Model\Podcast($data->podcast);
|
||||||
|
}
|
||||||
|
|
||||||
|
$images = ($images != null) ? $images
|
||||||
|
: (isset($data->images) ? $data->images : null);
|
||||||
|
if($images) {
|
||||||
|
$this->images = [];
|
||||||
|
foreach($images as $image) {
|
||||||
|
$this->images[] = new NewsImage($image, '/img/news/');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = "/agenda/{$this->id}/" . parent::url_slug($this->title);
|
||||||
|
$this->metadata = (new MetaData())
|
||||||
|
->set('title', $this->title)
|
||||||
|
->set('description', strip_tags($this->excerpt()))
|
||||||
|
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
|
||||||
|
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function excerpt() {
|
||||||
|
$hasImages = isset($this->images) && count($this->images) > 0;
|
||||||
|
$maxLength = $hasImages ? 200 : 500;
|
||||||
|
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
|
||||||
|
substr($this->content, 0, $maxLength) .
|
||||||
|
(strlen($this->content) > $maxLength ? '...' : '') .
|
||||||
|
'</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
61
app/Models/JobOpening.php
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class JobOpening extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $content;
|
||||||
|
public $starts;
|
||||||
|
public $ends;
|
||||||
|
public $images;
|
||||||
|
public $url;
|
||||||
|
|
||||||
|
public function __construct($data, $images = null, $podcast = null) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->starts);
|
||||||
|
parent::ConvertToDateTime($this->ends);
|
||||||
|
|
||||||
|
$this->keywords = null;
|
||||||
|
if(isset($data->keywords)) {
|
||||||
|
if(is_array($data->keywords)) {
|
||||||
|
$this->keywords = $data->keywords;
|
||||||
|
} else if(trim($data->keywords)) {
|
||||||
|
$this->keywords = explode(' ', $data->keywords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($podcast)
|
||||||
|
{
|
||||||
|
$this->podcast = new \Model\Podcast($podcast);
|
||||||
|
} else if(isset($data->podcast) && $data->podcast) {
|
||||||
|
$this->podcast = new \Model\Podcast($data->podcast);
|
||||||
|
}
|
||||||
|
|
||||||
|
$images = ($images != null) ? $images
|
||||||
|
: (isset($data->images) ? $data->images : null);
|
||||||
|
if($images) {
|
||||||
|
$this->images = [];
|
||||||
|
foreach($images as $image) {
|
||||||
|
$this->images[] = new NewsImage($image, '/img/news/');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = "/vacatures/{$this->id}/" . parent::url_slug($this->title);
|
||||||
|
$this->metadata = (new MetaData())
|
||||||
|
->set('title', $this->title)
|
||||||
|
->set('description', strip_tags($this->excerpt()))
|
||||||
|
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
|
||||||
|
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function excerpt() {
|
||||||
|
$hasImages = count($this->images) > 0;
|
||||||
|
$maxLength = $hasImages ? 200 : 500;
|
||||||
|
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
|
||||||
|
substr($this->content, 0, $maxLength) .
|
||||||
|
(strlen($this->content) > $maxLength ? '...' : '') .
|
||||||
|
'</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
26
app/Models/Kerkdienst.php
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class KerkdienstInstance extends Model {
|
||||||
|
public $name;
|
||||||
|
public $start;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->start);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Kerkdienst extends Model {
|
||||||
|
public $isRunning;
|
||||||
|
public $previous;
|
||||||
|
public $next;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
// parent::__construct($data);
|
||||||
|
$this->isRunning = $data->isRunning;
|
||||||
|
$this->previous = new KerkdienstInstance($data->previous);
|
||||||
|
$this->next = new KerkdienstInstance($data->next);
|
||||||
|
}
|
||||||
|
}
|
||||||
35
app/Models/MetaData.php
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class MetaData {
|
||||||
|
private $data = ['type' => 'article', 'locale' => 'nl-nl'];
|
||||||
|
|
||||||
|
public function set($prop, $val) {
|
||||||
|
if($val) {
|
||||||
|
$this->data[$prop] = $val;
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function append($prop, $val) {
|
||||||
|
if(array_key_exists($prop, $this->data)) {
|
||||||
|
$this->data[$prop] .= $val;
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prepend($prop, $val) {
|
||||||
|
if(array_key_exists($prop, $this->data)) {
|
||||||
|
$this->data[$prop] = $val . $this->data[$prop];
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function metaTags() {
|
||||||
|
foreach($this->data as $prop => $val) {
|
||||||
|
if($val) {
|
||||||
|
echo "<meta property=\"og:$prop\" content=\"" . htmlentities($val) . "\" />\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
64
app/Models/Model.php
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class Model {
|
||||||
|
protected function ConvertToDateTime(&$field) {
|
||||||
|
if($field) {
|
||||||
|
// PHP7 JSON-encodes to {date: "", "timezone_type": ..., "timezone": "UTC" }
|
||||||
|
// In that case $field will be an object
|
||||||
|
if(is_object($field)) {
|
||||||
|
$field = ($field->timezone)
|
||||||
|
? new \DateTimeImmutable($field->date, new \DateTimeZone($field->timezone))
|
||||||
|
: (new \DateTimeImmutable($field->date));
|
||||||
|
} else {
|
||||||
|
// If $field is not an object, assume it's a plain, valid, string
|
||||||
|
$field = new \DateTime($field);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($field === false || $field->getTimestamp() <= 0) {
|
||||||
|
// If field had data but is invalid DateTime or is 0000-00-00 00:00, set it to null.
|
||||||
|
$field = null;
|
||||||
|
} else {
|
||||||
|
// If valid, return local timezone
|
||||||
|
$field->setTimezone(new \DateTimeZone("Europe/Amsterdam"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
$class = get_class($this);
|
||||||
|
foreach($data as $key => $val) {
|
||||||
|
if(property_exists($class, $key)) {
|
||||||
|
$this->$key = is_string($val) ? stripslashes($val) : $val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function url_slug($text) {
|
||||||
|
// Alles naar kleine letter
|
||||||
|
$text = strtolower($text);
|
||||||
|
|
||||||
|
// Vervang accent-tekens door niet-geaccentueerde versies
|
||||||
|
// $text = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $text);
|
||||||
|
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
|
||||||
|
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
|
||||||
|
$text = str_replace($search, $replace, $text);
|
||||||
|
|
||||||
|
// Verwijder alle woorden van 3 letters, behalve BEL (BEL-combinatie etc)
|
||||||
|
if(strlen($text) > 3) {
|
||||||
|
$text = preg_replace('/\b(?!bel|fm|nh)([a-z]{1,3})\b/u', '', $text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vervang alles dat niet een woord-karakter is (letter, cijfer), een streepje of spatie
|
||||||
|
if(strlen($text) > 3) {
|
||||||
|
$text = preg_replace('/[^\w_\-\s]/', '', $text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reeksen van één of meer spaties / streepjes vervangen door een enkel streepje
|
||||||
|
$text = preg_replace('/[\-\s]+/', '-', $text);
|
||||||
|
|
||||||
|
// Verwijder alle witruimte / streepjes aan begin en eind
|
||||||
|
return trim(strtolower($text), '-');
|
||||||
|
}
|
||||||
|
}
|
||||||
20
app/Models/NewsImage.php
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class NewsImage extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $author;
|
||||||
|
public $url;
|
||||||
|
|
||||||
|
public function __construct($data, $urlPrefix = '/') {
|
||||||
|
parent::__construct($data);
|
||||||
|
|
||||||
|
// Deserialisatie van JSON heeft url in data,
|
||||||
|
// lezen uit database heeft file en (als het goed is) urlPrefix
|
||||||
|
if(isset($data->file)) {
|
||||||
|
$this->url = $urlPrefix . $data->file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
118
app/Models/NewsItem.php
Executable file
@@ -0,0 +1,118 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
require_once "NewsImage.php";
|
||||||
|
require_once "NewsSource.php";
|
||||||
|
require_once "MetaData.php";
|
||||||
|
|
||||||
|
class NewsItem extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $author;
|
||||||
|
public $content;
|
||||||
|
public $published;
|
||||||
|
public $edited;
|
||||||
|
public $keywords;
|
||||||
|
|
||||||
|
public $source;
|
||||||
|
public $category;
|
||||||
|
public $theme;
|
||||||
|
public $region;
|
||||||
|
public $tags;
|
||||||
|
|
||||||
|
public $podcast;
|
||||||
|
public $images;
|
||||||
|
public $video;
|
||||||
|
|
||||||
|
public $url;
|
||||||
|
public $metadata;
|
||||||
|
|
||||||
|
public function __construct($data, $images = null, $podcast = null) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->published);
|
||||||
|
parent::ConvertToDateTime($this->edited);
|
||||||
|
|
||||||
|
if($this->edited && ($this->edited->getTimestamp() - $this->published->getTimestamp() < 1800 /* == 30 minutes */)) {
|
||||||
|
// If last edit was within grace period, consider it unedited (note: currently RES always saves edited == published on creation)
|
||||||
|
$this->edited = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->source = null;
|
||||||
|
if(isset($data->source))
|
||||||
|
{
|
||||||
|
if(is_object($data->source))
|
||||||
|
{
|
||||||
|
$this->source = new \Model\NewsSource($data->source->title, $data->source->url, $data->source->show);
|
||||||
|
} else if($data->source) {
|
||||||
|
$this->source = new \Model\NewsSource($data->source, $data->source_url, $data->showsource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($podcast) {
|
||||||
|
$this->podcast = new \Model\Podcast($podcast);
|
||||||
|
} else if(isset($data->podcast) && $data->podcast) {
|
||||||
|
$this->podcast = new \Model\Podcast($data->podcast);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->keywords = null;
|
||||||
|
if(isset($data->keywords)) {
|
||||||
|
if(is_array($data->keywords) || is_object($data->keywords)) {
|
||||||
|
$this->keywords = $data->keywords;
|
||||||
|
} else if(trim($data->keywords)) {
|
||||||
|
$this->keywords = explode(' ', $data->keywords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->region)) {
|
||||||
|
if(is_object($data->region)) {
|
||||||
|
$this->region = new \Model\NewsRegion($data->region->title, $data->region->slug);
|
||||||
|
} else {
|
||||||
|
$this->region = new \Model\NewsRegion($data->region, $data->region_slug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->theme)) {
|
||||||
|
if(is_object($data->theme)) {
|
||||||
|
$this->theme = new \Model\NewsRegion($data->theme->title, $data->theme->slug);
|
||||||
|
} else {
|
||||||
|
$this->theme = new \Model\NewsRegion($data->theme, $data->theme_slug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->tags)) {
|
||||||
|
foreach($data->tags as $tag) {
|
||||||
|
$this->theme = new \Model\NewsRegion($tag->titel, $tag->slug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$images = ($images != null) ? $images
|
||||||
|
: (isset($data->images) ? $data->images : null);
|
||||||
|
if($images) {
|
||||||
|
$this->images = [];
|
||||||
|
foreach($images as $image) {
|
||||||
|
$this->images[] = new NewsImage($image, '/img/news/');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = "/nieuws/{$this->id}/" . parent::url_slug($this->title);
|
||||||
|
$this->metadata = (new MetaData())
|
||||||
|
->set('title', $this->title)
|
||||||
|
->set('description', strip_tags($this->excerpt()))
|
||||||
|
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
|
||||||
|
->set('video', isset($this->video) ? $this->video : null)
|
||||||
|
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
|
||||||
|
->set('article:published_time', $this->published->format('r'))
|
||||||
|
->set('article:modified_time', $this->edited ? $this->edited->format('r') : null)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function excerpt() {
|
||||||
|
$hasImages = isset($this->images) && count($this->images) > 0;
|
||||||
|
$maxLength = $hasImages ? 200 : 500;
|
||||||
|
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
|
||||||
|
substr($this->content, 0, $maxLength) .
|
||||||
|
(strlen($this->content) > $maxLength ? '...' : '') .
|
||||||
|
'</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
25
app/Models/NewsSource.php
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class NewsRegion {
|
||||||
|
public $title;
|
||||||
|
public $slug;
|
||||||
|
|
||||||
|
public function __construct($title, $slug = null) {
|
||||||
|
$this->title = $title;
|
||||||
|
$this->slug = $slug ? $slug : strtolower(str_replace(' ', '', $title));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class NewsSource {
|
||||||
|
public $title;
|
||||||
|
public $url;
|
||||||
|
public $show;
|
||||||
|
|
||||||
|
public function __construct($title, $url, $show) {
|
||||||
|
$this->title = $title;
|
||||||
|
$this->url = $url;
|
||||||
|
$this->show = $show;
|
||||||
|
}
|
||||||
|
}
|
||||||
94
app/Models/Podcast.php
Executable file
@@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
require_once "NewsImage.php";
|
||||||
|
|
||||||
|
class Podcast extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $content;
|
||||||
|
protected $soundfilename;
|
||||||
|
public $created;
|
||||||
|
public $program;
|
||||||
|
public $url;
|
||||||
|
public $auth;
|
||||||
|
public $download;
|
||||||
|
public $duration;
|
||||||
|
public $image;
|
||||||
|
public $metadata;
|
||||||
|
public $waveform;
|
||||||
|
private $key;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->created);
|
||||||
|
|
||||||
|
$this->url = '/' . $this->id . '/' . parent::url_slug($this->title) . '.mp3';
|
||||||
|
if($this->soundfilename) {
|
||||||
|
// Only generate when not constructing from a JSON object
|
||||||
|
$this->key = sha1($this->id . ':' . date('Y-m-d') . ':' . $this->soundfilename);
|
||||||
|
$this->auth = $this->key;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->program)) {
|
||||||
|
$this->program = null;
|
||||||
|
if(is_object($data->program)) {
|
||||||
|
$this->program = new \Model\Program($data->program);
|
||||||
|
} elseif($data->program) {
|
||||||
|
$this->program = new \Model\Program(['id' => $data->program, 'name' => $data->program_name, 'description' => $data->program_description]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->imagefile)) {
|
||||||
|
$imagedata = new \stdClass();
|
||||||
|
$imagedata->id = $this->id;
|
||||||
|
$imagedata->file = $data->imagefile;
|
||||||
|
$imagedata->title = $data->imagecaption;
|
||||||
|
$this->image = new NewsImage($imagedata, '/img/podcast/');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->metadata, $data->metadata->waveform)){
|
||||||
|
$this->waveform = $data->metadata->waveform;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->metadata = (new MetaData())
|
||||||
|
->set('title', $this->title)
|
||||||
|
->set('description', strip_tags($this->excerpt()))
|
||||||
|
->set('image', isset($this->image) ? $this->image->url : null )
|
||||||
|
->set('audio', $this->url)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function titleWithoutProgram() {
|
||||||
|
if(!$this->program) { return $this->title; }
|
||||||
|
return trim(str_replace($this->program->name, '', $this->title), "- \t\n\r\0\x0B");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isValidAuth($key) {
|
||||||
|
return ($key == $this->key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSoundfile() {
|
||||||
|
return '/var/audio/podcast/' . $this->soundfilename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function formatDuration() {
|
||||||
|
$seconds = $this->duration / 1000;
|
||||||
|
$milliseconds = $this->duration % 1000;
|
||||||
|
|
||||||
|
$hours = ($seconds > 3600) ? floor($seconds / 3600) : 0;
|
||||||
|
$seconds %= 3600;
|
||||||
|
return str_pad($hours, 2, '0', STR_PAD_LEFT)
|
||||||
|
. gmdate(':i:s', $seconds)
|
||||||
|
;//. ($milliseconds ? ".$milliseconds" : '') ;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function excerpt() {
|
||||||
|
$maxLength = 500;
|
||||||
|
return '<p class="news-excerpt long">' .
|
||||||
|
substr($this->content, 0, $maxLength) .
|
||||||
|
(strlen($this->content) > $maxLength ? '...' : '') .
|
||||||
|
'</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
55
app/Models/Program.php
Executable file
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class Program extends Model {
|
||||||
|
public $id;
|
||||||
|
public $name;
|
||||||
|
public $tagline;
|
||||||
|
public $description;
|
||||||
|
public $email;
|
||||||
|
public $nonstop;
|
||||||
|
public $rerun;
|
||||||
|
public $priority;
|
||||||
|
public $image;
|
||||||
|
|
||||||
|
public $hosts;
|
||||||
|
public $recent;
|
||||||
|
public $next;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
parent::__construct($data);
|
||||||
|
|
||||||
|
if(isset($data->suffix) && $data->suffix) {
|
||||||
|
$this->name .= ' ' . $data->suffix;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($this->recent && $this->recent) {
|
||||||
|
foreach($this->recent as &$recent) {
|
||||||
|
parent::ConvertToDateTime($recent->starts);
|
||||||
|
parent::ConvertToDateTime($recent->ends);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($this->next && $this->next) {
|
||||||
|
foreach($this->next as &$next) {
|
||||||
|
parent::ConvertToDateTime($next->starts);
|
||||||
|
parent::ConvertToDateTime($next->ends);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->email) && ($mailComma = strpos($data->email, ',')) !== false) {
|
||||||
|
$this->email = substr($data->email, 0, $mailComma);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->state)) {
|
||||||
|
$this->nonstop = $data->state == 0;
|
||||||
|
$this->rerun = $data->state == 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = "/{$this->id}/" . parent::url_slug($this->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isSpecial() {
|
||||||
|
return ($this->priority < 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
10
app/Models/ProgramHost.php
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class ProgramHost extends Model {
|
||||||
|
public $id;
|
||||||
|
public $name;
|
||||||
|
public $email;
|
||||||
|
}
|
||||||
|
|
||||||
47
app/Models/Track.php
Executable file
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class Track extends Model {
|
||||||
|
public $start;
|
||||||
|
public $itemCode;
|
||||||
|
public $title;
|
||||||
|
public $artist;
|
||||||
|
public $duration;
|
||||||
|
public $ends;
|
||||||
|
public $isLayout;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->start);
|
||||||
|
parent::ConvertToDateTime($this->ends);
|
||||||
|
$isLayout = $this->isLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static $IDENTS = ['UURSLUITER' => 'Nieuws', 'NIEUWSOPEN ' => 'Nieuws', 'ANWB' => 'Verkeersinformatie', 'REGIO' => 'Regionieuws', 'CB' => 'Reclame'];
|
||||||
|
|
||||||
|
public function isLayout() {
|
||||||
|
foreach(self::$IDENTS as $ident => $display) {
|
||||||
|
if(substr($this->itemCode, 0, strlen($ident)) == $ident || substr($this->title, 0, strlen($ident)) == $ident) {
|
||||||
|
$this->title = $display;
|
||||||
|
$this->artist = "";
|
||||||
|
$this->itemCode = '_' . $this->itemCode;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(strlen($this->itemCode) > 0 && ($this->itemCode[0] == 'V')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function ends($ends = null) {
|
||||||
|
$this->ends = $ends;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function secondsRemaining() {
|
||||||
|
return ($this->ends) ? ($this->ends->getTimestamp() - time()) : -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
2
app/Providers/AppServiceProvider.php
Normal file → Executable file
@@ -13,7 +13,7 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot()
|
public function boot()
|
||||||
{
|
{
|
||||||
//
|
\Illuminate\Support\Facades\URL::forceScheme('https');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
0
app/Providers/AuthServiceProvider.php
Normal file → Executable file
0
app/Providers/BroadcastServiceProvider.php
Normal file → Executable file
0
app/Providers/EventServiceProvider.php
Normal file → Executable file
0
app/Providers/RouteServiceProvider.php
Normal file → Executable file
0
app/User.php
Normal file → Executable file
0
bootstrap/app.php
Normal file → Executable file
0
bootstrap/autoload.php
Normal file → Executable file
0
bootstrap/cache/.gitignore
vendored
Normal file → Executable file
67
bootstrap/cache/packages.php
vendored
Executable file
@@ -0,0 +1,67 @@
|
|||||||
|
<?php return array (
|
||||||
|
'laravel/sail' =>
|
||||||
|
array (
|
||||||
|
'providers' =>
|
||||||
|
array (
|
||||||
|
0 => 'Laravel\\Sail\\SailServiceProvider',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'laravel/sanctum' =>
|
||||||
|
array (
|
||||||
|
'providers' =>
|
||||||
|
array (
|
||||||
|
0 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'laravel/tinker' =>
|
||||||
|
array (
|
||||||
|
'providers' =>
|
||||||
|
array (
|
||||||
|
0 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'laravelcollective/html' =>
|
||||||
|
array (
|
||||||
|
'providers' =>
|
||||||
|
array (
|
||||||
|
0 => 'Collective\\Html\\HtmlServiceProvider',
|
||||||
|
),
|
||||||
|
'aliases' =>
|
||||||
|
array (
|
||||||
|
'Form' => 'Collective\\Html\\FormFacade',
|
||||||
|
'Html' => 'Collective\\Html\\HtmlFacade',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'nesbot/carbon' =>
|
||||||
|
array (
|
||||||
|
'providers' =>
|
||||||
|
array (
|
||||||
|
0 => 'Carbon\\Laravel\\ServiceProvider',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'nunomaduro/collision' =>
|
||||||
|
array (
|
||||||
|
'providers' =>
|
||||||
|
array (
|
||||||
|
0 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'nunomaduro/termwind' =>
|
||||||
|
array (
|
||||||
|
'providers' =>
|
||||||
|
array (
|
||||||
|
0 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'spatie/laravel-ignition' =>
|
||||||
|
array (
|
||||||
|
'providers' =>
|
||||||
|
array (
|
||||||
|
0 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
||||||
|
),
|
||||||
|
'aliases' =>
|
||||||
|
array (
|
||||||
|
'Flare' => 'Spatie\\LaravelIgnition\\Facades\\Flare',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
235
bootstrap/cache/services.php
vendored
Normal file → Executable file
@@ -12,23 +12,31 @@
|
|||||||
8 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
8 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
||||||
9 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
9 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
||||||
10 => 'Illuminate\\Hashing\\HashServiceProvider',
|
10 => 'Illuminate\\Hashing\\HashServiceProvider',
|
||||||
11 => 'Collective\\Html\\HtmlServiceProvider',
|
11 => 'Illuminate\\Mail\\MailServiceProvider',
|
||||||
12 => 'Illuminate\\Mail\\MailServiceProvider',
|
12 => 'Illuminate\\Notifications\\NotificationServiceProvider',
|
||||||
13 => 'Illuminate\\Notifications\\NotificationServiceProvider',
|
13 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
||||||
14 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
14 => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
||||||
15 => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
15 => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||||
16 => 'Illuminate\\Queue\\QueueServiceProvider',
|
16 => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||||
17 => 'Illuminate\\Redis\\RedisServiceProvider',
|
17 => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
||||||
18 => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
18 => 'Illuminate\\Session\\SessionServiceProvider',
|
||||||
19 => 'Illuminate\\Session\\SessionServiceProvider',
|
19 => 'Illuminate\\Translation\\TranslationServiceProvider',
|
||||||
20 => 'Illuminate\\Translation\\TranslationServiceProvider',
|
20 => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||||
21 => 'Illuminate\\Validation\\ValidationServiceProvider',
|
21 => 'Illuminate\\View\\ViewServiceProvider',
|
||||||
22 => 'Illuminate\\View\\ViewServiceProvider',
|
22 => 'Laravel\\Sail\\SailServiceProvider',
|
||||||
23 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
23 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
||||||
24 => 'App\\Providers\\AppServiceProvider',
|
24 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
||||||
25 => 'App\\Providers\\AuthServiceProvider',
|
25 => 'Collective\\Html\\HtmlServiceProvider',
|
||||||
26 => 'App\\Providers\\EventServiceProvider',
|
26 => 'Carbon\\Laravel\\ServiceProvider',
|
||||||
27 => 'App\\Providers\\RouteServiceProvider',
|
27 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
||||||
|
28 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
||||||
|
29 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
||||||
|
30 => 'Collective\\Html\\HtmlServiceProvider',
|
||||||
|
31 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
||||||
|
32 => 'App\\Providers\\AppServiceProvider',
|
||||||
|
33 => 'App\\Providers\\AuthServiceProvider',
|
||||||
|
34 => 'App\\Providers\\EventServiceProvider',
|
||||||
|
35 => 'App\\Providers\\RouteServiceProvider',
|
||||||
),
|
),
|
||||||
'eager' =>
|
'eager' =>
|
||||||
array (
|
array (
|
||||||
@@ -42,10 +50,15 @@
|
|||||||
7 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
7 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
||||||
8 => 'Illuminate\\Session\\SessionServiceProvider',
|
8 => 'Illuminate\\Session\\SessionServiceProvider',
|
||||||
9 => 'Illuminate\\View\\ViewServiceProvider',
|
9 => 'Illuminate\\View\\ViewServiceProvider',
|
||||||
10 => 'App\\Providers\\AppServiceProvider',
|
10 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
||||||
11 => 'App\\Providers\\AuthServiceProvider',
|
11 => 'Carbon\\Laravel\\ServiceProvider',
|
||||||
12 => 'App\\Providers\\EventServiceProvider',
|
12 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
||||||
13 => 'App\\Providers\\RouteServiceProvider',
|
13 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
||||||
|
14 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
||||||
|
15 => 'App\\Providers\\AppServiceProvider',
|
||||||
|
16 => 'App\\Providers\\AuthServiceProvider',
|
||||||
|
17 => 'App\\Providers\\EventServiceProvider',
|
||||||
|
18 => 'App\\Providers\\RouteServiceProvider',
|
||||||
),
|
),
|
||||||
'deferred' =>
|
'deferred' =>
|
||||||
array (
|
array (
|
||||||
@@ -55,85 +68,122 @@
|
|||||||
'Illuminate\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
'Illuminate\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||||
'Illuminate\\Contracts\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
'Illuminate\\Contracts\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||||
'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||||
|
'Illuminate\\Bus\\BatchRepository' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||||
|
'Illuminate\\Bus\\DatabaseBatchRepository' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||||
'cache' => 'Illuminate\\Cache\\CacheServiceProvider',
|
'cache' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||||
'cache.store' => 'Illuminate\\Cache\\CacheServiceProvider',
|
'cache.store' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||||
|
'cache.psr6' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||||
'memcached.connector' => 'Illuminate\\Cache\\CacheServiceProvider',
|
'memcached.connector' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||||
'command.cache.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Cache\\RateLimiter' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||||
'command.cache.forget' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\AboutCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.clear-compiled' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Cache\\Console\\ClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.auth.resets.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Cache\\Console\\ForgetCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.config.cache' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.config.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Auth\\Console\\ClearResetsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.down' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.environment' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ConfigClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.key.generate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Database\\Console\\DbCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.migrate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Database\\Console\\MonitorCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.migrate.install' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Database\\Console\\PruneCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.migrate.refresh' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Database\\Console\\ShowCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.migrate.reset' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Database\\Console\\TableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.migrate.rollback' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Database\\Console\\WipeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.migrate.status' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\DownCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.optimize' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\EnvironmentCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.failed' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\EnvironmentDecryptCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.flush' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\EnvironmentEncryptCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.forget' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\EventCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.listen' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\EventClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.restart' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\EventListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.retry' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\KeyGenerateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.work' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\OptimizeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.route.cache' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\OptimizeClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.route.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.route.list' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Queue\\Console\\ClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.seed' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Queue\\Console\\ListFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\FlushFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\ForgetFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\ListenCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\MonitorCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\PruneBatchesCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\PruneFailedJobsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\RestartCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\RetryCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\RetryBatchCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\WorkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\RouteCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\RouteClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\RouteListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\DumpCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Console\\Scheduling\\ScheduleListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.storage.link' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Console\\Scheduling\\ScheduleClearCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.up' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Console\\Scheduling\\ScheduleTestCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.view.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Console\\Scheduling\\ScheduleWorkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.app.name' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ShowModelCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.auth.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\StorageLinkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.cache.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\UpCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.console.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ViewCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.controller.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ViewClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.event.generate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Cache\\Console\\CacheTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.event.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\CastMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.job.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ChannelMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.listener.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ComponentMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.mail.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.middleware.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Routing\\Console\\ControllerMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.migrate.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\DocsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.model.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\EventGenerateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.notification.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\EventMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.notification.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ExceptionMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.policy.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Database\\Console\\Factories\\FactoryMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.provider.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\JobMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.failed-table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ListenerMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.queue.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\MailMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.request.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Routing\\Console\\MiddlewareMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.seeder.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ModelMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.session.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.serve' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Notifications\\Console\\NotificationTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.test.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'command.vendor.publish' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\ProviderMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\FailedTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\TableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Queue\\Console\\BatchesTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\RequestMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\ResourceMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\RuleMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\ScopeMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Session\\Console\\SessionTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\ServeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\StubPublishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\TestMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Foundation\\Console\\VendorPublishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'migrator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'migrator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'migration.repository' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'migration.repository' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'migration.creator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'migration.creator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Migrations\\MigrateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Migrations\\FreshCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Migrations\\InstallCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Migrations\\RefreshCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
|
'Illuminate\\Database\\Console\\Migrations\\MigrateMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'composer' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
'composer' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||||
'hash' => 'Illuminate\\Hashing\\HashServiceProvider',
|
'hash' => 'Illuminate\\Hashing\\HashServiceProvider',
|
||||||
'html' => 'Collective\\Html\\HtmlServiceProvider',
|
'hash.driver' => 'Illuminate\\Hashing\\HashServiceProvider',
|
||||||
'form' => 'Collective\\Html\\HtmlServiceProvider',
|
'mail.manager' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||||
'Collective\\Html\\HtmlBuilder' => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
'Collective\\Html\\FormBuilder' => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
'mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
'mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||||
'swift.mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'swift.transport' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'Illuminate\\Mail\\Markdown' => 'Illuminate\\Mail\\MailServiceProvider',
|
'Illuminate\\Mail\\Markdown' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||||
'Illuminate\\Contracts\\Pipeline\\Hub' => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
'Illuminate\\Contracts\\Pipeline\\Hub' => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
||||||
'queue' => 'Illuminate\\Queue\\QueueServiceProvider',
|
'queue' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||||
'queue.worker' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.listener' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.failer' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.connection' => 'Illuminate\\Queue\\QueueServiceProvider',
|
'queue.connection' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||||
|
'queue.failer' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||||
|
'queue.listener' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||||
|
'queue.worker' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||||
'redis' => 'Illuminate\\Redis\\RedisServiceProvider',
|
'redis' => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||||
'redis.connection' => 'Illuminate\\Redis\\RedisServiceProvider',
|
'redis.connection' => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||||
'auth.password' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
'auth.password' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
||||||
@@ -142,7 +192,13 @@
|
|||||||
'translation.loader' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
'translation.loader' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
||||||
'validator' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
'validator' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||||
'validation.presence' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
'validation.presence' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||||
|
'Laravel\\Sail\\Console\\InstallCommand' => 'Laravel\\Sail\\SailServiceProvider',
|
||||||
|
'Laravel\\Sail\\Console\\PublishCommand' => 'Laravel\\Sail\\SailServiceProvider',
|
||||||
'command.tinker' => 'Laravel\\Tinker\\TinkerServiceProvider',
|
'command.tinker' => 'Laravel\\Tinker\\TinkerServiceProvider',
|
||||||
|
'html' => 'Collective\\Html\\HtmlServiceProvider',
|
||||||
|
'form' => 'Collective\\Html\\HtmlServiceProvider',
|
||||||
|
'Collective\\Html\\HtmlBuilder' => 'Collective\\Html\\HtmlServiceProvider',
|
||||||
|
'Collective\\Html\\FormBuilder' => 'Collective\\Html\\HtmlServiceProvider',
|
||||||
),
|
),
|
||||||
'when' =>
|
'when' =>
|
||||||
array (
|
array (
|
||||||
@@ -161,9 +217,6 @@
|
|||||||
'Illuminate\\Hashing\\HashServiceProvider' =>
|
'Illuminate\\Hashing\\HashServiceProvider' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'Collective\\Html\\HtmlServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Mail\\MailServiceProvider' =>
|
'Illuminate\\Mail\\MailServiceProvider' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
@@ -185,8 +238,14 @@
|
|||||||
'Illuminate\\Validation\\ValidationServiceProvider' =>
|
'Illuminate\\Validation\\ValidationServiceProvider' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
|
'Laravel\\Sail\\SailServiceProvider' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
'Laravel\\Tinker\\TinkerServiceProvider' =>
|
'Laravel\\Tinker\\TinkerServiceProvider' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
|
'Collective\\Html\\HtmlServiceProvider' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
66
composer.json
Normal file → Executable file
@@ -1,28 +1,33 @@
|
|||||||
{
|
{
|
||||||
"name": "laravel/laravel",
|
"name": "laravel/laravel",
|
||||||
|
"type": "project",
|
||||||
"description": "The Laravel Framework.",
|
"description": "The Laravel Framework.",
|
||||||
"keywords": ["framework", "laravel"],
|
"keywords": ["framework", "laravel"],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "project",
|
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.6.4",
|
"php": "^8.0",
|
||||||
"laravel/framework": "5.4.*",
|
"guzzlehttp/guzzle": "^7.2",
|
||||||
"laravel/tinker": "~1.0",
|
"laravel/framework": "^9.19",
|
||||||
"laravelcollective/html": "5.*"
|
"laravel/sanctum": "^3.0",
|
||||||
|
"laravel/tinker": "^2.7",
|
||||||
|
"laravelcollective/html": "^6.3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fzaninotto/faker": "~1.4",
|
"fakerphp/faker": "^1.9.1",
|
||||||
"mockery/mockery": "0.9.*",
|
"laravel/pint": "^1.0",
|
||||||
"phpunit/phpunit": "~5.7"
|
"laravel/sail": "^1.0.1",
|
||||||
|
"mockery/mockery": "^1.4.4",
|
||||||
|
"nunomaduro/collision": "^6.1",
|
||||||
|
"phpunit/phpunit": "^9.5.10",
|
||||||
|
"spatie/laravel-ignition": "^1.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"classmap": [
|
|
||||||
"database"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"App\\": "app/",
|
"App\\": "app/",
|
||||||
"Helpers\\": "app/Helpers/",
|
"Database\\Factories\\": "database/factories/",
|
||||||
"Model\\": "../api-dev/common/classes/"
|
"Database\\Seeders\\": "database/seeders/",
|
||||||
|
"Helpers\\": "app/Helpers",
|
||||||
|
"Model\\": "app/Models"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
@@ -31,24 +36,33 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-root-package-install": [
|
"post-autoload-dump": [
|
||||||
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||||
],
|
"@php artisan package:discover --ansi"
|
||||||
"post-create-project-cmd": [
|
|
||||||
"php artisan key:generate"
|
|
||||||
],
|
|
||||||
"post-install-cmd": [
|
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postInstall",
|
|
||||||
"php artisan optimize"
|
|
||||||
],
|
],
|
||||||
"post-update-cmd": [
|
"post-update-cmd": [
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
|
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
|
||||||
"php artisan optimize"
|
],
|
||||||
|
"post-root-package-install": [
|
||||||
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||||
|
],
|
||||||
|
"post-create-project-cmd": [
|
||||||
|
"@php artisan key:generate --ansi"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"extra": {
|
||||||
|
"laravel": {
|
||||||
|
"dont-discover": []
|
||||||
|
}
|
||||||
|
},
|
||||||
"config": {
|
"config": {
|
||||||
|
"optimize-autoloader": true,
|
||||||
"preferred-install": "dist",
|
"preferred-install": "dist",
|
||||||
"sort-packages": true,
|
"sort-packages": true,
|
||||||
"optimize-autoloader": true
|
"allow-plugins": {
|
||||||
}
|
"pestphp/pest-plugin": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimum-stability": "dev",
|
||||||
|
"prefer-stable": true
|
||||||
}
|
}
|
||||||
|
|||||||
7155
composer.lock
generated
Normal file → Executable file
2
config/app.php
Normal file → Executable file
@@ -105,7 +105,7 @@ return [
|
|||||||
|
|
||||||
'key' => env('APP_KEY'),
|
'key' => env('APP_KEY'),
|
||||||
|
|
||||||
'cipher' => 'AES-256-CBC',
|
'cipher' => 'aes-256-cbc',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|||||||
0
config/auth.php
Normal file → Executable file
0
config/broadcasting.php
Normal file → Executable file
0
config/cache.php
Normal file → Executable file
0
config/database.php
Normal file → Executable file
12
config/filesystems.php
Normal file → Executable file
@@ -48,12 +48,12 @@ return [
|
|||||||
'root' => storage_path('app'),
|
'root' => storage_path('app'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'public' => [
|
//'public' => [
|
||||||
'driver' => 'local',
|
// 'driver' => 'local',
|
||||||
'root' => storage_path('app/public'),
|
// 'root' => storage_path('app/public'),
|
||||||
'url' => env('APP_URL').'/storage',
|
// 'url' => env('APP_URL').'/storage',
|
||||||
'visibility' => 'public',
|
// 'visibility' => 'public',
|
||||||
],
|
//],
|
||||||
|
|
||||||
's3' => [
|
's3' => [
|
||||||
'driver' => 's3',
|
'driver' => 's3',
|
||||||
|
|||||||
0
config/mail.php
Normal file → Executable file
0
config/queue.php
Normal file → Executable file
0
config/services.php
Normal file → Executable file
2
config/session.php
Normal file → Executable file
@@ -161,7 +161,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'secure' => env('SESSION_SECURE_COOKIE', false),
|
'secure' => env('SESSION_SECURE_COOKIE', null),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|||||||
0
config/view.php
Normal file → Executable file
0
database/.gitignore
vendored
Normal file → Executable file
0
database/factories/ModelFactory.php
Normal file → Executable file
0
database/migrations/2014_10_12_000000_create_users_table.php
Normal file → Executable file
0
database/migrations/2014_10_12_100000_create_password_resets_table.php
Normal file → Executable file
34
database/migrations/2024_02_27_000000_create_pagestats_table.php
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreatePagestatsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('pagestats', function (Blueprint $table) {
|
||||||
|
$table->string('type');
|
||||||
|
$table->integer('item_id');
|
||||||
|
$table->string('visitor_ip');
|
||||||
|
$table->string('session');
|
||||||
|
$table->text('referer')->nullable();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('pagestats');
|
||||||
|
}
|
||||||
|
}
|
||||||
0
database/seeds/DatabaseSeeder.php
Normal file → Executable file
24
docker-compose.dev.yml
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build:
|
||||||
|
context: ./
|
||||||
|
dockerfile: Dockerfile.dev
|
||||||
|
ports:
|
||||||
|
- 8080:80
|
||||||
|
- 8443:443
|
||||||
|
volumes:
|
||||||
|
- .:/var/www/html
|
||||||
|
- ./srv:/srv
|
||||||
|
db:
|
||||||
|
image: mysql:5.5
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
expose:
|
||||||
|
- "3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: development-password
|
||||||
|
MYSQL_DATABASE: forge
|
||||||
|
MYSQL_USER: forge
|
||||||
|
MYSQL_PASSWORD: secret
|
||||||
22
docker-compose.yml
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build: ./
|
||||||
|
ports:
|
||||||
|
- 8080:80
|
||||||
|
- 8443:443
|
||||||
|
volumes:
|
||||||
|
- .:/var/www/html
|
||||||
|
- ./srv:/srv
|
||||||
|
db:
|
||||||
|
image: mysql:5.5
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
expose:
|
||||||
|
- "3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: development-password
|
||||||
|
MYSQL_DATABASE: forge
|
||||||
|
MYSQL_USER: forge
|
||||||
|
MYSQL_PASSWORD: secret
|
||||||
46
docker/apache.conf
Executable file
@@ -0,0 +1,46 @@
|
|||||||
|
Header set X-Content-Type-Options: "nosniff"
|
||||||
|
Header set X-Frame-Options: "sameorigin"
|
||||||
|
|
||||||
|
ServerTokens Prod
|
||||||
|
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName localhost
|
||||||
|
ServerAdmin support@websight.nl
|
||||||
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
|
<Directory /var/www/html/>
|
||||||
|
Options -Indexes +FollowSymLinks +MultiViews
|
||||||
|
AllowOverride All
|
||||||
|
Order deny,allow
|
||||||
|
Allow from all
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ErrorLog /var/log/apache2/vhost-error.log
|
||||||
|
CustomLog /var/log/apache2/vhost-access.log combined
|
||||||
|
</VirtualHost>
|
||||||
|
|
||||||
|
<IfModule mod_ssl.c>
|
||||||
|
<VirtualHost *:443>
|
||||||
|
ServerName localhost
|
||||||
|
ServerAdmin support@websight.nl
|
||||||
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
|
SSLEngine on
|
||||||
|
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||||
|
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
|
||||||
|
SSLCompression off
|
||||||
|
SSLProtocol All -SSLv2 -SSLv3
|
||||||
|
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
||||||
|
|
||||||
|
<Directory /var/www/html/>
|
||||||
|
Options -Indexes +FollowSymLinks +MultiViews
|
||||||
|
AllowOverride All
|
||||||
|
Order deny,allow
|
||||||
|
Allow from all
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ErrorLog /var/log/apache2/ssl-vhost-error.log
|
||||||
|
CustomLog /var/log/apache2/ssl-vhost-access.log combined
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
</IfModule>
|
||||||
46
docker/apache.dev.conf
Executable file
@@ -0,0 +1,46 @@
|
|||||||
|
Header set X-Content-Type-Options: "nosniff"
|
||||||
|
Header set X-Frame-Options: "sameorigin"
|
||||||
|
|
||||||
|
ServerTokens Prod
|
||||||
|
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName localhost
|
||||||
|
ServerAdmin support@websight.nl
|
||||||
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
|
<Directory /var/www/html/>
|
||||||
|
Options -Indexes +FollowSymLinks +MultiViews
|
||||||
|
AllowOverride All
|
||||||
|
Order deny,allow
|
||||||
|
Allow from all
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ErrorLog /var/log/apache2/vhost-error.log
|
||||||
|
CustomLog /var/log/apache2/vhost-access.log combined
|
||||||
|
</VirtualHost>
|
||||||
|
|
||||||
|
<IfModule mod_ssl.c>
|
||||||
|
<VirtualHost *:443>
|
||||||
|
ServerName localhost
|
||||||
|
ServerAdmin support@websight.nl
|
||||||
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
|
SSLEngine on
|
||||||
|
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||||
|
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
|
||||||
|
SSLCompression off
|
||||||
|
SSLProtocol All -SSLv2 -SSLv3
|
||||||
|
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
||||||
|
|
||||||
|
<Directory /var/www/html/>
|
||||||
|
Options -Indexes +FollowSymLinks +MultiViews
|
||||||
|
AllowOverride All
|
||||||
|
Order deny,allow
|
||||||
|
Allow from all
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ErrorLog /var/log/apache2/ssl-vhost-error.log
|
||||||
|
CustomLog /var/log/apache2/ssl-vhost-access.log combined
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
</IfModule>
|
||||||
0
download_mediaplayer_plugins.php
Normal file → Executable file
39
env.example
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
APP_NAME="NH Gooi"
|
||||||
|
APP_ENV=production
|
||||||
|
APP_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
APP_DEBUG=false
|
||||||
|
APP_LOG_LEVEL=error
|
||||||
|
APP_URL=https://dev.nhgooi.nl
|
||||||
|
IMAGE_BASE_URL=https://dev.nhgooi.nl
|
||||||
|
|
||||||
|
API_URL=https://api.nhgooi.nl/
|
||||||
|
|
||||||
|
BROADCAST_DRIVER=log
|
||||||
|
CACHE_DRIVER=file
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
QUEUE_DRIVER=sync
|
||||||
|
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_DRIVER=smtp
|
||||||
|
MAIL_HOST=in-v3.mailjet.com
|
||||||
|
MAIL_PORT=25
|
||||||
|
MAIL_USERNAME=mailjet_username
|
||||||
|
MAIL_PASSWORD=mailjet_password
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
|
||||||
|
PUSHER_APP_ID=
|
||||||
|
PUSHER_APP_KEY=
|
||||||
|
PUSHER_APP_SECRET=
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=nhgooi.nl
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=dbname
|
||||||
|
DB_USERNAME=6fmstats
|
||||||
|
DB_PASSWORD=dbpass
|
||||||
|
|
||||||
|
CACHE_DRIVER=file
|
||||||
|
QUEUE_DRIVER=sync
|
||||||
1788
package-lock.json
generated
Executable file
24
package.json
Normal file → Executable file
@@ -1,21 +1,17 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "npm run development",
|
"sass": "sass resources/assets/sass:public/css",
|
||||||
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"sass-watch": "sass --watch resources/assets/sass:public/css",
|
||||||
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"sass-minify": "sass resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
|
||||||
"watch-poll": "npm run watch -- --watch-poll",
|
"sass-minify-watch": "sass --watch resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
|
||||||
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"js-watch": "grunt watch"
|
||||||
"prod": "npm run production",
|
|
||||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"axios": "^0.16.2",
|
"grunt": "^1.6.1",
|
||||||
"bootstrap-sass": "^3.3.7",
|
"grunt-contrib-concat": "^2.1.0",
|
||||||
"cross-env": "^5.0.1",
|
"grunt-contrib-uglify": "^5.2.2",
|
||||||
"jquery": "^3.1.1",
|
"grunt-contrib-watch": "^1.1.0",
|
||||||
"laravel-mix": "^1.0",
|
"sass": "^1.71.1"
|
||||||
"lodash": "^4.17.4",
|
|
||||||
"vue": "^2.1.10"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
0
phpunit.xml
Normal file → Executable file
7
public/.htaccess
Normal file → Executable file
@@ -5,6 +5,13 @@
|
|||||||
|
|
||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
|
|
||||||
|
# 6fm -> nhgooi
|
||||||
|
RewriteCond %{HTTP_HOST} ^(www\.)6fm.nl(.*)$ [NC]
|
||||||
|
RewriteRule ^(.*)$ https://nhgooi.nl/$2 [R=301,L]
|
||||||
|
|
||||||
|
RewriteCond %{HTTP_HOST} nhgooigemist.nl [NC]
|
||||||
|
RewriteRule ^(.*)$ https://nhgooi.nl/gemist [R=301,L]
|
||||||
|
|
||||||
# Remove www.
|
# Remove www.
|
||||||
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
|
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
|
||||||
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
|
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
|
||||||
|
|||||||
BIN
public/android-chrome-192x192.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/android-chrome-512x512.png
Executable file
|
After Width: | Height: | Size: 183 KiB |
BIN
public/apple-touch-icon.png
Executable file
|
After Width: | Height: | Size: 39 KiB |
0
public/css/airplay.png
Normal file → Executable file
|
Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 606 B |
0
public/css/airplay.svg
Normal file → Executable file
|
Before Width: | Height: | Size: 417 B After Width: | Height: | Size: 417 B |
3
public/css/app.css
vendored
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
@import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600");
|
||||||
|
|
||||||
|
/*# sourceMappingURL=app.css.map */
|
||||||
1
public/css/app.css.map
Executable file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"sourceRoot":"","sources":["../../resources/assets/sass/app.scss"],"names":[],"mappings":"AAEQ","file":"app.css"}
|
||||||
4085
public/css/bootstrap-grid.css
vendored
Executable file
1
public/css/bootstrap-grid.css.map
Executable file
6
public/css/bootstrap-grid.min.css
vendored
Executable file
1
public/css/bootstrap-grid.min.css.map
Executable file
5
public/css/bootstrap.min.css
vendored
0
public/css/chromecast.png
Normal file → Executable file
|
Before Width: | Height: | Size: 951 B After Width: | Height: | Size: 951 B |
0
public/css/chromecast.svg
Normal file → Executable file
|
Before Width: | Height: | Size: 637 B After Width: | Height: | Size: 637 B |
1
public/css/components/posts.css.map
Executable file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"sourceRoot":"","sources":["../../../resources/assets/sass/components/posts.scss","../../../resources/assets/sass/abstracts/_mixin.scss"],"names":[],"mappings":"AAEE;EACE;ECAF;EACA;EACA;EDAE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAIN;ECzBA;EACA;EACA;EDyBE;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EAEA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIJ;ECvGF;EACA;EACA;;ADwGI;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAEF;EACE;;AAKN;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAEF;EACE","file":"posts.css"}
|
||||||
1
public/css/components/pretty_photo.css.map
Executable file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"sourceRoot":"","sources":["../../../resources/assets/sass/components/pretty_photo.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASE;EACA;;;AAEF;EAEE;;;AAEF;EAEE;EACA;EACA;EACA;EACA;;;AAEF;EAEE;EACA;;;AAEF;EAEE;EACA","file":"pretty_photo.css"}
|
||||||
914
public/css/dark_skin.css
vendored
@@ -1,914 +0,0 @@
|
|||||||
body
|
|
||||||
{
|
|
||||||
background-color: #2d3136;
|
|
||||||
}
|
|
||||||
.site_container,
|
|
||||||
.value_container
|
|
||||||
{
|
|
||||||
background-color: #363B40;
|
|
||||||
}
|
|
||||||
.site_container.boxed
|
|
||||||
{
|
|
||||||
box-shadow: 0 0 15px rgba(0, 0, 0, 0.25);
|
|
||||||
-moz-box-shadow: 0 0 15px rgba(0, 0, 0, 0.25);
|
|
||||||
-webkit-box-shadow: 0 0 15px rgba(0, 0, 0, 0.25);
|
|
||||||
}
|
|
||||||
.header_container.style_2
|
|
||||||
{
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
.header_top_bar_container .latest_news_scrolling_list_container
|
|
||||||
{
|
|
||||||
border-color: #363b40;
|
|
||||||
}
|
|
||||||
.post_details li.date,
|
|
||||||
.more, .more[type="submit"],
|
|
||||||
.post.single .post_details,
|
|
||||||
.share_box,
|
|
||||||
.taxonomies a,
|
|
||||||
.comment_form .text_input:focus,
|
|
||||||
.comment_form textarea:focus,
|
|
||||||
.contact_form .text_input:focus,
|
|
||||||
.contact_form textarea:focus,
|
|
||||||
.column.border_top,
|
|
||||||
.accordion .ui-accordion-header,
|
|
||||||
.list,
|
|
||||||
.search_form input[type="text"]:focus,
|
|
||||||
.item_content.border_top
|
|
||||||
{
|
|
||||||
border-color: #464D53;
|
|
||||||
}
|
|
||||||
.box_header,
|
|
||||||
.more.active,
|
|
||||||
.more:hover,
|
|
||||||
.tabs_navigation.small li a:hover,
|
|
||||||
.tabs_navigation.small li a.selected,
|
|
||||||
.tabs_navigation.small li.ui-tabs-active a,
|
|
||||||
.more.highlight,
|
|
||||||
.more.active:hover,
|
|
||||||
.taxonomies a:hover,
|
|
||||||
.review_summary .number,
|
|
||||||
.accordion .ui-accordion-header.ui-state-active,
|
|
||||||
.mobile-menu-switch
|
|
||||||
{
|
|
||||||
border-color: #8CC152;
|
|
||||||
}
|
|
||||||
h1, h2, h3, h4, h5, h6,
|
|
||||||
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
|
|
||||||
.box_header,
|
|
||||||
.read_more,
|
|
||||||
.tabs_navigation li a,
|
|
||||||
.more,
|
|
||||||
.more[type="submit"],
|
|
||||||
.more.highlight:hover,
|
|
||||||
.tabs_navigation.small li a,
|
|
||||||
.tabs_navigation.small li a:hover,
|
|
||||||
.tabs_navigation.small li a.selected,
|
|
||||||
.tabs_navigation.small li.ui-tabs-active a,
|
|
||||||
blockquote,
|
|
||||||
label,
|
|
||||||
.comment_form input,
|
|
||||||
.comment_form textarea,
|
|
||||||
.contact_form input,
|
|
||||||
.contact_form textarea,
|
|
||||||
.review_block h5,
|
|
||||||
.review_summary h5,
|
|
||||||
.list li,
|
|
||||||
.list li a,
|
|
||||||
.dropcap .dropcap_label h3,
|
|
||||||
input,
|
|
||||||
textarea,
|
|
||||||
.mobile-menu li a,
|
|
||||||
.mobile-menu li.selected ul a,
|
|
||||||
.mobile-menu li.selected ul li.selected ul a,
|
|
||||||
.slider_posts_list li.current h5,
|
|
||||||
.slider_posts_list li:hover h5,
|
|
||||||
.bread_crumb li a:hover
|
|
||||||
{
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
.box_header,
|
|
||||||
.tabs_navigation li a,
|
|
||||||
.post a.comments_number,
|
|
||||||
.blog.rating .post .value_bar,
|
|
||||||
.author .value_bar,
|
|
||||||
.divider,
|
|
||||||
.pagination li a,
|
|
||||||
blockquote,
|
|
||||||
.comment_form input,
|
|
||||||
.comment_form textarea,
|
|
||||||
.contact_form input,
|
|
||||||
.contact_form textarea,
|
|
||||||
.review_block,
|
|
||||||
.review_summary .value_bar,
|
|
||||||
.item_content .features_icon,
|
|
||||||
.accordion .ui-accordion-header .ui-accordion-header-icon,
|
|
||||||
.announcement,
|
|
||||||
.dropcap .dropcap_label,
|
|
||||||
input,
|
|
||||||
textarea,
|
|
||||||
.mobile-menu li a,
|
|
||||||
.mobile-menu li.selected ul a,
|
|
||||||
.mobile-menu li.selected ul li.selected ul a,
|
|
||||||
.slider_posts_list .slider_posts_list_progress_block
|
|
||||||
{
|
|
||||||
background-color: #42494F;
|
|
||||||
}
|
|
||||||
.tabs_navigation.small,
|
|
||||||
.slider_posts_list li
|
|
||||||
{
|
|
||||||
border-color: #42494F;
|
|
||||||
}
|
|
||||||
.post_details li.category,
|
|
||||||
.slider_navigation .slider_control a:hover,
|
|
||||||
a.slider_control:hover,
|
|
||||||
.slider_posts_list .slider_posts_list_bar,
|
|
||||||
.read_more .arrow,
|
|
||||||
.tabs_navigation li a:hover,
|
|
||||||
.tabs_navigation li a.selected,
|
|
||||||
.tabs_navigation li.ui-tabs-active a,
|
|
||||||
.post .comments_number:hover,
|
|
||||||
.footer .post .comments_number:hover,
|
|
||||||
.more.active,
|
|
||||||
.more:hover,
|
|
||||||
.slider_posts_list_container a.slider_control,
|
|
||||||
.pagination li a:hover,
|
|
||||||
.pagination li.selected a,
|
|
||||||
.taxonomies a:hover,
|
|
||||||
.value_container .value_bar,
|
|
||||||
.accordion .ui-accordion-header.ui-state-active,
|
|
||||||
.accordion .ui-accordion-header:hover .ui-accordion-header-icon,
|
|
||||||
.dropcap .dropcap_label.active,
|
|
||||||
.icon.fullscreen:hover,
|
|
||||||
.gallery_popup .slider_navigation .slider_control a:hover,
|
|
||||||
.mobile-menu-switch .line,
|
|
||||||
.mobile-menu-switch:hover,
|
|
||||||
.mobile-menu li.selected a,
|
|
||||||
.mobile-menu li.selected ul li.selected a,
|
|
||||||
.mobile-menu li.selected ul li.selected ul li.selected a
|
|
||||||
{
|
|
||||||
background-color: #8CC152;
|
|
||||||
}
|
|
||||||
.tabs_navigation li.ui-tabs-active span,
|
|
||||||
.post .comments_number:hover .arrow_comments,
|
|
||||||
.footer .post .comments_number:hover .arrow_comments
|
|
||||||
{
|
|
||||||
border-color: #8CC152 transparent;
|
|
||||||
}
|
|
||||||
.blog ul.post_details.simple li.category,
|
|
||||||
.blog ul.post_details.simple li.category a,
|
|
||||||
.post.single .post_details a,
|
|
||||||
.more.highlight,
|
|
||||||
.more.active:hover,
|
|
||||||
.review_summary .number,
|
|
||||||
.about_subtitle,
|
|
||||||
.announcement .expose,
|
|
||||||
p a
|
|
||||||
{
|
|
||||||
color: #8CC152;
|
|
||||||
}
|
|
||||||
ul.post_details.simple li
|
|
||||||
{
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
.post_details li.date,
|
|
||||||
.post a.comments_number,
|
|
||||||
.author h6,
|
|
||||||
.bread_crumb li,
|
|
||||||
.bread_crumb li a,
|
|
||||||
.pagination li a,
|
|
||||||
.post.single li.detail,
|
|
||||||
.taxonomies a,
|
|
||||||
.posted_by abbr.timeago,
|
|
||||||
.post.single .sentence .text,
|
|
||||||
.gallery_popup .sentence .text,
|
|
||||||
.slider_posts_list li h5
|
|
||||||
{
|
|
||||||
color: #9DA4AB;
|
|
||||||
}
|
|
||||||
.post .arrow_comments
|
|
||||||
{
|
|
||||||
border-color: #42494F transparent;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
.review_block .list li,
|
|
||||||
.review_block .list li a,
|
|
||||||
.review_summary .text p
|
|
||||||
{
|
|
||||||
color: #D7DCE0;
|
|
||||||
}
|
|
||||||
span.number,
|
|
||||||
span.odometer.number,
|
|
||||||
.post.single .sentence .author,
|
|
||||||
.gallery_popup .sentence .author,
|
|
||||||
blockquote .author,
|
|
||||||
input.hint,
|
|
||||||
textarea.hint,
|
|
||||||
.comment_form .hint,
|
|
||||||
.contact_form .hint,
|
|
||||||
.posted_by .in_reply,
|
|
||||||
.slider_posts_list li .date
|
|
||||||
{
|
|
||||||
color: #858D94;
|
|
||||||
}
|
|
||||||
::-webkit-input-placeholder
|
|
||||||
{
|
|
||||||
color: #858D94;
|
|
||||||
}
|
|
||||||
:-moz-placeholder
|
|
||||||
{
|
|
||||||
color: #858D94;
|
|
||||||
}
|
|
||||||
::-moz-placeholder
|
|
||||||
{
|
|
||||||
color: #858D94;
|
|
||||||
}
|
|
||||||
:-ms-input-placeholder
|
|
||||||
{
|
|
||||||
color: #858D94;
|
|
||||||
}
|
|
||||||
.tabs_navigation li a
|
|
||||||
{
|
|
||||||
border-color: #52595F;
|
|
||||||
}
|
|
||||||
.footer_container
|
|
||||||
{
|
|
||||||
background-color: #2D3136;
|
|
||||||
}
|
|
||||||
.divider.subheader_arrow
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/subheader_arrow.png");
|
|
||||||
}
|
|
||||||
.pagination li.left a
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/navigation/dark_bg/pagination_arrow_left.png");
|
|
||||||
}
|
|
||||||
.pagination li.right a
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/navigation/dark_bg/pagination_arrow_right.png");
|
|
||||||
}
|
|
||||||
blockquote
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/quote_content.png");
|
|
||||||
}
|
|
||||||
#comments_list .children .comment .parent_arrow
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/comment_reply.png");
|
|
||||||
}
|
|
||||||
.bullet.style_1
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/bullet_style_1.png");
|
|
||||||
padding-left: 15px;
|
|
||||||
}
|
|
||||||
.bullet.style_2
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/bullet_style_2.png");
|
|
||||||
}
|
|
||||||
.bullet.style_3
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/bullet_style_3.png");
|
|
||||||
}
|
|
||||||
.bullet.style_4
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/bullet_style_4.png");
|
|
||||||
}
|
|
||||||
.item_content .not_found
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/404.png");
|
|
||||||
}
|
|
||||||
.app
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/app.png");
|
|
||||||
}
|
|
||||||
.calendar
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/calendar.png");
|
|
||||||
}
|
|
||||||
.chart
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/chart.png");
|
|
||||||
}
|
|
||||||
.chat
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/chat.png");
|
|
||||||
}
|
|
||||||
.clock
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/clock.png");
|
|
||||||
}
|
|
||||||
.database
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/database.png");
|
|
||||||
}
|
|
||||||
.document
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/document.png");
|
|
||||||
}
|
|
||||||
.envelope
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/envelope.png");
|
|
||||||
}
|
|
||||||
.faq
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/faq.png");
|
|
||||||
}
|
|
||||||
.graph
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/graph.png");
|
|
||||||
}
|
|
||||||
.image
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/image.png");
|
|
||||||
}
|
|
||||||
.laptop
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/laptop.png");
|
|
||||||
}
|
|
||||||
.magnifier
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/magnifier.png");
|
|
||||||
}
|
|
||||||
.features_icon.mobile
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/mobile.png");
|
|
||||||
}
|
|
||||||
.pin
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/pin.png");
|
|
||||||
}
|
|
||||||
.printer
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/printer.png");
|
|
||||||
}
|
|
||||||
.quote
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/quote.png");
|
|
||||||
}
|
|
||||||
.screen
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/screen.png");
|
|
||||||
}
|
|
||||||
.speaker
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/speaker.png");
|
|
||||||
}
|
|
||||||
.video
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/features/dark_bg/video.png");
|
|
||||||
}
|
|
||||||
li.detail.category
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/post_category.png");
|
|
||||||
}
|
|
||||||
.detail.date
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/post_date.png");
|
|
||||||
}
|
|
||||||
.detail.author
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/post_author.png");
|
|
||||||
}
|
|
||||||
.detail.views
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/post_views.png");
|
|
||||||
}
|
|
||||||
.detail.comments
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/post_comments.png");
|
|
||||||
}
|
|
||||||
.taxonomies.tags
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/post_footer_tags.png");
|
|
||||||
}
|
|
||||||
.taxonomies.categories
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/other/dark_bg/post_footer_category.png");
|
|
||||||
}
|
|
||||||
.behance
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/behance.png");
|
|
||||||
}
|
|
||||||
.bing
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/bing.png");
|
|
||||||
}
|
|
||||||
.blogger
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/blogger.png");
|
|
||||||
}
|
|
||||||
.deezer
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/deezer.png");
|
|
||||||
}
|
|
||||||
.designfloat
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/designfloat.png");
|
|
||||||
}
|
|
||||||
.deviantart
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/deviantart.png");
|
|
||||||
}
|
|
||||||
.digg
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/digg.png");
|
|
||||||
}
|
|
||||||
.digg
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/digg.png");
|
|
||||||
}
|
|
||||||
.dribbble
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/dribbble.png");
|
|
||||||
}
|
|
||||||
.envato
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/envato.png");
|
|
||||||
}
|
|
||||||
.facebook
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/facebook.png");
|
|
||||||
}
|
|
||||||
.flickr
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/flickr.png");
|
|
||||||
}
|
|
||||||
.form
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/form.png");
|
|
||||||
}
|
|
||||||
.forrst
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/forrst.png");
|
|
||||||
}
|
|
||||||
.foursquare
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/foursquare.png");
|
|
||||||
}
|
|
||||||
.friendfeed
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/friendfeed.png");
|
|
||||||
}
|
|
||||||
.googleplus
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/googleplus.png");
|
|
||||||
}
|
|
||||||
.instagram
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/instagram.png");
|
|
||||||
}
|
|
||||||
.linkedin
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/linkedin.png");
|
|
||||||
}
|
|
||||||
.mail
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/mail.png");
|
|
||||||
}
|
|
||||||
.mobile
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/mobile.png");
|
|
||||||
}
|
|
||||||
.myspace
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/myspace.png");
|
|
||||||
}
|
|
||||||
.picasa
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/picasa.png");
|
|
||||||
}
|
|
||||||
.pinterest
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/pinterest.png");
|
|
||||||
}
|
|
||||||
.reddit
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/reddit.png");
|
|
||||||
}
|
|
||||||
.rss
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/rss.png");
|
|
||||||
}
|
|
||||||
.skype
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/skype.png");
|
|
||||||
}
|
|
||||||
.soundcloud
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/soundcloud.png");
|
|
||||||
}
|
|
||||||
.spotify
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/spotify.png");
|
|
||||||
}
|
|
||||||
.stumbleupon
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/stumbleupon.png");
|
|
||||||
}
|
|
||||||
.technorati
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/technorati.png");
|
|
||||||
}
|
|
||||||
.tumblr
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/tumblr.png");
|
|
||||||
}
|
|
||||||
.twitter
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/twitter.png");
|
|
||||||
}
|
|
||||||
.vimeo
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/vimeo.png");
|
|
||||||
}
|
|
||||||
.wykop
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/wykop.png");
|
|
||||||
}
|
|
||||||
.xing
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/xing.png");
|
|
||||||
}
|
|
||||||
.youtube
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dark_bg/youtube.png");
|
|
||||||
}
|
|
||||||
.light .behance
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/behance.png");
|
|
||||||
}
|
|
||||||
.light .bing
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/bing.png");
|
|
||||||
}
|
|
||||||
.light .blogger
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/blogger.png");
|
|
||||||
}
|
|
||||||
.light .deezer
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/deezer.png");
|
|
||||||
}
|
|
||||||
.light .designfloat
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/designfloat.png");
|
|
||||||
}
|
|
||||||
.light .deviantart
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/deviantart.png");
|
|
||||||
}
|
|
||||||
.light .digg
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/digg.png");
|
|
||||||
}
|
|
||||||
.light .digg
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/digg.png");
|
|
||||||
}
|
|
||||||
.light .dribbble
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/dribbble.png");
|
|
||||||
}
|
|
||||||
.light .envato
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/envato.png");
|
|
||||||
}
|
|
||||||
.light .facebook
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/facebook.png");
|
|
||||||
}
|
|
||||||
.light .flickr
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/flickr.png");
|
|
||||||
}
|
|
||||||
.light .form
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/form.png");
|
|
||||||
}
|
|
||||||
.light .forrst
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/forrst.png");
|
|
||||||
}
|
|
||||||
.light .foursquare
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/foursquare.png");
|
|
||||||
}
|
|
||||||
.light .friendfeed
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/friendfeed.png");
|
|
||||||
}
|
|
||||||
.light .googleplus
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/googleplus.png");
|
|
||||||
}
|
|
||||||
.light .instagram
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/instagram.png");
|
|
||||||
}
|
|
||||||
.light .linkedin
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/linkedin.png");
|
|
||||||
}
|
|
||||||
.light .mail
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/mail.png");
|
|
||||||
}
|
|
||||||
.light .mobile
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/mobile.png");
|
|
||||||
}
|
|
||||||
.light .myspace
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/myspace.png");
|
|
||||||
}
|
|
||||||
.light .picasa
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/picasa.png");
|
|
||||||
}
|
|
||||||
.light .pinterest
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/pinterest.png");
|
|
||||||
}
|
|
||||||
.light .reddit
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/reddit.png");
|
|
||||||
}
|
|
||||||
.light .rss
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/rss.png");
|
|
||||||
}
|
|
||||||
.light .skype
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/skype.png");
|
|
||||||
}
|
|
||||||
.light .soundcloud
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/soundcloud.png");
|
|
||||||
}
|
|
||||||
.light .spotify
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/spotify.png");
|
|
||||||
}
|
|
||||||
.light .stumbleupon
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/stumbleupon.png");
|
|
||||||
}
|
|
||||||
.light .technorati
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/technorati.png");
|
|
||||||
}
|
|
||||||
.light .tumblr
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/tumblr.png");
|
|
||||||
}
|
|
||||||
.light .twitter
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/twitter.png");
|
|
||||||
}
|
|
||||||
.light .vimeo
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/vimeo.png");
|
|
||||||
}
|
|
||||||
.light .wykop
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/wykop.png");
|
|
||||||
}
|
|
||||||
.light .xing
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/xing.png");
|
|
||||||
}
|
|
||||||
.light .youtube
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/social/youtube.png");
|
|
||||||
}
|
|
||||||
.bread_crumb .separator
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/navigation/dark_bg/breadcrumb_arrow.png");
|
|
||||||
}
|
|
||||||
.accordion .ui-accordion-header .ui-accordion-header-icon
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/navigation/dark_bg/accordion_arrow_down.png");
|
|
||||||
}
|
|
||||||
/* --- menu --- */
|
|
||||||
.menu_container
|
|
||||||
{
|
|
||||||
border-top-color: #464D53;
|
|
||||||
border-bottom-color: #464D53;
|
|
||||||
background: #363B40;
|
|
||||||
}
|
|
||||||
.menu_container.sticky.move
|
|
||||||
{
|
|
||||||
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.4);
|
|
||||||
border-bottom-color: transparent;
|
|
||||||
}
|
|
||||||
.menu_container.sticky.move .sf-menu li
|
|
||||||
{
|
|
||||||
border-bottom-color: transparent;
|
|
||||||
}
|
|
||||||
.sf-menu li
|
|
||||||
{
|
|
||||||
background-color: #363B40;
|
|
||||||
border-bottom-color: #42494F;
|
|
||||||
border-top-color: #464D53;
|
|
||||||
}
|
|
||||||
.sf-menu li a,
|
|
||||||
.sf-menu li a:visited
|
|
||||||
{
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
.menu_container .sf-menu li.submenu a,
|
|
||||||
.menu_container .sf-menu li.selected.submenu a,
|
|
||||||
.menu_container .sf-menu li.submenu:hover a
|
|
||||||
{
|
|
||||||
background-image: url("../images/icons/navigation/dark_bg/menu_arrow.png");
|
|
||||||
}
|
|
||||||
.sf-menu a:hover,
|
|
||||||
.sf-menu a:hover
|
|
||||||
{
|
|
||||||
background-color: #42494F;
|
|
||||||
}
|
|
||||||
.sf-menu li.submenu ul,
|
|
||||||
.menu_container .sf-menu li:hover ul a,
|
|
||||||
.menu_container .sf-menu li.submenu:hover ul a,
|
|
||||||
.menu_container .sf-menu li ul li a,
|
|
||||||
.menu_container .sf-menu li.submenu:hover ul li.selected ul li a
|
|
||||||
{
|
|
||||||
background-color: #2D3136;
|
|
||||||
}
|
|
||||||
.menu_container .sf-menu li ul li a:hover, .menu_container .sf-menu li ul li.selected a,
|
|
||||||
.menu_container .sf-menu li.submenu ul li a:hover, .menu_container .sf-menu li.submenu:hover ul li.selected a,
|
|
||||||
.menu_container .sf-menu li.submenu:hover ul li.selected ul li a:hover, .menu_container .sf-menu li.submenu:hover ul li ul li.selected a, .menu_container .sf-menu li.submenu:hover ul li.selected ul li.selected a,
|
|
||||||
.menu_container .sf-menu li:hover ul li.sfHover>a,
|
|
||||||
ul.sf-menu .mega_menu,
|
|
||||||
ul.sf-menu .mega_menu li,
|
|
||||||
.sf-menu li.submenu .mega_menu
|
|
||||||
{
|
|
||||||
background-color: #212429;
|
|
||||||
}
|
|
||||||
.sf-menu li:hover, .sf-menu li.selected,
|
|
||||||
.sf-menu li.submenu:hover,
|
|
||||||
.sf-menu li:hover a, .sf-menu li.selected a,
|
|
||||||
.sf-menu li.submenu:hover a
|
|
||||||
{
|
|
||||||
background-color: #42494F;
|
|
||||||
border-top-color: #8CC152;
|
|
||||||
border-bottom-color: #42494F;
|
|
||||||
}
|
|
||||||
/* --- menu style 2 & 3 & 5 & 6 & 7 & 8 & 9 & 10 --- */
|
|
||||||
.style_2.menu_container
|
|
||||||
{
|
|
||||||
background: #42494F;
|
|
||||||
border-color: #42494F;
|
|
||||||
}
|
|
||||||
.style_2 .sf-menu
|
|
||||||
{
|
|
||||||
border-top-color: #52595F;
|
|
||||||
}
|
|
||||||
.style_2 .sf-menu li
|
|
||||||
{
|
|
||||||
background-color: #42494F;
|
|
||||||
border-bottom-color: #42494F;
|
|
||||||
border-top-color: #52595F;
|
|
||||||
}
|
|
||||||
.style_2 .sf-menu a:hover,
|
|
||||||
.style_3 .sf-menu a:hover
|
|
||||||
{
|
|
||||||
background-color: #8CC152;
|
|
||||||
}
|
|
||||||
.style_2 .sf-menu li:hover, .style_2 .sf-menu li.selected,
|
|
||||||
.style_2 .sf-menu li.submenu:hover,
|
|
||||||
.style_2 .sf-menu li:hover a, .style_2 .sf-menu li.selected a,
|
|
||||||
.style_2 .sf-menu li.submenu:hover a,
|
|
||||||
.style_3 .sf-menu li:hover, .style_3 .sf-menu li.selected,
|
|
||||||
.style_3 .sf-menu li.submenu:hover,
|
|
||||||
.style_3 .sf-menu li:hover a, .style_3 .sf-menu li.selected a,
|
|
||||||
.style_3 .sf-menu li.submenu:hover a,
|
|
||||||
.style_5 .sf-menu li:hover, .style_5 .sf-menu li.selected,
|
|
||||||
.style_5 .sf-menu li.submenu:hover,
|
|
||||||
.style_5 .sf-menu li:hover a, .style_5 .sf-menu li.selected a,
|
|
||||||
.style_5 .sf-menu li.submenu:hover a,
|
|
||||||
.style_10 .sf-menu li:hover, .style_10 .sf-menu li.selected,
|
|
||||||
.style_10 .sf-menu li.submenu:hover,
|
|
||||||
.style_10 .sf-menu li:hover a, .style_10 .sf-menu li.selected a,
|
|
||||||
.style_10 .sf-menu li.submenu:hover a
|
|
||||||
{
|
|
||||||
background-color: #8CC152;
|
|
||||||
border-top-color: #8CC152;
|
|
||||||
border-bottom-color: #8CC152;
|
|
||||||
}
|
|
||||||
.style_2 .sf-menu li a,
|
|
||||||
.style_2 .sf-menu li.selected a,
|
|
||||||
.style_2 .sf-menu li:hover a,
|
|
||||||
.style_3 .sf-menu li.selected a,
|
|
||||||
.style_3 .sf-menu li:hover a,
|
|
||||||
.style_5 .sf-menu li a,
|
|
||||||
.style_6 .sf-menu li.selected a,
|
|
||||||
.style_6 .sf-menu li:hover a,
|
|
||||||
.style_7 .sf-menu li a,
|
|
||||||
.style_8 .sf-menu li.selected a,
|
|
||||||
.style_8 .sf-menu li:hover a,
|
|
||||||
.style_9 .sf-menu li a,
|
|
||||||
.style_10 .sf-menu li.selected a,
|
|
||||||
.style_10 .sf-menu li:hover a
|
|
||||||
{
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
/* --- menu style 3 --- */
|
|
||||||
.style_3.menu_container,
|
|
||||||
.style_3 .sf-menu li
|
|
||||||
{
|
|
||||||
border-top-color: #8CC152;
|
|
||||||
}
|
|
||||||
/* --- menu style 4 --- */
|
|
||||||
.style_4.menu_container,
|
|
||||||
.style_4 .sf-menu li
|
|
||||||
{
|
|
||||||
background-color: #42494F;
|
|
||||||
border-color: #42494F;
|
|
||||||
}
|
|
||||||
.style_4 .sf-menu li:hover, .style_4 .sf-menu li.selected,
|
|
||||||
.style_4 .sf-menu li.submenu:hover,
|
|
||||||
.style_4 .sf-menu li:hover a, .style_4 .sf-menu li.selected a,
|
|
||||||
.style_4 .sf-menu li.submenu:hover a
|
|
||||||
{
|
|
||||||
background-color: #363B40;
|
|
||||||
border-bottom-color: #363B40;
|
|
||||||
border-top-color: #8CC152;
|
|
||||||
}
|
|
||||||
/* --- menu style 5 & 7 & 9 & 10 --- */
|
|
||||||
.style_5.menu_container,
|
|
||||||
.style_5 .sf-menu li,
|
|
||||||
.style_7.menu_container,
|
|
||||||
.style_7 .sf-menu li,
|
|
||||||
.style_9.menu_container,
|
|
||||||
.style_9 .sf-menu li
|
|
||||||
{
|
|
||||||
background-color: #2D3136;
|
|
||||||
border-color: #2D3136;
|
|
||||||
}
|
|
||||||
.style_5 .sf-menu a:hover,
|
|
||||||
.style_10 .sf-menu a:hover
|
|
||||||
{
|
|
||||||
background-color: #8CC152;
|
|
||||||
}
|
|
||||||
/* --- menu style 6 --- */
|
|
||||||
.style_6.menu_container.sticky.move,
|
|
||||||
.style_6.menu_container,
|
|
||||||
.style_6.menu_container.sticky.move .sf-menu li,
|
|
||||||
.style_6 .sf-menu li
|
|
||||||
{
|
|
||||||
border-bottom-color: #2D3136;
|
|
||||||
}
|
|
||||||
.style_6 .sf-menu a:hover
|
|
||||||
{
|
|
||||||
background-color: #2D3136;
|
|
||||||
}
|
|
||||||
.style_6 .sf-menu li:hover, .style_6 .sf-menu li.selected,
|
|
||||||
.style_6 .sf-menu li.submenu:hover,
|
|
||||||
.style_6 .sf-menu li:hover a, .style_6 .sf-menu li.selected a,
|
|
||||||
.style_6 .sf-menu li.submenu:hover a
|
|
||||||
{
|
|
||||||
background-color: #2D3136;
|
|
||||||
}
|
|
||||||
/* --- menu style 7 --- */
|
|
||||||
.style_7 .sf-menu a:hover
|
|
||||||
{
|
|
||||||
background-color: #25282A;
|
|
||||||
}
|
|
||||||
.style_7 .sf-menu li:hover, .style_7 .sf-menu li.selected,
|
|
||||||
.style_7 .sf-menu li.submenu:hover,
|
|
||||||
.style_7 .sf-menu li:hover a, .style_7 .sf-menu li.selected a,
|
|
||||||
.style_7 .sf-menu li.submenu:hover a
|
|
||||||
{
|
|
||||||
background-color: #363B40;
|
|
||||||
border-top-color: #363B40;
|
|
||||||
border-bottom-color: #363B40;
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
/* --- menu style 8 & 9 & 10 --- */
|
|
||||||
.style_8 .sf-menu li,
|
|
||||||
.style_8.menu_container,
|
|
||||||
.style_10 .sf-menu li,
|
|
||||||
.style_10.menu_container
|
|
||||||
{
|
|
||||||
border-top-color: #363B40;
|
|
||||||
}
|
|
||||||
.style_8 .sf-menu a:hover,
|
|
||||||
.style_9 .sf-menu a:hover
|
|
||||||
{
|
|
||||||
background-color: #42494F;
|
|
||||||
}
|
|
||||||
.style_8 .sf-menu li:hover, .style_8 .sf-menu li.selected,
|
|
||||||
.style_8 .sf-menu li.submenu:hover,
|
|
||||||
.style_8 .sf-menu li:hover a, .style_8 .sf-menu li.selected a,
|
|
||||||
.style_8 .sf-menu li.submenu:hover a,
|
|
||||||
.style_9 .sf-menu li:hover, .style_9 .sf-menu li.selected,
|
|
||||||
.style_9 .sf-menu li.submenu:hover,
|
|
||||||
.style_9 .sf-menu li:hover a, .style_9 .sf-menu li.selected a,
|
|
||||||
.style_9 .sf-menu li.submenu:hover a
|
|
||||||
{
|
|
||||||
background-color: #42494F;
|
|
||||||
border-top-color: #42494F;
|
|
||||||
border-bottom-color: #42494F;
|
|
||||||
}
|
|
||||||