vers. 2.1.1

This commit is contained in:
2026-01-28 18:59:25 +01:00
parent 719d750a7a
commit 6b15afb9da
111 changed files with 14657 additions and 14012 deletions

View File

@@ -1,91 +1,94 @@
<div id="proradio-secondary-header" class="proradio-secondaryhead proradio-primary" style="border-bottom: solid 3px #3849a8;">
<style>
.rpigroup-topbar {
background: #2a367b;
padding: 0 40px;
display: flex;
align-items: center;
height: 55px;
font-size: 0.8rem !important;
font-weight: 700;
font-family: 'Poppins';
letter-spacing: 0;
}
.rpigroup-topbar>a>.logo {
margin-right: 20px;
height: 40px;
display: flex;
border-right: solid 2px #3746a1;
padding-right: 20px;
}
.rpigroup-topbar>a {
text-decoration: none;
color: white;
}
.rpigroup-topbar > .nolink {
margin-right: 15px;
font-weight: 600;
}
.rpigroup-topbar>a>.link {
padding: 19px 25px 16px;
}
.rpigroup-topbar>a>.link:hover {
background: #36449c;
border-bottom: 3px solid #36449c;
}
.rpigroup-topbar>a>.active {
background: #00000044;
border-bottom: 3px solid #f7b932;
}
.rpigroup-topbar>a>.active:hover {
background: #36449c;
border-bottom: 3px solid #f7b932;
}
</style>
<div class="rpigroup-topbar">
<a href="https://www.rpigroup.it/" target="_blank">
<img src="https://www.rpigroup.it/wp-content/uploads/2025/01/RpiGroup-Play-WHITE-NEW-e1737078263620.png" alt="logoRPIGroup" class="logo">
</a>
<span class="nolink">Vai al sito di:</span>
<a href="https://www.radiocitta105.it" target="_blank"><span class="link">Radio Città 105</span></a>
<a href="https://www.radiodiffusionelibera.com" target="_blank"><span class="link">Radio DiffusioneLibera</span></a>
<a href="https://www.co-municare.it" target="_blank"><span class="link">Co-Municare.it</span></a>
<a href="https://app.rpigroup.it" target="_blank"><span class="link active">RPIGroup Play</span></a>
</div>
</div>
<div class="dbox dbox-extra">
<img src="<?=$base_path?>/img/RpiGroupPlayWHITE.png" alt="Logo" style="width: 315px;">
<p class="subtitle"><i>Un nuovo modo di ascoltare musica</i></p>
<hr>
<?php
switch ($page){
case 'play':
if (!empty($param)) {
$stationId = (int)$param;
$station = getRadioStation($stationId);
echo 'Ascolta ora <b>' . htmlspecialchars($station->name) . '</b> su RPIGroup Play!';
}else{
echo 'Ascolta ora le tue radio preferite!';
}
break;
default:
echo 'Ascolta le nostre emittenti con la nostra nuova app disegnata per smartphone (e non...)';
}
?>
<hr>
<a class="dbtn" id="openAppBtn" href="<?php echo $base_path . '/?app=true&redirect=' . urlencode($page . ($param ? '/' . $param : '')); ?>">ENTRA SU RPIGRPUP PLAY</a>
</div>
<div class="dfooter">
App powered by A.S.V. Studios APPS • Versione App: <?php echo $version_app; ?>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<div id="proradio-secondary-header" class="proradio-secondaryhead proradio-primary" style="border-bottom: solid 3px #3849a8;">
<style>
.rpigroup-topbar {
background: #2a367b;
padding: 0 40px;
display: flex;
align-items: center;
height: 55px;
font-size: 0.8rem !important;
font-weight: 700;
font-family: 'Poppins';
letter-spacing: 0;
}
.rpigroup-topbar>a>.logo {
margin-right: 20px;
height: 40px;
display: flex;
border-right: solid 2px #3746a1;
padding-right: 20px;
}
.rpigroup-topbar>a {
text-decoration: none;
color: white;
}
.rpigroup-topbar > .nolink {
margin-right: 15px;
font-weight: 600;
}
.rpigroup-topbar>a>.link {
padding: 19px 25px 16px;
}
.rpigroup-topbar>a>.link:hover {
background: #36449c;
border-bottom: 3px solid #36449c;
}
.rpigroup-topbar>a>.active {
background: #00000044;
border-bottom: 3px solid #f7b932;
}
.rpigroup-topbar>a>.active:hover {
background: #36449c;
border-bottom: 3px solid #f7b932;
}
</style>
<div class="rpigroup-topbar">
<a href="https://www.rpigroup.it/" target="_blank">
<img src="https://www.rpigroup.it/wp-content/uploads/2025/01/RpiGroup-Play-WHITE-NEW-e1737078263620.png" alt="logoRPIGroup" class="logo">
</a>
<span class="nolink">Vai al sito di:</span>
<a href="https://www.radiocitta105.it" target="_blank"><span class="link">Radio Città 105</span></a>
<a href="https://www.radiodiffusionelibera.com" target="_blank"><span class="link">Radio DiffusioneLibera</span></a>
<a href="https://www.co-municare.it" target="_blank"><span class="link">Co-Municare.it</span></a>
<a href="https://www.ineboli.it" target="_blank"><span class="link">InEboli</span></a>
<a href="https://app.rpigroup.it" target="_blank"><span class="link active">RPIGroup Play</span></a>
</div>
</div>
<div class="dbox dbox-extra">
<img src="<?=$base_path?>/img/RpiGroupPlayWHITE.png" alt="Logo" style="width: 315px;">
<p class="subtitle"><i>Un nuovo modo di ascoltare musica</i></p>
<hr>
<?php
switch ($page){
case 'play':
if (!empty($param)) {
$stationId = (int)$param;
$station = getRadioStation($stationId);
echo 'Ascolta ora <b>' . htmlspecialchars($station->name) . '</b> su RPIGroup Play!';
}else{
echo 'Ascolta ora le tue radio preferite!';
}
break;
default:
echo 'Ascolta le nostre emittenti con la nostra nuova app disegnata per smartphone (e non...)';
}
?>
<hr>
<a class="dbtn" id="openAppBtn" href="<?php echo $base_path . '/?app=true&redirect=' . urlencode($page . ($param ? '/' . $param : '')); ?>">ENTRA SU RPIGRPUP PLAY</a>
</div>
<div class="dfooter">
App powered by A.S.V. Studios APPS • Versione App: <?php echo $version_app; ?>
</div>

Binary file not shown.

View File

@@ -1,98 +1,103 @@
<div class="header">
<div class="logo-section">
<img src="<?=$base_path?>/img/RpiGroupPlayWHITE.png" alt="Logo">
</div>
<div class="menu-section">
<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; ?>/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>
</div>
</div>
<main class="container" id="content">
<?php
// Carica il contenuto iniziale in base all'URL
switch ($page) {
case 'home':
include './pages/page/home.php';
break;
case 'radio':
include './pages/page/radio.php';
break;
case 'tv':
include './pages/page/tv.php';
break;
case 'play':
if (!empty($param)) {
$stationId = (int)$param;
$station = getRadioStation($stationId);
if ($station !== null) {
include './pages/page/player.php';
} else {
include './pages/page/404.php';
}
} else {
// Se non c'è ID, torna alla home
include './pages/page/home.php';
}
break;
case 'playtv':
if (!empty($param)) {
$stationId = (int)$param;
$station = getTVStation($stationId);
if ($station !== null) {
include './pages/page/player_tv.php';
} else {
include './pages/page/404.php';
}
} else {
// Se non c'è ID, torna alla home
include './pages/page/home.php';
}
break;
case 'page':
if (!empty($param)) {
switch ($param) {
case 'about':
include './pages/page/about.php';
break;
case 'copyright':
include './pages/page/copyright.php';
break;
case 'addradio':
include './pages/page/addradio.php';
break;
case 'contact':
include './pages/page/contact.php';
break;
case 'termini-condizioni':
include './pages/page/terminicondizioni.php';
break;
case 'policy-privacy':
include './pages/page/policyprivacy.php';
break;
case 'changelog':
include './pages/page/changelog.php';
break;
default:
include './pages/page/404.php';
}
} else {
include './pages/page/404.php';
}
break;
default:
include './pages/page/home.php';
}
?>
</main>
<div class="footer">
<div class="menu-section">
<a href="<?php echo $base_path; ?>/page/termini-condizioni" data-page="page/termini-condizioni" class="navLink">Termini e Condizioni</a> •
<a href="<?php echo $base_path; ?>/page/policy-privacy" data-page="page/policy-privacy" class="navLink">Policy Privacy</a> •
<a href="<?php echo $base_path; ?>/page/changelog" data-page="page/changelog" class="navLink">Changelog</a>
</div>
<div class="copyright-section" <?php if($is_mobile){ ?> style="padding: 10px 0 25px;" <? } ?>>&copy; 2025 RPIGroup • Versione: <?php echo $version_app; ?></div>
<?php
// Debug: verifica valori delle variabili (rimuovi dopo aver risolto)
// echo "<!-- DEBUG - Page: " . htmlspecialchars($page) . " | Param: " . htmlspecialchars($param) . " -->\n";
?>
<div class="header">
<div class="logo-section">
<img src="<?=$base_path?>/img/RpiGroupPlayWHITE.png" alt="Logo">
</div>
<div class="menu-section">
<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; ?>/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>
</div>
</div>
<main class="container" id="content">
<?php
// Carica il contenuto iniziale in base all'URL
switch ($page) {
case 'home':
include './pages/page/home.php';
break;
case 'radio':
include './pages/page/radio.php';
break;
case 'tv':
include './pages/page/tv.php';
break;
case 'play':
if (!empty($param)) {
$stationId = (int)$param;
$station = getRadioStation($stationId);
if ($station !== null) {
include './pages/page/player.php';
} else {
include './pages/page/404.php';
}
} else {
// Se non c'è ID, torna alla home
include './pages/page/home.php';
}
break;
case 'playtv':
if (!empty($param)) {
$stationId = (int)$param;
$station = getTVStation($stationId);
if ($station !== null) {
include './pages/page/player_tv.php';
} else {
include './pages/page/404.php';
}
} else {
// Se non c'è ID, torna alla home
include './pages/page/home.php';
}
break;
case 'page':
if (!empty($param)) {
switch ($param) {
case 'about':
include './pages/page/about.php';
break;
case 'copyright':
include './pages/page/copyright.php';
break;
case 'addradio':
include './pages/page/addradio.php';
break;
case 'contact':
include './pages/page/contact.php';
break;
case 'termini-condizioni':
include './pages/page/terminicondizioni.php';
break;
case 'policy-privacy':
include './pages/page/policyprivacy.php';
break;
case 'changelog':
include './pages/page/changelog.php';
break;
default:
include './pages/page/404.php';
}
} else {
include './pages/page/404.php';
}
break;
default:
include './pages/page/home.php';
}
?>
</main>
<div class="footer">
<div class="menu-section">
<a href="<?php echo $base_path; ?>/page/termini-condizioni" data-page="page/termini-condizioni" class="navLink">Termini e Condizioni</a> •
<a href="<?php echo $base_path; ?>/page/policy-privacy" data-page="page/policy-privacy" class="navLink">Policy Privacy</a> •
<a href="<?php echo $base_path; ?>/page/changelog" data-page="page/changelog" class="navLink">Changelog</a>
</div>
<div class="copyright-section" <?php if($is_mobile){ ?> style="padding: 10px 0 25px;" <?php } ?>>© 2025 RPIGroup • Versione: <?php echo $version_app; ?></div>
</div>

Binary file not shown.

View File

@@ -1,10 +1,12 @@
<h1 class="titlePage">Pagina non trovata</h1>
<p class="text-center">La pagina che hai provato a cercare non esiste o non è disponibile.</p>
<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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<h1 class="titlePage">Pagina non trovata</h1>
<p class="text-center">La pagina che hai provato a cercare non esiste o non è disponibile.</p>
<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>

Binary file not shown.

View File

@@ -1,14 +1,16 @@
<h1 class="titlePage">Come funziona RPIGroup Play?</h1>
<hr>
<div class="tec">
<p>La pagina è in fase di realizzazione... Attendi il prossimo aggiornamento per leggere le nostre istruzioni d'uso!</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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<h1 class="titlePage">Come funziona RPIGroup Play?</h1>
<hr>
<div class="tec">
<p>La pagina è in fase di realizzazione... Attendi il prossimo aggiornamento per leggere le nostre istruzioni d'uso!</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>

Binary file not shown.

View File

@@ -1,15 +1,17 @@
<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>
<?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>

Binary file not shown.

View File

@@ -1,19 +1,37 @@
<h1 class="titlePage">Changelog</h1>
<p class="subtitlePage">Visualizza tutti gli ricevuti</p>
<?php
foreach($changelog->version as $version){
echo "<hr>";
echo "<p class=\"changelogTitle\">Versione ".$version->number."</p>";
foreach($version->logs->log as $log_print){
echo "<p class=\"changelogList\">• ".$log_print."</p>";
}
}
?>
<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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<h1 class="titlePage">Changelog</h1>
<p class="subtitlePage">Visualizza tutti gli aggiornamenti ricevuti</p>
<?php
// Verifica che $changelog sia stato caricato correttamente in getStation.inc.php
if (isset($changelog) && $changelog !== false && isset($changelog->version)) {
// Itera attraverso le versioni
foreach($changelog->version as $version) {
echo "<hr>";
echo "<p class=\"changelogTitle\">Versione " . htmlspecialchars((string)$version->number) . "</p>";
// Verifica che esistano i log prima di iterare
if (isset($version->logs) && isset($version->logs->log)) {
foreach($version->logs->log as $log_print) {
echo "<p class=\"changelogList\">• " . htmlspecialchars((string)$log_print) . "</p>";
}
} else {
echo "<p class=\"changelogList\" style=\"font-style: italic; color: #999;\">Nessun dettaglio disponibile per questa versione.</p>";
}
}
} else {
// Messaggio di errore se il changelog non è disponibile
echo "<hr>";
echo "<div style=\"padding: 20px; background: #fff3cd; border: 1px solid #ffc107; border-radius: 5px; margin: 20px 0;\">";
echo "<p style=\"margin: 0; color: #856404;\"><strong>Attenzione:</strong> Impossibile caricare il changelog. Il file potrebbe essere mancante o corrotto.</p>";
echo "</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>

Binary file not shown.

View File

@@ -1,53 +1,55 @@
<!-- <div class="content-page">
<h2>Contatti</h2>
<div class="content-box">
<p>Hai domande, suggerimenti o riscontri problemi con l'applicazione? Contattaci!</p>
<form class="contact-form" id="contactForm">
<div class="form-group">
<label for="name">Nome:</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="subject">Oggetto:</label>
<input type="text" id="subject" name="subject" required>
</div>
<div class="form-group">
<label for="message">Messaggio:</label>
<textarea id="message" name="message" rows="5" required></textarea>
</div>
<button type="submit" class="submit-btn">Invia messaggio</button>
</form>
<div id="formResponse" class="form-response" style="display: none;"></div>
<div class="contact-info">
<h3>Informazioni di contatto</h3>
<p>Email: info@tuoaggregatore.it</p>
<p>Telefono: +39 123 456 7890</p>
</div>
</div>
</div> -->
<h1 class="titlePage">Contatti</h1>
<hr>
<div class="tec">
<p>La pagina è in fase di realizzazione... Attendi il prossimo aggiornamento per leggere le nostre istruzioni d'uso!</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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<!-- <div class="content-page">
<h2>Contatti</h2>
<div class="content-box">
<p>Hai domande, suggerimenti o riscontri problemi con l'applicazione? Contattaci!</p>
<form class="contact-form" id="contactForm">
<div class="form-group">
<label for="name">Nome:</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="subject">Oggetto:</label>
<input type="text" id="subject" name="subject" required>
</div>
<div class="form-group">
<label for="message">Messaggio:</label>
<textarea id="message" name="message" rows="5" required></textarea>
</div>
<button type="submit" class="submit-btn">Invia messaggio</button>
</form>
<div id="formResponse" class="form-response" style="display: none;"></div>
<div class="contact-info">
<h3>Informazioni di contatto</h3>
<p>Email: info@tuoaggregatore.it</p>
<p>Telefono: +39 123 456 7890</p>
</div>
</div>
</div> -->
<h1 class="titlePage">Contatti</h1>
<hr>
<div class="tec">
<p>La pagina è in fase di realizzazione... Attendi il prossimo aggiornamento per leggere le nostre istruzioni d'uso!</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>

Binary file not shown.

View File

@@ -1,18 +1,20 @@
<h1 class="titlePage">Diritti d'Autore</h1>
<p class="subtitlePage">Come funziona e chi lo gestisce</p>
<hr>
<div class="tec">
<p>RPIGroup è un player audio e video, che aggrega i flussi audio in streaming di emittenti iscritte all'interno del gruppo RPIGroup.</p>
<p>I flussi presenti all'interno della seguente app non provvengono direttamente da quest'ultima, ma dal sito web dell'emittente stessa.</p>
<p>L'applicazione funge come semplice ripetitore audio. Per tanto, i diritti musicali sono a carico dell'emittente presente nell'app, inserendo all'interno della pagina dedicata alle informazioni sulla trasmissione, i numeri licenze dei diritti d'autore e discografici dei brani trasmessi.</p>
<p>Pertanto, se si ritiene che una delle emittenti non ha le licenze per la diffusione dei brani, invitiamo al segnalante di inoltrare una mail ad <a href="mailto:abuse@asvhosting.com">abuse@asvhosting.com</a> per la rimozione definitiva dell'emittente.</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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<h1 class="titlePage">Diritti d'Autore</h1>
<p class="subtitlePage">Come funziona e chi lo gestisce</p>
<hr>
<div class="tec">
<p>RPIGroup è un player audio e video, che aggrega i flussi audio in streaming di emittenti iscritte all'interno del gruppo RPIGroup.</p>
<p>I flussi presenti all'interno della seguente app non provvengono direttamente da quest'ultima, ma dal sito web dell'emittente stessa.</p>
<p>L'applicazione funge come semplice ripetitore audio. Per tanto, i diritti musicali sono a carico dell'emittente presente nell'app, inserendo all'interno della pagina dedicata alle informazioni sulla trasmissione, i numeri licenze dei diritti d'autore e discografici dei brani trasmessi.</p>
<p>Pertanto, se si ritiene che una delle emittenti non ha le licenze per la diffusione dei brani, invitiamo al segnalante di inoltrare una mail ad <a href="mailto:abuse@asvhosting.com">abuse@asvhosting.com</a> per la rimozione definitiva dell'emittente.</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>

Binary file not shown.

View File

@@ -1,59 +1,61 @@
<h1 class="titlePage">Benvenuto</h1>
<p class="subtitlePage">nella nuova RPIGroup Play</p>
<div class="row g-2 mb-4">
<div class="col-6">
<a href="<?php echo $base_path; ?>/radio" data-page="radio" class="linkBox">
<div class="clickBox Squared">
<img src="<?=$base_path?>/img/radio.png" alt="Radio">
<p class="m-0 p-0">Radio</p>
</div>
</a>
</div>
<div class="col-6">
<a href="<?php echo $base_path; ?>/tv" data-page="tv" class="linkBox">
<div class="clickBox Squared">
<img src="<?=$base_path?>/img/tv.png" alt="tv">
<p class="m-0 p-0">TV</p>
</div>
</a>
</div>
</div>
<div class="row g-2 mb-4">
<div class="col-12">
<a href="https://www.co-municare.it" target="_blank" class="">
<div class="clickBox p-2">
<img src="https://www.co-municare.it/wp-content/uploads/2025/01/newlogo_co-municare-it.png" alt="logo Co-Municare.it">
</div>
</a>
</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">
<a href="<?php echo $base_path; ?>/page/about" data-page="page/about" class="linkBox">
<div class="clickBox">
Come funziona?
</div>
</a>
</div>
<div class="col-4">
<a href="<?php echo $base_path; ?>/page/copyright" data-page="page/copyright" class="linkBox">
<div class="clickBox">
Diritti<br>d'Autore
</div>
</a>
</div>
<div class="col-4">
<a href="<?php echo $base_path; ?>/page/contact" data-page="page/contact" class="linkBox">
<div class="clickBox">
I nostri<br>Contatti
</div>
</a>
</div>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<h1 class="titlePage">Benvenuto</h1>
<p class="subtitlePage">nella nuova RPIGroup Play</p>
<div class="row g-2 mb-4">
<div class="col-6">
<a href="<?php echo $base_path; ?>/radio" data-page="radio" class="linkBox">
<div class="clickBox Squared">
<img src="<?=$base_path?>/img/radio.png" alt="Radio">
<p class="m-0 p-0">Radio</p>
</div>
</a>
</div>
<div class="col-6">
<a href="<?php echo $base_path; ?>/tv" data-page="tv" class="linkBox">
<div class="clickBox Squared">
<img src="<?=$base_path?>/img/tv.png" alt="tv">
<p class="m-0 p-0">TV</p>
</div>
</a>
</div>
</div>
<div class="row g-2 mb-4">
<div class="col-12">
<a href="https://www.co-municare.it" target="_blank" class="">
<div class="clickBox p-2">
<img src="https://www.co-municare.it/wp-content/uploads/2025/01/newlogo_co-municare-it.png" alt="logo Co-Municare.it">
</div>
</a>
</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">
<a href="<?php echo $base_path; ?>/page/about" data-page="page/about" class="linkBox">
<div class="clickBox">
Come funziona?
</div>
</a>
</div>
<div class="col-4">
<a href="<?php echo $base_path; ?>/page/copyright" data-page="page/copyright" class="linkBox">
<div class="clickBox">
Diritti<br>d'Autore
</div>
</a>
</div>
<div class="col-4">
<a href="<?php echo $base_path; ?>/page/contact" data-page="page/contact" class="linkBox">
<div class="clickBox">
I nostri<br>Contatti
</div>
</a>
</div>
</div>

Binary file not shown.

View File

@@ -1,62 +1,62 @@
<?php
if($station->contentplayer == ""){
?>
<style>
.staticpage{
background: linear-gradient(45deg, #3849a8, #f7b835);
padding: 22px 35px 10px 35px;
display: block;
z-index: 1;
position: absolute;
height: calc(100vh - 312px);
color: white;
text-align: center;
width: 100%;
max-width: 450px;
left: 50%;
transform: translateX(-50%);
}
.staticpage > .logo{
width: 200px;
border-radius: 15px;
margin-bottom: 20px;
}
.staticpage > p{
margin: 0;
}
.staticpage > p.titleRadio{
font-weight: 600;
}
</style>
<div class="staticpage">
<img src="<?php echo $station->logo; ?>" class="logo" alt="logo radio">
<p class="titleRadio"><?php echo $station->name; ?></p>
<p class="subtitleRadio"><?php echo $station->slogan; ?></p>
</div>
<?php
}else{
?>
<iframe src="<?php echo $station->contentplayer; ?>" class="contentplayer" frameborder="0"></iframe>
<?php
}
?>
<div class="footer_player" <?php if($is_mobile){ ?> style="bottom: 84px;" <? } ?>>
<div class="row align-items-center">
<div class="col-2" style="width: 70px;">
<img src="<?php echo $station->logo; ?>" alt="<?php echo $station->name; ?>" style="width: 60px;">
</div>
<div class="col">
<div id="artist" style="font-weight: 700; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;"><?php echo $station->name; ?></div>
<div id="playerStatus" style="text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical ;overflow: hidden;"><?php echo $station->slogan; ?></div>
</div>
<div class="col-2" style="text-align: center; margin-top: 1px; margin-right: 5px; width: 67px;">
<button id="playPauseBtn" data-stream-hls="<?php echo $station->streamhls; ?>" data-stream-fallback="<?php echo $station->stream; ?>" data-station-name="<?php echo htmlspecialchars($station->name); ?>" data-station-logo="<?php echo $station->logo; ?>" data-station-slogan="<?php echo htmlspecialchars($station->slogan); ?>">
<i class="material-icons play-icon" id="play-pause" style="font-size: 35px; border-radius: 10px; border: 2px solid #ffffff; padding: 4px 5px 4px 4px; margin-top: -2px; background: #f7b835; color: #2a377e;">play_arrow</i>
<i class="material-icons pause-icon" id="play-pause" style="display:none; font-size: 35px; border-radius: 10px; border: 2px solid #ffffff; padding: 4px 5px 4px 4px; margin-top: -2px; background: #f7b835; color: #2a377e;">pause</i>
</button>
</div>
</div>
</div>
<?php
if($station->contentplayer == ""){
?>
<style>
.staticpage{
background: linear-gradient(45deg, #3849a8, #f7b835);
padding: 22px 35px 10px 35px;
display: block;
z-index: 1;
position: absolute;
height: calc(100vh - 312px);
color: white;
text-align: center;
width: 100%;
max-width: 450px;
left: 50%;
transform: translateX(-50%);
}
.staticpage > .logo{
width: 200px;
border-radius: 15px;
margin-bottom: 20px;
}
.staticpage > p{
margin: 0;
}
.staticpage > p.titleRadio{
font-weight: 600;
}
</style>
<div class="staticpage">
<img src="<?php echo $station->logo; ?>" class="logo" alt="logo radio">
<p class="titleRadio"><?php echo $station->name; ?></p>
<p class="subtitleRadio"><?php echo $station->slogan; ?></p>
</div>
<?php
}else{
?>
<iframe src="<?php echo $station->contentplayer; ?>" class="contentplayer" frameborder="0"></iframe>
<?php
}
?>
<div class="footer_player" <?php if($is_mobile){ ?> style="bottom: 84px;" <? } ?>>
<div class="row align-items-center">
<div class="col-2" style="width: 70px;">
<img src="<?php echo $station->logo; ?>" alt="<?php echo $station->name; ?>" style="width: 60px;">
</div>
<div class="col">
<div id="artist" style="font-weight: 700; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;"><?php echo $station->name; ?></div>
<div id="playerStatus" style="text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical ;overflow: hidden;"><?php echo $station->slogan; ?></div>
</div>
<div class="col-2" style="text-align: center; margin-top: 1px; margin-right: 5px; width: 67px;">
<button id="playPauseBtn" data-stream-hls="<?php echo $station->streamhls; ?>" data-stream-fallback="<?php echo $station->stream; ?>" data-station-name="<?php echo htmlspecialchars($station->name); ?>" data-station-logo="<?php echo $station->logo; ?>" data-station-slogan="<?php echo htmlspecialchars($station->slogan); ?>">
<i class="material-icons play-icon" id="play-pause" style="font-size: 35px; border-radius: 10px; border: 2px solid #ffffff; padding: 4px 5px 4px 4px; margin-top: -2px; background: #f7b835; color: #2a377e;">play_arrow</i>
<i class="material-icons pause-icon" id="play-pause" style="display:none; font-size: 35px; border-radius: 10px; border: 2px solid #ffffff; padding: 4px 5px 4px 4px; margin-top: -2px; background: #f7b835; color: #2a377e;">pause</i>
</button>
</div>
</div>
</div>
<audio id="hlsAudioPlayer" preload="none"></audio>

Binary file not shown.

Binary file not shown.

View File

@@ -1,58 +1,60 @@
<h1 class="titlePage">Policy Privacy</h1>
<p class="subtitlePage">Ultimo aggiornamento: 17/11/2025</p>
<hr>
<div class="tec">
<p><b>Titolare del Trattamento</b><br>Il Titolare del trattamento dei dati personali è A.S.V. Studios APPS, con sede legale in Italia, contattabile allindirizzo e-mail <a href="mailto:pp.app@rpigroup.net">pp.app@rpigroup.net</a>. Per ulteriori informazioni o per esercitare i diritti previsti dalla normativa sulla protezione dei dati personali, è possibile inviare una richiesta scritta allindirizzo sopra indicato.</p>
<p>
<b>Dati Raccolti</b><br>
Raccogliamo i seguenti dati personali, alcuni dei quali forniti volontariamente dallUtente e altri raccolti automaticamente durante lutilizzo dei moduli di contatto all'interno dell'Applicazione:<br>
Dati di contatto (ad esempio: nome, indirizzo e-mail) forniti direttamente dallUtente al momento della scritta dei moduli di contatto
</p>
<p>
<b>Finalità del Trattamento</b><br>
I dati personali sono trattati per le seguenti finalità:<br>
Risposta alla e-mail tramite modulo di contatto<br>
Gli Utenti possono esercitare in qualsiasi momento i diritti previsti dalla normativa vigente sulla protezione dei dati personali, come laccesso, la rettifica o la cancellazione dei propri dati.
</p>
<p>
<b>Base Giuridica del Trattamento</b><br>
Il trattamento dei dati personali si basa su diverse basi giuridiche, che vengono applicate nella pratica come segue:<br>
Esecuzione di un contratto: trattiamo i dati personali per fornire il servizio richiesto dallutente, ad esempio offrire assistenza sull'uso dell'Applicativo o inserimento della propria emittente all'interno dell'Applicativo.<br>
Rispetto delle leggi: trattiamo i dati quando siamo obbligati dalla legge, ad esempio per conservare alcune informazioni per finalità fiscali o per rispondere a richieste delle autorità.
</p>
<p><b>Modalità di Trattamento e Conservazione</b><br>I dati vengono archiviati tramite applicativi proprietari di posta elettronica. I dati sono conservati per il tempo strettamente necessario al raggiungimento delle finalità indicate, salvo diversi obblighi di legge.</p>
<p>
<b>Comunicazione dei Dati a Terzi</b><br>
I dati personali non verranno diffusi, ma potranno essere comunicati a soggetti terzi specifici, quali:<br>
Fornitori di servizi di Hosting, come aziende che gestiscono infrastrutture cloud, incaricate della manutenzione e gestione dei server;<br>
Partner tecnologici, ad esempio fornitori di software, servizi informatici o piattaforme di pagamento, necessari per lerogazione di particolari funzionalità;<br>
Autorità giudiziarie o amministrative, in caso di richieste formali o obblighi di legge.<br>
La comunicazione dei dati ai soggetti terzi avverrà esclusivamente per le finalità indicate e nel rispetto delle misure di sicurezza previste dalla normativa vigente sulla protezione dei dati personali, garantendo così la tutela della privacy dellutente.
</p>
<p><b>Trattamento dei dati Extra-UE</b><br>Secondo il Regolamento Generale sulla Protezione dei Dati (GDPR), il trattamento dei dati personali non può avvenire in paesi extra-UE senza adeguate garanzie. Il trattamento dei dati non può avvenire in paesi extra-UE, salvo il rispetto delle condizioni previste dalla normativa vigente (ad esempio, decisioni di adeguatezza o garanzie appropriate ai sensi del GDPR).</p>
<p>
<b>Diritti dellUtente</b><br>
In qualità di interessato, lUtente gode dei seguenti diritti, in conformità con il GDPR:<br>
Diritto di accesso: puoi richiedere conferma che i tuoi dati siano trattati e riceverne una copia (ad esempio, inviando una e-mail per sapere quali dati personali sono stati raccolti e utilizzati).<br>
Diritto di rettifica: hai la possibilità di correggere dati personali inesatti o aggiornare informazioni non più attuali (per esempio, chiedendo la modifica dellindirizzo e-mail se è cambiato).<br>
Diritto alla cancellazione (diritto alloblio): puoi ottenere la cancellazione dei tuoi dati personali (ad esempio, domandando la rimozione del tuo profilo dal servizio).<br>
Diritto di limitazione: puoi richiedere che il trattamento dei tuoi dati sia limitato in determinate circostanze (ad esempio, se hai contestato lesattezza dei dati e vuoi che vengano sospesi fino alla verifica).<br>
Diritto di opposizione: puoi opporti al trattamento dei tuoi dati per finalità di marketing (per esempio, chiedendo di non ricevere più comunicazioni promozionali).<br>
Diritto di reclamo: puoi presentare un reclamo allAutorità Garante per la Protezione dei Dati Personali se ritieni che i tuoi diritti non siano stati rispettati (ad esempio, compilando lapposito modulo sul sito del Garante).
</p>
<p>
<b>Contatti</b><br>
Per esercitare i diritti sopra elencati o per qualsiasi domanda, è possibile contattare il Titolare del trattamento tramite i seguenti canali:<br>
E-mail: <a href="mailto:pp.app@rpigroup.net">pp.app@rpigroup.net</a><br>
Si prega di indicare nelloggetto delle-mail il diritto che si intende esercitare e di fornire i propri dati identificativi per facilitare la gestione della richiesta.
</p>
<p><b>Modifiche a questa Informativa</b><br>La presente informativa può essere soggetta a modifiche e aggiornamenti. La versione più recente sarà sempre disponibile allinterno del Servizio. Gli utenti saranno informati delle modifiche rilevanti tramite una notifica allinterno del Servizio, così da garantire massima trasparenza e permettere a tutti di essere sempre aggiornati.</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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<h1 class="titlePage">Policy Privacy</h1>
<p class="subtitlePage">Ultimo aggiornamento: 17/11/2025</p>
<hr>
<div class="tec">
<p><b>Titolare del Trattamento</b><br>Il Titolare del trattamento dei dati personali è A.S.V. Studios APPS, con sede legale in Italia, contattabile allindirizzo e-mail <a href="mailto:pp.app@rpigroup.net">pp.app@rpigroup.net</a>. Per ulteriori informazioni o per esercitare i diritti previsti dalla normativa sulla protezione dei dati personali, è possibile inviare una richiesta scritta allindirizzo sopra indicato.</p>
<p>
<b>Dati Raccolti</b><br>
Raccogliamo i seguenti dati personali, alcuni dei quali forniti volontariamente dallUtente e altri raccolti automaticamente durante lutilizzo dei moduli di contatto all'interno dell'Applicazione:<br>
• Dati di contatto (ad esempio: nome, indirizzo e-mail) forniti direttamente dallUtente al momento della scritta dei moduli di contatto
</p>
<p>
<b>Finalità del Trattamento</b><br>
I dati personali sono trattati per le seguenti finalità:<br>
• Risposta alla e-mail tramite modulo di contatto<br>
Gli Utenti possono esercitare in qualsiasi momento i diritti previsti dalla normativa vigente sulla protezione dei dati personali, come laccesso, la rettifica o la cancellazione dei propri dati.
</p>
<p>
<b>Base Giuridica del Trattamento</b><br>
Il trattamento dei dati personali si basa su diverse basi giuridiche, che vengono applicate nella pratica come segue:<br>
• Esecuzione di un contratto: trattiamo i dati personali per fornire il servizio richiesto dallutente, ad esempio offrire assistenza sull'uso dell'Applicativo o inserimento della propria emittente all'interno dell'Applicativo.<br>
• Rispetto delle leggi: trattiamo i dati quando siamo obbligati dalla legge, ad esempio per conservare alcune informazioni per finalità fiscali o per rispondere a richieste delle autorità.
</p>
<p><b>Modalità di Trattamento e Conservazione</b><br>I dati vengono archiviati tramite applicativi proprietari di posta elettronica. I dati sono conservati per il tempo strettamente necessario al raggiungimento delle finalità indicate, salvo diversi obblighi di legge.</p>
<p>
<b>Comunicazione dei Dati a Terzi</b><br>
I dati personali non verranno diffusi, ma potranno essere comunicati a soggetti terzi specifici, quali:<br>
• Fornitori di servizi di Hosting, come aziende che gestiscono infrastrutture cloud, incaricate della manutenzione e gestione dei server;<br>
• Partner tecnologici, ad esempio fornitori di software, servizi informatici o piattaforme di pagamento, necessari per lerogazione di particolari funzionalità;<br>
• Autorità giudiziarie o amministrative, in caso di richieste formali o obblighi di legge.<br>
La comunicazione dei dati ai soggetti terzi avverrà esclusivamente per le finalità indicate e nel rispetto delle misure di sicurezza previste dalla normativa vigente sulla protezione dei dati personali, garantendo così la tutela della privacy dellutente.
</p>
<p><b>Trattamento dei dati Extra-UE</b><br>Secondo il Regolamento Generale sulla Protezione dei Dati (GDPR), il trattamento dei dati personali non può avvenire in paesi extra-UE senza adeguate garanzie. Il trattamento dei dati non può avvenire in paesi extra-UE, salvo il rispetto delle condizioni previste dalla normativa vigente (ad esempio, decisioni di adeguatezza o garanzie appropriate ai sensi del GDPR).</p>
<p>
<b>Diritti dellUtente</b><br>
In qualità di interessato, lUtente gode dei seguenti diritti, in conformità con il GDPR:<br>
Diritto di accesso: puoi richiedere conferma che i tuoi dati siano trattati e riceverne una copia (ad esempio, inviando una e-mail per sapere quali dati personali sono stati raccolti e utilizzati).<br>
Diritto di rettifica: hai la possibilità di correggere dati personali inesatti o aggiornare informazioni non più attuali (per esempio, chiedendo la modifica dellindirizzo e-mail se è cambiato).<br>
Diritto alla cancellazione (diritto alloblio): puoi ottenere la cancellazione dei tuoi dati personali (ad esempio, domandando la rimozione del tuo profilo dal servizio).<br>
Diritto di limitazione: puoi richiedere che il trattamento dei tuoi dati sia limitato in determinate circostanze (ad esempio, se hai contestato lesattezza dei dati e vuoi che vengano sospesi fino alla verifica).<br>
• Diritto di opposizione: puoi opporti al trattamento dei tuoi dati per finalità di marketing (per esempio, chiedendo di non ricevere più comunicazioni promozionali).<br>
• Diritto di reclamo: puoi presentare un reclamo allAutorità Garante per la Protezione dei Dati Personali se ritieni che i tuoi diritti non siano stati rispettati (ad esempio, compilando lapposito modulo sul sito del Garante).
</p>
<p>
<b>Contatti</b><br>
Per esercitare i diritti sopra elencati o per qualsiasi domanda, è possibile contattare il Titolare del trattamento tramite i seguenti canali:<br>
• E-mail: <a href="mailto:pp.app@rpigroup.net">pp.app@rpigroup.net</a><br>
Si prega di indicare nelloggetto delle-mail il diritto che si intende esercitare e di fornire i propri dati identificativi per facilitare la gestione della richiesta.
</p>
<p><b>Modifiche a questa Informativa</b><br>La presente informativa può essere soggetta a modifiche e aggiornamenti. La versione più recente sarà sempre disponibile allinterno del Servizio. Gli utenti saranno informati delle modifiche rilevanti tramite una notifica allinterno del Servizio, così da garantire massima trasparenza e permettere a tutti di essere sempre aggiornati.</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>

Binary file not shown.

View File

@@ -1,30 +1,32 @@
<?php
// views/home.php - Vista della pagina principale
$stations = loadRadioStations();
?>
<h1 class="titlePage">Radio</h1>
<p class="subtitlePage">Seleziona la tua radio che vuoi ascoltare</p>
<hr>
<div class="stationList">
<div class="row g-2">
<?php foreach ($stations as $station): ?>
<div class="col-6">
<div class="stationCard <?php if((string)$station->thematic === 'true'){echo "isthematic";} ?>" data-id="<?php echo $station->id; ?>">
<a href="<?php echo $base_path; ?>/play/<?php echo $station->id; ?>" data-page="play/<?php echo $station->id; ?>" class="nav-link stationLink">
<img src="<?php echo $station->logo; ?>" alt="<?php echo $station->name; ?>" class="stationLogo">
</a>
</div>
</div>
<?php endforeach; ?>
</div>
</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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<?php
// views/home.php - Vista della pagina principale
$stations = loadRadioStations();
?>
<h1 class="titlePage">Radio</h1>
<p class="subtitlePage">Seleziona la tua radio che vuoi ascoltare</p>
<hr>
<div class="stationList">
<div class="row g-2">
<?php foreach ($stations as $station): ?>
<div class="col-6">
<div class="stationCard <?php if((string)$station->thematic === 'true'){echo "isthematic";} ?>" data-id="<?php echo $station->id; ?>">
<a href="<?php echo $base_path; ?>/play/<?php echo $station->id; ?>" data-page="play/<?php echo $station->id; ?>" class="nav-link stationLink">
<img src="<?php echo $station->logo; ?>" alt="<?php echo $station->name; ?>" class="stationLogo">
</a>
</div>
</div>
<?php endforeach; ?>
</div>
</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>

Binary file not shown.

View File

@@ -1,36 +1,38 @@
<h1 class="titlePage">Termini & Condizioni</h1>
<p class="subtitlePage">Ultimo aggiornamento: 17/11/2025</p>
<hr>
<div class="tec">
<p><b>Introduzione</b><br> RPIGroup Play vi il benvenuto. I presenti Termini e Condizioni (di seguito “T&amp;C”) regolamentano laccesso e luso dellapplicazione “RPIGroup Play” (di seguito “Portale”, “Servizio”, “Applicazione” e “Sito”) e tutti i servizi correlati. Accedendo e utilizzando il Portale, lutente (di seguito “Utente”) accetta i presenti T&amp;C al primo accesso, condizione necessaria per poter utilizzare il Servizio. Lutente potrà in qualsiasi momento declinare i seguenti T&amp;C, sapendo che non potrà più accedere allApplicazione offerta.</p>
<p><b>Titolarità e Gestione</b><br>RPIGroup Play è fornito da A.S.V. Studios APPS (di seguito “Gestore”, anche indicato come “Proprietario” e “Sviluppatore”), unico titolare del presente Servizio.</p>
<p><b>Descrizione del Servizio</b><br>LApplicazione consente di ascoltare in streaming le emittenti iscritte all'interno del gruppo RPIGroup, sia in formato audio e video (ove previsto).</p>
<p><b>Account e Registrazione</b><br>Per utilizzare il Servizio, l'utente non deve effettuare nessun tipo di registrazione o accesso.</p>
<!-- <p>
<b>Obblighi dell'Utente</b><br>
LUtente si impegna a utilizzare il Servizio in modo lecito e corretto, rispettando i presenti T&amp;C e i termini duso. In particolare, lUtente si impegna a:<br>
• Non violare i diritti di proprietà intellettuale del Gestore e di terzi;<br>
• Non utilizzare lApplicazione per scopi illegali o non autorizzati;<br>
• Non distribuire contenuti dannosi, quali software malevoli (malware), spam, materiale diffamatorio, offensivo, illecito o comunque inappropriato;<br>
• Non tentare di accedere, modificare o compromettere il funzionamento del Servizio o i dati di altri utenti;<br>
• Non utilizzare strumenti esterni, quali software automatizzati (ad esempio bot, spider o altri strumenti che simulano lattività umana), per interagire con lApplicazione.<br>
La violazione di questi termini può comportare la sospensione o la cancellazione dellaccount e, nei casi più gravi, leventuale segnalazione alle autorità competenti.
</p> -->
<p><b>Proprietà Intellettuale</b><br>Tutti i diritti di proprietà intellettuale relativi al Servizio, compresi design, marchi, loghi e contenuti scaricabili, sono di proprietà esclusiva del Gestore, dell'Associazione Culturale Comunicare e di tutte le emittenti iscritte all'interno del portale.</p>
<p><b>Contenuti Generati DallUtente</b><br>Il servizio non consente agli utenti di creare e caricare contenuti</p>
<p><b>Prezzi e Pagamenti</b><br>L'Applicazione è disponibile gratuitamente per tutti gli utilizzatori, ed è disponibile in formato gratuito per computer e smartphone.</p>
<p><b>Limitazioni di Responsabilità</b><br>Il Gestore non sarà responsabile per alcun danno, inclusi ma non limitati a danni diretti, indiretti, incidentali, speciali, consequenziali o punitivi, quali perdita di dati, perdita di profitti, interruzione dellattività, danni reputazionali o altri danni economici, derivanti dallutilizzo del Servizio o dallimpossibilità di utilizzarlo, sia che tali danni si verifichino durante il normale utilizzo, sia in seguito a malfunzionamenti, errori, sospensioni, interruzioni, cancellazioni, o altre circostanze connesse al Servizio. Questa esclusione di responsabilità si applica indipendentemente dal fatto che i danni siano prevedibili o che il Gestore sia stato informato della possibilità di tali danni. LApplicazione è fornita “così comè” e senza garanzie di alcun tipo, esplicite o implicite.</p>
<p><b>Modifiche e Interruzioni del Servizio</b><br>Il Gestore si riserva il diritto di modificare, sospendere o interrompere il Servizio in qualsiasi momento, con o senza preavviso, qualora si renda necessario effettuare interventi di manutenzione, aggiornamenti tecnici, o per garantire la sicurezza del sistema e degli utenti. In caso di interruzione definitiva del Servizio, gli utenti saranno informati tramite comunicazione via e-mail e avranno la possibilità di richiedere un rimborso proporzionale ai servizi già pagati ma non usufruiti. Eventuali alternative o modalità di accesso ai dati saranno comunicate contestualmente allavviso di interruzione.</p>
<!-- <p><b>Criteri per lInterruzione e la Cessazione</b><br>Il Gestore può, a sua esclusiva discrezione, sospendere o chiudere laccount dellUtente in caso di violazione dei presenti T&amp;C. Tali violazioni includono, a titolo esemplificativo ma non esaustivo, comportamenti fraudolenti, uso improprio della piattaforma o mancato rispetto delle regole di condotta. Prima che venga presa una decisione definitiva sulla sospensione o chiusura dellaccount, lUtente avrà la possibilità di presentare le proprie osservazioni o contestare la decisione.</p> -->
<p><b>Leggi Applicabile e Foro di Competente</b><br>Questi Termini e Condizioni sono regolati dalla legge italiana. In caso di controversie riguardanti linterpretazione o lapplicazione dei Termini e Condizioni, la competenza sarà attribuita esclusivamente al Tribunale di Milano, salvo diversa indicazione prevista dalla legge per lUtente, come nei casi in cui la normativa vigente, ad esempio il Codice del Consumo, preveda il foro di residenza o domicilio del consumatore.</p>
<p><b>Accettazione dei Termini e Condizioni</b><br>L'Utente accetta automaticamente i seguenti termini e condizioni tramite l'accesso all'interno dell'Applicazione.</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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<h1 class="titlePage">Termini & Condizioni</h1>
<p class="subtitlePage">Ultimo aggiornamento: 17/11/2025</p>
<hr>
<div class="tec">
<p><b>Introduzione</b><br> RPIGroup Play vi dà il benvenuto. I presenti Termini e Condizioni (di seguito “T&amp;C”) regolamentano laccesso e luso dellapplicazione “RPIGroup Play” (di seguito “Portale”, “Servizio”, “Applicazione” e “Sito”) e tutti i servizi correlati. Accedendo e utilizzando il Portale, lutente (di seguito “Utente”) accetta i presenti T&amp;C al primo accesso, condizione necessaria per poter utilizzare il Servizio. Lutente potrà in qualsiasi momento declinare i seguenti T&amp;C, sapendo che non potrà più accedere allApplicazione offerta.</p>
<p><b>Titolarità e Gestione</b><br>RPIGroup Play è fornito da A.S.V. Studios APPS (di seguito “Gestore”, anche indicato come “Proprietario” e “Sviluppatore”), unico titolare del presente Servizio.</p>
<p><b>Descrizione del Servizio</b><br>LApplicazione consente di ascoltare in streaming le emittenti iscritte all'interno del gruppo RPIGroup, sia in formato audio e video (ove previsto).</p>
<p><b>Account e Registrazione</b><br>Per utilizzare il Servizio, l'utente non deve effettuare nessun tipo di registrazione o accesso.</p>
<!-- <p>
<b>Obblighi dell'Utente</b><br>
LUtente si impegna a utilizzare il Servizio in modo lecito e corretto, rispettando i presenti T&amp;C e i termini duso. In particolare, lUtente si impegna a:<br>
• Non violare i diritti di proprietà intellettuale del Gestore e di terzi;<br>
• Non utilizzare lApplicazione per scopi illegali o non autorizzati;<br>
• Non distribuire contenuti dannosi, quali software malevoli (malware), spam, materiale diffamatorio, offensivo, illecito o comunque inappropriato;<br>
• Non tentare di accedere, modificare o compromettere il funzionamento del Servizio o i dati di altri utenti;<br>
• Non utilizzare strumenti esterni, quali software automatizzati (ad esempio bot, spider o altri strumenti che simulano lattività umana), per interagire con lApplicazione.<br>
La violazione di questi termini può comportare la sospensione o la cancellazione dellaccount e, nei casi più gravi, leventuale segnalazione alle autorità competenti.
</p> -->
<p><b>Proprietà Intellettuale</b><br>Tutti i diritti di proprietà intellettuale relativi al Servizio, compresi design, marchi, loghi e contenuti scaricabili, sono di proprietà esclusiva del Gestore, dell'Associazione Culturale Comunicare e di tutte le emittenti iscritte all'interno del portale.</p>
<p><b>Contenuti Generati DallUtente</b><br>Il servizio non consente agli utenti di creare e caricare contenuti</p>
<p><b>Prezzi e Pagamenti</b><br>L'Applicazione è disponibile gratuitamente per tutti gli utilizzatori, ed è disponibile in formato gratuito per computer e smartphone.</p>
<p><b>Limitazioni di Responsabilità</b><br>Il Gestore non sarà responsabile per alcun danno, inclusi ma non limitati a danni diretti, indiretti, incidentali, speciali, consequenziali o punitivi, quali perdita di dati, perdita di profitti, interruzione dellattività, danni reputazionali o altri danni economici, derivanti dallutilizzo del Servizio o dallimpossibilità di utilizzarlo, sia che tali danni si verifichino durante il normale utilizzo, sia in seguito a malfunzionamenti, errori, sospensioni, interruzioni, cancellazioni, o altre circostanze connesse al Servizio. Questa esclusione di responsabilità si applica indipendentemente dal fatto che i danni siano prevedibili o che il Gestore sia stato informato della possibilità di tali danni. LApplicazione è fornita “così comè” e senza garanzie di alcun tipo, esplicite o implicite.</p>
<p><b>Modifiche e Interruzioni del Servizio</b><br>Il Gestore si riserva il diritto di modificare, sospendere o interrompere il Servizio in qualsiasi momento, con o senza preavviso, qualora si renda necessario effettuare interventi di manutenzione, aggiornamenti tecnici, o per garantire la sicurezza del sistema e degli utenti. In caso di interruzione definitiva del Servizio, gli utenti saranno informati tramite comunicazione via e-mail e avranno la possibilità di richiedere un rimborso proporzionale ai servizi già pagati ma non usufruiti. Eventuali alternative o modalità di accesso ai dati saranno comunicate contestualmente allavviso di interruzione.</p>
<!-- <p><b>Criteri per lInterruzione e la Cessazione</b><br>Il Gestore può, a sua esclusiva discrezione, sospendere o chiudere laccount dellUtente in caso di violazione dei presenti T&amp;C. Tali violazioni includono, a titolo esemplificativo ma non esaustivo, comportamenti fraudolenti, uso improprio della piattaforma o mancato rispetto delle regole di condotta. Prima che venga presa una decisione definitiva sulla sospensione o chiusura dellaccount, lUtente avrà la possibilità di presentare le proprie osservazioni o contestare la decisione.</p> -->
<p><b>Leggi Applicabile e Foro di Competente</b><br>Questi Termini e Condizioni sono regolati dalla legge italiana. In caso di controversie riguardanti linterpretazione o lapplicazione dei Termini e Condizioni, la competenza sarà attribuita esclusivamente al Tribunale di Milano, salvo diversa indicazione prevista dalla legge per lUtente, come nei casi in cui la normativa vigente, ad esempio il Codice del Consumo, preveda il foro di residenza o domicilio del consumatore.</p>
<p><b>Accettazione dei Termini e Condizioni</b><br>L'Utente accetta automaticamente i seguenti termini e condizioni tramite l'accesso all'interno dell'Applicazione.</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>

Binary file not shown.

View File

@@ -1,15 +1,17 @@
<h1 class="titlePage">TV</h1>
<p class="subtitlePage">Guarda in streaming <b>RC105 TV</b></p>
<hr>
<div class="tec">
<iframe src="https://tv.rpigroup.net/a9699134-efb3-4932-b8db-5a49ae214031.html" style="width:100%; height: 225px;" frameborder="no" scrolling="no" allowfullscreen="true"></iframe>
</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>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<h1 class="titlePage">TV</h1>
<p class="subtitlePage">Guarda in streaming <b>RC105 TV</b></p>
<hr>
<div class="tec">
<iframe src="https://tv.rpigroup.net/a9699134-efb3-4932-b8db-5a49ae214031.html" style="width:100%; height: 225px;" frameborder="no" scrolling="no" allowfullscreen="true"></iframe>
</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>

Binary file not shown.