vers. 2.5.0
0
.gitignore
vendored
Normal file → Executable file
6
config/ajaxModule.inc.php
Normal file → Executable file
@@ -35,6 +35,9 @@ if ($is_ajax) {
|
|||||||
include './pages/page/404.php';
|
include './pages/page/404.php';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'podcast':
|
||||||
|
include './pages/page/podcast.php';
|
||||||
|
break;
|
||||||
case 'page':
|
case 'page':
|
||||||
switch ($param) {
|
switch ($param) {
|
||||||
case 'about':
|
case 'about':
|
||||||
@@ -46,9 +49,6 @@ if ($is_ajax) {
|
|||||||
case 'copyright':
|
case 'copyright':
|
||||||
include './pages/page/copyright.php';
|
include './pages/page/copyright.php';
|
||||||
break;
|
break;
|
||||||
case 'addradio':
|
|
||||||
include './pages/page/addradio.php';
|
|
||||||
break;
|
|
||||||
case 'termini-condizioni':
|
case 'termini-condizioni':
|
||||||
include './pages/page/terminicondizioni.php';
|
include './pages/page/terminicondizioni.php';
|
||||||
break;
|
break;
|
||||||
|
|||||||
0
config/config.php
Normal file → Executable file
0
config/getBasePath.inc.php
Normal file → Executable file
4
config/getPage.inc.php
Normal file → Executable file
@@ -5,8 +5,8 @@ header('Content-Type: text/html; charset=UTF-8');
|
|||||||
// File: config/getPage.inc.php
|
// File: config/getPage.inc.php
|
||||||
|
|
||||||
// Whitelist delle pagine valide
|
// Whitelist delle pagine valide
|
||||||
$validPages = ['home', 'radio', 'tv', 'play', 'playtv', 'page'];
|
$validPages = ['home', 'radio', 'tv', 'play', 'playtv', 'page', 'podcast'];
|
||||||
$validSubPages = ['about', 'contact', 'copyright', 'addradio', 'termini-condizioni', 'policy-privacy', 'changelog'];
|
$validSubPages = ['about', 'contact', 'copyright', 'termini-condizioni', 'policy-privacy', 'changelog'];
|
||||||
|
|
||||||
// Rileva se l'utente sta usando un dispositivo mobile
|
// Rileva se l'utente sta usando un dispositivo mobile
|
||||||
function isMobile() {
|
function isMobile() {
|
||||||
|
|||||||
0
config/getStation.inc.php
Normal file → Executable file
0
css/animation.css
Normal file → Executable file
0
css/bootstrap.css
vendored
Normal file → Executable file
0
css/fonts/OFL.txt
Normal file → Executable file
0
css/fonts/Poppins-Black.ttf
Normal file → Executable file
0
css/fonts/Poppins-BlackItalic.ttf
Normal file → Executable file
0
css/fonts/Poppins-Bold.ttf
Normal file → Executable file
0
css/fonts/Poppins-BoldItalic.ttf
Normal file → Executable file
0
css/fonts/Poppins-ExtraBold.ttf
Normal file → Executable file
0
css/fonts/Poppins-ExtraBoldItalic.ttf
Normal file → Executable file
0
css/fonts/Poppins-ExtraLight.ttf
Normal file → Executable file
0
css/fonts/Poppins-ExtraLightItalic.ttf
Normal file → Executable file
0
css/fonts/Poppins-Italic.ttf
Normal file → Executable file
0
css/fonts/Poppins-Light.ttf
Normal file → Executable file
0
css/fonts/Poppins-LightItalic.ttf
Normal file → Executable file
0
css/fonts/Poppins-Medium.ttf
Normal file → Executable file
0
css/fonts/Poppins-MediumItalic.ttf
Normal file → Executable file
0
css/fonts/Poppins-Regular.ttf
Normal file → Executable file
0
css/fonts/Poppins-SemiBold.ttf
Normal file → Executable file
0
css/fonts/Poppins-SemiBoldItalic.ttf
Normal file → Executable file
0
css/fonts/Poppins-Thin.ttf
Normal file → Executable file
0
css/fonts/Poppins-ThinItalic.ttf
Normal file → Executable file
0
css/style.css
Normal file → Executable file
10
data/changelog.xml
Normal file → Executable file
@@ -1,6 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<changelog>
|
<changelog>
|
||||||
|
|
||||||
|
<version>
|
||||||
|
<number>2.5.0</number>
|
||||||
|
<logs>
|
||||||
|
<log>Aggiunta la pagina per la visualizzazione dei podcast.</log>
|
||||||
|
<log>Rimossa la pagina per l'aggiunta delle nuove emittenti radiofoniche e televisive.</log>
|
||||||
|
<log>Correzione e bugfix di problematiche varie.</log>
|
||||||
|
</logs>
|
||||||
|
</version>
|
||||||
|
|
||||||
<version>
|
<version>
|
||||||
<number>2.4.2</number>
|
<number>2.4.2</number>
|
||||||
<logs>
|
<logs>
|
||||||
|
|||||||
0
data/radio.xml
Normal file → Executable file
0
data/tv.xml
Normal file → Executable file
0
img/RpiGroupPlay.png
Normal file → Executable file
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
0
img/RpiGroupPlay.svg
Normal file → Executable file
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
0
img/RpiGroupPlayWHITE.png
Normal file → Executable file
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
0
img/RpiGroupPlayWhite.svg
Normal file → Executable file
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
0
img/articolo.png
Normal file → Executable file
|
Before Width: | Height: | Size: 750 KiB After Width: | Height: | Size: 750 KiB |
0
img/christmascampagna.png
Normal file → Executable file
|
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 2.1 MiB |
0
img/christmaseboli.png
Normal file → Executable file
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
0
img/icons/icon-128x128.png
Normal file → Executable file
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
0
img/icons/icon-144x144.png
Normal file → Executable file
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
0
img/icons/icon-152x152.png
Normal file → Executable file
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
0
img/icons/icon-192x192.png
Normal file → Executable file
0
img/icons/icon-384x384.png
Normal file → Executable file
0
img/icons/icon-512x512.png
Normal file → Executable file
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
0
img/icons/icon-72x72.png
Normal file → Executable file
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
0
img/icons/icon-96x96.png
Normal file → Executable file
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
0
img/installapp1.jpeg
Normal file → Executable file
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
0
img/installapp2.jpeg
Normal file → Executable file
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
0
img/logoapp.png
Normal file → Executable file
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
0
img/logoapp_512.png
Normal file → Executable file
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
0
img/radio.png
Normal file → Executable file
|
Before Width: | Height: | Size: 259 KiB After Width: | Height: | Size: 259 KiB |
0
img/tv.png
Normal file → Executable file
|
Before Width: | Height: | Size: 402 KiB After Width: | Height: | Size: 402 KiB |
57
js/app.js
Normal file → Executable file
@@ -980,8 +980,65 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
if (currentPage === 'page/contact') {
|
if (currentPage === 'page/contact') {
|
||||||
setTimeout(() => initializeContactForm(), 100);
|
setTimeout(() => initializeContactForm(), 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (currentPage === 'podcast') {
|
||||||
|
// Reset visualizzazione podcast quando si cambia pagina e si torna
|
||||||
|
if (typeof window.closePodcast === 'function') {
|
||||||
|
window.closePodcast();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gestione Podcast (Global Functions)
|
||||||
|
*/
|
||||||
|
window.openPodcast = function (url, title) {
|
||||||
|
console.log('Apertura podcast:', title, url);
|
||||||
|
const list = document.getElementById('podcast-list');
|
||||||
|
const detail = document.getElementById('podcast-detail');
|
||||||
|
const iframe = document.getElementById('podcast-iframe');
|
||||||
|
const homeNav = document.getElementById('home-navigation');
|
||||||
|
const scrollContainer = document.querySelector('main');
|
||||||
|
|
||||||
|
if (!list || !detail || !iframe) {
|
||||||
|
console.error('Elementi podcast non trovati nel DOM');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Caricamento iframe
|
||||||
|
iframe.src = url;
|
||||||
|
|
||||||
|
// Cambio vista
|
||||||
|
list.style.display = 'none';
|
||||||
|
detail.style.display = 'block';
|
||||||
|
if (homeNav) homeNav.style.display = 'none';
|
||||||
|
|
||||||
|
// Scroll in alto
|
||||||
|
if (scrollContainer) {
|
||||||
|
scrollContainer.scrollTo({ top: 0, behavior: 'smooth' });
|
||||||
|
} else {
|
||||||
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.closePodcast = function () {
|
||||||
|
console.log('Chiusura podcast');
|
||||||
|
const list = document.getElementById('podcast-list');
|
||||||
|
const detail = document.getElementById('podcast-detail');
|
||||||
|
const iframe = document.getElementById('podcast-iframe');
|
||||||
|
const homeNav = document.getElementById('home-navigation');
|
||||||
|
|
||||||
|
if (!list || !detail || !iframe) return;
|
||||||
|
|
||||||
|
// Svuota iframe per fermare audio/video
|
||||||
|
iframe.src = 'about:blank';
|
||||||
|
|
||||||
|
// Cambio vista
|
||||||
|
list.style.display = 'block';
|
||||||
|
detail.style.display = 'none';
|
||||||
|
if (homeNav) homeNav.style.display = 'block';
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inizializzazione principale
|
* Inizializzazione principale
|
||||||
*/
|
*/
|
||||||
|
|||||||
0
manifest.json
Normal file → Executable file
0
pages/desktop.php
Normal file → Executable file
8
pages/mobile.php
Normal file → Executable file
@@ -11,7 +11,7 @@
|
|||||||
<a href="<?php echo $base_path; ?>/" data-page="home" class="navLink <?php echo $page == 'home' ? 'active' : ''; ?>">Home</a>
|
<a href="<?php echo $base_path; ?>/" data-page="home" class="navLink <?php echo $page == 'home' ? 'active' : ''; ?>">Home</a>
|
||||||
<a href="<?php echo $base_path; ?>/radio" data-page="radio" class="navLink <?php echo ($page == 'radio' || $page == 'play') ? 'active' : ''; ?>">Radio</a>
|
<a href="<?php echo $base_path; ?>/radio" data-page="radio" class="navLink <?php echo ($page == 'radio' || $page == 'play') ? 'active' : ''; ?>">Radio</a>
|
||||||
<a href="<?php echo $base_path; ?>/tv" data-page="tv" class="navLink <?php echo ($page == 'tv' || $page == 'playtv') ? 'active' : ''; ?>">TV</a>
|
<a href="<?php echo $base_path; ?>/tv" data-page="tv" class="navLink <?php echo ($page == 'tv' || $page == 'playtv') ? 'active' : ''; ?>">TV</a>
|
||||||
<a href="<?php echo $base_path; ?>/page/addradio" data-page="page/addradio" class="navLink <?php echo ($page == 'page' && $param == 'addradio') ? 'active' : ''; ?>">Add Radio</a>
|
<a href="<?php echo $base_path; ?>/podcast" data-page="podcast" class="navLink <?php echo ($page == 'page' && $param == 'addradio') ? 'active' : ''; ?>">Podcast</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -56,6 +56,9 @@
|
|||||||
include './pages/page/home.php';
|
include './pages/page/home.php';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'podcast':
|
||||||
|
include './pages/page/podcast.php';
|
||||||
|
break;
|
||||||
case 'page':
|
case 'page':
|
||||||
if (!empty($param)) {
|
if (!empty($param)) {
|
||||||
switch ($param) {
|
switch ($param) {
|
||||||
@@ -65,9 +68,6 @@
|
|||||||
case 'copyright':
|
case 'copyright':
|
||||||
include './pages/page/copyright.php';
|
include './pages/page/copyright.php';
|
||||||
break;
|
break;
|
||||||
case 'addradio':
|
|
||||||
include './pages/page/addradio.php';
|
|
||||||
break;
|
|
||||||
case 'contact':
|
case 'contact':
|
||||||
include './pages/page/contact.php';
|
include './pages/page/contact.php';
|
||||||
break;
|
break;
|
||||||
|
|||||||
0
pages/page/404.php
Normal file → Executable file
0
pages/page/about.php
Normal file → Executable file
@@ -1,17 +0,0 @@
|
|||||||
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
|
|
||||||
|
|
||||||
<h1 class="titlePage">Aggiungi la tua radio</h1>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="tec">
|
|
||||||
<p>Al momento, il modulo è temporaneamente chiuso</p>
|
|
||||||
<p>Ti invitiamo a controllare più tardi oppure, attendi l'uscita di un prossimo aggiornamento!</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<a href="<?php echo $base_path; ?>/home" data-page="home" class="linkBox mt-3">
|
|
||||||
<div class="clickBox mt-5 mb-4">
|
|
||||||
<svg class="w-6 h-6 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14M5 12l4-4m-4 4 4 4"/></svg>
|
|
||||||
Torna alla Home
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
0
pages/page/changelog.php
Normal file → Executable file
0
pages/page/contact.php
Normal file → Executable file
0
pages/page/copyright.php
Normal file → Executable file
@@ -20,6 +20,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<a href="<?php echo $base_path; ?>/podcast" data-page="podcast" class="linkBox">
|
||||||
|
<div class="clickBox Squared">
|
||||||
|
<p class="m-0 p-0">PODCAST</p>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@@ -63,13 +70,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
|
||||||
<a href="<?php echo $base_path; ?>/page/addradio" data-page="page/addradio" class="linkBox">
|
|
||||||
<div class="clickBox p-2">
|
|
||||||
Aggiungi la tua radio
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<a href="<?php echo $base_path; ?>/page/about" data-page="page/about" class="linkBox">
|
<a href="<?php echo $base_path; ?>/page/about" data-page="page/about" class="linkBox">
|
||||||
<div class="clickBox">
|
<div class="clickBox">
|
||||||
|
|||||||