Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f6d518e67 | ||
|
|
8d6e853d4c | ||
|
|
6b6572db67 | ||
|
|
b46b24bb83 | ||
|
|
b12fb86c1c | ||
|
|
84dc9d74b9 | ||
|
|
114d0c7cd9 | ||
|
|
bb553924d0 | ||
|
|
73a14e545b | ||
|
|
2756aed449 | ||
|
|
289908f302 | ||
|
|
7b9674110e | ||
|
|
e070c9f374 | ||
|
|
95cf933424 | ||
|
|
2aca0010dc | ||
|
|
4701c3f86d | ||
|
|
fb53fdb16d | ||
|
|
9bee381f6c | ||
|
|
8125895538 | ||
|
|
fed5f8c44d | ||
|
|
36c120d1bf | ||
|
|
2960aa7497 | ||
|
|
e5d22609f3 | ||
|
|
2b35391800 | ||
|
|
e42813e879 | ||
|
|
851a0df432 | ||
|
|
c6271899aa | ||
|
|
8b8c9b60d9 | ||
|
|
df9fd7d357 | ||
|
|
b4bff71008 | ||
|
|
a2d561db87 | ||
|
|
d30bfc5a53 | ||
|
|
8fab0d57a7 | ||
|
|
ae7ed5a217 | ||
|
|
d492b36fec | ||
|
|
3b4030113b | ||
|
|
6786ac7ce1 | ||
|
|
b78379f268 | ||
|
|
733e18531f | ||
|
|
9f8f7a6a41 | ||
|
|
08e1551b3f | ||
|
|
b0ae121363 | ||
|
|
8c22515397 | ||
|
|
30bfd34ee3 | ||
|
|
d46dc081ef | ||
|
|
acc2260745 | ||
|
|
11e1a3ea54 | ||
|
|
643efdb404 | ||
|
|
e3564b524f | ||
|
|
7da73b92a9 | ||
|
|
d0190a7b35 | ||
|
|
2b5a905a2d | ||
|
|
e4d91c2af5 | ||
|
|
4f2c134b67 | ||
|
|
de39b84975 | ||
|
|
06b2bd704b | ||
|
|
f5b39618f6 | ||
|
|
12c498a125 | ||
|
|
c8fd7e8a51 | ||
|
|
144d0844e8 | ||
|
|
7a0f727c86 | ||
|
|
b64defe7fc | ||
|
|
6333ff6433 | ||
|
|
f28e1609ae | ||
|
|
99720de0ca | ||
|
|
ee8d50cf6c | ||
|
|
ae0e83def6 | ||
|
|
68ae6f9161 | ||
|
|
47a7590bf5 | ||
|
|
863381a226 | ||
|
|
4bd72b1349 | ||
|
|
94eddea78b | ||
|
|
6abe7ba61a | ||
|
|
7f1688ee89 | ||
|
|
34f5cfca73 | ||
|
|
676569256e | ||
|
|
5cd69739e5 | ||
|
|
b24fdc8e41 | ||
|
|
e12fcf8ad7 | ||
|
|
5b4b0011ea | ||
|
|
5e3604da33 | ||
|
|
aec6690c9e | ||
|
|
3e7490531d | ||
|
|
c7243f31a0 | ||
|
|
2e1f496eea | ||
|
|
92c66e4ed9 | ||
|
|
37745e8ae9 | ||
|
|
eb9813c239 | ||
|
|
9dc9b30afa | ||
|
|
761cec4257 | ||
|
|
0e2148956f | ||
|
|
1863ff766f | ||
|
|
96748c0c01 | ||
|
|
c16a2db01d | ||
|
|
df4d48a327 | ||
|
|
187fc7b273 | ||
|
|
06e7741d3b | ||
|
|
262aec618b | ||
|
|
98a9cd2c53 | ||
|
|
21ca729958 | ||
|
|
367527098d | ||
|
|
a86f8e56a1 | ||
|
|
c1ddaa15c6 | ||
|
|
39f1ee4823 | ||
|
|
71a5d3a690 | ||
|
|
6db6de8e49 | ||
|
|
e06ce1507b | ||
|
|
3ef630c7cc | ||
|
|
2ba81f8550 | ||
|
|
f3fa2c109a | ||
|
|
52df85716b | ||
|
|
22292e10ed | ||
|
|
9428e1d2ee | ||
|
|
1c587684f3 | ||
|
|
918255be1c | ||
|
|
35a5aa636f | ||
|
|
e2551b1dab | ||
|
|
552c638571 | ||
|
|
a930fb7216 | ||
|
|
58ea5c0c85 | ||
|
|
8616cb3d56 | ||
|
|
dbca7e2bc5 | ||
|
|
437e6243e7 | ||
|
|
9698f9b103 | ||
|
|
6008d3175b | ||
|
|
8d1e79f1b7 | ||
|
|
ab7246e123 | ||
|
|
d9627a54c4 | ||
|
|
6c732f90e8 | ||
|
|
1dadbc62af | ||
|
|
7f07a28b98 | ||
|
|
cff9948dda | ||
|
|
059b1ed47a | ||
|
|
0699269fb2 | ||
|
|
a3e8b05008 | ||
|
|
389e5c6523 | ||
|
|
ba06608ee0 | ||
|
|
8da0481296 | ||
|
|
885ce2b2cc | ||
|
|
6d91e1d3ca | ||
|
|
5ebf7f20be | ||
|
|
cc1eba5959 | ||
|
|
3b55a1cf42 | ||
|
|
f4444d44e3 | ||
|
|
35713d2974 | ||
|
|
6044a670d7 | ||
|
|
173d9dcaf6 | ||
|
|
a7d1347319 | ||
|
|
92769463cd | ||
|
|
47eb0952d4 | ||
|
|
e7bae27951 | ||
|
|
50d6a97fce | ||
|
|
9d96efc022 | ||
|
|
539dd88d42 | ||
|
|
d9c933b79a | ||
|
|
84355b1121 | ||
|
|
70d25c3cea | ||
|
|
b628404977 | ||
|
|
e1823a1322 | ||
|
|
9364ebecad | ||
|
|
16808e6280 | ||
|
|
e194e93784 | ||
|
|
e551e55158 | ||
|
|
2799b1843f | ||
|
|
52f38b4c00 | ||
|
|
e2f114a7a8 | ||
|
|
cc58f5931c | ||
|
|
23d88ac143 | ||
|
|
56adc60788 | ||
|
|
72da998965 | ||
|
|
2db970e8c6 | ||
|
|
80256669b1 | ||
|
|
738107515c | ||
|
|
e96198bc3d | ||
|
|
c5b9e88ad3 | ||
|
|
7c05b92703 | ||
|
|
9ae62ab798 | ||
|
|
d495cdde37 | ||
|
|
644d4f9b12 | ||
|
|
5948154ae1 | ||
|
|
d75ab273ff | ||
|
|
e0c11c50f5 | ||
|
|
34ca1486bd |
No files matched your search
@@ -0,0 +1,9 @@
|
||||
.git
|
||||
vendor
|
||||
node_modules
|
||||
storage/logs
|
||||
storage/framework/cache/*
|
||||
storage/framework/sessions/*
|
||||
storage/framework/views/*
|
||||
storage/app/public
|
||||
.env
|
||||
@@ -0,0 +1,39 @@
|
||||
APP_NAME="NH Gooi (dev)"
|
||||
APP_ENV=staging
|
||||
APP_KEY=pHU3XfraRBc4T54pe5hM0WsCz1zZxWG3
|
||||
APP_DEBUG=true
|
||||
APP_LOG_LEVEL=error
|
||||
APP_URL=https://dev.nhgooi.nl
|
||||
IMAGE_BASE_URL=https://dev.nhgooi.nl/
|
||||
|
||||
API_URL=https://api-new.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=08eb4dbf869367bc1478f0777b9de044
|
||||
MAIL_PASSWORD=eb26e4f3e5e6dbeb8aad361c69bf5ff1
|
||||
MAIL_ENCRYPTION=null
|
||||
|
||||
PUSHER_APP_ID=
|
||||
PUSHER_APP_KEY=
|
||||
PUSHER_APP_SECRET=
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=nhgooi.nl
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=radio6fm_web
|
||||
DB_USERNAME=6fmstats
|
||||
DB_PASSWORD=C6h938EJ2cd5p4cT
|
||||
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_DRIVER=sync
|
||||
@@ -0,0 +1,43 @@
|
||||
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
|
||||
|
||||
FRIENDLY_CAPTCHA_SITEKEY=
|
||||
FRIENDLY_CAPTCHA_SECRET=
|
||||
FRIENDLY_CAPTCHA_DEBUG=true
|
||||
@@ -0,0 +1,56 @@
|
||||
name: Build and Deploy
|
||||
run-name: ${{ gitea.actor }} is building ${{ gitea.repository }}
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'Dockerfile'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
- '.gitea/workflows/build-docker.yml'
|
||||
- 'version' # Change this file to force rebuild
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
REGISTRY: git.nhgooi.nl
|
||||
IMAGE: git.nhgooi.nl/nh_gooi/nhgooi.nl
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to Gitea Container Registry
|
||||
run: |
|
||||
echo "${{ secrets.REGISTRY_TOKEN }}" | \
|
||||
docker login "$REGISTRY" \
|
||||
-u "${{ gitea.actor }}" \
|
||||
--password-stdin
|
||||
|
||||
- name: Build image
|
||||
run: |
|
||||
docker build \
|
||||
-t "$IMAGE:${{ gitea.sha }}" \
|
||||
-t "$IMAGE:latest" \
|
||||
.
|
||||
|
||||
- name: Push image
|
||||
run: |
|
||||
docker push "$IMAGE:${{ gitea.sha }}"
|
||||
docker push "$IMAGE:latest"
|
||||
|
||||
# - name: Trigger deployment
|
||||
# run: |
|
||||
# curl --fail-with-body \
|
||||
# -X POST \
|
||||
# -H "Content-Type: application/json" \
|
||||
# -d '{
|
||||
# "image": "'"$IMAGE:${{ gitea.sha }}"'",
|
||||
# "commit": "${{ gitea.sha }}",
|
||||
# "repository": "${{ gitea.repository }}"
|
||||
# }' \
|
||||
# "${{ secrets.DEPLOY_WEBHOOK_URL }}"
|
||||
@@ -1,12 +1,23 @@
|
||||
/node_modules
|
||||
/public/hot
|
||||
/public/storage
|
||||
/storage/*.key
|
||||
/vendor
|
||||
/.idea
|
||||
/.vagrant
|
||||
.phpunit.cache
|
||||
node_modules
|
||||
app/public/build
|
||||
app/public/hot
|
||||
app/public/storage
|
||||
app/storage/*.key
|
||||
app/bootstrap
|
||||
app/storage
|
||||
bootstrap/cache
|
||||
vendor
|
||||
.env
|
||||
.env.backup
|
||||
.env.production
|
||||
.phpunit.result.cache
|
||||
Homestead.json
|
||||
Homestead.yaml
|
||||
auth.json
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
.env
|
||||
.fleet
|
||||
.idea
|
||||
.vscode
|
||||
update
|
||||
@@ -1,37 +1,73 @@
|
||||
FROM php:8.1-apache
|
||||
FROM php:8.3.36-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/*
|
||||
# Install Node.js
|
||||
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs
|
||||
|
||||
# Get latest Composer
|
||||
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git \
|
||||
curl \
|
||||
libicu-dev \
|
||||
libzip-dev \
|
||||
libonig-dev \
|
||||
libssh2-1 \
|
||||
libssh2-1-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Update the default apache site with the config we created.
|
||||
ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf
|
||||
RUN pecl install ssh2 \
|
||||
&& docker-php-ext-enable ssh2 \
|
||||
&& docker-php-ext-configure intl \
|
||||
&& docker-php-ext-install \
|
||||
pdo \
|
||||
pdo_mysql \
|
||||
mysqli \
|
||||
intl \
|
||||
ftp \
|
||||
mbstring \
|
||||
bcmath \
|
||||
zip
|
||||
|
||||
WORKDIR /var/www/html
|
||||
RUN a2enmod rewrite
|
||||
|
||||
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
|
||||
chown -R www-data:www-data storage/framework && \
|
||||
chmod -R 775 storage
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
|
||||
|
||||
# RUN php artisan cache:clear && \
|
||||
# php artisan config:clear && \
|
||||
# php artisan view:clear
|
||||
WORKDIR /var/www/app
|
||||
|
||||
ENV APACHE_DOCUMENT_ROOT=/var/www/app/public
|
||||
|
||||
RUN sed -ri \
|
||||
-e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' \
|
||||
/etc/apache2/sites-available/*.conf \
|
||||
/etc/apache2/apache2.conf \
|
||||
/etc/apache2/conf-available/*.conf
|
||||
|
||||
RUN echo '<Directory /var/www/app/public>\n\
|
||||
AllowOverride All\n\
|
||||
Require all granted\n\
|
||||
</Directory>' > /etc/apache2/conf-available/laravel.conf \
|
||||
&& a2enconf laravel
|
||||
|
||||
# Copy app files (composer/npm setup happens at runtime via entrypoint)
|
||||
COPY composer.json composer.lock ./
|
||||
COPY package.json package-lock.json* ./
|
||||
COPY scripts/ ./scripts/ 2>/dev/null
|
||||
|
||||
# Note: for Laravel, the COPY . . needs to be before the composer install
|
||||
COPY . .
|
||||
|
||||
# Create storage directories
|
||||
RUN mkdir -p \
|
||||
storage/app \
|
||||
storage/framework/cache/data \
|
||||
storage/framework/sessions \
|
||||
storage/framework/views \
|
||||
storage/logs \
|
||||
bootstrap/cache \
|
||||
public/assets/vendor
|
||||
|
||||
# Copy and set up entrypoint script
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
|
||||
EXPOSE 80
|
||||
@@ -1,38 +0,0 @@
|
||||
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
|
||||
@@ -0,0 +1,15 @@
|
||||
* To add new packages, add a line below:
|
||||
```json
|
||||
"new-package": "^1.2.3"
|
||||
```
|
||||
|
||||
* If the npm name differs from vendor folder name: Also update the mapping in setup-vendor.js:
|
||||
```json
|
||||
'npm-name': { folder: 'vendor-folder', subdir: 'dist' }
|
||||
```
|
||||
|
||||
* Then regenerate lock file (do this locally, NOT in Docker)
|
||||
```bash
|
||||
rm package-lock.json
|
||||
docker run --rm -v "$PWD:/workspace" -w /workspace node:20 npm install --package-lock-only
|
||||
```
|
||||
@@ -2,13 +2,15 @@
|
||||
|
||||
namespace App\Console;
|
||||
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Console\Scheduling\Schedule;
|
||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||
|
||||
class Kernel extends ConsoleKernel
|
||||
{
|
||||
private $API_URL;
|
||||
private $API_URL;
|
||||
|
||||
/**
|
||||
* The Artisan commands provided by your application.
|
||||
@@ -19,6 +21,22 @@ class Kernel extends ConsoleKernel
|
||||
//
|
||||
];
|
||||
|
||||
private function getFromApi($url, $file) {
|
||||
$response = Http::connectTimeout(5)
|
||||
->timeout(15)
|
||||
->withHeaders([
|
||||
'Host' => $this->API_HOST
|
||||
])
|
||||
->get($this->API_URL . $url);
|
||||
|
||||
if ($response->successful()) {
|
||||
Storage::disk('local')->put(
|
||||
$file,
|
||||
$response->body()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the application's command schedule.
|
||||
*
|
||||
@@ -27,39 +45,40 @@ class Kernel extends ConsoleKernel
|
||||
*/
|
||||
protected function schedule(Schedule $schedule)
|
||||
{
|
||||
$this->API_URL = env('API_URL', 'https://api.nhgooi.nl/');
|
||||
$this->API_URL = env('API_URL', 'https://api.nhgooi.nl/');
|
||||
$this->API_HOST = env('API_HOST', $this->API_URL);
|
||||
|
||||
// Update latest news (3 items)
|
||||
$schedule->call(function() {
|
||||
Storage::disk('local')->put('laatste_nieuws.json', file_get_contents($this->API_URL . 'nieuws/overzicht?pagina=1&aantal=3'));
|
||||
Storage::disk('local')->put('populair_nieuws.json', file_get_contents($this->API_URL . 'nieuws/populair'));
|
||||
})->everyMinute();
|
||||
// Update latest news (3 items)
|
||||
$schedule->call(function () {
|
||||
$this->getFromApi('nieuws/overzicht?pagina=1&aantal=3', 'laatste_nieuws.json');
|
||||
$this->getFromApi('nieuws/populair', 'populair_nieuws.json');
|
||||
})->everyMinute();
|
||||
|
||||
// Update now / later
|
||||
$schedule->call(function() {
|
||||
Storage::disk('local')->put('nu_straks.json', file_get_contents($this->API_URL . 'programma/schema/nustraks'));
|
||||
Storage::disk('local')->put('zojuist.json', file_get_contents($this->API_URL . 'programma/schema/recent'));
|
||||
})->everyMinute();
|
||||
// Update now / later
|
||||
$schedule->call(function () {
|
||||
$this->getFromApi('programma/schema/nustraks', 'nu_straks.json');
|
||||
$this->getFromApi('programma/schema/recent', 'zojuist.json');
|
||||
})->everyMinute();
|
||||
|
||||
// Update latest podcasts (6 items)
|
||||
$schedule->call(function() {
|
||||
Storage::disk('local')->put('laatste_podcasts.json', file_get_contents($this->API_URL . 'podcast/overzicht?pagina=1&aantal=6'));
|
||||
})->everyMinute();
|
||||
// Update latest podcasts (6 items)
|
||||
$schedule->call(function () {
|
||||
$this->getFromApi('podcast/overzicht?pagina=1&aantal=6', 'laatste_podcasts.json');
|
||||
})->everyMinute();
|
||||
|
||||
// Update calendar items
|
||||
$schedule->call(function() {
|
||||
Storage::disk('local')->put('regioagenda.json', file_get_contents($this->API_URL . 'agenda/overzicht'));
|
||||
})->everyMinute();
|
||||
// Update calendar items
|
||||
$schedule->call(function () {
|
||||
$this->getFromApi('agenda/overzicht', 'regioagenda.json');
|
||||
})->everyMinute();
|
||||
|
||||
// Update blogs
|
||||
$schedule->call(function() {
|
||||
Storage::disk('local')->put('blogs.json', file_get_contents($this->API_URL . 'blog/overzicht'));
|
||||
})->everyMinute();
|
||||
// Update blogs
|
||||
$schedule->call(function () {
|
||||
$this->getFromApi('blog/overzicht', 'blogs.json');
|
||||
})->everyMinute();
|
||||
|
||||
// Update featured images
|
||||
$schedule->call(function() {
|
||||
Storage::disk('local')->put('beelden.json', file_get_contents($this->API_URL . 'beelden/overzicht'));
|
||||
})->everyMinute();
|
||||
// Update featured images
|
||||
$schedule->call(function () {
|
||||
$this->getFromApi('beelden/overzicht', 'beelden.json');
|
||||
})->everyMinute();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,69 +6,20 @@ use \Illuminate\Http\Request;
|
||||
|
||||
class CalendarController extends Controller
|
||||
{
|
||||
private $events = [
|
||||
1 => [
|
||||
'id' => 1,
|
||||
'title' => 'Seinconcert Hilversum',
|
||||
'region' => 'Hilversum',
|
||||
'content' => 'Vrijdag 19 april treedt het Barbican Quartet op in de serie Seinconcerten in Hilversum. Op het programma staan werken van Schubert, Ravel en Britten.',
|
||||
'starts' => '16-04-2024',
|
||||
'ends' => '19-04-2024',
|
||||
'url' => 'seinconcert-hilversum',
|
||||
'images' => [
|
||||
['url' => '/img/news/rHjgm6CM0D.jpg']
|
||||
]
|
||||
],
|
||||
2 => [
|
||||
'id' => 2,
|
||||
'title' => 'Orgelconcert Blaricum',
|
||||
'region' => 'Blaricum',
|
||||
'content' => '<p><strong>In april van dit jaar bestaat het Maarschalkerweerd orgel van de Vituskerk in Blaricum 150 jaar. Ter gelegenheid hiervan is er op zondag 21 april van 14.00 – 15.00 uur een orgelconcert in de Vituskerk. De vaste organisten van de Vituskerk, Bas Groenewoud en Herman van Dijk, zullen het orgel bespelen en er zal iets worden verteld over de geschiedenis van het orgel.</strong></p><p>Het orgel is in 1874 gebouw door Michaël Maarschalkerweerd. Hij bouwde orgels die in de traditie van de neogotiek passen en zijn orgels zijn zeer geschikt voor het spelen van 19e-eeuwse romantische werken. Het orgel in het Amsterdamse concertgebouw is ook van zijn hand. In zijn bedrijf werkten rond 1900 ruim twintig mensen. Na Michaels dood in 1915 werd het bedrijf voortgezet door C.H. van Brussel, J.J. Elbertse en L. Collard, die tot dan toe meesterknechten geweest waren. Elbertse verliet de firma na twee jaar om zijn eigen orgelmakerij op te richten. De firma Elbertse uit Soest heeft jarenlang dit orgel in onderhoud gehad (de tweede én derde generatie trad toe).</p><p>In 2023 fuseerde het bedrijf met de firma Van Vulpen. Het orgel in de Vituskerk was oorspronkelijk gebouwd op de koorzolder maar tijdens de grondige verbouwing van de kerk in 2004 werd het orgel naar beneden gehaald zodat het in al zijn pracht te bewonderen is en ook nodig is om dienst te doen als ondersteuning van het koor. Afgelopen jaar is het orgel in de Vituskerk grondig gerenoveerd.</p><p>Het concert begint om 14:00 uur en de entree is vrij. Collecte na afloop.</p>',
|
||||
'starts' => '21-04-2024',
|
||||
'ends' => '21-04-2024',
|
||||
'url' => 'orgelconcert-blaricum',
|
||||
'images' => [
|
||||
['url' => '/img/news/tgrOh0kbIS.jpg']
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$events = [];
|
||||
foreach ($this->events as $index => $event) {
|
||||
$object = new \stdClass();
|
||||
foreach ($event as $key => $value) {
|
||||
$object->$key = $value;
|
||||
}
|
||||
$events[$index] = $object;
|
||||
}
|
||||
$this->events = $events;
|
||||
}
|
||||
|
||||
public function show(Request $request, $id)
|
||||
{
|
||||
parent::registerView($request, 'agenda', $id);
|
||||
if ($id > 3) {
|
||||
$apiResult = $this->API('agenda/item/' . (int)$id);
|
||||
} else {
|
||||
$apiResult = $this->events[$id];
|
||||
}
|
||||
$calendarEvent = new \Model\CalendarEvent($apiResult);
|
||||
$apiResult = $this->API('agenda/item/' . (int)$id);
|
||||
$calendarEvent = new \Model\CalendarEvent($apiResult->news);
|
||||
|
||||
return view('calendarevent', array_merge($this->getSidebareData(), ['event' => $calendarEvent, 'metadata' => $calendarEvent->metadata]));
|
||||
}
|
||||
|
||||
public function overview(Request $request)
|
||||
{
|
||||
$apiResult = $this->API('agenda/overzicht');
|
||||
if (!count($apiResult)) {
|
||||
$apiResult = $this->events;
|
||||
}
|
||||
$apiResult = $this->API('agenda/overzicht?aantal=100');
|
||||
$calendar = [];
|
||||
foreach($apiResult as $calendarItem)
|
||||
foreach($apiResult->events as $calendarItem)
|
||||
{
|
||||
$calendar[] = new \Model\CalendarEvent($calendarItem);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Validation\Rule;
|
||||
use App\Mail\ContactFormSubmitted;
|
||||
|
||||
class ContactController extends Controller
|
||||
{
|
||||
public function show()
|
||||
{
|
||||
$page = $this->API('statisch/contact');
|
||||
if ($page == null) {
|
||||
return abort(404);
|
||||
}
|
||||
|
||||
$page->published = Controller::JsonToDateTime($page->published);
|
||||
if ($page->edited) {
|
||||
$page->edited = Controller::JsonToDateTime($page->edited);
|
||||
}
|
||||
|
||||
return view('contact', ['page' => $page]);
|
||||
}
|
||||
|
||||
public function submit(Request $request)
|
||||
{
|
||||
$rules = [
|
||||
'name' => 'required|string|max:255',
|
||||
'email' => 'required|email|max:255',
|
||||
'message' => 'required|string',
|
||||
'image' => 'nullable|image|max:10240',
|
||||
'video' => 'nullable|mimetypes:video/avi,video/mpeg,video/quicktime,video/mp4|max:512000',
|
||||
];
|
||||
|
||||
$debugCaptcha = env('FRIENDLY_CAPTCHA_DEBUG', false)
|
||||
|| (app()->environment('local')
|
||||
&& (!env('FRIENDLY_CAPTCHA_SITEKEY') || !env('FRIENDLY_CAPTCHA_SECRET')));
|
||||
|
||||
if ($debugCaptcha) {
|
||||
$rules['frc-captcha-solution'] = 'nullable';
|
||||
} else {
|
||||
$rules['frc-captcha-solution'] = ['required', Rule::friendlycaptcha()];
|
||||
}
|
||||
|
||||
$request->validate($rules);
|
||||
|
||||
$data = $request->only(['name', 'email', 'message']);
|
||||
$attachments = [];
|
||||
|
||||
// Handle Image
|
||||
if ($request->hasFile('image')) {
|
||||
// Store temporarily to attach
|
||||
$imagePath = $request->file('image')->store('contact_images');
|
||||
$attachments['image'] = storage_path('app/' . $imagePath);
|
||||
}
|
||||
|
||||
// Handle Video
|
||||
if ($request->hasFile('video')) {
|
||||
$videoPath = $request->file('video')->store('contact_videos', 'local');
|
||||
$data['video_link'] = route('contact.video', ['filename' => basename($videoPath)]);
|
||||
}
|
||||
|
||||
// Send Email
|
||||
Mail::to('info@nhgooi.nl')->send(new ContactFormSubmitted($data, $attachments));
|
||||
|
||||
return redirect()->route('contact')->with('success', 'Bedankt voor uw bericht. We nemen zo snel mogelijk contact met u op.');
|
||||
}
|
||||
|
||||
public function video(string $filename)
|
||||
{
|
||||
$path = 'contact_videos/' . basename($filename);
|
||||
|
||||
if (!Storage::disk('local')->exists($path)) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
$fullPath = Storage::disk('local')->path($path);
|
||||
|
||||
return response()->file($fullPath);
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,8 @@ use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\View;
|
||||
@@ -16,12 +18,14 @@ class Controller extends BaseController
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
|
||||
protected $API_URL;
|
||||
protected $API_HOST;
|
||||
|
||||
|
||||
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
|
||||
{
|
||||
$data = json_decode(Storage::disk('local')->get($file));
|
||||
$data = json_decode(Storage::get($file));
|
||||
foreach ($path as $subobject) {
|
||||
$data = $data->$subobject;
|
||||
$data = $data->$subobject ?? [];
|
||||
}
|
||||
$items = [];
|
||||
foreach ($data as $item_data) {
|
||||
@@ -38,40 +42,32 @@ class Controller extends BaseController
|
||||
{
|
||||
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);
|
||||
|
||||
$this->API_HOST = env('API_HOST', $this->API_URL);
|
||||
|
||||
//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->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;
|
||||
$data = json_decode(Storage::get('nu_straks.json'))->schedule;
|
||||
$programs = [];
|
||||
foreach ($data as $item_data) {
|
||||
$programs[] = $program = new \Model\Program($item_data->program);
|
||||
$program->start = 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));
|
||||
$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;
|
||||
$data = json_decode(Storage::get('zojuist.json'))->schedule;
|
||||
$i = 0;
|
||||
foreach (array_reverse($data) as $item_data) {
|
||||
$recent = $program = new \Model\Program($item_data->program);
|
||||
$recent->start = 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));
|
||||
$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;
|
||||
@@ -81,8 +77,10 @@ class Controller extends BaseController
|
||||
$view->with('data', $programs);
|
||||
});
|
||||
View::composer('widgets.laatstepodcasts', function ($view) {
|
||||
$view->with('data',
|
||||
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
|
||||
$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'));
|
||||
@@ -92,12 +90,22 @@ class Controller extends BaseController
|
||||
});
|
||||
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'));
|
||||
->with('popular', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem', 3))
|
||||
->with(
|
||||
'podcasts',
|
||||
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast')
|
||||
);
|
||||
});
|
||||
View::composer('widgets.menu', function($view) {
|
||||
try {
|
||||
$menuData = json_decode(Storage::get('static/menu.json'));
|
||||
$view->with('items', $menuData ?? []);
|
||||
} catch (\Exception $e) {
|
||||
$view->with('items', []);
|
||||
}
|
||||
});
|
||||
|
||||
View::share('disableBanners', env('DISABLE_BANNERS', true));
|
||||
View::share('disableBanners', env('DISABLE_BANNERS', false));
|
||||
}
|
||||
|
||||
protected function registerView(Request $request, $type, $id)
|
||||
@@ -106,51 +114,77 @@ class Controller extends BaseController
|
||||
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)
|
||||
{
|
||||
// if (strpos($url, 'nieuws/overzicht') !== false) {
|
||||
// return json_decode(file_get_contents(__DIR__ . '/../../../storage/app/laatste_nieuws.json'));
|
||||
// }
|
||||
// return [];
|
||||
try {
|
||||
$response = Http::connectTimeout(5)
|
||||
->timeout(15)
|
||||
->withHeaders([
|
||||
'Host' => $this->API_HOST,
|
||||
'X-Api-Key' => sha1(request()->server('REMOTE_ADDR')),
|
||||
'X-User-Agent' => request()->server('HTTP_USER_AGENT')
|
||||
])
|
||||
->get($this->API_URL . $url);
|
||||
|
||||
$arrContextOptions = [
|
||||
'ssl' => [
|
||||
"verify_peer" => false,
|
||||
"verify_peer_name" => false,
|
||||
],
|
||||
];
|
||||
|
||||
return json_decode(file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions)));
|
||||
if ($response->successful()) {
|
||||
$body = $response->body();
|
||||
return $body ? json_decode($body) : null;
|
||||
}
|
||||
Log::warning('API request failed', [
|
||||
'url' => $this->API_URL . $url,
|
||||
'status' => $response->status()
|
||||
]);
|
||||
return null;
|
||||
} catch (\Exception $e) {
|
||||
Log::error('API request error', [
|
||||
'url' => $this->API_URL . $url,
|
||||
'error' => $e->getMessage()
|
||||
]);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected function checkAPI($url)
|
||||
{
|
||||
return $this->get_http_response_code($this->API_URL . $url);
|
||||
return $this->getHttpResponseCode($url);
|
||||
}
|
||||
|
||||
protected function get_http_response_code($url)
|
||||
protected function getHttpResponseCode($url)
|
||||
{
|
||||
$headers = get_headers($url);
|
||||
return substr($headers[0], 9, 3);
|
||||
try {
|
||||
$response = Http::connectTimeout(5)
|
||||
->timeout(15)
|
||||
->withHeaders([
|
||||
'Host' => $this->API_HOST,
|
||||
'X-Api-Key' => sha1(request()->server('REMOTE_ADDR')),
|
||||
'X-User-Agent' => request()->server('HTTP_USER_AGENT')
|
||||
])
|
||||
->head($this->API_URL . $url);
|
||||
|
||||
return $response->status();
|
||||
} catch (\Exception $e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
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_') {
|
||||
@@ -160,23 +194,45 @@ class Controller extends BaseController
|
||||
}
|
||||
}
|
||||
|
||||
return abort(404);
|
||||
return abort(404);
|
||||
}
|
||||
*/
|
||||
|
||||
public function getSidebareData()
|
||||
{
|
||||
$populair = [];
|
||||
$apiResult = $this->API('nieuws/populair?aantal=5');
|
||||
foreach ($apiResult as $_newsItem) {
|
||||
$apiResult = (object) $this->API('nieuws/populair?aantal=5');
|
||||
foreach ($apiResult->news as $_newsItem) {
|
||||
$populair[] = new \Model\NewsItem($_newsItem);
|
||||
}
|
||||
|
||||
$newsItems = [];
|
||||
$apiResult = $this->API('nieuws/overzicht?aantal=5');
|
||||
$apiResult = (object) $this->API('nieuws/overzicht?aantal=5');
|
||||
foreach ($apiResult->news as $_newsItem) {
|
||||
$newsItems[] = new \Model\NewsItem($_newsItem);
|
||||
}
|
||||
|
||||
return ['newsItems' => $newsItems, 'populair' => $populair];
|
||||
}
|
||||
|
||||
public function static_page($slug)
|
||||
{
|
||||
if (view()->exists($slug)) {
|
||||
return view($slug);
|
||||
}
|
||||
|
||||
$page = (object) $this->API('statisch/' . $slug);
|
||||
if ($page == null || !isset($page->title)) {
|
||||
return abort(404);
|
||||
}
|
||||
|
||||
if(isset($page->published)) {
|
||||
$page->published = Controller::JsonToDateTime($page->published);
|
||||
}
|
||||
if (isset($page->edited) && $page->edited) {
|
||||
$page->edited = Controller::JsonToDateTime($page->edited);
|
||||
}
|
||||
|
||||
return view('static', compact('page'));
|
||||
}
|
||||
}
|
||||
@@ -9,26 +9,25 @@ class HomeController extends Controller
|
||||
{
|
||||
public function show(Request $request)
|
||||
{
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int)max(1, $page) . '&aantal=10');
|
||||
$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);
|
||||
}
|
||||
|
||||
$apiResult = $this->API('nieuws/liveblogs');
|
||||
$liveblogs = $apiResult->liveblogs;
|
||||
|
||||
$populair = [];
|
||||
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
|
||||
foreach ($apiResult as $newsItem) {
|
||||
$apiResult = $this->API('nieuws/populair?pagina=' . (int) max(1, $page) . '&aantal=5');
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$populair[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
$podcasts = [];
|
||||
$apiResult = $this->API('podcast/overzicht?aantal=3');
|
||||
$podcast = new \Model\Podcast($apiResult->podcasts[0]);
|
||||
foreach ($apiResult->podcasts as $_podcast) {
|
||||
$podcasts[] = new \Model\Podcast($_podcast);
|
||||
}
|
||||
|
||||
return view('home', ['populair' => $populair, 'podcasts' => $podcasts, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
||||
$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, 'liveblogs' => $liveblogs, 'searchURL' => 'nieuws/zoeken']);
|
||||
}
|
||||
}
|
||||
@@ -29,12 +29,12 @@ 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', 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']);
|
||||
|
||||
@@ -17,27 +17,31 @@ class NewsController extends Controller
|
||||
public function show(Request $request, $id)
|
||||
{
|
||||
parent::registerView($request, 'nieuws', $id);
|
||||
$apiResult = $this->API('nieuws/bericht/' . $id);
|
||||
$preview = "";
|
||||
if (request()->get('preview', null) != null) {
|
||||
$preview = "?preview=" . request()->get('preview');
|
||||
}
|
||||
$apiResult = $this->API('nieuws/bericht/' . $id . $preview);
|
||||
$newsItem = new \Model\NewsItem($apiResult->news);
|
||||
|
||||
switch ($apiResult->version) {
|
||||
case 1:
|
||||
if (!$newsItem->content) return redirect('//nhnieuws.nl/gooi');
|
||||
return view('newsitem', ['news' => $newsItem, 'metadata' => $newsItem->metadata]);
|
||||
break;
|
||||
if (!$newsItem->content)
|
||||
return redirect('//nhnieuws.nl/gooi');
|
||||
|
||||
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', array_merge($this->getSidebareData(), ['news' => $newsItem, 'metadata' => $newsItem->metadata, 'searchURL' => 'nieuws/zoeken']));
|
||||
if (isset($apiResult->source->article)) {
|
||||
$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;
|
||||
} elseif (isset($apiResult->source->blocks)) {
|
||||
$newsItem->content = $apiResult->source->blocks;
|
||||
}
|
||||
return view('newsitem', array_merge($this->getSidebareData(), ['type' => $apiResult->type, 'news' => $newsItem, 'metadata' => $newsItem->metadata, 'searchURL' => 'nieuws/zoeken']));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,9 +52,9 @@ class NewsController extends Controller
|
||||
|
||||
public function more(Request $request)
|
||||
{
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$page = (int) $request->get('pagina', 1);
|
||||
$id = $request->get('id', '');
|
||||
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int)max(1, $page) . '&aantal=5');
|
||||
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int) max(1, $page) . '&aantal=5');
|
||||
$news = [];
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$news[] = new \Model\NewsItem($newsItem);
|
||||
@@ -61,25 +65,30 @@ class NewsController extends Controller
|
||||
|
||||
public function populair(Request $request)
|
||||
{
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$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 as $_newsItem) {
|
||||
$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)
|
||||
@@ -101,30 +110,25 @@ class NewsController extends Controller
|
||||
return abort(404);
|
||||
}
|
||||
|
||||
public function blog(Request $request, $id)
|
||||
public function liveblog(Request $request, $id)
|
||||
{
|
||||
|
||||
parent::registerView($request, 'blog', $id);
|
||||
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$hasNext = true;
|
||||
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);
|
||||
}
|
||||
|
||||
if (count($items) || ($page == 1)) {
|
||||
return view('blog', ['blog' => $blog, 'pagina' => $page, 'items' => $items, 'hasNext' => $hasNext && count($items) == 15]);
|
||||
}
|
||||
|
||||
$hasNext = false;
|
||||
--$page;
|
||||
$blog = $this->API('nieuws/liveblog/' . (int) $id);
|
||||
foreach ($blog->artikelen as &$item) {
|
||||
$item = new \Model\NewsItem($item);
|
||||
}
|
||||
|
||||
return abort(404);
|
||||
if (request()->ajax()) {
|
||||
return $blog;
|
||||
}
|
||||
|
||||
if (count($blog->artikelen)) {
|
||||
return view('blog', ['blog' => $blog]);
|
||||
}
|
||||
|
||||
return abort();
|
||||
}
|
||||
|
||||
private function listNews(Request $request, $url, $title = null, $id = 'items', $total = null)
|
||||
@@ -132,10 +136,13 @@ class NewsController extends Controller
|
||||
if ($request->ajax()) {
|
||||
$total = 5;
|
||||
}
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int)max(1, $page) . ($total ? '&aantal=' . $total : ''));
|
||||
$page = (int) $request->get('pagina', 1);
|
||||
if ($url == 'overzicht' && $request->get('dateStart', null) && $request->get('dateEnd', null)) {
|
||||
$url = 'datum/' . $request->get('dateStart', null) . '/' . $request->get('dateEnd', null);
|
||||
}
|
||||
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int) max(1, $page) . ($total ? '&aantal=' . $total : ''));
|
||||
$news = [];
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
foreach ($apiResult->news ?? [] as $newsItem) {
|
||||
$news[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
@@ -143,9 +150,11 @@ class NewsController extends Controller
|
||||
if ($title == null) {
|
||||
$total = 5;
|
||||
}
|
||||
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1,
|
||||
$page) . ($total ? '&aantal=' . $total : ''));
|
||||
foreach ($apiResult as $newsItem) {
|
||||
$apiResult = $this->API('nieuws/populair?pagina=' . (int) max(
|
||||
1,
|
||||
$page
|
||||
) . ($total ? '&aantal=' . $total : ''));
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$populair[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
@@ -172,7 +181,7 @@ class NewsController extends Controller
|
||||
{
|
||||
$apiResult = $this->API('nieuws/populair');
|
||||
$news = [];
|
||||
foreach ($apiResult as $newsItem) {
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$news[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
@@ -181,11 +190,15 @@ class NewsController extends Controller
|
||||
|
||||
public function regionieuws()
|
||||
{
|
||||
$data = $this->API('nieuws/regionieuws.json');
|
||||
return view('listen', [
|
||||
'source' => $this->API_URL . 'nieuws/regionieuws',
|
||||
'source' => $this->API_URL . 'nieuws/regionieuws.mp3',
|
||||
'title' => 'Regionieuws',
|
||||
'content' => 'het laatste nieuws uit de regio',
|
||||
'isStream' => false,
|
||||
'canDownload' => true]);
|
||||
'canDownload' => true,
|
||||
'lengte' => $data->length * 0.25,
|
||||
'waveform' => $data
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -29,14 +29,23 @@ class PodcastController extends Controller
|
||||
$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]);
|
||||
}
|
||||
}
|
||||
@@ -49,14 +49,17 @@ class RadioController extends Controller
|
||||
|
||||
public function program($id)
|
||||
{
|
||||
$apiResult = $this->API('programma/details/' . (int)$id);
|
||||
$apiResult = $this->API('programma/details/' . (int)$id);
|
||||
if($apiResult == null) {
|
||||
return abort(404);
|
||||
}
|
||||
return view('radioprogram', ['program' => new \Model\Program($apiResult)]);
|
||||
}
|
||||
|
||||
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']));
|
||||
return view('podcastitem', array_merge($this->getSidebareData(), ['title' => $title, 'podcast' => null, 'metadata' => null, 'related' => [], 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]));
|
||||
}
|
||||
|
||||
parent::registerView($request, 'podcast', $id);
|
||||
@@ -71,7 +74,7 @@ class RadioController extends Controller
|
||||
$podcasts[] = new \Model\Podcast($_podcast);
|
||||
}
|
||||
|
||||
return view($request->ajax() ? 'partial/podcastitems' : 'podcastitem', ['title' => $title, 'podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, '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)
|
||||
@@ -95,7 +98,7 @@ class RadioController extends Controller
|
||||
{
|
||||
$programs = [];
|
||||
$now = new \DateTimeImmutable('2 minutes ago');
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$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) {
|
||||
@@ -107,7 +110,7 @@ class RadioController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
return view($request->ajax() ? 'partial/programitems' : '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 = [])
|
||||
@@ -120,7 +123,7 @@ class RadioController extends Controller
|
||||
$podcasts[] = new \Model\Podcast($podcast);
|
||||
}
|
||||
|
||||
return view($request->ajax() ? 'partial/podcastitems' : 'podcastlist', array_merge($viewData, ['id' => 'items-podcasts', '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]));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,6 +14,8 @@ class StreamController extends Controller
|
||||
return view('listen', [
|
||||
'source' => self::$STREAM_URL . 'mp3live',
|
||||
'title' => 'Luister live',
|
||||
'lengte' => 0,
|
||||
'waveform' => null,
|
||||
'content' => 'de live-uitzending van NH Gooi.',
|
||||
'isStream' => true ]);
|
||||
}
|
||||
@@ -30,6 +32,17 @@ class StreamController extends Controller
|
||||
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)
|
||||
{
|
||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||
@@ -39,17 +52,24 @@ 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,
|
||||
'lengte' => $podcast->duration / 1000,
|
||||
'waveform' => $podcast->waveform,
|
||||
'isStream' => false,
|
||||
'canDownload' => true ]);
|
||||
'canDownload' => $this->API_URL . 'podcast/download/' . $apiResult->url ]);
|
||||
}
|
||||
|
||||
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
|
||||
$date = (new \DateTimeImmutable())->setDate($year, $month, $day)->setTime($hour, 0, 0);
|
||||
$current = $date->add(\DateInterval::createFromDateString($offset . ' hours'));
|
||||
|
||||
$programma = $this->API("programma/details/" . $current->Format("Y/m/d/H"));
|
||||
if(!$programma->is_beschikbaar) {
|
||||
return view('listen', ['notAvailable' => true]);
|
||||
}
|
||||
|
||||
$hours = [];
|
||||
for($i = 0; $i < $duration; $i++) {
|
||||
$other = $date->add(\DateInterval::createFromDateString($i . ' hours'));
|
||||
@@ -58,10 +78,12 @@ 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',
|
||||
'lengte' => $programma->waveform->length,
|
||||
'waveform' => $programma->waveform,
|
||||
'content' => $programma->programma->name . ' van ' . $current->format('d-m-Y, H') . ':00 uur',
|
||||
'isStream' => false,
|
||||
'canDownload' => false ]);
|
||||
}
|
||||
@@ -77,10 +99,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' ]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
|
||||
class ContactFormSubmitted extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
public $data;
|
||||
public $attachments_files;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($data, $attachments_files = [])
|
||||
{
|
||||
$this->data = $data;
|
||||
$this->attachments_files = $attachments_files;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the message.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function build()
|
||||
{
|
||||
$email = $this->view('emails.contact_submitted')
|
||||
->subject('Nieuw contactformulier bericht van NH Gooi')
|
||||
->replyTo($this->data['email'], $this->data['name']);
|
||||
|
||||
if (isset($this->attachments_files['image'])) {
|
||||
$email->attach($this->attachments_files['image']);
|
||||
}
|
||||
|
||||
return $email;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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>';
|
||||
}
|
||||
}
|
||||
@@ -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>';
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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), '-');
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 $type;
|
||||
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>';
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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>';
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Model;
|
||||
|
||||
class ProgramHost extends Model {
|
||||
public $id;
|
||||
public $name;
|
||||
public $email;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,8 @@
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Ossycodes\FriendlyCaptcha\Rules\FriendlyCaptcha as FriendlyCaptchaRule;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
@@ -14,6 +16,10 @@ class AppServiceProvider extends ServiceProvider
|
||||
public function boot()
|
||||
{
|
||||
\Illuminate\Support\Facades\URL::forceScheme('https');
|
||||
|
||||
Rule::macro('friendlycaptcha', function () {
|
||||
return app(FriendlyCaptchaRule::class);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
*
|
||||
!.gitignore
|
||||
@@ -1,67 +0,0 @@
|
||||
<?php return array (
|
||||
'laravel/sail' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Laravel\\Sail\\SailServiceProvider',
|
||||
),
|
||||
),
|
||||
'laravel/sanctum' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
||||
),
|
||||
),
|
||||
'laravel/tinker' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
||||
),
|
||||
),
|
||||
'laravelcollective/html' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Collective\\Html\\HtmlServiceProvider',
|
||||
),
|
||||
'aliases' =>
|
||||
array (
|
||||
'Form' => 'Collective\\Html\\FormFacade',
|
||||
'Html' => 'Collective\\Html\\HtmlFacade',
|
||||
),
|
||||
),
|
||||
'nesbot/carbon' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Carbon\\Laravel\\ServiceProvider',
|
||||
),
|
||||
),
|
||||
'nunomaduro/collision' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
||||
),
|
||||
),
|
||||
'nunomaduro/termwind' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
||||
),
|
||||
),
|
||||
'spatie/laravel-ignition' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
||||
),
|
||||
'aliases' =>
|
||||
array (
|
||||
'Flare' => 'Spatie\\LaravelIgnition\\Facades\\Flare',
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -1,251 +0,0 @@
|
||||
<?php return array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Illuminate\\Auth\\AuthServiceProvider',
|
||||
1 => 'Illuminate\\Broadcasting\\BroadcastServiceProvider',
|
||||
2 => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
3 => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
4 => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
5 => 'Illuminate\\Cookie\\CookieServiceProvider',
|
||||
6 => 'Illuminate\\Database\\DatabaseServiceProvider',
|
||||
7 => 'Illuminate\\Encryption\\EncryptionServiceProvider',
|
||||
8 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
||||
9 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
||||
10 => 'Illuminate\\Hashing\\HashServiceProvider',
|
||||
11 => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
12 => 'Illuminate\\Notifications\\NotificationServiceProvider',
|
||||
13 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
||||
14 => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
||||
15 => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
16 => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||
17 => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
||||
18 => 'Illuminate\\Session\\SessionServiceProvider',
|
||||
19 => 'Illuminate\\Translation\\TranslationServiceProvider',
|
||||
20 => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||
21 => 'Illuminate\\View\\ViewServiceProvider',
|
||||
22 => 'Laravel\\Sail\\SailServiceProvider',
|
||||
23 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
||||
24 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
||||
25 => 'Collective\\Html\\HtmlServiceProvider',
|
||||
26 => 'Carbon\\Laravel\\ServiceProvider',
|
||||
27 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
||||
28 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
||||
29 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
||||
30 => 'Collective\\Html\\HtmlServiceProvider',
|
||||
31 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
||||
32 => 'App\\Providers\\AppServiceProvider',
|
||||
33 => 'App\\Providers\\AuthServiceProvider',
|
||||
34 => 'App\\Providers\\EventServiceProvider',
|
||||
35 => 'App\\Providers\\RouteServiceProvider',
|
||||
),
|
||||
'eager' =>
|
||||
array (
|
||||
0 => 'Illuminate\\Auth\\AuthServiceProvider',
|
||||
1 => 'Illuminate\\Cookie\\CookieServiceProvider',
|
||||
2 => 'Illuminate\\Database\\DatabaseServiceProvider',
|
||||
3 => 'Illuminate\\Encryption\\EncryptionServiceProvider',
|
||||
4 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
||||
5 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
||||
6 => 'Illuminate\\Notifications\\NotificationServiceProvider',
|
||||
7 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
||||
8 => 'Illuminate\\Session\\SessionServiceProvider',
|
||||
9 => 'Illuminate\\View\\ViewServiceProvider',
|
||||
10 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
||||
11 => 'Carbon\\Laravel\\ServiceProvider',
|
||||
12 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
||||
13 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
||||
14 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
||||
15 => 'App\\Providers\\AppServiceProvider',
|
||||
16 => 'App\\Providers\\AuthServiceProvider',
|
||||
17 => 'App\\Providers\\EventServiceProvider',
|
||||
18 => 'App\\Providers\\RouteServiceProvider',
|
||||
),
|
||||
'deferred' =>
|
||||
array (
|
||||
'Illuminate\\Broadcasting\\BroadcastManager' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider',
|
||||
'Illuminate\\Contracts\\Broadcasting\\Factory' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider',
|
||||
'Illuminate\\Contracts\\Broadcasting\\Broadcaster' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider',
|
||||
'Illuminate\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
'Illuminate\\Contracts\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
'Illuminate\\Bus\\BatchRepository' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
'Illuminate\\Bus\\DatabaseBatchRepository' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
'cache' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
'cache.store' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
'cache.psr6' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
'memcached.connector' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
'Illuminate\\Cache\\RateLimiter' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\AboutCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Cache\\Console\\ClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Cache\\Console\\ForgetCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Auth\\Console\\ClearResetsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ConfigClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\DbCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\MonitorCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\PruneCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\ShowCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\TableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\WipeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\DownCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\EnvironmentCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\EnvironmentDecryptCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\EnvironmentEncryptCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\EventCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\EventClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\EventListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\KeyGenerateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\OptimizeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\OptimizeClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\ClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\ListFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\FlushFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\ForgetFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\ListenCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\MonitorCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\PruneBatchesCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\PruneFailedJobsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\RestartCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\RetryCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\RetryBatchCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\WorkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\RouteCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\RouteClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\RouteListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\DumpCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Console\\Scheduling\\ScheduleListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Console\\Scheduling\\ScheduleClearCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Console\\Scheduling\\ScheduleTestCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Console\\Scheduling\\ScheduleWorkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ShowModelCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\StorageLinkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\UpCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ViewCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ViewClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Cache\\Console\\CacheTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\CastMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ChannelMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ComponentMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Routing\\Console\\ControllerMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\DocsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\EventGenerateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\EventMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ExceptionMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Factories\\FactoryMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\JobMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ListenerMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\MailMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Routing\\Console\\MiddlewareMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ModelMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Notifications\\Console\\NotificationTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ProviderMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\FailedTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\TableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Queue\\Console\\BatchesTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\RequestMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ResourceMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\RuleMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ScopeMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Session\\Console\\SessionTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\ServeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\StubPublishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\TestMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Foundation\\Console\\VendorPublishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'migrator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'migration.repository' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'migration.creator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Migrations\\MigrateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Migrations\\FreshCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Migrations\\InstallCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Migrations\\RefreshCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Database\\Console\\Migrations\\MigrateMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'composer' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'hash' => 'Illuminate\\Hashing\\HashServiceProvider',
|
||||
'hash.driver' => 'Illuminate\\Hashing\\HashServiceProvider',
|
||||
'mail.manager' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
'mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
'Illuminate\\Mail\\Markdown' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
'Illuminate\\Contracts\\Pipeline\\Hub' => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
||||
'queue' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'queue.connection' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'queue.failer' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'queue.listener' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'queue.worker' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'redis' => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||
'redis.connection' => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||
'auth.password' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
||||
'auth.password.broker' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
||||
'translator' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
||||
'translation.loader' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
||||
'validator' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||
'validation.presence' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||
'Laravel\\Sail\\Console\\InstallCommand' => 'Laravel\\Sail\\SailServiceProvider',
|
||||
'Laravel\\Sail\\Console\\PublishCommand' => 'Laravel\\Sail\\SailServiceProvider',
|
||||
'command.tinker' => 'Laravel\\Tinker\\TinkerServiceProvider',
|
||||
'html' => 'Collective\\Html\\HtmlServiceProvider',
|
||||
'form' => 'Collective\\Html\\HtmlServiceProvider',
|
||||
'Collective\\Html\\HtmlBuilder' => 'Collective\\Html\\HtmlServiceProvider',
|
||||
'Collective\\Html\\FormBuilder' => 'Collective\\Html\\HtmlServiceProvider',
|
||||
),
|
||||
'when' =>
|
||||
array (
|
||||
'Illuminate\\Broadcasting\\BroadcastServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Bus\\BusServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Cache\\CacheServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Hashing\\HashServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Mail\\MailServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Pipeline\\PipelineServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Queue\\QueueServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Redis\\RedisServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Translation\\TranslationServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Validation\\ValidationServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Laravel\\Sail\\SailServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Laravel\\Tinker\\TinkerServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Collective\\Html\\HtmlServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -10,7 +10,8 @@
|
||||
"laravel/framework": "^9.19",
|
||||
"laravel/sanctum": "^3.0",
|
||||
"laravel/tinker": "^2.7",
|
||||
"laravelcollective/html": "^6.3"
|
||||
"laravelcollective/html": "^6.3",
|
||||
"ossycodes/friendlycaptcha": "^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.9.1",
|
||||
@@ -27,7 +28,7 @@
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/",
|
||||
"Helpers\\": "app/Helpers",
|
||||
"Model\\": "/srv/api/common/classes"
|
||||
"Model\\": "app/Models"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "f70c81adf2990f185a8632535bd08631",
|
||||
"content-hash": "f9a3eebc09010b2b187541a3e59a0eff",
|
||||
"packages": [
|
||||
{
|
||||
"name": "brick/math",
|
||||
@@ -1934,34 +1934,37 @@
|
||||
},
|
||||
{
|
||||
"name": "nette/schema",
|
||||
"version": "v1.2.3",
|
||||
"version": "v1.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nette/schema.git",
|
||||
"reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f"
|
||||
"reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
|
||||
"reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
|
||||
"url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004",
|
||||
"reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
|
||||
"php": ">=7.1 <8.3"
|
||||
"nette/utils": "^4.0",
|
||||
"php": "8.1 - 8.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"nette/tester": "^2.3 || ^2.4",
|
||||
"phpstan/phpstan-nette": "^1.0",
|
||||
"tracy/tracy": "^2.7"
|
||||
"nette/tester": "^2.5.2",
|
||||
"phpstan/phpstan-nette": "^2.0@stable",
|
||||
"tracy/tracy": "^2.8"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2-dev"
|
||||
"dev-master": "1.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Nette\\": "src"
|
||||
},
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
@@ -1990,34 +1993,36 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nette/schema/issues",
|
||||
"source": "https://github.com/nette/schema/tree/v1.2.3"
|
||||
"source": "https://github.com/nette/schema/tree/v1.3.3"
|
||||
},
|
||||
"time": "2022-10-13T01:24:26+00:00"
|
||||
"time": "2025-10-30T22:57:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nette/utils",
|
||||
"version": "v3.2.8",
|
||||
"version": "v4.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nette/utils.git",
|
||||
"reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368"
|
||||
"reference": "c99059c0315591f1a0db7ad6002000288ab8dc72"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368",
|
||||
"reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368",
|
||||
"url": "https://api.github.com/repos/nette/utils/zipball/c99059c0315591f1a0db7ad6002000288ab8dc72",
|
||||
"reference": "c99059c0315591f1a0db7ad6002000288ab8dc72",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2 <8.3"
|
||||
"php": "8.2 - 8.5"
|
||||
},
|
||||
"conflict": {
|
||||
"nette/di": "<3.0.6"
|
||||
"nette/finder": "<3",
|
||||
"nette/schema": "<1.2.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"nette/tester": "~2.0",
|
||||
"phpstan/phpstan": "^1.0",
|
||||
"tracy/tracy": "^2.3"
|
||||
"jetbrains/phpstorm-attributes": "^1.2",
|
||||
"nette/tester": "^2.5",
|
||||
"phpstan/phpstan-nette": "^2.0@stable",
|
||||
"tracy/tracy": "^2.9"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-gd": "to use Image",
|
||||
@@ -2025,16 +2030,18 @@
|
||||
"ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
|
||||
"ext-json": "to use Nette\\Utils\\Json",
|
||||
"ext-mbstring": "to use Strings::lower() etc...",
|
||||
"ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
|
||||
"ext-xml": "to use Strings::length() etc. when mbstring is not available"
|
||||
"ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2-dev"
|
||||
"dev-master": "4.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Nette\\": "src"
|
||||
},
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
@@ -2075,9 +2082,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nette/utils/issues",
|
||||
"source": "https://github.com/nette/utils/tree/v3.2.8"
|
||||
"source": "https://github.com/nette/utils/tree/v4.1.1"
|
||||
},
|
||||
"time": "2022-09-12T23:36:20+00:00"
|
||||
"time": "2025-12-22T12:14:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
@@ -2221,6 +2228,69 @@
|
||||
],
|
||||
"time": "2022-12-20T19:00:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ossycodes/friendlycaptcha",
|
||||
"version": "v3.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ossycodes/friendlycaptcha.git",
|
||||
"reference": "b18dfab44ee5fff7d75412232eb6f834864efde6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ossycodes/friendlycaptcha/zipball/b18dfab44ee5fff7d75412232eb6f834864efde6",
|
||||
"reference": "b18dfab44ee5fff7d75412232eb6f834864efde6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "^7.0",
|
||||
"illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0",
|
||||
"php": "^7.4|^8.0|^8.1|^8.2|^8.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": "^6.0|^7.0|^8.0|^9.0",
|
||||
"phpunit/phpunit": "^8.0 || ^9.5 || ^10.5 || ^11.0 || ^12.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"aliases": {
|
||||
"FriendlyCaptcha": "Ossycodes\\FriendlyCaptcha\\Facades\\FriendlyCaptcha"
|
||||
},
|
||||
"providers": [
|
||||
"Ossycodes\\FriendlyCaptcha\\FriendlyCaptchaServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Ossycodes\\FriendlyCaptcha\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "ossycodes",
|
||||
"email": "osaigbovoemmanuel1@gmail.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "A simple package to help integrate FriendlyCaptcha in your Laravel applications.",
|
||||
"homepage": "https://github.com/ossycodes/friendlycaptcha",
|
||||
"keywords": [
|
||||
"captcha",
|
||||
"friendlycaptcha",
|
||||
"laravel"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/ossycodes/friendlycaptcha/issues",
|
||||
"source": "https://github.com/ossycodes/friendlycaptcha/tree/v3.0.0"
|
||||
},
|
||||
"time": "2025-05-08T13:30:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpoption/phpoption",
|
||||
"version": "1.9.0",
|
||||
@@ -7931,12 +8001,12 @@
|
||||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "dev",
|
||||
"stability-flags": [],
|
||||
"stability-flags": {},
|
||||
"prefer-stable": true,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "^8.0.2"
|
||||
"php": "^8.0"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.3.0"
|
||||
"platform-dev": {},
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
@@ -48,12 +48,12 @@ return [
|
||||
'root' => storage_path('app'),
|
||||
],
|
||||
|
||||
'public' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/public'),
|
||||
'url' => env('APP_URL').'/storage',
|
||||
'visibility' => 'public',
|
||||
],
|
||||
//'public' => [
|
||||
// 'driver' => 'local',
|
||||
// 'root' => storage_path('app/public'),
|
||||
// 'url' => env('APP_URL').'/storage',
|
||||
// 'visibility' => 'public',
|
||||
//],
|
||||
|
||||
's3' => [
|
||||
'driver' => 's3',
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Log Channel
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option defines the default log channel that gets used when writing
|
||||
| messages to the logs. The name specified in this channel must be listed
|
||||
| in the channels configuration array defined below.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('LOG_CHANNEL', 'stack'),
|
||||
|
||||
'deprecations' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Log Channels
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure the log channels for your application. Out of
|
||||
| the box, Laravel uses the Monolog PHP logging library. This gives
|
||||
| you a variety of powerful log handlers / formatters to utilize.
|
||||
|
|
||||
| Available Drivers: "single", "daily", "slack", "syslog",
|
||||
| "errorlog", "monolog", "custom", "stack"
|
||||
|
|
||||
*/
|
||||
|
||||
'channels' => [
|
||||
'stack' => [
|
||||
'driver' => 'stack',
|
||||
'channels' => ['single'],
|
||||
'ignore_exceptions' => false,
|
||||
],
|
||||
|
||||
'single' => [
|
||||
'driver' => 'single',
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
|
||||
'daily' => [
|
||||
'driver' => 'daily',
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'days' => 14,
|
||||
],
|
||||
|
||||
'slack' => [
|
||||
'driver' => 'slack',
|
||||
'url' => env('LOG_SLACK_WEBHOOK_URL'),
|
||||
'username' => 'Laravel Log',
|
||||
'emoji' => ':boom:',
|
||||
'level' => env('LOG_LEVEL', 'critical'),
|
||||
],
|
||||
|
||||
'papertrail' => [
|
||||
'driver' => 'monolog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'handler' => \Monolog\Handler\SyslogUdpHandler::class,
|
||||
'handler_with' => [
|
||||
'host' => env('PAPERTRAIL_URL'),
|
||||
'port' => env('PAPERTRAIL_PORT'),
|
||||
'facility' => LOG_USER,
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
],
|
||||
|
||||
'stderr' => [
|
||||
'driver' => 'monolog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'handler' => \Monolog\Handler\StreamHandler::class,
|
||||
'formatter' => env('LOG_STDERR_FORMATTER'),
|
||||
'with' => [
|
||||
'stream' => 'php://stderr',
|
||||
],
|
||||
],
|
||||
|
||||
'syslog' => [
|
||||
'driver' => 'syslog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
'facility' => LOG_USER,
|
||||
],
|
||||
|
||||
'errorlog' => [
|
||||
'driver' => 'errorlog',
|
||||
'level' => env('LOG_LEVEL', 'debug'),
|
||||
],
|
||||
|
||||
'null' => [
|
||||
'driver' => 'monolog',
|
||||
'handler' => \Monolog\Handler\NullHandler::class,
|
||||
],
|
||||
|
||||
'emergency' => [
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
@@ -22,3 +22,8 @@ services:
|
||||
MYSQL_DATABASE: forge
|
||||
MYSQL_USER: forge
|
||||
MYSQL_PASSWORD: secret
|
||||
mailpit:
|
||||
image: axllent/mailpit:latest
|
||||
ports:
|
||||
- "8025:8025"
|
||||
- "1025:1025"
|
||||
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd /var/www/app
|
||||
|
||||
# Set HOME for npm cache (www-data user needs writable cache directory)
|
||||
export HOME=/tmp
|
||||
|
||||
echo "Setting up dependencies..."
|
||||
|
||||
# Create vendor directories and fix permissions
|
||||
echo "Fixing permissions..."
|
||||
mkdir -p bootstrap/cache storage/framework storage/logs public/assets/vendor
|
||||
chown -R www-data:www-data bootstrap/cache storage/framework storage/logs public/assets/vendor
|
||||
chmod -R ug+rwX bootstrap/cache storage/framework storage/logs public/assets/vendor
|
||||
|
||||
# Install PHP dependencies
|
||||
echo "Installing PHP packages..."
|
||||
composer install \
|
||||
--no-dev \
|
||||
--prefer-dist \
|
||||
--no-interaction \
|
||||
--optimize-autoloader
|
||||
|
||||
# Install npm dependencies if package.json has dependencies
|
||||
if grep -q "\"dependencies\"" package.json; then
|
||||
echo "Installing npm packages..."
|
||||
npm ci --omit=dev
|
||||
node scripts/setup-vendor.js
|
||||
fi
|
||||
|
||||
# Fix permissions
|
||||
echo "Fixing permissions..."
|
||||
chown -R www-data:www-data \
|
||||
bootstrap/cache \
|
||||
public/assets/vendor
|
||||
|
||||
chmod -R ug+rwX bootstrap/cache
|
||||
|
||||
echo "✓ Setup complete, starting Apache..."
|
||||
exec apache2-foreground
|
||||
@@ -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
|
||||
@@ -19,28 +19,3 @@ ServerTokens Prod
|
||||
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/public
|
||||
|
||||
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/public/>
|
||||
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>
|
||||
@@ -23,7 +23,7 @@ ServerTokens Prod
|
||||
<VirtualHost *:443>
|
||||
ServerName localhost
|
||||
ServerAdmin support@websight.nl
|
||||
DocumentRoot /var/www/html
|
||||
DocumentRoot /var/www/html/public
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||
@@ -32,15 +32,15 @@ ServerTokens Prod
|
||||
SSLProtocol All -SSLv2 -SSLv3
|
||||
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
||||
|
||||
<Directory /var/www/html/>
|
||||
<Directory /var/www/html/public>
|
||||
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
|
||||
ErrorLog /var/log/apache2/error.log
|
||||
CustomLog /var/log/apache2/access.log combined
|
||||
|
||||
</VirtualHost>
|
||||
</IfModule>
|
||||
@@ -37,3 +37,7 @@ DB_PASSWORD=dbpass
|
||||
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_DRIVER=sync
|
||||
|
||||
FRIENDLY_CAPTCHA_SITEKEY=
|
||||
FRIENDLY_CAPTCHA_SECRET=
|
||||
FRIENDLY_CAPTCHA_DEBUG=true
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
# Set ownership
|
||||
chown -R www-data:www-data .
|
||||
|
||||
# Normal permissions
|
||||
find . -type d -exec chmod 775 {} \;
|
||||
find . -type f -exec chmod 664 {} \;
|
||||
|
||||
# Laravel writable directories
|
||||
find storage bootstrap/cache -type d -exec chmod 775 {} \;
|
||||
find storage bootstrap/cache -type f -exec chmod 664 {} \;
|
||||
|
||||
# Laravel CLI
|
||||
chmod 755 artisan
|
||||
@@ -1,9 +1,18 @@
|
||||
{
|
||||
"name": "nhgooi.nl",
|
||||
"name": "workspace",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"air-datepicker": "^3.5.0",
|
||||
"daterangepicker": "^3.1.0",
|
||||
"jquery": "^3.7.0",
|
||||
"jquery-ui": "^1.13.0",
|
||||
"moment": "^2.30.0",
|
||||
"wavesurfer.js": "^7.8.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "^1.6.1",
|
||||
"grunt-contrib-concat": "^2.1.0",
|
||||
@@ -18,6 +27,12 @@
|
||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/air-datepicker": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/air-datepicker/-/air-datepicker-3.6.0.tgz",
|
||||
"integrity": "sha512-+txUkqa949rXBJDmkQAIb/GehZECJYF4rm9XJxVYtEX22C9WvBpE/XwCUQZBopKIkpg4ycAySJ9lH3JOg9qQTw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
@@ -241,6 +256,16 @@
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/daterangepicker": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/daterangepicker/-/daterangepicker-3.1.0.tgz",
|
||||
"integrity": "sha512-DxWXvvPq4srWLCqFugqSV+6CBt/CvQ0dnpXhQ3gl0autcIDAruG1PuGG3gC7yPRNytAD1oU1AcUOzaYhOawhTw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"jquery": ">=1.10",
|
||||
"moment": "^2.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
||||
@@ -1075,6 +1100,21 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/jquery": {
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
|
||||
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/jquery-ui": {
|
||||
"version": "1.14.2",
|
||||
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.14.2.tgz",
|
||||
"integrity": "sha512-1gSl7PUjyipa2adSr780Ujk16faicrV7PjPPzPtvWk7tTqBnsqp67NNV9jZK2+BIxUPXWSnIUU/LBCgwgGZE+Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"jquery": ">=1.12.0 <5.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/js-yaml": {
|
||||
"version": "3.14.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
|
||||
@@ -1207,6 +1247,15 @@
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/moment": {
|
||||
"version": "2.30.1",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
|
||||
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
@@ -1740,6 +1789,12 @@
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/wavesurfer.js": {
|
||||
"version": "7.12.11",
|
||||
"resolved": "https://registry.npmjs.org/wavesurfer.js/-/wavesurfer.js-7.12.11.tgz",
|
||||
"integrity": "sha512-Sx0yZIz7jRJ9J9p7UL+pl9y0UQBB6UN/XNo+R7Gy4tCR5xZI9jMyA0dnt1R8TMVSQ4LZ10SeB2HJYQ+dV2dPSA==",
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/websocket-driver": {
|
||||
"version": "0.7.4",
|
||||
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
|
||||
|
||||
@@ -1,12 +1,24 @@
|
||||
{
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "grunt watch",
|
||||
"build": "grunt uglify concat",
|
||||
"postinstall": "node scripts/setup-vendor.js || true",
|
||||
"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"
|
||||
},
|
||||
"dependencies": {
|
||||
"jquery": "^3.7.0",
|
||||
"jquery-ui": "^1.13.0",
|
||||
"moment": "^2.30.0",
|
||||
"daterangepicker": "^3.1.0",
|
||||
"wavesurfer.js": "^7.8.0",
|
||||
"air-datepicker": "^3.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "^1.6.1",
|
||||
"grunt-contrib-concat": "^2.1.0",
|
||||
|
||||
@@ -31,10 +31,14 @@ body {
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.grey_background {
|
||||
.grey_background:not(.site_container) {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
}
|
||||
.page {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.content_container {
|
||||
padding-right: 50px;
|
||||
}
|
||||
@@ -54,7 +58,7 @@ body {
|
||||
.btn {
|
||||
display: block;
|
||||
width: calc(100% - 78px);
|
||||
padding: 10px 39px 10px 39px;
|
||||
padding: 10px 39px;
|
||||
border-radius: 3px;
|
||||
background-image: linear-gradient(to right, #0f259d, #5ba8f4);
|
||||
font-family: Nunito, serif;
|
||||
@@ -70,21 +74,6 @@ body {
|
||||
.btn:hover, .btn:active {
|
||||
color: #fff;
|
||||
}
|
||||
.btn.auto_width {
|
||||
width: fit-content;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.btn.fit_content {
|
||||
width: fit-content;
|
||||
}
|
||||
.btn.btn_facebook_share {
|
||||
background-image: none;
|
||||
background-color: #0f259d;
|
||||
}
|
||||
.btn.btn_twitter_x_share {
|
||||
background-image: none;
|
||||
background-color: #5ba8f4;
|
||||
}
|
||||
|
||||
div.pp_default .pp_content_container .pp_left,
|
||||
div.pp_default .pp_content_container .pp_right,
|
||||
@@ -158,20 +147,68 @@ div.pp_default .pp_close:hover {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.ad-prefix {
|
||||
width: 100%;
|
||||
font-family: Nunito, serif;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
line-height: 3.17;
|
||||
text-align: center;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.contant-form .form-group {
|
||||
display: flex;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.contant-form .form-group label {
|
||||
width: 160px;
|
||||
}
|
||||
.contant-form .form-group input, .contant-form .form-group textarea {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.contant-form .action_button {
|
||||
margin-top: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.contant-form .form-control-file::file-selector-button {
|
||||
display: block;
|
||||
width: calc(100% - 78px);
|
||||
padding: 10px 39px;
|
||||
border-radius: 3px;
|
||||
background-image: linear-gradient(to right, #0f259d, #5ba8f4);
|
||||
font-family: Nunito, serif;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
line-height: 0.93;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
margin-bottom: 10px;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
width: fit-content;
|
||||
margin-bottom: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.contant-form .form-control-file::file-selector-button:hover, .contant-form .form-control-file::file-selector-button:active {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.header {
|
||||
height: 111px;
|
||||
}
|
||||
.header .logo {
|
||||
float: left;
|
||||
margin-top: 18px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.header .logo img {
|
||||
height: 75px;
|
||||
height: 95px;
|
||||
}
|
||||
.header .advertisement {
|
||||
.header ins[data-revive-zoneid] {
|
||||
float: right;
|
||||
width: 728px;
|
||||
height: 90px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
@media (max-width: 1170px) {
|
||||
@@ -186,7 +223,7 @@ div.pp_default .pp_close:hover {
|
||||
.header .logo {
|
||||
float: none;
|
||||
}
|
||||
.header .advertisement {
|
||||
.header ins[data-revive-zoneid] {
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
@@ -198,7 +235,6 @@ div.pp_default .pp_close:hover {
|
||||
@media (min-width: 767px) {
|
||||
.menu_container {
|
||||
height: 75px;
|
||||
margin-bottom: 20px;
|
||||
background-image: linear-gradient(to right, #0102b0, #4090e3);
|
||||
}
|
||||
}
|
||||
@@ -254,7 +290,9 @@ div.pp_default .pp_close:hover {
|
||||
display: block;
|
||||
width: 33px;
|
||||
height: 25px;
|
||||
background-image: URL("/images/menu-corner-1.svg");
|
||||
-webkit-mask-image: URL("/images/menu-corner-1.svg");
|
||||
mask-image: URL("/images/menu-corner-1.svg");
|
||||
background-color: white;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@@ -265,7 +303,9 @@ div.pp_default .pp_close:hover {
|
||||
display: block;
|
||||
width: 12px;
|
||||
height: 15px;
|
||||
background-image: URL("/images/menu-corner-2.svg");
|
||||
-webkit-mask-image: URL("/images/menu-corner-2.svg");
|
||||
mask-image: URL("/images/menu-corner-2.svg");
|
||||
background-color: white;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: -1px;
|
||||
@@ -303,11 +343,16 @@ div.pp_default .pp_close:hover {
|
||||
margin: 8px;
|
||||
border-right: 1px solid rgba(255, 255, 255, 0.2);
|
||||
line-height: 2;
|
||||
height: 28px;
|
||||
/*&:nth-child(2) {
|
||||
padding: 0 19px;
|
||||
}*/
|
||||
}
|
||||
.top_menu_container ul.right_menu li:last-child, .menu_mobile_container ul.right_menu li:last-child {
|
||||
.top_menu_container ul.right_menu li.collapsed, .menu_mobile_container ul.right_menu li.collapsed {
|
||||
padding: 3px 9px 3px 6px;
|
||||
margin: 8px auto;
|
||||
}
|
||||
.top_menu_container ul.right_menu li.search, .menu_mobile_container ul.right_menu li.search {
|
||||
border: none;
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -320,6 +365,12 @@ div.pp_default .pp_close:hover {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
display: flex;
|
||||
}
|
||||
.top_menu_container ul.right_menu li a span, .menu_mobile_container ul.right_menu li a span {
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
height: 28px;
|
||||
}
|
||||
.top_menu_container ul.right_menu li a.with_svg_icon, .menu_mobile_container ul.right_menu li a.with_svg_icon {
|
||||
position: relative;
|
||||
@@ -349,7 +400,7 @@ div.pp_default .pp_close:hover {
|
||||
border: 1px solid #efefef;
|
||||
border-radius: 3px;
|
||||
background-color: #fff;
|
||||
height: 29px;
|
||||
height: 26px;
|
||||
font-family: Montserrat, serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.25;
|
||||
@@ -357,7 +408,7 @@ div.pp_default .pp_close:hover {
|
||||
}
|
||||
.top_menu_container ul.right_menu li .search_form .search_submit, .menu_mobile_container ul.right_menu li .search_form .search_submit {
|
||||
float: right;
|
||||
margin: 6px;
|
||||
margin: 4px;
|
||||
}
|
||||
.top_menu_container ul.right_menu li .search_button, .menu_mobile_container ul.right_menu li .search_button {
|
||||
margin-top: 6px;
|
||||
@@ -577,8 +628,22 @@ div.pp_default .pp_close:hover {
|
||||
}
|
||||
|
||||
.slogan {
|
||||
width: 150px;
|
||||
margin: 12px 0;
|
||||
width: 190px;
|
||||
margin: 8px 0;
|
||||
}
|
||||
|
||||
.grey_background nav > div {
|
||||
background: #f9f9f9;
|
||||
border-color: #f9f9f9;
|
||||
}
|
||||
.grey_background .menu > li a {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
.grey_background .menu > li.selected a:before, .grey_background .menu > li.selected a:after, .grey_background .menu > li:hover a:before, .grey_background .menu > li:hover a:after, .grey_background .menu > li.hover a:before, .grey_background .menu > li.hover a:after {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
.grey_background .menu > li:last-child:after {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
.header .now-playing-header {
|
||||
@@ -693,6 +758,8 @@ div.pp_default .pp_close:hover {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
display: flex;
|
||||
gap: 3px;
|
||||
}
|
||||
.blog_grid .post .slider_content_box .post_details .category a {
|
||||
padding: 6px 11px 7px;
|
||||
@@ -744,6 +811,11 @@ div.pp_default .pp_close:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.article-iframe {
|
||||
width: 100%;
|
||||
aspect-ratio: 1;
|
||||
}
|
||||
|
||||
.box_header {
|
||||
border-bottom: 1px solid #efefef;
|
||||
padding-right: 20px;
|
||||
@@ -1117,6 +1189,16 @@ div.pp_default .pp_close:hover {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@media (max-width: 576px) {
|
||||
ins[data-revive-zoneid] img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.homepage-body-banners {
|
||||
margin-top: -4rem;
|
||||
}
|
||||
|
||||
.news .blog .post {
|
||||
height: 115px;
|
||||
}
|
||||
@@ -1170,6 +1252,19 @@ div.pp_default .pp_close:hover {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.box.featured .sentence, .post_container .post_body .sentence {
|
||||
font-size: 12px;
|
||||
font-style: italic;
|
||||
line-height: 1.3;
|
||||
text-align: right;
|
||||
color: #585858;
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
.box.featured .sentence span, .post_container .post_body .sentence span {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
.post_container {
|
||||
max-width: 1170px;
|
||||
margin: 0 auto;
|
||||
@@ -1197,17 +1292,8 @@ div.pp_default .pp_close:hover {
|
||||
.post_container .post_body h3 {
|
||||
font-size: 15px;
|
||||
}
|
||||
.post_container .post_body .sentence {
|
||||
font-size: 12px;
|
||||
font-style: italic;
|
||||
line-height: 1.3;
|
||||
text-align: right;
|
||||
color: #585858;
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
.post_container .post_body .sentence span {
|
||||
padding: 0 5px;
|
||||
.post_container .post_body div.text {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.post_container .post_body blockquote {
|
||||
border-left: 3px solid #5ba8f4;
|
||||
@@ -1273,19 +1359,9 @@ div.pp_default .pp_close:hover {
|
||||
color: #ED1C24;
|
||||
}
|
||||
|
||||
.post_tags {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
height: 31px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.post_tags li {
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.post_tags li a {
|
||||
#schedule .onair, .post_tags li a {
|
||||
display: block;
|
||||
width: 4rem;
|
||||
padding: 6px 15px 7px;
|
||||
border-radius: 3px;
|
||||
background-image: linear-gradient(to left, #0d1ca3, #45aaf8);
|
||||
@@ -1298,6 +1374,34 @@ div.pp_default .pp_close:hover {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.post_tags {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
height: 31px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.post_tags li {
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
@keyframes tilt-shaking {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
25% {
|
||||
transform: rotate(5deg);
|
||||
}
|
||||
50% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
75% {
|
||||
transform: rotate(-5deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
#schedule a {
|
||||
text-decoration: none;
|
||||
}
|
||||
@@ -1339,6 +1443,9 @@ div.pp_default .pp_close:hover {
|
||||
#schedule .no-results span, #schedule .loading span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
#schedule .onair {
|
||||
animation: tilt-shaking 1s linear infinite;
|
||||
}
|
||||
|
||||
.page_container {
|
||||
max-width: 1170px;
|
||||
@@ -1428,6 +1535,90 @@ div.pp_default .pp_close:hover {
|
||||
margin: 10px 20px 0 0;
|
||||
}
|
||||
|
||||
.podcast-player .content {
|
||||
border: solid 1px #333;
|
||||
border-radius: 5px;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
|
||||
.audioplayer .waveform {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
}
|
||||
.audioplayer .hover {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
pointer-events: none;
|
||||
height: 100%;
|
||||
width: 0;
|
||||
mix-blend-mode: overlay;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
opacity: 0;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
.audioplayer .waveform:hover .hover {
|
||||
opacity: 1;
|
||||
}
|
||||
.audioplayer .time,
|
||||
.audioplayer .duration {
|
||||
position: absolute;
|
||||
z-index: 11;
|
||||
top: 50%;
|
||||
margin-top: -1px;
|
||||
transform: translateY(-50%);
|
||||
font-size: 11px;
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
padding: 2px;
|
||||
color: #ddd;
|
||||
}
|
||||
.audioplayer .time {
|
||||
left: 0;
|
||||
}
|
||||
.audioplayer .duration {
|
||||
right: 0;
|
||||
}
|
||||
.audioplayer .audio-controls {
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
}
|
||||
.audioplayer .audio-controls .btn {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
text-transform: none;
|
||||
}
|
||||
@media (max-width: 720px) {
|
||||
.audioplayer .audio-controls .btn label {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.audioplayer .audio-controls .btn.btn-play {
|
||||
flex: 50% 1 0;
|
||||
}
|
||||
.audioplayer .volume-controls {
|
||||
display: flex;
|
||||
}
|
||||
.audioplayer .volume-controls .volume-slider {
|
||||
flex: 100% 1 1;
|
||||
}
|
||||
.audioplayer .audio-controls .btn,
|
||||
.audioplayer .volume-controls .btn-toggle-mute {
|
||||
flex: 100px 1 1;
|
||||
padding: 10px 0 10px 0;
|
||||
background: #5ba8f4;
|
||||
border-radius: 5px;
|
||||
border-color: solid 1px #0f259d;
|
||||
color: white;
|
||||
font-family: Nunito, serif;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.footer_container {
|
||||
font-family: Montserrat, serif;
|
||||
font-size: 14px;
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sourceRoot":"","sources":["../../resources/assets/sass/abstracts/_fonts.scss","../../resources/assets/sass/base/_clearfix.scss","../../resources/assets/sass/base/_container.scss","../../resources/assets/sass/abstracts/_mixin.scss","../../resources/assets/sass/abstracts/_variables.scss","../../resources/assets/sass/components/_button.scss","../../resources/assets/sass/components/_pretty_photo.scss","../../resources/assets/sass/components/_cookie.scss","../../resources/assets/sass/components/_list.scss","../../resources/assets/sass/components/_header.scss","../../resources/assets/sass/components/_menu.scss","../../resources/assets/sass/components/_now-playing.scss","../../resources/assets/sass/components/_main_news.scss","../../resources/assets/sass/components/_box.scss","../../resources/assets/sass/components/_blog.scss","../../resources/assets/sass/components/_sidebar.scss","../../resources/assets/sass/components/_radio_box.scss","../../resources/assets/sass/components/_contact_box.scss","../../resources/assets/sass/components/_featured.scss","../../resources/assets/sass/components/_podcast_items.scss","../../resources/assets/sass/layout/_news.scss","../../resources/assets/sass/components/_bread_crumb.scss","../../resources/assets/sass/components/_page_title.scss","../../resources/assets/sass/components/_post.scss","../../resources/assets/sass/components/_schedule.scss","../../resources/assets/sass/components/_page.scss","../../resources/assets/sass/components/_input.scss","../../resources/assets/sass/components/_podcast_item.scss","../../resources/assets/sass/components/_footer.scss","../../resources/assets/sass/base/_base.scss"],"names":[],"mappings":";AAAQ;AACA;AACA;ACFR;EACE;EACA;EACA;;;ACAF;EACE;EACA;;;AAKF;ECPE;EACA;EDQA;EAIA,kBEfa;;AFYb;EAHF;IAII;;;;AAIJ;ECfE;EACA;;;ADiBF;EACE;IACE;;;AAGJ;EACE;;;AAEF;EACE;;;AAEF;EACE;IACE;;EAEF;IACE;;;AGnCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ODJoB;ECKpB;EACA;EACA;;AAEA;EACE,ODVkB;;ACapB;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAEF;EACE;EACA;;;ACnCJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASE;EACA;;;AAEF;EAEE;;;AAEF;EAEE;EACA;EACA;EACA;EACA,OFXuB;;;AEazB;EAEE;EACA;;;AAEF;EAEE;EACA;;;AChCF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA,OHPoB;;;AGStB;EACE;EACA;EACA;EACA,OHXgB;;;AGalB;EACE;EACA;EACA;EACA,OHjBgB;;;AIVlB;ELME;EACA;EACA;;;AMTF;EACE;;AACA;EACE;EACA;;AACA;EACE;;AAGJ;EACE;EACA;EACA;;;AAIJ;EACE;IACE;;;AAGJ;EACE;IACE;;EACA;IACE;;EAEF;IACE;;;AAIN;EACE;IACE;;;AC9BF;EADF;IAEI;IACA;IACA;;;AAGF;EACE;;AACA;EACE;EACA;EACA;EACA;;AAIJ;EPbA;EACA;EACA;EOaE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA,ONpCK;EMqCL,aNzCU;EM0CV,WNzCQ;EM0CR;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMV;EACE;EPnGA;EACA;EOoGA;;AAEA;EACE;EPpGF;EACA;EACA;;AOqGE;EACE;EACA;EACA;EACA;EACA;AAOA;AAAA;AAAA;;AALA;EACE;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA,ON3Hc;EM4Hd;EACA;;AAEA;EACE;EACA;;AAGF;EACE,MNrIY;EMsIZ;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA,kBN3JG;EM4JH;EACA;EACA;EACA;EACA,ONpKG;;AMsKL;EACE;EACA;;AAGJ;EACE;;;AAKR;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAGJ;EACE;;AACA;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;;AAEE;EACE;EACA;;AAEA;EACE;;AAGA;EACE;;AAIJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;AAIJ;EACE;;;AAOV;EACE;;AAEA;EACE;EACA;;AAGF;EPtPA;EACA;EACA;;AOsPE;EACE;EACA;EACA;EACA;EACA,ON5PO;EM6PP;EACA;EACA;EACA;;AAEF;EACE;;AAIJ;EACE;EACA;EACA;EACA,kBNvQS;EMwQT;EACA;EACA;;AAGE;EACE;;AACA;EACE;;AAIN;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;;AAMR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;;AAKR;EACE;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;;AAIN;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;;;AC/ZF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AC9CV;EADF;IAEI;IACA;AAKA;AAMA;;EAVA;IACE;;EAIF;IACE;IACA;;EAIF;IACE;IACA;;EAEF;IACE;;;AAGJ;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AACA;EAJF;IAKI;;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EAEA;;AAEA;ETtDJ;EACA;EACA;;ASuDM;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OR/DY;EQgEZ;EACA;;AAIJ;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA,OR7Ec;EQ8Ed;;AAEF;EACE;EACA;;AAEF;EACE;IACE;IACA;IACA;;;AAGJ;ETxFJ;EACA;EACA;EACA;EACA;EAQA;EAIA,OClBqB;EDmBrB;EACA;EACA;EACA;EACA;ESqEM,OR7Fc;;;ASPtB;EAsBE;EACA;;AAtBA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAGF;EACE;;AALine truncated
|
||||
{"version":3,"sourceRoot":"","sources":["../../resources/assets/sass/abstracts/_fonts.scss","../../resources/assets/sass/base/_clearfix.scss","../../resources/assets/sass/base/_container.scss","../../resources/assets/sass/abstracts/_mixin.scss","../../resources/assets/sass/abstracts/_variables.scss","../../resources/assets/sass/components/_button.scss","../../resources/assets/sass/components/_pretty_photo.scss","../../resources/assets/sass/components/_cookie.scss","../../resources/assets/sass/components/_list.scss","../../resources/assets/sass/components/_banners.scss","../../resources/assets/sass/components/_contact_form.scss","../../resources/assets/sass/components/_header.scss","../../resources/assets/sass/components/_menu.scss","../../resources/assets/sass/components/_now-playing.scss","../../resources/assets/sass/components/_main_news.scss","../../resources/assets/sass/components/_box.scss","../../resources/assets/sass/components/_blog.scss","../../resources/assets/sass/components/_sidebar.scss","../../resources/assets/sass/components/_radio_box.scss","../../resources/assets/sass/components/_contact_box.scss","../../resources/assets/sass/components/_featured.scss","../../resources/assets/sass/components/_podcast_items.scss","../../resources/assets/sass/layout/_home.scss","../../resources/assets/sass/layout/_news.scss","../../resources/assets/sass/components/_bread_crumb.scss","../../resources/assets/sass/components/_page_title.scss","../../resources/assets/sass/components/_post.scss","../../resources/assets/sass/components/_schedule.scss","../../resources/assets/sass/components/_page.scss","../../resources/assets/sass/components/_input.scss","../../resources/assets/sass/components/_podcast_item.scss","../../resources/assets/sass/components/_media.scss","../../resources/assets/sass/components/_footer.scss","../../resources/assets/sass/base/_base.scss"],"names":[],"mappings":";AAAQ;AACA;AACA;ACFR;EACE;EACA;EACA;;;ACAF;EACE;EACA;;;AAKF;ECPE;EACA;EDQA;EAIA,kBEfa;;AFYb;EAHF;IAII;;;;AAIJ;ECfE;EACA;;;ADiBF;EACE;IACE,kBEtBW;;;AFyBf;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;IACE;;EAEF;IACE;;;AGtCJ;EFiEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OCpEoB;EDqEpB;EACA;EACA;;AAEA;EAEE,OC3EkB;;;AEPtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASE;EACA;;;AAEF;EAEE;;;AAEF;EAEE;EACA;EACA;EACA;EACA,OFXuB;;;AEazB;EAEE;EACA;;;AAEF;EAEE;EACA;;;AChCF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA,OHPoB;;;AGStB;EACE;EACA;EACA;EACA,OHXgB;;;AGalB;EACE;EACA;EACA;EACA,OHjBgB;;;AIVlB;ELME;EACA;EACA;;;AMTF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACJA;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAGJ;EACE;EACA;;AAEF;EPkDA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OCpEoB;EDqEpB;EACA;EACA;EO7DE;EACA;EACA;;AP6DF;EAEE,OC3EkB;;;AOTtB;EACE;;AACA;EACE;EACA;;AACA;EACE;;AAGJ;EACE;EACA;EACA;EACA;;;AAIJ;EACE;IACE;;;AAGJ;EACE;IACE;;EACA;IACE;;EAEF;IACE;;;AAIN;EACE;IACE;;;AC/BF;EADF;IAEI;IACA;;;AAGF;EACE;;AACA;EACE;EACA;EACA;EACA;;AAIJ;ETZA;EACA;EACA;ESYE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA,ORnCK;EQoCL,aRxCU;EQyCV,WRxCQ;EQyCR;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMV;EACE;ETtGA;EACA;ESuGA;;AAEA;EACE;ETvGF;EACA;EACA;;ASwGE;EACE;EACA;EACA;EACA;EACA;EACA;AAYA;AAAA;AAAA;;AAVA;EACE;EACA;;AAGF;EACE;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA,ORpIc;EQqId;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE,MRrJY;EQsJZ;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA,kBR3KG;EQ4KH;EACA;EACA;EACA;EACA,ORpLG;;AQsLL;EACE;EACA;;AAGJ;EACE;;;AAKR;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAGJ;EACE;;AACA;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;;AAEE;EACE;EACA;;AAEA;EACE;;AAGA;EACE;;AAIJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;AAIJ;EACE;;;AAOV;EACE;;AAEA;EACE;EACA;;AAGF;ETtQA;EACA;EACA;;ASsQE;EACE;EACA;EACA;EACA;EACA,OR5QO;EQ6QP;EACA;EACA;EACA;;AAEF;EACE;;AAIJ;EACE;EACA;EACA;EACA,kBRvRS;EQwRT;EACA;EACA;;AAGE;EACE;;AACA;EACE;;AAIN;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;;AAMR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;;AAKR;EACE;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;;AAIN;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;;;AAKE;EACE,YRpbS;EQqbT,cRrbS;;AQ2bT;EACE,YR5bO;;AQgcP;EACE,kBRjcK;;AQscP;EACE,YRvcK;;;ASDf;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AC9CV;EADF;IAEI;IACA;AAKA;AAMA;;EAVALine truncated
|
||||
@@ -1,91 +0,0 @@
|
||||
|
||||
.site_container {
|
||||
max-width: 1440px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.header {
|
||||
height: 110px;
|
||||
}
|
||||
.header .logo {
|
||||
margin-left: 135px;
|
||||
}
|
||||
.header .logo img {
|
||||
height: 75px;
|
||||
}
|
||||
.menu_container {
|
||||
height: 75px;
|
||||
margin-bottom: 20px;
|
||||
background-image: linear-gradient(to right, #0102b0, #4090e3);
|
||||
}
|
||||
.top_menu_container {
|
||||
height: 50px;
|
||||
}
|
||||
.menu_container .menu {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
}
|
||||
.menu_container .menu li {
|
||||
float: left;
|
||||
}
|
||||
.menu_container .menu li ul {
|
||||
display: none;
|
||||
}
|
||||
.menu_container .menu li a {
|
||||
display: block;
|
||||
text-align: center;
|
||||
padding: 5px 20px 5px 40px;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
background: white;
|
||||
}
|
||||
.menu_container .menu li.selected a,.menu_container .menu li:hover a {
|
||||
color: white;
|
||||
background: transparent;
|
||||
position: relative;
|
||||
}
|
||||
.menu_container .menu li.selected a:before, .menu_container .menu li:hover a:before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 33px;
|
||||
height: 25px;
|
||||
background-image: URL('/images/menu-corner-1.svg');
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
.menu_container .menu li.selected a:after, .menu_container .menu li:hover a:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 10px;
|
||||
height: 12px;
|
||||
background-image: URL('/images/menu-corner-2.svg');
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: -1px;
|
||||
z-index: 1;
|
||||
}
|
||||
.menu_container .menu li:first-child {
|
||||
width: 135px;
|
||||
display: block;
|
||||
background: white;
|
||||
height: 25px;
|
||||
}
|
||||
div ul li:last-child {
|
||||
margin-left: 10px;
|
||||
}
|
||||
div ul li:last-child:after {
|
||||
content: '\a0';
|
||||
z-index: -1;
|
||||
background: white;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin-left: -10px;
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
@import"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap";@import"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap";.clearfix::after{display:block;clear:both;content:""}body{margin:0;padding:0}.body_container{max-width:1170px;margin:0 auto;padding:67px 0;background-color:#f9f9f9}@media(max-width: 768px){.body_container{padding:50px 0}}.header_container{max-width:1170px;margin:0 auto}.grey_background{background-color:#f9f9f9}.content_container{padding-right:50px}.sidebar{width:calc(300px + var(--bs-gutter-x))}@media(max-width: 768px){.content_container{padding-right:calc(var(--bs-gutter-x)*.5)}.site_container{overflow:hidden}}.btn{display:block;width:calc(100% - 78px);padding:10px 39px 10px 39px;border-radius:3px;background-image:linear-gradient(to right, #0f259d, #5ba8f4);font-family:Nunito,serif;font-size:14px;font-weight:bold;line-height:.93;text-align:center;color:#fff;margin-bottom:10px;text-decoration:none;text-transform:uppercase}.btn.auto_width{width:fit-content;margin:0 auto}.btn.btn_facebook_share{background-image:none;background-color:#0f259d}.btn.btn_twitter_x_share{background-image:none;background-color:#5ba8f4}div.pp_default .pp_content_container .pp_left,div.pp_default .pp_content_container .pp_right,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_right,div.pp_default .pp_bottom .pp_left,div.pp_default .pp_bottom .pp_middle,div.pp_default .pp_bottom .pp_right{background:none;padding:0}div.pp_default .pp_content,div.light_rounded .pp_content{padding:10px}div.pp_default .pp_description{font-family:Nunito,serif;font-size:12px;font-style:italic;line-height:3.17;color:#585858}div.pp_default .pp_close{margin-top:8px;background:url("/images/icons/other/close.png") 0 0 no-repeat}div.pp_default .pp_close:hover{opacity:1;background-position:0 -30px}.light.cc_dialog button.cc_b_ok,.light.cc_dialog button.cc_b_cp{padding:10px 39px;border-radius:3px;font-family:Nunito,serif;font-size:14px;font-weight:bold;line-height:.93;text-align:center;margin-bottom:10px;text-decoration:none;text-transform:uppercase}.light.cc_dialog button.cc_b_ok{background-image:linear-gradient(to right, #0f259d, #5ba8f4);color:#fff}.light.cc_dialog .cc_dialog_headline{font-family:Montserrat,serif;font-weight:600;line-height:1.15;color:#282828}.light.cc_dialog .cc_dialog_text{font-family:Nunito,serif;font-size:15px;line-height:1.6;color:#282828}.list{margin:0;padding:0;list-style:none}.header{height:110px}.header .logo{float:left;margin-top:18px}.header .logo img{height:75px}.header .advertisement{float:right;width:728px;height:90px}@media(max-width: 1170px){.header{padding:0 20px}}@media(max-width: 980px){.header{height:212px}.header .logo{float:none}.header .advertisement{float:none}}@media(max-width: 768px){.header_container{display:none}}@media(min-width: 767px){.menu_container{height:75px;margin-bottom:20px;background-image:linear-gradient(to right, #0102b0, #4090e3)}}.menu_container nav{display:flex}.menu_container nav>div{height:30px;background:#fff;flex-grow:1;border:1px solid #fff}.menu_container .menu{margin:0;padding:0;list-style:none;overflow:hidden;position:relative;z-index:0;margin:0px -1px;width:1170px;margin:0 auto}.menu_container .menu>li{float:left;margin:0px -1px}.menu_container .menu>li.has_submenu{position:relative}.menu_container .menu>li ul{display:none}.menu_container .menu>li a{display:block;font-family:Nunito,serif;color:#1a1a1a;font-weight:bold;font-size:14px;text-align:center;padding:5px 20px 5px 40px;text-decoration:none;background:#fff;text-transform:uppercase}.menu_container .menu>li.selected a,.menu_container .menu>li:hover a,.menu_container .menu>li.hover a{color:#fff;background:rgba(0,0,0,0);position:relative}.menu_container .menu>li.selected a:before,.menu_container .menu>li:hover a:before,.menu_container .menu>li.hover a:before{content:"";display:block;width:33px;height:25px;background-image:URL("/images/menu-corner-1.svg");position:absolute;top:0;left:0;z-index:1}.menu_container .menu>li.selected a:after,.menu_container .menu>li:hover a:after,.menu_container .menu>li.hover a:after{content:"";display:block;width:12px;height:15px;background-image:URL("/images/menu-corner-2.svg");position:absolute;bottom:0;right:-1px;z-index:1}.menu_container .menu>li:last-child{margin-left:10px}.menu_container .menu>li:last-child:after{content:" ";z-index:-1;background:#fff;position:absolute;top:0;width:100%;height:100%;margin-left:-10px}.top_menu_container,.menu_mobile_container{height:50px;max-width:1170px;margin:0 auto}.top_menu_container ul.right_menu,.menu_mobile_container ul.right_menu{float:right;margin:0;padding:0;list-style:none}.top_menu_container ul.right_menu li,.menu_mobile_contaiLine truncated
|
||||
@import"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap";@import"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap";.clearfix::after{display:block;clear:both;content:""}body{margin:0;padding:0}.body_container{max-width:1170px;margin:0 auto;padding:67px 0;background-color:#f9f9f9}@media(max-width: 768px){.body_container{padding:50px 0}}.header_container{max-width:1170px;margin:0 auto}@media(min-width: 768px){.grey_background:not(.site_container){background-color:#f9f9f9}}.page{padding-top:20px}.content_container{padding-right:50px}.sidebar{width:calc(300px + var(--bs-gutter-x))}@media(max-width: 768px){.content_container{padding-right:calc(var(--bs-gutter-x)*.5)}.site_container{overflow:hidden}}.btn{display:block;width:calc(100% - 78px);padding:10px 39px;border-radius:3px;background-image:linear-gradient(to right, #0f259d, #5ba8f4);font-family:Nunito,serif;font-size:14px;font-weight:bold;line-height:.93;text-align:center;color:#fff;margin-bottom:10px;text-decoration:none;text-transform:uppercase}.btn:hover,.btn:active{color:#fff}div.pp_default .pp_content_container .pp_left,div.pp_default .pp_content_container .pp_right,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_right,div.pp_default .pp_bottom .pp_left,div.pp_default .pp_bottom .pp_middle,div.pp_default .pp_bottom .pp_right{background:none;padding:0}div.pp_default .pp_content,div.light_rounded .pp_content{padding:10px}div.pp_default .pp_description{font-family:Nunito,serif;font-size:12px;font-style:italic;line-height:3.17;color:#585858}div.pp_default .pp_close{margin-top:8px;background:url("/images/icons/other/close.png") 0 0 no-repeat}div.pp_default .pp_close:hover{opacity:1;background-position:0 -30px}.light.cc_dialog button.cc_b_ok,.light.cc_dialog button.cc_b_cp{padding:10px 39px;border-radius:3px;font-family:Nunito,serif;font-size:14px;font-weight:bold;line-height:.93;text-align:center;margin-bottom:10px;text-decoration:none;text-transform:uppercase}.light.cc_dialog button.cc_b_ok{background-image:linear-gradient(to right, #0f259d, #5ba8f4);color:#fff}.light.cc_dialog .cc_dialog_headline{font-family:Montserrat,serif;font-weight:600;line-height:1.15;color:#282828}.light.cc_dialog .cc_dialog_text{font-family:Nunito,serif;font-size:15px;line-height:1.6;color:#282828}.list{margin:0;padding:0;list-style:none}.ad-prefix{width:100%;font-family:Nunito,serif;font-size:12px;font-weight:500;line-height:3.17;text-align:center;color:#666}.contant-form .form-group{display:flex;margin-bottom:10px}.contant-form .form-group label{width:160px}.contant-form .form-group input,.contant-form .form-group textarea{flex-grow:1}.contant-form .action_button{margin-top:10px;cursor:pointer}.contant-form .form-control-file::file-selector-button{display:block;width:calc(100% - 78px);padding:10px 39px;border-radius:3px;background-image:linear-gradient(to right, #0f259d, #5ba8f4);font-family:Nunito,serif;font-size:14px;font-weight:bold;line-height:.93;text-align:center;color:#fff;margin-bottom:10px;text-decoration:none;text-transform:uppercase;width:fit-content;margin-bottom:0;cursor:pointer}.contant-form .form-control-file::file-selector-button:hover,.contant-form .form-control-file::file-selector-button:active{color:#fff}.header{height:111px}.header .logo{float:left;margin-top:10px}.header .logo img{height:95px}.header ins[data-revive-zoneid]{float:right;width:728px;height:90px;margin-top:10px}@media(max-width: 1170px){.header{padding:0 20px}}@media(max-width: 980px){.header{height:212px}.header .logo{float:none}.header ins[data-revive-zoneid]{float:none}}@media(max-width: 768px){.header_container{display:none}}@media(min-width: 767px){.menu_container{height:75px;background-image:linear-gradient(to right, #0102b0, #4090e3)}}.menu_container nav{display:flex}.menu_container nav>div{height:30px;background:#fff;flex-grow:1;border:1px solid #fff}.menu_container .menu{margin:0;padding:0;list-style:none;overflow:hidden;position:relative;z-index:0;margin:0px -1px;width:1170px;margin:0 auto}.menu_container .menu>li{float:left;margin:0px -1px}.menu_container .menu>li.has_submenu{position:relative}.menu_container .menu>li ul{display:none}.menu_container .menu>li a{display:block;font-family:Nunito,serif;color:#1a1a1a;font-weight:bold;font-size:14px;text-align:center;padding:5px 20px 5px 40px;text-decoration:none;background:#fff;text-transform:uppercase}.menu_container .menu>li.selected a,.menu_container .menu>li:hover a,.menu_container .menu>li.hover a{color:#fff;background:rgba(0,0,0,0);position:relative}.menu_container .menu>li.selected a:before,.menu_container .menu>li:hover a:before,.menu_container .menu>li.hover a:before{content:"";display:block;width:33px;heightLine truncated
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sourceRoot":"","sources":["../../resources/assets/sass/abstracts/_fonts.scss","../../resources/assets/sass/base/_clearfix.scss","../../resources/assets/sass/base/_container.scss","../../resources/assets/sass/abstracts/_mixin.scss","../../resources/assets/sass/abstracts/_variables.scss","../../resources/assets/sass/components/_button.scss","../../resources/assets/sass/components/_pretty_photo.scss","../../resources/assets/sass/components/_cookie.scss","../../resources/assets/sass/components/_list.scss","../../resources/assets/sass/components/_header.scss","../../resources/assets/sass/components/_menu.scss","../../resources/assets/sass/components/_now-playing.scss","../../resources/assets/sass/components/_main_news.scss","../../resources/assets/sass/components/_box.scss","../../resources/assets/sass/components/_blog.scss","../../resources/assets/sass/components/_sidebar.scss","../../resources/assets/sass/components/_radio_box.scss","../../resources/assets/sass/components/_contact_box.scss","../../resources/assets/sass/components/_featured.scss","../../resources/assets/sass/components/_podcast_items.scss","../../resources/assets/sass/components/_bread_crumb.scss","../../resources/assets/sass/components/_page_title.scss","../../resources/assets/sass/components/_post.scss","../../resources/assets/sass/components/_schedule.scss","../../resources/assets/sass/components/_page.scss","../../resources/assets/sass/components/_input.scss","../../resources/assets/sass/components/_podcast_item.scss","../../resources/assets/sass/components/_footer.scss","../../resources/assets/sass/base/_base.scss"],"names":[],"mappings":"CAAQ,wGACA,0GACA,0LCFR,iBACE,cACA,WACA,gBCCA,SACA,UAKF,gBCPE,iBACA,cDQA,eAIA,iBEfa,QFYb,yBAHF,gBAII,gBAIJ,kBCfE,iBACA,cDiBF,iBACE,yBAEF,mBACE,mBAEF,SACE,uCAEF,yBACE,mBACE,0CAEF,gBACE,iBGjCJ,KACE,cACA,wBACA,4BACA,kBACA,6DACA,yBACA,eACA,iBACA,gBACA,kBACA,MDJoB,KCKpB,mBACA,qBACA,yBAEA,gBACE,kBACA,cAGF,wBACE,sBACA,yBAEF,yBACE,sBACA,yBC3BJ,4SASE,gBACA,UAEF,yDAEE,aAEF,+BAEE,yBACA,eACA,kBACA,iBACA,MFXuB,QEazB,yBAEE,eACA,8DAEF,+BAEE,UACA,4BChCF,gEACE,kBACA,kBACA,yBACA,eACA,iBACA,gBACA,kBACA,mBACA,qBACA,yBAEF,gCACE,6DACA,MHPoB,KGStB,qCACE,6BACA,gBACA,iBACA,MHXgB,QGalB,iCACE,yBACA,eACA,gBACA,MHjBgB,QIVlB,MLME,SACA,UACA,gBMTF,QACE,aACA,cACE,WACA,gBACA,kBACE,YAGJ,uBACE,YACA,YACA,YAIJ,0BACE,QACE,gBAGJ,yBACE,QACE,aACA,cACE,WAEF,uBACE,YAIN,yBACE,kBACE,cC9BF,yBADF,gBAEI,YACA,mBACA,8DAGF,oBACE,aACA,wBACE,YACA,gBACA,YACA,sBAIJ,sBPbA,SACA,UACA,gBOaE,gBACA,kBACA,UACA,gBACA,aACA,cAEA,yBACE,WACA,gBAEA,qCACE,kBAGF,4BACE,aAGF,2BACE,cACA,yBACA,MNpCK,QMqCL,YNzCU,KM0CV,UNzCQ,KM0CR,kBACA,0BACA,qBACA,gBACA,yBAGF,sGACE,WACA,yBACA,kBAEA,2HACE,WACA,cACA,WACA,YACA,kDACA,kBACA,MACA,OACA,UAGF,wHACE,WACA,cACA,WACA,YACA,kDACA,kBACA,SACA,WACA,UAIJ,oCACE,iBAEA,0CACE,YACA,WACA,gBACA,kBACA,MACA,WACA,YACA,kBAMV,2CACE,YPnGA,iBACA,cOqGA,uEACE,YPnGF,SACA,UACA,gBOoGE,6EACE,WACA,iBACA,WACA,4BAEA,mGACE,YAGF,uGACE,eAGF,iFACE,WACA,yBACA,eACA,iBACA,iBACA,MNxHc,KMyHd,qBACA,yBAEA,qFACE,eACA,kBACA,QACA,gBAIJ,uGACE,WACA,gBACA,YACA,kBAEA,mIACE,yBACA,kBACA,iBN1IG,KM2IH,YACA,6BACA,eACA,iBACA,MNnJG,QMqJL,qIACE,YACA,WAGJ,2GACE,eAKR,uBACE,YACA,eACA,6CACE,cACA,WACA,YACA,0BACA,4BACA,+BACA,yBACA,kBACA,+CACE,WACA,eAGJ,oCACE,YACA,wCACE,YAGJ,6CACE,yBACA,iBACA,2BACA,8BACA,YAEE,8DACE,iBACA,SAEA,2EACE,YACA,yFACE,YACA,WAEF,0FACE,aAIJ,6EACE,SAOV,qCACE,kBAEA,yCACE,cACA,YAGF,2CP9NA,SACA,UACA,gBO8NE,+CACE,cACA,yBACA,eACA,iBACA,MNpOO,QMqOP,qBACA,eACA,gCACA,yBAEF,2EACE,mBAIJ,2CACE,aACA,kBACA,wCACA,iBN/OS,KMgPT,iBACA,kBACA,aAGE,uDACE,aACA,6DACE,kBAIN,yEACE,kBACA,qFACE,mCACA,wCACA,kBACA,oBACA,cACA,oBACA,kCACA,gBACA,YACA,kBACA,QACA,SACA,iCACA,yBACA,oBAEF,mGACE,+BACA,uBAMR,uBACE,aACA,eACA,WACA,MACA,OACA,YACA,aACA,gCACA,2BACE,gBACA,kBACA,aACA,aACA,eACA,gBACA,gBAEA,4FACE,WAEF,uCACE,kBACA,wBAGF,oCACE,aAGF,0CACE,kBACA,gDACE,mCACA,wCACA,kBACA,oBACA,cACA,oBACA,kCACA,gBACA,YACA,kBACA,QACA,SACA,iCACA,yBAEF,uDACE,+BACA,uBAKR,mBACE,aACA,YACA,mBACA,yBACE,YACA,YACA,2BACE,YACA,UACA,mBACA,+BACE,YAIN,6CACE,YACA,aACA,YACA,+CACE,eACA,cACA,UACA,mBAKJ,gDACE,YACA,4BACA,oBACA,oBAGF,uDACE,gCACA,wBChYJ,4BACE,YAEF,oBACE,eACA,qCACA,gBACA,gCACA,YACA,cACA,kBACA,cACA,gBACA,kBACA,YACA,iBACA,oBAEA,2BACE,iBACA,eAGF,uDACE,YAGF,8BACE,cACA,SACA,kBACA,YACA,WAEA,iCACE,SAEA,oCACE,qBAEA,sCACE,iBACA,cACA,cACA,cACA,YACA,gBACA,iBAEA,4CACE,eC9CV,yBADF,WAEI,gBACA,kBACA,8BACE,WAIF,oCACE,oBACA,gBAIF,oCACE,kBACA,uDAEF,sBACE,YAGJ,kCACE,UACA,SAEF,gBACE,YAEF,iBACE,kBACA,YACA,yBAHF,iBAII,YAGF,qBACE,WACA,YACA,iBACA,uBAGF,uBACE,WAGF,qCACE,kBACA,SACA,OACA,QAEA,aAEA,mDTpDJ,SACA,UACA,gBSqDM,+DACE,qBACA,kBACA,6DACA,yBACA,eACA,iBACA,kBACA,MR7DY,KQ8DZ,qBACA,yBAIJ,gFACE,kBAEF,oFACE,6BACA,eACA,gBACA,cACA,MR3Ec,KQ4Ed,qBAEF,0CACE,eACA,iBAEF,yBACE,oFACE,cACA,eACA,kBAGJ,gDTtFJ,yBACA,gBACA,iBACA,sBACA,gBAQA,eAIA,MClBqB,KDmBrB,cACA,YACA,uBACA,gBACA,mBSmEM,MR3Fc,KSPtB,YAsBE,gCACA,mBAtBA,iBACE,yBACA,eACA,iBACA,cACA,gCACA,qBACA,yBACA,YAEF,6BACE,eAGF,uBACE,eAGF,wBACE,eAKJ,KACE,qBACA,WACA,4BACA,kBACA,wCACA,iBTrBW,KSsBX,mBAEA,gBACE,wBAEF,gBLine truncated
|
||||
{"version":3,"sourceRoot":"","sources":["../../resources/assets/sass/abstracts/_fonts.scss","../../resources/assets/sass/base/_clearfix.scss","../../resources/assets/sass/base/_container.scss","../../resources/assets/sass/abstracts/_mixin.scss","../../resources/assets/sass/abstracts/_variables.scss","../../resources/assets/sass/components/_button.scss","../../resources/assets/sass/components/_pretty_photo.scss","../../resources/assets/sass/components/_cookie.scss","../../resources/assets/sass/components/_list.scss","../../resources/assets/sass/components/_banners.scss","../../resources/assets/sass/components/_contact_form.scss","../../resources/assets/sass/components/_header.scss","../../resources/assets/sass/components/_menu.scss","../../resources/assets/sass/components/_now-playing.scss","../../resources/assets/sass/components/_main_news.scss","../../resources/assets/sass/components/_box.scss","../../resources/assets/sass/components/_blog.scss","../../resources/assets/sass/components/_sidebar.scss","../../resources/assets/sass/components/_radio_box.scss","../../resources/assets/sass/components/_contact_box.scss","../../resources/assets/sass/components/_featured.scss","../../resources/assets/sass/components/_podcast_items.scss","../../resources/assets/sass/layout/_home.scss","../../resources/assets/sass/layout/_news.scss","../../resources/assets/sass/components/_bread_crumb.scss","../../resources/assets/sass/components/_page_title.scss","../../resources/assets/sass/components/_post.scss","../../resources/assets/sass/components/_schedule.scss","../../resources/assets/sass/components/_page.scss","../../resources/assets/sass/components/_input.scss","../../resources/assets/sass/components/_podcast_item.scss","../../resources/assets/sass/components/_media.scss","../../resources/assets/sass/components/_footer.scss","../../resources/assets/sass/base/_base.scss"],"names":[],"mappings":"CAAQ,wGACA,0GACA,0LCFR,iBACE,cACA,WACA,gBCCA,SACA,UAKF,gBCPE,iBACA,cDQA,eAIA,iBEfa,QFYb,yBAHF,gBAII,gBAIJ,kBCfE,iBACA,cDiBF,yBACE,sCACE,iBEtBW,SFyBf,MACE,iBAEF,mBACE,mBAEF,SACE,uCAEF,yBACE,mBACE,0CAEF,gBACE,iBGtCJ,KFiEE,cACA,wBACA,kBACA,kBACA,6DACA,yBACA,eACA,iBACA,gBACA,kBACA,MCpEoB,KDqEpB,mBACA,qBACA,yBAEA,uBAEE,MC3EkB,KEPtB,4SASE,gBACA,UAEF,yDAEE,aAEF,+BAEE,yBACA,eACA,kBACA,iBACA,MFXuB,QEazB,yBAEE,eACA,8DAEF,+BAEE,UACA,4BChCF,gEACE,kBACA,kBACA,yBACA,eACA,iBACA,gBACA,kBACA,mBACA,qBACA,yBAEF,gCACE,6DACA,MHPoB,KGStB,qCACE,6BACA,gBACA,iBACA,MHXgB,QGalB,iCACE,yBACA,eACA,gBACA,MHjBgB,QIVlB,MLME,SACA,UACA,gBMTF,WACE,WACA,yBACA,eACA,gBACA,iBACA,kBACA,WCJA,0BACE,aACA,mBACA,gCACE,YAEF,mEACE,YAGJ,6BACE,gBACA,eAEF,uDPkDA,cACA,wBACA,kBACA,kBACA,6DACA,yBACA,eACA,iBACA,gBACA,kBACA,MCpEoB,KDqEpB,mBACA,qBACA,yBO7DE,kBACA,gBACA,eP6DF,2HAEE,MC3EkB,KOTtB,QACE,aACA,cACE,WACA,gBACA,kBACE,YAGJ,gCACE,YACA,YACA,YACA,gBAIJ,0BACE,QACE,gBAGJ,yBACE,QACE,aACA,cACE,WAEF,gCACE,YAIN,yBACE,kBACE,cC/BF,yBADF,gBAEI,YACA,8DAGF,oBACE,aACA,wBACE,YACA,gBACA,YACA,sBAIJ,sBTZA,SACA,UACA,gBSYE,gBACA,kBACA,UACA,gBACA,aACA,cAEA,yBACE,WACA,gBAEA,qCACE,kBAGF,4BACE,aAGF,2BACE,cACA,yBACA,MRnCK,QQoCL,YRxCU,KQyCV,URxCQ,KQyCR,kBACA,0BACA,qBACA,gBACA,yBAGF,sGACE,WACA,yBACA,kBAEA,2HACE,WACA,cACA,WACA,YACA,oDACA,4CACA,sBACA,kBACA,MACA,OACA,UAGF,wHACE,WACA,cACA,WACA,YACA,oDACA,4CACA,sBACA,kBACA,SACA,WACA,UAIJ,oCACE,iBAEA,0CACE,YACA,WACA,gBACA,kBACA,MACA,WACA,YACA,kBAMV,2CACE,YTtGA,iBACA,cSuGA,gBAEA,uEACE,YTvGF,SACA,UACA,gBSwGE,6EACE,WACA,iBACA,WACA,4CACA,cACA,YAEA,iGACE,wBACA,gBAGF,2FACE,YACA,cAOF,iFACE,WACA,yBACA,eACA,iBACA,iBACA,MRpIc,KQqId,qBACA,yBACA,aAEA,2FACE,gBACA,cACA,YAGF,6GACE,kBACA,kBAGF,yFACE,KRrJY,KQsJZ,YACA,WACA,kBACA,YACA,QAGF,qFACE,eACA,kBACA,QACA,gBAIJ,uGACE,WACA,gBACA,YACA,kBAEA,mIACE,yBACA,kBACA,iBR3KG,KQ4KH,YACA,6BACA,eACA,iBACA,MRpLG,QQsLL,qIACE,YACA,WAGJ,2GACE,eAKR,uBACE,YACA,eACA,yBACA,6CACE,cACA,WACA,YACA,0BACA,kBACA,+CACE,WACA,eAGJ,oCACE,YACA,wCACE,YAGJ,6CACE,yBACA,iBACA,2BACA,8BACA,YAEE,8DACE,eACA,SAEA,8EACE,kBAGA,oEACE,gBAIJ,2EACE,YACA,yFACE,YACA,WAEF,0FACE,aAIJ,6EACE,SAOV,qCACE,kBAEA,yCACE,cACA,YAGF,2CTtQA,SACA,UACA,gBSsQE,+CACE,cACA,yBACA,eACA,iBACA,MR5QO,QQ6QP,qBACA,eACA,gCACA,yBAEF,2EACE,mBAIJ,2CACE,aACA,kBACA,wCACA,iBRvRS,KQwRT,iBACA,kBACA,aAGE,uDACE,aACA,6DACE,kBAIN,yEACE,kBACA,qFACE,mCACA,wCACA,kBACA,oBACA,cACA,oBACA,kCACA,gBACA,YACA,kBACA,QACA,SACA,iCACA,yBACA,oBAEF,mGACE,+BACA,uBAMR,uBACE,aACA,eACA,WACA,MACA,OACA,YACA,aACA,gCACA,2BACE,gBACA,kBACA,aACA,aACA,eACA,gBACA,kBACA,gBAEA,4FACE,WAEF,uCACE,kBACA,wBAGF,oCACE,aAGF,0CACE,kBACA,gDACE,mCACA,wCACA,kBACA,oBACA,cACA,oBACA,kCACA,gBACA,YACA,kBACA,QACA,SACA,iCACA,yBAEF,uDACE,+BACA,uBAKR,mBACE,aACA,YACA,mBACA,yBACE,YACA,YACA,2BACE,YACA,UACA,mBACA,+BACE,YAIN,6CACE,YACA,aACA,YACA,+CACE,eACA,cACA,UACA,mBAKJ,gDACE,YACA,4BACA,oBACA,oBAGF,uDACE,gCACA,wBAIJ,QACE,YACA,aAKE,yBACE,WRpbS,QQqbT,aRrbS,QQ2bT,4BACE,WR5bO,QQgcP,yPACE,iBRjcK,QQscP,2CACE,WRvcK,QSDf,4BACE,YAEF,oBACE,eACA,qCACA,gBACA,gCACA,YACA,cACA,kBACA,cACA,gBACA,kBACA,YACA,iBACA,oBAEA,2BACE,iBACA,eAGF,uDACE,YAGF,8BACE,cACA,SACA,kBACA,YACA,WAEA,iCACE,SAEALine truncated
|
||||
|
Before Width: | Height: | Size: 944 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 65 KiB |
@@ -0,0 +1 @@
|
||||
<svg id="Layer_1" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1"><path d="m40.873 54.653h72.749v-36.653a12 12 0 0 1 24 0v36.653h106.378v-36.653a12 12 0 0 1 24 0v36.653h106.378v-36.653a12 12 0 0 1 24 0v36.653h72.749a28.958 28.958 0 0 1 28.873 28.873v81.25h-488v-81.25a28.958 28.958 0 0 1 28.873-28.873zm72.749 0v36.653a12 12 0 0 0 24 0v-36.653zm130.378 0v36.653a12 12 0 0 0 24 0v-36.653zm130.378 0v36.653a12 12 0 0 0 24 0v-36.653zm-85.24 186.469a12 12 0 0 1 16.969 16.968l-55.5 55.5a12 12 0 0 1 -16.969 0l-27.748-27.748a12 12 0 0 1 16.969-16.969l19.264 19.264 47.012-47.012zm-148.879 0a12 12 0 0 1 16.968 16.968l-55.5 55.5a12 12 0 0 1 -16.969 0l-27.744-27.751a12 12 0 0 1 16.969-16.969l19.264 19.264zm223 124.551h83.241a12 12 0 0 1 12 12v55.5a12 12 0 0 1 -12 12h-83.243a12 12 0 0 1 -12-12v-55.5a12 12 0 0 1 12-12zm71.245 24h-59.247v31.5h59.243v-31.5zm-220.124-24h83.245a12 12 0 0 1 12 12v55.5a12 12 0 0 1 -12 12h-83.247a12 12 0 0 1 -12-12v-55.5a12 12 0 0 1 12-12zm71.245 24h-59.247v31.5h59.245v-31.5zm-220.125-24h83.245a12 12 0 0 1 12 12v55.5a12 12 0 0 1 -12 12h-83.245a12 12 0 0 1 -12-12v-55.5a12 12 0 0 1 12-12zm71.245 24h-59.245v31.5h59.245zm226.512-152.067h83.243a12 12 0 0 1 12 12v55.5a12 12 0 0 1 -12 12h-83.243a12 12 0 0 1 -12-12v-55.5a12 12 0 0 1 12-12zm71.245 24h-59.245v31.5h59.243v-31.5zm65.5-72.83h-488.002v288.351a28.958 28.958 0 0 0 28.873 28.873h430.254a28.958 28.958 0 0 0 28.873-28.873z" fill-rule="evenodd"/></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.0816 24H22.8C23.4624 24 24 23.4624 24 22.8V1.2C24 0.5376 23.4624 0 22.8 0H15.6C14.9376 0 14.4 0.5376 14.4 1.2V4.8L11.1696 0.9336C10.572 0.336 9.7632 0 8.9184 0H1.2C0.5376 0 0 0.5376 0 1.2V22.8C0 23.4624 0.5376 24 1.2 24H8.4C9.0624 24 9.6 23.4624 9.6 22.8V19.2L12.8304 23.0664C13.428 23.664 14.2368 24 15.0816 24Z" fill="url(#paint0_linear_378_19431)"/>
|
||||
<path d="M14.4025 4.80005V9.60005H9.59767V5.52005C9.59767 5.12165 9.27607 4.80005 8.87767 4.80005H5.04007C4.64167 4.80005 4.32007 5.12165 4.32007 5.52005V18.48C4.32007 18.8784 4.64167 19.2 5.04007 19.2H9.59767V14.4H14.4025V18.48C14.4025 18.8784 14.7241 19.2 15.1225 19.2H18.9601C19.3585 19.2 19.6801 18.8784 19.6801 18.48V5.52005C19.6801 5.12165 19.3585 4.80005 18.9601 4.80005H14.4025Z" fill="white"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_378_19431" x1="0" y1="12" x2="24" y2="12" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#0017A0"/>
|
||||
<stop offset="1" stop-color="#41A5F7"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1 @@
|
||||
RewriteEngine Off
|
||||
@@ -0,0 +1 @@
|
||||
RewriteEngine Off
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
include("../../connect.php");
|
||||
if ( (($_POST['fullname']!='')) &&
|
||||
(($_POST['email']!='')) &&
|
||||
(($_POST['phonefixed']!='')) &&
|
||||
(($_POST['phonemobile']!='')) &&
|
||||
(($_POST['age']!='')) ) {
|
||||
mysql_query("insert into actiedeelnemers(fullname, email, phonehome, phonemobile, age, ip) values ('".addslashes($_POST['fullname'])."','".addslashes($_POST['email'])."','".addslashes($_POST['phonefixed'])."','".addslashes($_POST['phonemobile'])."','".addslashes($_POST['age'])."','".$_SERVER[REMOTE_ADDR]."')");
|
||||
echo "Bedankt voor je deelname! Als je gewonnen hebt bellen we je op de dag van de trekkertrek op.";
|
||||
echo "<br>";
|
||||
echo "<a href=\"/\">terug naar de website</a>";
|
||||
} else {
|
||||
echo "Niet alle velden zijn ingevuld. Probeer het opnieuw.";
|
||||
}
|
||||
?>
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 34 KiB |
@@ -0,0 +1,97 @@
|
||||
body{
|
||||
background-color: #30629a;
|
||||
}
|
||||
p{
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
text-align: center;
|
||||
margin: 30px 0px;
|
||||
}
|
||||
a{
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-weight: 300;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
div#single-song-player{
|
||||
width: 320px;
|
||||
height: 120px;
|
||||
margin-top: 100px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 200px;
|
||||
}
|
||||
div#top{
|
||||
padding: 20px 25px;
|
||||
background-color: #ffffff;
|
||||
width: 270px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
div#song-information-container{
|
||||
float: left;
|
||||
}
|
||||
div#song-action-container{
|
||||
float: right;
|
||||
}
|
||||
div#bottom-container{
|
||||
width: 320px;
|
||||
text-align: center;
|
||||
margin-top: -35px;
|
||||
}
|
||||
div#amplitude-song-time-visualization{
|
||||
background-color: #fff;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
width: 320px;
|
||||
height: 45px;
|
||||
}
|
||||
div#amplitude-song-time-visualization-status{
|
||||
background-color: #cddff1;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
height: 45px;
|
||||
}
|
||||
span#song-timing{
|
||||
color: #41557d;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-weight: 300;
|
||||
font-size: 14px;
|
||||
}
|
||||
div.clear{
|
||||
clear: both;
|
||||
}
|
||||
#amplitude-play-pause{
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin-top: 7px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.amplitude-paused{
|
||||
background-image: url('../images/blue-play.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.amplitude-playing{
|
||||
background-image: url('../images/blue-pause.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
#amplitude-now-playing-artist{
|
||||
color: #45587f;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-weight: 500;
|
||||
font-size: 18px;
|
||||
}
|
||||
#amplitude-now-playing-album{
|
||||
color: #7b7b7b;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-weight: 500;
|
||||
font-size: 12px;
|
||||
}
|
||||
#amplitude-now-playing-title{
|
||||
color: #45587f;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
news
|
||||
|
After Width: | Height: | Size: 43 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 155 B |
|
After Width: | Height: | Size: 157 B |
|
After Width: | Height: | Size: 159 B |
|
After Width: | Height: | Size: 164 B |
|
After Width: | Height: | Size: 809 B |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 145 B |
|
After Width: | Height: | Size: 62 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 781 B |
|
After Width: | Height: | Size: 733 B |