Compare commits
98 Commits
c1ef2d7070
...
feature/ap
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9698f9b103 | ||
|
|
8d1e79f1b7 | ||
|
|
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 | ||
|
|
ec43f6d753 |
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
|
||||
@@ -27,12 +27,12 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||
ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf
|
||||
|
||||
WORKDIR /var/www/html
|
||||
COPY . /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
|
||||
RUN php artisan cache:clear && \
|
||||
php artisan config:clear && \
|
||||
php artisan view:clear
|
||||
|
||||
38
Dockerfile.dev
Normal 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
Normal 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');
|
||||
|
||||
};
|
||||
@@ -12,18 +12,18 @@ class CalendarController extends Controller
|
||||
$apiResult = $this->API('agenda/item/' . (int)$id);
|
||||
$calendarEvent = new \Model\CalendarEvent($apiResult);
|
||||
|
||||
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)
|
||||
{
|
||||
$apiResult = $this->API('agenda/overzicht');
|
||||
$calendar = [];
|
||||
foreach($apiResult as $calendarItem)
|
||||
foreach($apiResult->events as $calendarItem)
|
||||
{
|
||||
$calendar[] = new \Model\CalendarEvent($calendarItem);
|
||||
}
|
||||
|
||||
return view('calendarlist', ['events' => $calendar]);
|
||||
return view('calendarlist', array_merge($this->getSidebareData(), ['events' => $calendar]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
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\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\View;
|
||||
@@ -15,112 +15,159 @@ class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
|
||||
protected $API_URL;
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
||||
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
|
||||
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
||||
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
|
||||
|
||||
$blogs = $this->getDataFromFileAndConvert('blogs.json', [], '\Model\Blog', 1);
|
||||
$activeBlog = count($blogs) && $blogs[0]->is_active ? $blogs[0] : null;
|
||||
View::share('activeBlog', $activeBlog);
|
||||
//View::share('onAir', file_get_contents(url('onair')));
|
||||
View::composer('widgets.laatstenieuws', function ($view) {
|
||||
$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::disk('local')->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::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 = 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::composer('widgets.laatstenieuws', function($view) {
|
||||
$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', [], '\Model\NewsItem'));
|
||||
});
|
||||
View::composer('widgets.nustraks', function($view) {
|
||||
$data = json_decode(Storage::disk('local')->get('nu_straks.json'))->schedule;
|
||||
$programs = [];
|
||||
foreach($data as $item_data)
|
||||
{
|
||||
$programs[] = $program = new \Model\Program($item_data->program);
|
||||
$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->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', ['news'], '\Model\NewsItem', 3))
|
||||
->with('podcasts',
|
||||
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
|
||||
});
|
||||
|
||||
// Need a bit of slack here, otherwise the current program may show up
|
||||
$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'));
|
||||
});
|
||||
View::share('disableBanners', env('DISABLE_BANNERS', true));
|
||||
}
|
||||
|
||||
protected function registerView(Request $request, $type, $id)
|
||||
{
|
||||
if(config('app.env') == 'local') {
|
||||
return;
|
||||
}
|
||||
if (config('app.env') == 'local') {
|
||||
return;
|
||||
}
|
||||
|
||||
app('db')->insert('INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)', [
|
||||
'type' => $type,
|
||||
'id' => $id,
|
||||
'ip' => $request->server('REMOTE_ADDR'),
|
||||
'session' => md5(Session::getId()),
|
||||
'referer' => $request->server('HTTP_REFERRER')
|
||||
]);
|
||||
app('db')->insert('INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)',
|
||||
[
|
||||
'type' => $type,
|
||||
'id' => $id,
|
||||
'ip' => $request->server('REMOTE_ADDR'),
|
||||
'session' => md5(Session::getId()),
|
||||
'referer' => $request->server('HTTP_REFERRER')
|
||||
]);
|
||||
}
|
||||
|
||||
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"
|
||||
]
|
||||
];
|
||||
|
||||
return json_decode(file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions)));
|
||||
}
|
||||
|
||||
protected function checkAPI($url)
|
||||
{
|
||||
return $this->get_http_response_code($this->API_URL . $url);
|
||||
}
|
||||
|
||||
protected function get_http_response_code($url)
|
||||
{
|
||||
$headers = get_headers($url);
|
||||
return substr($headers[0], 9, 3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected static function JsonToDateTime($obj)
|
||||
{
|
||||
return new \DateTime($obj->date, new \DateTimeZone($obj->timezone));
|
||||
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 __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];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,36 +2,29 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use \Model\NewsItem;
|
||||
|
||||
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 = [];
|
||||
foreach($apiResult->news as $newsItem)
|
||||
{
|
||||
$news[] = new \Model\NewsItem($newsItem);
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$news[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
$populair = [];
|
||||
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$populair[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
$apiResult = $this->API('programma/schema/nustraks');
|
||||
$comingUp = [];
|
||||
foreach($apiResult->schedule as $program)
|
||||
{
|
||||
$comingUp[] = [
|
||||
'start' => self::JsonToDateTime($program->start),
|
||||
'end' => self::JsonToDateTime($program->end),
|
||||
'program' => new \Model\Program($program->program)
|
||||
];
|
||||
}
|
||||
|
||||
$apiResult = $this->API('podcast/overzicht?aantal=20');
|
||||
$podcasts = [];
|
||||
foreach($apiResult->podcasts as $podcast) {
|
||||
$podcasts[] = new \Model\Podcast($podcast);
|
||||
}
|
||||
|
||||
return view('home', ['news' => $news, 'podcasts' => $podcasts, 'comingUp' => $comingUp]);
|
||||
$apiResult = $this->API('podcast/overzicht?aantal=15');
|
||||
$index = array_rand($apiResult->podcasts);
|
||||
$podcast = new \Model\Podcast($apiResult->podcasts[$index]);
|
||||
return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ class JobsController extends Controller
|
||||
parent::registerView($request, 'nieuws', $id);
|
||||
$apiResult = $this->API('vacatures/details/' . $id);
|
||||
$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)
|
||||
@@ -29,14 +29,14 @@ class JobsController extends Controller
|
||||
private function listJobs(Request $request, $url, $title = null)
|
||||
{
|
||||
$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 = [];
|
||||
foreach($apiResult->jobs as $jobsItem)
|
||||
{
|
||||
$jobs[] = new \Model\JobOpening($jobsItem);
|
||||
}
|
||||
#foreach($apiResult->jobs as $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']);
|
||||
}
|
||||
|
||||
@@ -74,11 +74,11 @@ Wat leuk dat je je hebt aangemeld om kennis te maken met NH Gooi! Dank voor je i
|
||||
|
||||
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']}.
|
||||
|
||||
Graag tot binnenkort en hartelijke groet,
|
||||
Graag tot binnenkort en hartelijke groet.
|
||||
|
||||
Het team van NH Gooi
|
||||
Het team van NH Gooi,
|
||||
|
||||
Ed Snel
|
||||
Léon Haver
|
||||
|
||||
BODY;
|
||||
\Mail::raw($body, function($message) use($data) {
|
||||
|
||||
@@ -7,49 +7,84 @@ use \Model\NewsItem;
|
||||
|
||||
class NewsController extends Controller
|
||||
{
|
||||
private static function TimestampToDateTime($timestamp) {
|
||||
$result = new \DateTime;
|
||||
$result->setTimestamp($timestamp);
|
||||
return $result;
|
||||
private static function TimestampToDateTime($timestamp)
|
||||
{
|
||||
$result = new \DateTime;
|
||||
$result->setTimestamp($timestamp);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function show(Request $request, $id)
|
||||
{
|
||||
parent::registerView($request, 'nieuws', $id);
|
||||
$apiResult = $this->API('nieuws/bericht/' . $id);
|
||||
$newsItem = new \Model\NewsItem($apiResult->news);
|
||||
$newsItem = new \Model\NewsItem($apiResult->news);
|
||||
|
||||
switch($apiResult->version) {
|
||||
case 1:
|
||||
if(!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
|
||||
return view('newsitem', ['news' => $newsItem, 'metadata' => $newsItem->metadata]);
|
||||
break;
|
||||
switch ($apiResult->version) {
|
||||
case 1:
|
||||
if (!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
|
||||
return view('newsitem', ['news' => $newsItem, 'metadata' => $newsItem->metadata]);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
$source = $apiResult->source;
|
||||
$newsItem->published = self::TimestampToDateTime($source->created);
|
||||
$newsItem->edited = self::TimestampToDateTime($source->updated);
|
||||
$newsItem->author = $source->author;
|
||||
$newsItem->images = null; // Images will be embedded
|
||||
$newsItem->video = null; // Videos will be embedded
|
||||
$newsItem->content = $source->blocks;
|
||||
return view('newsitem', ['news' => $newsItem, 'metadata' => $newsItem->metadata]);
|
||||
case 2:
|
||||
$source = $apiResult->source->article;
|
||||
$newsItem->published = self::TimestampToDateTime($source->created);
|
||||
$newsItem->edited = self::TimestampToDateTime($source->updated);
|
||||
$newsItem->author = $source->author;
|
||||
$newsItem->images = null; // Images will be embedded
|
||||
$newsItem->video = null; // Videos will be embedded
|
||||
$newsItem->content = $source->blocks;
|
||||
|
||||
|
||||
|
||||
return view('newsitem', array_merge($this->getSidebareData(), ['news' => $newsItem, 'metadata' => $newsItem->metadata, 'searchURL' => 'nieuws/zoeken']));
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
return $this->listNews($request, 'regio/' . $region, ucfirst($region));
|
||||
return $this->listNews($request, 'tag/' . $region, ucfirst($region));
|
||||
}
|
||||
|
||||
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)
|
||||
@@ -61,10 +96,10 @@ if(!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
|
||||
public function activeblog()
|
||||
{
|
||||
$apiResult = $this->API('blog/overzicht');
|
||||
if(count($apiResult)) {
|
||||
if (count($apiResult)) {
|
||||
$blog = new \Model\Blog($apiResult[0]);
|
||||
if($blog->is_active) {
|
||||
return redirect($blog->url);
|
||||
if ($blog->is_active) {
|
||||
return redirect($blog->url);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,47 +112,72 @@ if(!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
|
||||
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$hasNext = true;
|
||||
while($page > 0) {
|
||||
$apiResult = $this->API('blog/overzicht/' . (int)$id . '?pagina=' . (int)max(1, $page));
|
||||
while ($page > 0) {
|
||||
$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);
|
||||
}
|
||||
$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]);
|
||||
}
|
||||
if (count($items) || ($page == 1)) {
|
||||
return view('blog', ['blog' => $blog, 'pagina' => $page, 'items' => $items, 'hasNext' => $hasNext && count($items) == 15]);
|
||||
}
|
||||
|
||||
$hasNext = false;
|
||||
--$page;
|
||||
$hasNext = false;
|
||||
--$page;
|
||||
}
|
||||
|
||||
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);
|
||||
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page));
|
||||
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page) . ($total ? '&aantal=' . $total : ''));
|
||||
$news = [];
|
||||
foreach($apiResult->news as $newsItem)
|
||||
{
|
||||
foreach ($apiResult->news as $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()
|
||||
{
|
||||
$apiResult = $this->API('nieuws/populair');
|
||||
$news = [];
|
||||
foreach($apiResult as $newsItem)
|
||||
{
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$news[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
@@ -131,6 +191,6 @@ if(!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
|
||||
'title' => 'Regionieuws',
|
||||
'content' => 'het laatste nieuws uit de regio',
|
||||
'isStream' => false,
|
||||
'canDownload' => true ]);
|
||||
'canDownload' => true]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,21 +22,30 @@ class PodcastController extends Controller
|
||||
private function getPodcastList(Request $request, $action, $viewData = [])
|
||||
{
|
||||
$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 = [];
|
||||
foreach($apiResult->podcasts as $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)
|
||||
{
|
||||
parent::registerView($request, 'podcast', $id);
|
||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||
$podcast = new \Model\Podcast($apiResult);
|
||||
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata]);
|
||||
$podcast = new \Model\Podcast($apiResult);
|
||||
$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]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,23 +7,38 @@ use \Model\Programma;
|
||||
|
||||
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 = self::JsonToDateTime($apiResult->startdate);
|
||||
$end = self::JsonToDateTime($apiResult->enddate);
|
||||
$start = $date ? (new \DateTime($date))->format('Y-m-d') : (new \DateTime("-2 day"))->format('Y-m-d');
|
||||
$end = $date ? (new \DateTime($date))->modify('+1 day')->format('Y-m-d') : (new \DateTime("+3 day"))->format('Y-m-d');
|
||||
$apiResult = $this->API('programma/schema/periode/' . $start . '/' . $end);
|
||||
$schedule = [];
|
||||
foreach($apiResult->schedule as $program)
|
||||
{
|
||||
$schedule[] = [
|
||||
$schedule[self::JsonToDateTime($program->start)->format('Ymd')][] = [
|
||||
'starttime' => self::JsonToDateTime($program->start),
|
||||
'endtime' => self::JsonToDateTime($program->end),
|
||||
'shift' => (int)$shiftWeeks,
|
||||
'shift' => 0,
|
||||
'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()
|
||||
@@ -38,23 +53,25 @@ class RadioController extends Controller
|
||||
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);
|
||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||
$podcast = new \Model\Podcast($apiResult);
|
||||
|
||||
$related = [];
|
||||
if($podcast->program != null)
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$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')}");
|
||||
foreach($apiRelated->podcasts as $relatedItem)
|
||||
{
|
||||
$related[] = new \Model\Podcast($relatedItem);
|
||||
}
|
||||
$podcasts[] = new \Model\Podcast($_podcast);
|
||||
}
|
||||
|
||||
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)
|
||||
@@ -66,7 +83,7 @@ class RadioController extends Controller
|
||||
$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)
|
||||
@@ -78,7 +95,8 @@ class RadioController extends Controller
|
||||
{
|
||||
$programs = [];
|
||||
$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) {
|
||||
if(!$item->program->nonstop && !$item->program->rerun) {
|
||||
$item->start = self::JsonToDateTime($item->start);
|
||||
@@ -89,7 +107,7 @@ 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 = [])
|
||||
@@ -102,7 +120,7 @@ class RadioController extends Controller
|
||||
$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]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,14 +20,25 @@ class StreamController extends Controller
|
||||
|
||||
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']);
|
||||
}
|
||||
|
||||
public function studio()
|
||||
{
|
||||
// return view('watch', ['stream' => 'https://stream.nhgooi.nl:81/live/studio']);
|
||||
return view('watch', ['stream' => 'https://studiocam.nhgooi.nl/studiocam/live/index.m3u8']);
|
||||
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)
|
||||
@@ -39,11 +50,11 @@ class StreamController extends Controller
|
||||
}
|
||||
|
||||
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,
|
||||
'content' => $podcast->title,
|
||||
'isStream' => false,
|
||||
'canDownload' => true ]);
|
||||
'canDownload' => $this->API_URL . 'podcast/download/' . $apiResult->url ]);
|
||||
}
|
||||
|
||||
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
|
||||
@@ -58,7 +69,7 @@ class StreamController extends Controller
|
||||
}
|
||||
|
||||
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,
|
||||
'title' => 'Uitzending terugluisteren',
|
||||
'content' => 'de uitzending van ' . $current->format('d-m-Y, H') . ':00 uur',
|
||||
@@ -77,10 +88,10 @@ class StreamController extends Controller
|
||||
|
||||
public function kerkdienst(Request $request) {
|
||||
return view('listen', [
|
||||
'source' => $this->API_URL . 'kerkdienst/download',
|
||||
'source' => $this->API_URL . 'kerkdienst/stream',
|
||||
'title' => 'Kerkdienst gemist',
|
||||
'content' => 'de kerkdienst van afgelopen zondag',
|
||||
'isStream' => false,
|
||||
'canDownload' => true ]);
|
||||
'canDownload' => $this->API_URL . 'kerkdienst/download' ]);
|
||||
}
|
||||
}
|
||||
|
||||
23
app/Models/Blog.php
Normal 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
Normal 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
Normal 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
Normal 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
Normal 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
Normal 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
Normal 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
Normal 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
Normal 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
Normal 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
Normal 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
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Model;
|
||||
|
||||
class ProgramHost extends Model {
|
||||
public $id;
|
||||
public $name;
|
||||
public $email;
|
||||
}
|
||||
|
||||
47
app/Models/Track.php
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -27,7 +27,7 @@
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/",
|
||||
"Helpers\\": "app/Helpers",
|
||||
"Model\\": "/srv/api/common/classes"
|
||||
"Model\\": "app/Models"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
24
docker-compose.dev.yml
Normal 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
|
||||
@@ -8,3 +8,15 @@ services:
|
||||
- 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
|
||||
|
||||
@@ -6,9 +6,9 @@ ServerTokens Prod
|
||||
<VirtualHost *:80>
|
||||
ServerName localhost
|
||||
ServerAdmin support@websight.nl
|
||||
DocumentRoot /var/www/html/public
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
<Directory /var/www/html/public/>
|
||||
<Directory /var/www/html/>
|
||||
Options -Indexes +FollowSymLinks +MultiViews
|
||||
AllowOverride All
|
||||
Order deny,allow
|
||||
@@ -23,7 +23,7 @@ ServerTokens Prod
|
||||
<VirtualHost *:443>
|
||||
ServerName localhost
|
||||
ServerAdmin support@websight.nl
|
||||
DocumentRoot /var/www/html/public
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||
@@ -32,7 +32,7 @@ ServerTokens Prod
|
||||
SSLProtocol All -SSLv2 -SSLv3
|
||||
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
||||
|
||||
<Directory /var/www/html/public/>
|
||||
<Directory /var/www/html/>
|
||||
Options -Indexes +FollowSymLinks +MultiViews
|
||||
AllowOverride All
|
||||
Order deny,allow
|
||||
|
||||
46
docker/apache.dev.conf
Normal 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>
|
||||
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
|
||||
1788
package-lock.json
generated
Normal file
24
package.json
@@ -1,21 +1,17 @@
|
||||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "npm run development",
|
||||
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"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",
|
||||
"watch-poll": "npm run watch -- --watch-poll",
|
||||
"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",
|
||||
"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"
|
||||
"sass": "sass resources/assets/sass:public/css",
|
||||
"sass-watch": "sass --watch resources/assets/sass:public/css",
|
||||
"sass-minify": "sass resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
|
||||
"sass-minify-watch": "sass --watch resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
|
||||
"js-watch": "grunt watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"axios": "^0.16.2",
|
||||
"bootstrap-sass": "^3.3.7",
|
||||
"cross-env": "^5.0.1",
|
||||
"jquery": "^3.1.1",
|
||||
"laravel-mix": "^1.0",
|
||||
"lodash": "^4.17.4",
|
||||
"vue": "^2.1.10"
|
||||
"grunt": "^1.6.1",
|
||||
"grunt-contrib-concat": "^2.1.0",
|
||||
"grunt-contrib-uglify": "^5.2.2",
|
||||
"grunt-contrib-watch": "^1.1.0",
|
||||
"sass": "^1.71.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
<?php phpinfo();
|
||||
BIN
public/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/android-chrome-512x512.png
Normal file
|
After Width: | Height: | Size: 183 KiB |
BIN
public/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
3
public/css/app.css
vendored
Normal 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
Normal 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
Normal file
1
public/css/bootstrap-grid.css.map
Normal file
6
public/css/bootstrap-grid.min.css
vendored
Normal file
1
public/css/bootstrap-grid.min.css.map
Normal file
5
public/css/bootstrap.min.css
vendored
1
public/css/components/posts.css.map
Normal 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
Normal 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"}
|
||||
4
public/css/font-awesome.min.css
vendored
1
public/css/noordholland.min.css
vendored
BIN
public/css/old/airplay.png
Normal file
|
After Width: | Height: | Size: 606 B |
1
public/css/old/airplay.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" width="17" height="14" viewBox="0 0 16.9 13.9"><defs><style>.fill{fill:#fff;}</style></defs><title>7</title><g id="airplay"><polygon class="fill" points="0 0 16.9 0 16.9 10.4 13.2 10.4 11.9 8.9 15.4 8.9 15.4 1.6 1.5 1.6 1.5 8.9 5 8.9 3.6 10.4 0 10.4 0 0"/><polygon class="fill" points="2.7 13.9 8.4 7 14.2 13.9 2.7 13.9"/></g></svg>
|
||||
|
After Width: | Height: | Size: 417 B |
5
public/css/old/bootstrap.min.css
vendored
Normal file
BIN
public/css/old/chromecast.png
Normal file
|
After Width: | Height: | Size: 951 B |
1
public/css/old/chromecast.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16.3 13.4" x="0" y="0" width="17" height="14"><defs><style>.cls-1{fill:#fff;}</style></defs><title>5</title><path id="chromecast" class="cls-1" d="M80.4,13v2.2h2.2A2.22,2.22,0,0,0,80.4,13Zm0-2.9v1.5a3.69,3.69,0,0,1,3.7,3.68s0,0,0,0h1.5a5.29,5.29,0,0,0-5.2-5.2h0ZM93.7,4.9H83.4V6.1a9.59,9.59,0,0,1,6.2,6.2h4.1V4.9h0ZM80.4,7.1V8.6a6.7,6.7,0,0,1,6.7,6.7h1.4a8.15,8.15,0,0,0-8.1-8.2h0ZM95.1,1.9H81.8a1.54,1.54,0,0,0-1.5,1.5V5.6h1.5V3.4H95.1V13.7H89.9v1.5h5.2a1.54,1.54,0,0,0,1.5-1.5V3.4A1.54,1.54,0,0,0,95.1,1.9Z" transform="translate(-80.3 -1.9)"/></svg>
|
||||
|
After Width: | Height: | Size: 637 B |
@@ -237,456 +237,456 @@ textarea.hint,
|
||||
}
|
||||
.divider.subheader_arrow
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/subheader_arrow.png");
|
||||
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");
|
||||
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");
|
||||
background-image: url("../../images/icons/navigation/dark_bg/pagination_arrow_right.png");
|
||||
}
|
||||
blockquote
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/quote_content.png");
|
||||
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");
|
||||
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");
|
||||
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");
|
||||
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");
|
||||
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");
|
||||
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");
|
||||
background-image: url("../../images/icons/other/dark_bg/404.png");
|
||||
}
|
||||
.app
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/app.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/app.png");
|
||||
}
|
||||
.calendar
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/calendar.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/calendar.png");
|
||||
}
|
||||
.chart
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/chart.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/chart.png");
|
||||
}
|
||||
.chat
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/chat.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/chat.png");
|
||||
}
|
||||
.clock
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/clock.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/clock.png");
|
||||
}
|
||||
.database
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/database.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/database.png");
|
||||
}
|
||||
.document
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/document.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/document.png");
|
||||
}
|
||||
.envelope
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/envelope.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/envelope.png");
|
||||
}
|
||||
.faq
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/faq.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/faq.png");
|
||||
}
|
||||
.graph
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/graph.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/graph.png");
|
||||
}
|
||||
.image
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/image.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/image.png");
|
||||
}
|
||||
.laptop
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/laptop.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/laptop.png");
|
||||
}
|
||||
.magnifier
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/magnifier.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/magnifier.png");
|
||||
}
|
||||
.features_icon.mobile
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/mobile.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/mobile.png");
|
||||
}
|
||||
.pin
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/pin.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/pin.png");
|
||||
}
|
||||
.printer
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/printer.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/printer.png");
|
||||
}
|
||||
.quote
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/quote.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/quote.png");
|
||||
}
|
||||
.screen
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/screen.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/screen.png");
|
||||
}
|
||||
.speaker
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/speaker.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/speaker.png");
|
||||
}
|
||||
.video
|
||||
{
|
||||
background-image: url("../images/icons/features/dark_bg/video.png");
|
||||
background-image: url("../../images/icons/features/dark_bg/video.png");
|
||||
}
|
||||
li.detail.category
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/post_category.png");
|
||||
background-image: url("../../images/icons/other/dark_bg/post_category.png");
|
||||
}
|
||||
.detail.date
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/post_date.png");
|
||||
background-image: url("../../images/icons/other/dark_bg/post_date.png");
|
||||
}
|
||||
.detail.author
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/post_author.png");
|
||||
background-image: url("../../images/icons/other/dark_bg/post_author.png");
|
||||
}
|
||||
.detail.views
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/post_views.png");
|
||||
background-image: url("../../images/icons/other/dark_bg/post_views.png");
|
||||
}
|
||||
.detail.comments
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/post_comments.png");
|
||||
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");
|
||||
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");
|
||||
background-image: url("../../images/icons/other/dark_bg/post_footer_category.png");
|
||||
}
|
||||
.behance
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/behance.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/behance.png");
|
||||
}
|
||||
.bing
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/bing.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/bing.png");
|
||||
}
|
||||
.blogger
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/blogger.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/blogger.png");
|
||||
}
|
||||
.deezer
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/deezer.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/deezer.png");
|
||||
}
|
||||
.designfloat
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/designfloat.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/designfloat.png");
|
||||
}
|
||||
.deviantart
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/deviantart.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/deviantart.png");
|
||||
}
|
||||
.digg
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/digg.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/digg.png");
|
||||
}
|
||||
.digg
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/digg.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/digg.png");
|
||||
}
|
||||
.dribbble
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/dribbble.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/dribbble.png");
|
||||
}
|
||||
.envato
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/envato.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/envato.png");
|
||||
}
|
||||
.facebook
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/facebook.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/facebook.png");
|
||||
}
|
||||
.flickr
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/flickr.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/flickr.png");
|
||||
}
|
||||
.form
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/form.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/form.png");
|
||||
}
|
||||
.forrst
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/forrst.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/forrst.png");
|
||||
}
|
||||
.foursquare
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/foursquare.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/foursquare.png");
|
||||
}
|
||||
.friendfeed
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/friendfeed.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/friendfeed.png");
|
||||
}
|
||||
.googleplus
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/googleplus.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/googleplus.png");
|
||||
}
|
||||
.instagram
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/instagram.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/instagram.png");
|
||||
}
|
||||
.linkedin
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/linkedin.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/linkedin.png");
|
||||
}
|
||||
.mail
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/mail.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/mail.png");
|
||||
}
|
||||
.mobile
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/mobile.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/mobile.png");
|
||||
}
|
||||
.myspace
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/myspace.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/myspace.png");
|
||||
}
|
||||
.picasa
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/picasa.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/picasa.png");
|
||||
}
|
||||
.pinterest
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/pinterest.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/pinterest.png");
|
||||
}
|
||||
.reddit
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/reddit.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/reddit.png");
|
||||
}
|
||||
.rss
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/rss.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/rss.png");
|
||||
}
|
||||
.skype
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/skype.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/skype.png");
|
||||
}
|
||||
.soundcloud
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/soundcloud.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/soundcloud.png");
|
||||
}
|
||||
.spotify
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/spotify.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/spotify.png");
|
||||
}
|
||||
.stumbleupon
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/stumbleupon.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/stumbleupon.png");
|
||||
}
|
||||
.technorati
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/technorati.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/technorati.png");
|
||||
}
|
||||
.tumblr
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/tumblr.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/tumblr.png");
|
||||
}
|
||||
.twitter
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/twitter.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/twitter.png");
|
||||
}
|
||||
.vimeo
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/vimeo.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/vimeo.png");
|
||||
}
|
||||
.wykop
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/wykop.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/wykop.png");
|
||||
}
|
||||
.xing
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/xing.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/xing.png");
|
||||
}
|
||||
.youtube
|
||||
{
|
||||
background-image: url("../images/icons/social/dark_bg/youtube.png");
|
||||
background-image: url("../../images/icons/social/dark_bg/youtube.png");
|
||||
}
|
||||
.light .behance
|
||||
{
|
||||
background-image: url("../images/icons/social/behance.png");
|
||||
background-image: url("../../images/icons/social/behance.png");
|
||||
}
|
||||
.light .bing
|
||||
{
|
||||
background-image: url("../images/icons/social/bing.png");
|
||||
background-image: url("../../images/icons/social/bing.png");
|
||||
}
|
||||
.light .blogger
|
||||
{
|
||||
background-image: url("../images/icons/social/blogger.png");
|
||||
background-image: url("../../images/icons/social/blogger.png");
|
||||
}
|
||||
.light .deezer
|
||||
{
|
||||
background-image: url("../images/icons/social/deezer.png");
|
||||
background-image: url("../../images/icons/social/deezer.png");
|
||||
}
|
||||
.light .designfloat
|
||||
{
|
||||
background-image: url("../images/icons/social/designfloat.png");
|
||||
background-image: url("../../images/icons/social/designfloat.png");
|
||||
}
|
||||
.light .deviantart
|
||||
{
|
||||
background-image: url("../images/icons/social/deviantart.png");
|
||||
background-image: url("../../images/icons/social/deviantart.png");
|
||||
}
|
||||
.light .digg
|
||||
{
|
||||
background-image: url("../images/icons/social/digg.png");
|
||||
background-image: url("../../images/icons/social/digg.png");
|
||||
}
|
||||
.light .digg
|
||||
{
|
||||
background-image: url("../images/icons/social/digg.png");
|
||||
background-image: url("../../images/icons/social/digg.png");
|
||||
}
|
||||
.light .dribbble
|
||||
{
|
||||
background-image: url("../images/icons/social/dribbble.png");
|
||||
background-image: url("../../images/icons/social/dribbble.png");
|
||||
}
|
||||
.light .envato
|
||||
{
|
||||
background-image: url("../images/icons/social/envato.png");
|
||||
background-image: url("../../images/icons/social/envato.png");
|
||||
}
|
||||
.light .facebook
|
||||
{
|
||||
background-image: url("../images/icons/social/facebook.png");
|
||||
background-image: url("../../images/icons/social/facebook.png");
|
||||
}
|
||||
.light .flickr
|
||||
{
|
||||
background-image: url("../images/icons/social/flickr.png");
|
||||
background-image: url("../../images/icons/social/flickr.png");
|
||||
}
|
||||
.light .form
|
||||
{
|
||||
background-image: url("../images/icons/social/form.png");
|
||||
background-image: url("../../images/icons/social/form.png");
|
||||
}
|
||||
.light .forrst
|
||||
{
|
||||
background-image: url("../images/icons/social/forrst.png");
|
||||
background-image: url("../../images/icons/social/forrst.png");
|
||||
}
|
||||
.light .foursquare
|
||||
{
|
||||
background-image: url("../images/icons/social/foursquare.png");
|
||||
background-image: url("../../images/icons/social/foursquare.png");
|
||||
}
|
||||
.light .friendfeed
|
||||
{
|
||||
background-image: url("../images/icons/social/friendfeed.png");
|
||||
background-image: url("../../images/icons/social/friendfeed.png");
|
||||
}
|
||||
.light .googleplus
|
||||
{
|
||||
background-image: url("../images/icons/social/googleplus.png");
|
||||
background-image: url("../../images/icons/social/googleplus.png");
|
||||
}
|
||||
.light .instagram
|
||||
{
|
||||
background-image: url("../images/icons/social/instagram.png");
|
||||
background-image: url("../../images/icons/social/instagram.png");
|
||||
}
|
||||
.light .linkedin
|
||||
{
|
||||
background-image: url("../images/icons/social/linkedin.png");
|
||||
background-image: url("../../images/icons/social/linkedin.png");
|
||||
}
|
||||
.light .mail
|
||||
{
|
||||
background-image: url("../images/icons/social/mail.png");
|
||||
background-image: url("../../images/icons/social/mail.png");
|
||||
}
|
||||
.light .mobile
|
||||
{
|
||||
background-image: url("../images/icons/social/mobile.png");
|
||||
background-image: url("../../images/icons/social/mobile.png");
|
||||
}
|
||||
.light .myspace
|
||||
{
|
||||
background-image: url("../images/icons/social/myspace.png");
|
||||
background-image: url("../../images/icons/social/myspace.png");
|
||||
}
|
||||
.light .picasa
|
||||
{
|
||||
background-image: url("../images/icons/social/picasa.png");
|
||||
background-image: url("../../images/icons/social/picasa.png");
|
||||
}
|
||||
.light .pinterest
|
||||
{
|
||||
background-image: url("../images/icons/social/pinterest.png");
|
||||
background-image: url("../../images/icons/social/pinterest.png");
|
||||
}
|
||||
.light .reddit
|
||||
{
|
||||
background-image: url("../images/icons/social/reddit.png");
|
||||
background-image: url("../../images/icons/social/reddit.png");
|
||||
}
|
||||
.light .rss
|
||||
{
|
||||
background-image: url("../images/icons/social/rss.png");
|
||||
background-image: url("../../images/icons/social/rss.png");
|
||||
}
|
||||
.light .skype
|
||||
{
|
||||
background-image: url("../images/icons/social/skype.png");
|
||||
background-image: url("../../images/icons/social/skype.png");
|
||||
}
|
||||
.light .soundcloud
|
||||
{
|
||||
background-image: url("../images/icons/social/soundcloud.png");
|
||||
background-image: url("../../images/icons/social/soundcloud.png");
|
||||
}
|
||||
.light .spotify
|
||||
{
|
||||
background-image: url("../images/icons/social/spotify.png");
|
||||
background-image: url("../../images/icons/social/spotify.png");
|
||||
}
|
||||
.light .stumbleupon
|
||||
{
|
||||
background-image: url("../images/icons/social/stumbleupon.png");
|
||||
background-image: url("../../images/icons/social/stumbleupon.png");
|
||||
}
|
||||
.light .technorati
|
||||
{
|
||||
background-image: url("../images/icons/social/technorati.png");
|
||||
background-image: url("../../images/icons/social/technorati.png");
|
||||
}
|
||||
.light .tumblr
|
||||
{
|
||||
background-image: url("../images/icons/social/tumblr.png");
|
||||
background-image: url("../../images/icons/social/tumblr.png");
|
||||
}
|
||||
.light .twitter
|
||||
{
|
||||
background-image: url("../images/icons/social/twitter.png");
|
||||
background-image: url("../../images/icons/social/twitter.png");
|
||||
}
|
||||
.light .vimeo
|
||||
{
|
||||
background-image: url("../images/icons/social/vimeo.png");
|
||||
background-image: url("../../images/icons/social/vimeo.png");
|
||||
}
|
||||
.light .wykop
|
||||
{
|
||||
background-image: url("../images/icons/social/wykop.png");
|
||||
background-image: url("../../images/icons/social/wykop.png");
|
||||
}
|
||||
.light .xing
|
||||
{
|
||||
background-image: url("../images/icons/social/xing.png");
|
||||
background-image: url("../../images/icons/social/xing.png");
|
||||
}
|
||||
.light .youtube
|
||||
{
|
||||
background-image: url("../images/icons/social/youtube.png");
|
||||
background-image: url("../../images/icons/social/youtube.png");
|
||||
}
|
||||
.bread_crumb .separator
|
||||
{
|
||||
background-image: url("../images/icons/navigation/dark_bg/breadcrumb_arrow.png");
|
||||
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");
|
||||
background-image: url("../../images/icons/navigation/dark_bg/accordion_arrow_down.png");
|
||||
}
|
||||
/* --- menu --- */
|
||||
.menu_container
|
||||
@@ -721,7 +721,7 @@ li.detail.category
|
||||
.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");
|
||||
background-image: url("../../images/icons/navigation/dark_bg/menu_arrow.png");
|
||||
}
|
||||
.sf-menu a:hover,
|
||||
.sf-menu a:hover
|
||||
4
public/css/old/font-awesome.min.css
vendored
Normal file
@@ -1,3 +1,3 @@
|
||||
@font-face{font-family:"Oswald"; font-style:normal; font-weight:400; src:local("Oswald Regular"),local("Oswald-Regular"),url("../fonts/Oswald-Regular-400.woff") format("woff")}
|
||||
@font-face{font-family:"Varela"; font-style:normal; font-weight:400; src:local("Varela"),url("../fonts/Varela-400.woff") format("woff")}
|
||||
@font-face{font-family:"Open Sans"; font-style:normal; font-weight:400; src:local("Open Sans"),local("OpenSans"),url("../fonts/OpenSans-400.woff") format("woff")}
|
||||
@font-face{font-family:"Oswald"; font-style:normal; font-weight:400; src:local("Oswald Regular"),local("Oswald-Regular"),url("../../fonts/Oswald-Regular-400.woff") format("woff")}
|
||||
@font-face{font-family:"Varela"; font-style:normal; font-weight:400; src:local("Varela"),url("../../fonts/Varela-400.woff") format("woff")}
|
||||
@font-face{font-family:"Open Sans"; font-style:normal; font-weight:400; src:local("Open Sans"),local("OpenSans"),url("../../fonts/OpenSans-400.woff") format("woff")}
|
||||
@@ -152,138 +152,138 @@ textarea.hint,
|
||||
}
|
||||
.divider.subheader_arrow
|
||||
{
|
||||
background-image: url("../images/icons/other/high_contrast/subheader_arrow.png");
|
||||
background-image: url("../../images/icons/other/high_contrast/subheader_arrow.png");
|
||||
}
|
||||
blockquote
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/quote_content.png");
|
||||
background-image: url("../../images/icons/other/dark_bg/quote_content.png");
|
||||
}
|
||||
.read_more .arrow
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/call_to_action_arrow.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/call_to_action_arrow.png");
|
||||
}
|
||||
.slider_navigation .slider_control a,
|
||||
a.slider_control
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/navigation_arrow_right.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/navigation_arrow_right.png");
|
||||
background-color: #FFDD00;
|
||||
}
|
||||
.slider_navigation .slider_control:first-child a,
|
||||
a.slider_control.left
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/navigation_arrow_left.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/navigation_arrow_left.png");
|
||||
}
|
||||
.pagination li.left a
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/pagination_arrow_left.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/pagination_arrow_left.png");
|
||||
}
|
||||
.pagination li.right a
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/pagination_arrow_right.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/pagination_arrow_right.png");
|
||||
}
|
||||
a.slider_control.up
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/navigation_arrow_up.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/navigation_arrow_up.png");
|
||||
}
|
||||
a.slider_control.down
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/navigation_arrow_down.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/navigation_arrow_down.png");
|
||||
}
|
||||
#comments_list .children .comment .parent_arrow
|
||||
{
|
||||
background-image: url("../images/icons/other/dark_bg/comment_reply.png");
|
||||
background-image: url("../../images/icons/other/dark_bg/comment_reply.png");
|
||||
}
|
||||
.accordion .ui-accordion-header:hover .ui-accordion-header-icon
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/accordion_arrow_down_hover.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/accordion_arrow_down_hover.png");
|
||||
}
|
||||
.accordion .ui-accordion-header.ui-state-active .ui-accordion-header-icon
|
||||
{
|
||||
background-image: url("../images/icons/navigation/high_contrast/accordion_arrow_up.png");
|
||||
background-image: url("../../images/icons/navigation/high_contrast/accordion_arrow_up.png");
|
||||
}
|
||||
.item_content .not_found
|
||||
{
|
||||
background-image: url("../images/icons/other/high_contrast/404.png");
|
||||
background-image: url("../../images/icons/other/high_contrast/404.png");
|
||||
}
|
||||
.app
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/app.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/app.png");
|
||||
}
|
||||
.calendar
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/calendar.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/calendar.png");
|
||||
}
|
||||
.chart
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/chart.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/chart.png");
|
||||
}
|
||||
.chat
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/chat.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/chat.png");
|
||||
}
|
||||
.clock
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/clock.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/clock.png");
|
||||
}
|
||||
.database
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/database.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/database.png");
|
||||
}
|
||||
.document
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/document.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/document.png");
|
||||
}
|
||||
.envelope
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/envelope.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/envelope.png");
|
||||
}
|
||||
.faq
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/faq.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/faq.png");
|
||||
}
|
||||
.graph
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/graph.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/graph.png");
|
||||
}
|
||||
.image
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/image.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/image.png");
|
||||
}
|
||||
.laptop
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/laptop.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/laptop.png");
|
||||
}
|
||||
.magnifier
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/magnifier.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/magnifier.png");
|
||||
}
|
||||
.features_icon.mobile
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/mobile.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/mobile.png");
|
||||
}
|
||||
.pin
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/pin.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/pin.png");
|
||||
}
|
||||
.printer
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/printer.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/printer.png");
|
||||
}
|
||||
.quote
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/quote.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/quote.png");
|
||||
}
|
||||
.screen
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/screen.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/screen.png");
|
||||
}
|
||||
.speaker
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/speaker.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/speaker.png");
|
||||
}
|
||||
.video
|
||||
{
|
||||
background-image: url("../images/icons/features/high_contrast/video.png");
|
||||
background-image: url("../../images/icons/features/high_contrast/video.png");
|
||||
}
|
||||
/* --- menu --- */
|
||||
.menu_container.sticky.move,
|
||||
@@ -332,11 +332,11 @@ a.slider_control.down
|
||||
}
|
||||
.font_selector .increase
|
||||
{
|
||||
background-image: url("../images/icons/other/high_contrast/font_increase.png");
|
||||
background-image: url("../../images/icons/other/high_contrast/font_increase.png");
|
||||
}
|
||||
.font_selector .decrease
|
||||
{
|
||||
background-image: url("../images/icons/other/high_contrast/font_decrease.png");
|
||||
background-image: url("../../images/icons/other/high_contrast/font_decrease.png");
|
||||
}
|
||||
/* --- aminations --- */
|
||||
.slideRightBack, .slideLeftBack, .slideDownBack, .slideUpBack
|
||||
BIN
public/css/old/jumpforward.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
1
public/css/old/jumpforward.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 19" x="0" y="0" width="19" height="19"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:none;stroke:#fff;stroke-width:2px;}</style></defs><title>2</title><g id="jumpforward"><path class="cls-1" d="M32.1,2.3L27.8,4.5V0.2Z" transform="translate(-20.7 -0.2)"/><path class="cls-1" d="M34.8,2.3L30.5,4.5V0.2Z" transform="translate(-20.7 -0.2)"/><path class="cls-2" d="M29.9,2.3a8.15,8.15,0,0,0-8.2,8.1h0" transform="translate(-20.7 -0.2)"/><path class="cls-2" d="M21.8,10a8.15,8.15,0,0,0,8.1,8.2h0" transform="translate(-20.7 -0.2)"/><path class="cls-2" d="M29.5,18.2a8.15,8.15,0,0,0,8.2-8.1h0" transform="translate(-20.7 -0.2)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 718 B |
1
public/css/old/mediaplayer_plugins.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.mejs-airplay-button>button,.mejs__airplay-button>button{background:url(airplay.svg) no-repeat 0 4px}.mejs-airplay-button>button .fill,.mejs__airplay-button>button .fill{fill:#fff}.mejs-airplay-button>button.active .fill,.mejs__airplay-button>button.active .fill{fill:#66a8cc}.mejs-chromecast-button>button,.mejs__chromecast-button>button{--disconnected-color:#fff;background:none;display:inline-block}.mejs-chromecast-container,.mejs__chromecast-container{background:#000;color:#fff;font-size:10px;left:0;padding:5px;position:absolute;top:0;z-index:1}.mejs-chromecast-layer>img,.mejs__chromecast-layer>img{left:0;position:absolute;top:0;z-index:0}.mejs-chromecast-icon,.mejs__chromecast-icon{background:url(chromecast.svg) no-repeat 0 0;display:inline-block;height:14px;margin-right:5px;width:17px}.mejs-contextmenu,.mejs__contextmenu{background:#fff;border:1px solid #999;border-radius:4px;left:0;padding:10px;position:absolute;top:0;width:150px;z-index:1}.mejs-contextmenu-separator,.mejs__contextmenu-separator{background:#333;font-size:0;height:1px;margin:5px 6px}.mejs-contextmenu-item,.mejs__contextmenu-item{color:#333;cursor:pointer;font-size:12px;padding:4px 6px}.mejs-contextmenu-item:hover,.mejs__contextmenu-item:hover{background:#2c7c91;color:#fff}.mejs-jump-forward-button>button,.mejs__jump-forward-button>button{background:url(jumpforward.svg) no-repeat 0 0;color:#fff;font-size:8px;line-height:normal;position:relative}.mejs-skip-back-button>button,.mejs__skip-back-button>button{background:url(skipback.svg) no-repeat 0 -1px;color:#fff;font-size:8px;line-height:normal;position:relative}
|
||||
@@ -22,7 +22,7 @@
|
||||
.style_7 .sf-menu li.selected.submenu a,
|
||||
.style_7 .sf-menu li.submenu:hover a
|
||||
{
|
||||
background-image: url("../images/icons/navigation/menu_arrow.png");
|
||||
background-image: url("../../images/icons/navigation/menu_arrow.png");
|
||||
}
|
||||
.style_2 .sf-menu a:hover,
|
||||
.style_3 .sf-menu a:hover
|
||||
@@ -64,7 +64,7 @@
|
||||
.style_10 .sf-menu li.selected.submenu a,
|
||||
.style_10 .sf-menu li.submenu:hover a
|
||||
{
|
||||
background-image: url("../images/icons/navigation/dark_bg/menu_arrow.png");
|
||||
background-image: url("../../images/icons/navigation/dark_bg/menu_arrow.png");
|
||||
}
|
||||
.style_2 .sf-menu li.selected a,
|
||||
.style_2 .sf-menu li:hover a,
|
||||
@@ -67,7 +67,7 @@ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a
|
||||
}
|
||||
|
||||
.header_container {
|
||||
background-image: url('../images/nh-banner.png');
|
||||
background-image: url('../../images/nh-banner.png');
|
||||
background-size: 100% ;
|
||||
}
|
||||
|
||||
1
public/css/old/noordholland.min.css
vendored
Normal file
BIN
public/css/old/skipback.png
Normal file
|
After Width: | Height: | Size: 410 B |
17
public/css/old/skipback.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="-290 291 19 19" style="enable-background:new -290 291 19 19;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#fff;}
|
||||
.st1{fill:none;stroke:#fff;stroke-width:2;}
|
||||
</style>
|
||||
<title>2</title>
|
||||
<g id="jumpforward">
|
||||
<path class="st0" d="M-278.6,291v4.3l-4.3-2.2L-278.6,291z"/>
|
||||
<path class="st0" d="M-281.3,291v4.3l-4.3-2.2L-281.3,291z"/>
|
||||
<path class="st1" d="M-272.5,301.2L-272.5,301.2C-272.5,301.2-272.5,301.2-272.5,301.2c0-4.5-3.7-8.1-8.2-8.1"/>
|
||||
<path class="st1" d="M-280.7,309L-280.7,309C-280.7,309-280.7,309-280.7,309c4.5,0,8.1-3.7,8.1-8.2"/>
|
||||
<path class="st1" d="M-288.5,300.9L-288.5,300.9C-288.5,300.9-288.5,300.9-288.5,300.9c0,4.5,3.7,8.1,8.2,8.1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 948 B |
4155
public/css/old/style.css
vendored
Normal file
7
public/css/old/style.css.map
Normal file
5759
public/css/style.css
vendored
1
public/css/style.min.css
vendored
Normal file
1
public/css/style.min.css.map
Normal file
BIN
public/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
154
public/images/Slogan_DIAP white.svg
Normal file
@@ -0,0 +1,154 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="230mm"
|
||||
height="40mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg4553"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
|
||||
sodipodi:docname="Slogan_DIAP white.svg">
|
||||
<defs
|
||||
id="defs4547" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.47"
|
||||
inkscape:cx="803.9187"
|
||||
inkscape:cy="284.95533"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata4550">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Laag 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g44"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
|
||||
transform="matrix(1.3988443,0,0,1.3988443,-949.97686,-1243.7313)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 220.9,998.2 c -5.3,-2.3 -12.1,-4.4 -20.6,-6.3 -8,-1.8 -13.6,-3.7 -16.9,-5.8 -3.3,-2.1 -5,-5.1 -5,-9 0,-4.6 1.9,-8.3 5.6,-10.9 3.7,-2.6 8.8,-3.9 15.3,-3.9 10.8,0 20.7,3.6 29.6,10.7 l 6.1,-13.4 c -4.1,-3.7 -9.3,-6.6 -15.7,-8.8 -6.4,-2.1 -13,-3.2 -20.1,-3.2 -7.7,0 -14.5,1.3 -20.3,3.9 -5.9,2.6 -10.4,6.2 -13.7,10.9 -3.2,4.6 -4.8,9.9 -4.8,15.8 0,5.7 1.3,10.4 4,14.1 2.7,3.7 6.6,6.7 11.8,9.1 5.2,2.4 12,4.5 20.3,6.3 8.1,1.8 13.8,3.7 17.3,5.7 3.5,2 5.2,4.9 5.2,8.7 0,4.4 -1.9,7.8 -5.6,10.2 -3.7,2.4 -9.1,3.6 -16,3.6 -6.3,0 -12.1,-0.9 -17.4,-2.6 -5.4,-1.7 -10.5,-4.4 -15.3,-8.1 l -6.1,13.4 c 4.6,3.8 10.3,6.7 17.1,8.8 6.7,2.1 13.9,3.1 21.6,3.1 8.2,0 15.2,-1.2 21.3,-3.6 6,-2.4 10.6,-5.9 13.8,-10.4 3.2,-4.5 4.8,-9.7 4.8,-15.7 0,-5.5 -1.4,-10.1 -4.2,-13.7 -2.8,-3.6 -6.9,-6.5 -12.1,-8.9 z"
|
||||
id="path14"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 274.1,1023.1 v -30 h 18.4 v -13.4 h -18.4 v -20.8 h -17.8 v 20.8 H 243 V 993 h 13.4 v 30.3 c 0,8.9 2.3,15.6 7,20.1 4.6,4.5 11.9,6.8 21.6,6.8 2.4,0 5,-0.1 7.8,-0.4 l 0.9,-13.2 c -2.3,0.3 -4.5,0.4 -6.5,0.4 -8.7,0 -13.1,-4.6 -13.1,-13.9 z"
|
||||
id="path16"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 334,978 c -6.5,0 -12.4,1.5 -17.6,4.6 -5.2,3 -9.2,7.3 -12,12.8 -2.8,5.5 -4.3,11.8 -4.3,18.9 0,11.2 3.3,20 9.9,26.5 6.6,6.5 15.6,9.7 27,9.7 4.9,0 9.8,-0.8 14.7,-2.4 4.9,-1.6 8.9,-3.7 12.2,-6.4 l -5.1,-12.2 c -6.4,4.9 -13.4,7.4 -21.1,7.4 -6.2,0 -10.9,-1.6 -14.2,-4.7 -3.3,-3.1 -5.3,-7.9 -5.8,-14.4 h 47.4 v -5 c 0,-10.8 -2.8,-19.3 -8.3,-25.5 C 351.2,981 343.6,978 334,978 Z m -16.3,30.1 c 0.7,-5.7 2.4,-10.1 5.3,-13.1 2.9,-3 6.7,-4.6 11.5,-4.6 4.7,0 8.4,1.5 11.1,4.5 2.7,3 4.1,7.4 4.3,13.2 z"
|
||||
id="path18"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 462.2,978 c -5,0 -9.6,1.2 -13.7,3.5 -4.1,2.3 -7.2,5.5 -9.4,9.6 -3.4,-8.7 -10.4,-13.1 -20.9,-13.1 -4.7,0 -9,1 -12.7,2.9 -3.7,1.9 -6.6,4.8 -8.7,8.6 v -9.8 h -17.4 v 69.6 h 17.8 v -38.8 c 0,-5.8 1.3,-10.3 4,-13.5 2.7,-3.2 6.3,-4.8 11,-4.8 4.1,0 7,1.2 8.8,3.6 1.8,2.4 2.6,6.3 2.6,11.6 v 42 h 17.8 v -38.8 c 0,-5.8 1.3,-10.3 4,-13.5 2.7,-3.2 6.4,-4.8 11.1,-4.8 4,0 6.9,1.2 8.7,3.6 1.8,2.4 2.7,6.3 2.7,11.6 v 42 h 17.8 v -42.7 c 0,-9.7 -1.9,-16.9 -5.8,-21.6 -3.9,-4.9 -9.8,-7.2 -17.7,-7.2 z"
|
||||
id="path20"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<polygon
|
||||
class="st1"
|
||||
points="562.7,1049.2 578.2,1049.2 608.6,979.8 591.1,979.8 570.9,1028.9 551.3,979.8 532.5,979.8 "
|
||||
id="polygon22"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 646.1,978 c -4.9,0 -10.2,0.8 -15.7,2.4 -5.5,1.6 -10.2,3.7 -14.1,6.1 l 5,12.2 c 3.9,-2.3 7.8,-4.1 11.9,-5.3 4,-1.3 7.9,-1.9 11.6,-1.9 4.7,0 8.1,1 10.2,3.1 2,2.1 3.1,5.5 3.1,10.2 v 3.3 h -3.6 c -10.3,0 -18.4,0.7 -24.3,2 -5.9,1.3 -10.1,3.5 -12.7,6.4 -2.6,2.9 -3.9,7 -3.9,12.1 0,4.1 1.1,7.8 3.3,11.1 2.2,3.3 5.2,5.9 9,7.8 3.8,1.9 8,2.8 12.7,2.8 4.6,0 8.6,-1 12,-3.1 3.5,-2.1 6,-5 7.6,-8.7 v 10.7 h 16.9 V 1007 c 0,-9.9 -2.4,-17.2 -7.1,-21.9 -4.9,-4.8 -12.2,-7.1 -21.9,-7.1 z m 11.9,42.5 c 0,5 -1.5,9.1 -4.5,12.3 -3,3.2 -6.9,4.8 -11.6,4.8 -3.2,0 -5.9,-1 -8,-2.9 -2.1,-1.9 -3.1,-4.4 -3.1,-7.5 0,-2.5 0.8,-4.4 2.3,-5.8 1.5,-1.4 4,-2.4 7.5,-3 3.5,-0.6 8.4,-0.9 14.8,-0.9 h 2.6 z"
|
||||
id="path24"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 733.4,978 c -5,0 -9.5,1 -13.5,3.1 -4,2.1 -7.2,5.1 -9.5,9 V 979.7 H 693 v 69.6 h 17.8 v -39.4 c 0,-5.4 1.5,-9.7 4.6,-12.9 3.1,-3.2 7.2,-4.8 12.3,-4.8 4.4,0 7.6,1.2 9.6,3.7 2,2.5 3.1,6.4 3.1,11.8 v 41.7 h 17.8 v -42.7 c 0,-9.6 -2,-16.7 -6.1,-21.5 -4.1,-4.9 -10.3,-7.2 -18.7,-7.2 z"
|
||||
id="path26"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 855.2,978 c -4.8,0 -9.2,1 -13.2,2.9 -3.9,1.9 -7.1,4.8 -9.5,8.5 V 949 h -17.8 v 100.3 h 17.8 v -39.4 c 0,-5.4 1.5,-9.7 4.6,-12.9 3.1,-3.2 7.2,-4.8 12.3,-4.8 4.4,0 7.6,1.2 9.6,3.7 2,2.5 3.1,6.4 3.1,11.8 v 41.7 H 880 v -42.7 c 0,-9.6 -2,-16.7 -6.1,-21.5 -4.1,-4.9 -10.4,-7.2 -18.7,-7.2 z"
|
||||
id="path28"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 928,978 c -6.5,0 -12.4,1.5 -17.6,4.6 -5.2,3 -9.2,7.3 -12,12.8 -2.8,5.5 -4.3,11.8 -4.3,18.9 0,11.2 3.3,20 9.9,26.5 6.6,6.5 15.6,9.7 27,9.7 4.9,0 9.8,-0.8 14.7,-2.4 4.9,-1.6 8.9,-3.7 12.2,-6.4 l -5.1,-12.2 c -6.4,4.9 -13.4,7.4 -21.1,7.4 -6.2,0 -10.9,-1.6 -14.2,-4.7 -3.3,-3.1 -5.3,-7.9 -5.8,-14.4 h 47.4 v -5 c 0,-10.8 -2.8,-19.3 -8.3,-25.5 C 945.2,981 937.6,978 928,978 Z m -16.3,30.1 c 0.7,-5.7 2.4,-10.1 5.3,-13.1 2.9,-3 6.7,-4.6 11.5,-4.6 4.7,0 8.4,1.5 11.1,4.5 2.7,3 4.1,7.4 4.3,13.2 z"
|
||||
id="path30"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 995.2,1023.1 v -30 h 18.4 v -13.4 h -18.4 v -20.8 h -17.8 v 20.8 H 964 V 993 h 13.4 v 30.3 c 0,8.9 2.3,15.6 7,20.1 4.6,4.5 11.9,6.8 21.6,6.8 2.4,0 5,-0.1 7.8,-0.4 l 0.9,-13.2 c -2.3,0.3 -4.5,0.4 -6.5,0.4 -8.7,0 -13,-4.6 -13,-13.9 z"
|
||||
id="path32"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 1110.9,1008.1 h 21.6 v 25.2 c -6.5,1.8 -12.9,2.7 -19.4,2.7 -21.6,0 -32.4,-12.3 -32.4,-37 0,-12 2.6,-21.1 7.9,-27.2 5.3,-6.1 13.1,-9.2 23.4,-9.2 5.4,0 10.4,0.8 14.9,2.3 4.5,1.6 9.1,4.1 13.7,7.8 l 6.1,-13.2 c -4.1,-3.8 -9.2,-6.7 -15.4,-8.8 -6.2,-2 -12.8,-3.1 -19.8,-3.1 -10.1,0 -18.8,2.1 -26.3,6.2 -7.4,4.1 -13.2,10.1 -17.2,17.8 -4,7.7 -6,16.9 -6,27.4 0,10.6 2,19.8 6,27.5 4,7.7 9.8,13.7 17.4,17.8 7.6,4.1 16.6,6.2 26.9,6.2 6.7,0 13.3,-0.7 19.8,-2 6.5,-1.3 12,-3.1 16.6,-5.4 V 995 h -38 v 13.1 z"
|
||||
id="path34"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 1218.4,982.4 c -5.4,-2.9 -11.6,-4.4 -18.7,-4.4 -7.1,0 -13.4,1.5 -18.7,4.4 -5.4,2.9 -9.5,7.1 -12.4,12.6 -2.9,5.5 -4.4,11.8 -4.4,19.1 0,7.3 1.5,13.7 4.4,19.2 2.9,5.5 7.1,9.7 12.4,12.7 5.4,2.9 11.6,4.4 18.7,4.4 7.1,0 13.3,-1.5 18.7,-4.4 5.4,-2.9 9.5,-7.2 12.4,-12.7 2.9,-5.5 4.3,-11.9 4.3,-19.2 0,-7.3 -1.4,-13.7 -4.3,-19.1 -3,-5.5 -7.1,-9.7 -12.4,-12.6 z m -5.7,48.5 c -3,3.8 -7.4,5.7 -13.2,5.7 -5.7,0 -10.1,-1.9 -13.1,-5.7 -3,-3.8 -4.6,-9.4 -4.6,-16.8 0,-7.3 1.5,-12.9 4.6,-16.7 3.1,-3.8 7.5,-5.8 13.2,-5.8 5.7,0 10.1,1.9 13.1,5.8 3,3.8 4.6,9.4 4.6,16.7 0,7.4 -1.5,13 -4.6,16.8 z"
|
||||
id="path36"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
class="st1"
|
||||
d="m 1300.2,982.4 c -5.4,-2.9 -11.6,-4.4 -18.7,-4.4 -7.1,0 -13.4,1.5 -18.7,4.4 -5.4,2.9 -9.5,7.1 -12.4,12.6 -2.9,5.5 -4.4,11.8 -4.4,19.1 0,7.3 1.5,13.7 4.4,19.2 2.9,5.5 7.1,9.7 12.4,12.7 5.4,2.9 11.6,4.4 18.7,4.4 7.1,0 13.3,-1.5 18.7,-4.4 5.4,-2.9 9.5,-7.2 12.4,-12.7 2.9,-5.5 4.3,-11.9 4.3,-19.2 0,-7.3 -1.4,-13.7 -4.3,-19.1 -2.9,-5.5 -7.1,-9.7 -12.4,-12.6 z m -5.6,48.5 c -3,3.8 -7.4,5.7 -13.2,5.7 -5.7,0 -10.1,-1.9 -13.1,-5.7 -3,-3.8 -4.6,-9.4 -4.6,-16.8 0,-7.3 1.5,-12.9 4.6,-16.7 3.1,-3.8 7.5,-5.8 13.2,-5.8 5.7,0 10.1,1.9 13.1,5.8 3,3.8 4.6,9.4 4.6,16.7 -0.1,7.4 -1.6,13 -4.6,16.8 z"
|
||||
id="path38"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<rect
|
||||
x="1331.5"
|
||||
y="979.70001"
|
||||
class="st1"
|
||||
width="17.799999"
|
||||
height="69.599998"
|
||||
id="rect40"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<rect
|
||||
x="1330.5"
|
||||
y="947.40002"
|
||||
class="st1"
|
||||
width="19.6"
|
||||
height="17.5"
|
||||
id="rect42"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
BIN
public/images/Streekomroep NHGooi.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
1
public/images/icons/radio.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg height="512" viewBox="0 0 64 64" width="512" xmlns="http://www.w3.org/2000/svg"><g id="Layer_29" data-name="Layer 29"><path d="m57 18.09s0-.09 0-.09v-4a6 6 0 0 0 -6-6h-26a6 6 0 0 0 -6 6 2 2 0 1 0 4 0 2 2 0 0 1 2-2h26a2 2 0 0 1 2 2v4h-39v-14a2 2 0 0 0 -4 0v14h-2a6 6 0 0 0 -6 6v32a6 6 0 0 0 6 6h48a6 6 0 0 0 6-6v-32a6 6 0 0 0 -5-5.91zm-47 21.91a13 13 0 1 1 13 13 13 13 0 0 1 -13-13zm42.19 10h-10.19a2 2 0 0 1 0-4h10.19a2 2 0 0 1 0 4zm-10.19-12h10a2 2 0 0 1 0 4h-10a2 2 0 0 1 0-4zm-2-6a2 2 0 0 1 2-2h10a2 2 0 0 1 0 4h-10a2 2 0 0 1 -2-2zm-17 17a9 9 0 1 1 9-9 9 9 0 0 1 -9 9z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 590 B |
52
public/images/icons/television-2.svg
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 511.998 511.998" style="enable-background:new 0 0 511.998 511.998;" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path d="M457.274,162.266H383.78h-10.812h-90.866l78.706-139.895c4.064-7.224,1.503-16.375-5.721-20.44
|
||||
c-7.225-4.064-16.375-1.503-20.44,5.721l-78.177,138.954L178.293,7.652c-4.065-7.224-13.216-9.787-20.44-5.721
|
||||
c-7.224,4.065-9.786,13.216-5.721,20.44l78.706,139.895H54.723c-29.759,0-53.969,24.211-53.969,53.969v241.794
|
||||
c0,29.759,24.21,53.969,53.969,53.969h318.245h10.812h73.494c29.759,0,53.969-24.211,53.969-53.969V216.236
|
||||
C511.243,186.476,487.033,162.266,457.274,162.266z M409.915,211.561c20.784,0,37.694,16.91,37.694,37.695
|
||||
c0,20.784-16.91,37.694-37.694,37.694c-20.785,0-37.695-16.91-37.695-37.694C372.22,228.471,389.13,211.561,409.915,211.561z
|
||||
M409.915,299.643c20.784,0,37.694,16.91,37.694,37.694c0,20.785-16.91,37.695-37.694,37.695
|
||||
c-20.785,0-37.695-16.91-37.695-37.695C372.22,316.552,389.13,299.643,409.915,299.643z M337.429,420.934
|
||||
c0,23.838-19.393,43.231-43.231,43.231H95.318c-23.838,0-43.231-19.393-43.231-43.231V254.902
|
||||
c0-23.838,19.393-43.231,43.231-43.231h198.88c23.838,0,43.231,19.393,43.231,43.231V420.934z M436.376,463.717h-52.923
|
||||
c-8.289,0-15.009-6.72-15.009-15.009s6.72-15.009,15.009-15.009h52.923c8.289,0,15.009,6.72,15.009,15.009
|
||||
S444.665,463.717,436.376,463.717z M436.376,418.691h-52.923c-8.289,0-15.009-6.72-15.009-15.009s6.72-15.009,15.009-15.009
|
||||
h52.923c8.289,0,15.009,6.72,15.009,15.009S444.665,418.691,436.376,418.691z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
112
public/images/logo-NHGooi-diap.svg
Normal file
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 119 42.6" style="enable-background:new 0 0 119 42.6;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{display:none;}
|
||||
.st1{display:inline;}
|
||||
.st2{fill:#FFFFFF;}
|
||||
.st3{display:inline;fill:#0017A0;}
|
||||
.st4{fill:#0017A0;}
|
||||
</style>
|
||||
<g class="st0">
|
||||
<g class="st1">
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_7_" d="M19.7,6.2c-0.8,0-1.5,0.7-1.5,1.5v4.5l-4.1-4.9c-0.8-0.8-1.8-1.2-2.8-1.2H1.5C0.7,6.2,0,6.9,0,7.7v27.2
|
||||
c0,0.8,0.7,1.5,1.5,1.5h9.1c0.8,0,1.5-0.7,1.5-1.5v-4.5l4.1,4.9c0.8,0.8,1.8,1.2,2.8,1.2h9.7c0.8,0,1.5-0.7,1.5-1.5V7.7
|
||||
c0-0.8-0.7-1.5-1.5-1.5H19.7z"/>
|
||||
</defs>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="0" y1="21.3127" x2="30.2681" y2="21.3127">
|
||||
<stop offset="0" style="stop-color:#0017A0"/>
|
||||
<stop offset="1" style="stop-color:#41A5F7"/>
|
||||
</linearGradient>
|
||||
<use xlink:href="#SVGID_7_" style="overflow:visible;fill:url(#SVGID_2_);"/>
|
||||
<clipPath id="SVGID_3_">
|
||||
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<path class="st2" d="M24.8,29.5c0,0.5-0.4,0.9-0.9,0.9h-4.8c-0.5,0-0.9-0.4-0.9-0.9v-5.1h-6.1v6.1H6.4c-0.5,0-0.9-0.4-0.9-0.9
|
||||
V13.1c0-0.5,0.4-0.9,0.9-0.9h4.8c0.5,0,0.9,0.4,0.9,0.9v5.1h6.1l0-6.1h5.7c0.5,0,0.9,0.4,0.9,0.9V29.5z"/>
|
||||
</g>
|
||||
<path class="st3" d="M41.3,42.6c-0.4,0-0.8-0.3-0.8-0.8V0.8c0-0.4,0.3-0.8,0.8-0.8c0.4,0,0.8,0.3,0.8,0.8v41.1
|
||||
C42.1,42.3,41.8,42.6,41.3,42.6"/>
|
||||
<g class="st1">
|
||||
<defs>
|
||||
<path id="SVGID_10_" d="M54,6.2c-0.9,0-1.6,0.7-1.6,1.6v27.1c0,0.9,0.7,1.6,1.6,1.6h63.4c0.9,0,1.6-0.7,1.6-1.6V7.7
|
||||
c0-0.9-0.7-1.6-1.6-1.6H54z"/>
|
||||
</defs>
|
||||
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="52.4293" y1="21.3127" x2="119" y2="21.3127">
|
||||
<stop offset="0" style="stop-color:#0017A0"/>
|
||||
<stop offset="0.9999" style="stop-color:#41A5F7"/>
|
||||
</linearGradient>
|
||||
<use xlink:href="#SVGID_10_" style="overflow:visible;fill:url(#SVGID_4_);"/>
|
||||
<clipPath id="SVGID_6_">
|
||||
<use xlink:href="#SVGID_10_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<g class="st1">
|
||||
<path class="st2" d="M74.8,20.4v8.9c-0.8,0.4-1.9,0.8-3.1,1c-1.2,0.2-2.4,0.4-3.7,0.4c-1.9,0-3.6-0.4-5-1.1
|
||||
c-1.4-0.8-2.5-1.9-3.2-3.3c-0.7-1.4-1.1-3.1-1.1-5.1c0-1.9,0.4-3.6,1.1-5c0.7-1.4,1.8-2.5,3.2-3.3c1.4-0.8,3-1.1,4.8-1.1
|
||||
c1.3,0,2.5,0.2,3.6,0.6c1.1,0.4,2.1,0.9,2.8,1.6l-1.1,2.4c-0.9-0.7-1.7-1.1-2.5-1.4c-0.8-0.3-1.7-0.4-2.7-0.4
|
||||
c-1.9,0-3.3,0.6-4.3,1.7c-1,1.1-1.5,2.8-1.5,5c0,4.5,2,6.8,6,6.8c1.2,0,2.4-0.2,3.6-0.5v-4.6h-4v-2.4H74.8z"/>
|
||||
<path class="st2" d="M80.7,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
|
||||
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
|
||||
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C82.8,30.6,81.7,30.4,80.7,29.8 M86.6,27c0.6-0.7,0.8-1.7,0.8-3.1
|
||||
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1c-0.6,0.7-0.9,1.7-0.9,3.1c0,1.4,0.3,2.4,0.8,3.1
|
||||
c0.6,0.7,1.4,1,2.4,1C85.2,28.1,86,27.7,86.6,27"/>
|
||||
<path class="st2" d="M95.8,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
|
||||
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
|
||||
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C97.9,30.6,96.8,30.4,95.8,29.8 M101.6,27c0.6-0.7,0.8-1.7,0.8-3.1
|
||||
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1C96.2,21.6,96,22.6,96,24c0,1.4,0.3,2.4,0.8,3.1
|
||||
c0.6,0.7,1.4,1,2.4,1C100.3,28.1,101.1,27.7,101.6,27"/>
|
||||
<path class="st2" d="M108.3,12.1h3.6v3.2h-3.6V12.1z M108.5,17.6h3.3v12.8h-3.3V17.6z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_5_" d="M19.7,6.2c-0.8,0-1.5,0.7-1.5,1.5v4.5l-4.1-4.9c-0.8-0.8-1.8-1.2-2.8-1.2H1.5C0.7,6.2,0,6.9,0,7.7v27.2
|
||||
c0,0.8,0.7,1.5,1.5,1.5h9.1c0.8,0,1.5-0.7,1.5-1.5v-4.5l4.1,4.9c0.8,0.8,1.8,1.2,2.8,1.2h9.7c0.8,0,1.5-0.7,1.5-1.5V7.7
|
||||
c0-0.8-0.7-1.5-1.5-1.5H19.7z"/>
|
||||
</defs>
|
||||
<use xlink:href="#SVGID_5_" style="overflow:visible;fill:#FFFFFF;"/>
|
||||
<clipPath id="SVGID_8_">
|
||||
<use xlink:href="#SVGID_5_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<path class="st4" d="M24.8,29.5c0,0.5-0.4,0.9-0.9,0.9h-4.8c-0.5,0-0.9-0.4-0.9-0.9v-5.1h-6.1v6.1H6.4c-0.5,0-0.9-0.4-0.9-0.9
|
||||
V13.1c0-0.5,0.4-0.9,0.9-0.9h4.8c0.5,0,0.9,0.4,0.9,0.9v5.1h6.1l0-6.1h5.7c0.5,0,0.9,0.4,0.9,0.9V29.5z"/>
|
||||
</g>
|
||||
<path class="st2" d="M41.3,42.6c-0.4,0-0.8-0.3-0.8-0.8V0.8c0-0.4,0.3-0.8,0.8-0.8c0.4,0,0.8,0.3,0.8,0.8v41.1
|
||||
C42.1,42.3,41.8,42.6,41.3,42.6"/>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_1_" d="M54,6.2c-0.9,0-1.6,0.7-1.6,1.6v27.1c0,0.9,0.7,1.6,1.6,1.6h63.4c0.9,0,1.6-0.7,1.6-1.6V7.7
|
||||
c0-0.9-0.7-1.6-1.6-1.6H54z"/>
|
||||
</defs>
|
||||
<use xlink:href="#SVGID_1_" style="overflow:visible;fill:#FFFFFF;"/>
|
||||
<clipPath id="SVGID_9_">
|
||||
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st4" d="M74.8,20.4v8.9c-0.8,0.4-1.9,0.8-3.1,1c-1.2,0.2-2.4,0.4-3.7,0.4c-1.9,0-3.6-0.4-5-1.1
|
||||
c-1.4-0.8-2.5-1.9-3.2-3.3c-0.7-1.4-1.1-3.1-1.1-5.1c0-1.9,0.4-3.6,1.1-5c0.7-1.4,1.8-2.5,3.2-3.3c1.4-0.8,3-1.1,4.8-1.1
|
||||
c1.3,0,2.5,0.2,3.6,0.6c1.1,0.4,2.1,0.9,2.8,1.6l-1.1,2.4c-0.9-0.7-1.7-1.1-2.5-1.4c-0.8-0.3-1.7-0.4-2.7-0.4
|
||||
c-1.9,0-3.3,0.6-4.3,1.7c-1,1.1-1.5,2.8-1.5,5c0,4.5,2,6.8,6,6.8c1.2,0,2.4-0.2,3.6-0.5v-4.6h-4v-2.4H74.8z"/>
|
||||
<path class="st4" d="M80.7,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
|
||||
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
|
||||
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C82.8,30.6,81.7,30.4,80.7,29.8 M86.6,27c0.6-0.7,0.8-1.7,0.8-3.1
|
||||
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1c-0.6,0.7-0.9,1.7-0.9,3.1c0,1.4,0.3,2.4,0.8,3.1
|
||||
c0.6,0.7,1.4,1,2.4,1C85.2,28.1,86,27.7,86.6,27"/>
|
||||
<path class="st4" d="M95.8,29.8c-1-0.5-1.8-1.3-2.3-2.3c-0.5-1-0.8-2.2-0.8-3.5c0-1.3,0.3-2.5,0.8-3.5c0.5-1,1.3-1.8,2.3-2.3
|
||||
c1-0.5,2.1-0.8,3.4-0.8c1.3,0,2.5,0.3,3.4,0.8c1,0.5,1.7,1.3,2.3,2.3c0.5,1,0.8,2.2,0.8,3.5c0,1.3-0.3,2.5-0.8,3.5
|
||||
c-0.5,1-1.3,1.8-2.3,2.3c-1,0.5-2.1,0.8-3.4,0.8C97.9,30.6,96.8,30.4,95.8,29.8 M101.6,27c0.6-0.7,0.8-1.7,0.8-3.1
|
||||
c0-1.3-0.3-2.4-0.8-3.1c-0.6-0.7-1.4-1.1-2.4-1.1c-1,0-1.9,0.4-2.4,1.1C96.2,21.6,96,22.6,96,24c0,1.4,0.3,2.4,0.8,3.1
|
||||
c0.6,0.7,1.4,1,2.4,1C100.3,28.1,101.1,27.7,101.6,27"/>
|
||||
<path class="st4" d="M108.3,12.1h3.6v3.2h-3.6V12.1z M108.5,17.6h3.3v12.8h-3.3V17.6z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.6 KiB |