Intitolato ad Alex Zanardi il nuovo ponte di Priola
È intitolato al campione paralimpico Alex Zanardi, scomparso lo scorso 1º maggio, il nuovo ponte di Pianchiosso, frazione di Priola, inaugurato oggi, sabato 7 giugno, alla presenza della sindaca Laura Canavese, dell’amministrazione cittadina, delle autorità e della popolazione priolese.
{source}<?php
use Joomla\CMS\Factory;
$user = Factory::getUser();
$app = Factory::getApplication();
$db = Factory::getDbo();
$articleId = $app->input->getInt('id');
// 1. CONTROLLO PERMESSI (Gruppo 21 o Guest)
if ($user->guest || in_array(21, $user->getAuthorisedGroups())) {return;
}
// 2. VERIFICA ACQUISTO NEL DB
$query = $db->getQuery(true)->select('data_acquisto')
->from($db->quoteName('pxd_token_acquisti'))
->where($db->quoteName('id_utente') . ' = ' . (int)$user->id)
->where($db->quoteName('id_articolo') . ' = ' . (int)$articleId);
$db->setQuery($query);
$data_acquisto = $db->loadResult();
// 3. VISUALIZZAZIONE CONTENUTO SBLOCCATO
if ($data_acquisto) {// A. Nascondiamo il form token all'istante
echo '<style>.nasconditoken { display: none !important; visibility: hidden !important; }</style>';
$data_formattata = date('d/m/Y \a\l\l\e H:i', strtotime($data_acquisto));
// B. Box "Articolo Acquistato"
echo '<div class="uk-alert uk-alert-success uk-margin-bottom">';
echo ' <div class="uk-flex uk-flex-middle">';
echo ' <span uk-icon="icon: unlock; ratio: 1.2" class="uk-margin-small-right"></span>';
echo ' <div>';
echo ' <strong>Contenuto Sbloccato</strong><br>';
echo ' <span class="uk-text-small">Articolo acquistato il ' . $data_formattata . '</span>';
echo ' </div>';
echo ' </div>';
echo '</div>';
// -------------------------------------------------------
// RECUPERO CAMPI AGGIUNTIVI (43: YouTube, 37: Gallery)
// -------------------------------------------------------
$qFields = $db->getQuery(true)
->select('field_id, value')
->from($db->quoteName('#__fields_values'))
->where($db->quoteName('item_id') . ' = ' . (int)$articleId)
->where($db->quoteName('field_id') . ' IN (37, 43)');
$db->setQuery($qFields);
$customFields = $db->loadObjectList('field_id');
// -------------------------------------------------------
// C. GESTIONE VIDEO YOUTUBE (Campo 43)
// -------------------------------------------------------
if (isset($customFields[43]) && !empty($customFields[43]->value)) {
$youtube_url = trim(strip_tags($customFields[43]->value));
preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/\s]{11})%i', $youtube_url, $match);
if (isset($match[1])) {
$video_id = $match[1];
echo '<div class="uk-margin-bottom uk-position-relative" style="padding-top: 56.25%;">';
// Iframe pulito senza autoplay automatico
echo '<iframe src="https://www.youtube.com/embed/' . $video_id . '?rel=0&autoplay=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" frameborder="0" allowfullscreen></iframe>';
echo '</div>';
}
}
// -------------------------------------------------------
// D. TESTO ARTICOLO
// -------------------------------------------------------
$qContent = $db->getQuery(true)
->select($db->quoteName(array('introtext', 'fulltext')))
->from($db->quoteName('#__content'))
->where($db->quoteName('id') . ' = ' . (int)$articleId);
$db->setQuery($qContent);
$articolo = $db->loadObject();
if ($articolo) {
echo '<div class="uk-margin-top uk-margin-bottom pxd-premium-content">';
echo $articolo->introtext . $articolo->fulltext;
echo '</div>';
}
// -------------------------------------------------------
// E. GESTIONE GALLERY ACF TASSOS (Campo 37)
// -------------------------------------------------------
if (isset($customFields[37]) && !empty($customFields[37]->value)) {
// Decodifica il JSON di Tassos
$gallery_data = json_decode($customFields[37]->value, true);
// Tassos salva l'array di foto dentro la chiave "items"
if (is_array($gallery_data) && isset($gallery_data['items']) && count($gallery_data['items']) > 0) {
echo '<hr class="uk-divider-icon uk-margin-medium-top">';
echo '<h4 class="uk-heading-line uk-text-center"><span>Galleria Fotografica</span></h4>';
// Inizializziamo la griglia UIkit e il Lightbox
echo '<div class="uk-child-width-1-2 uk-child-width-1-4@m uk-grid-small uk-margin-top" uk-grid uk-lightbox="animation: slide">';
foreach ($gallery_data['items'] as $img) {
// Estraiamo URL originale, Thumbnail e Testi
$img_url = isset($img['image']) ? $img['image'] : '';
// Se la miniatura non c'è, fa fallback sull'immagine originale
$thumb_url = (isset($img['thumbnail']) && !empty($img['thumbnail'])) ? $img['thumbnail'] : $img_url;
$img_alt = isset($img['alt']) ? htmlspecialchars($img['alt'], ENT_QUOTES) : '';
$img_cap = isset($img['caption']) ? htmlspecialchars($img['caption'], ENT_QUOTES) : '';
if (!empty($img_url)) {
// Fix per lo slash iniziale (necessario per alcuni plugin JS e percorsi di Joomla)
if (strpos($img_url, '/') !== 0 && strpos($img_url, 'http') !== 0) { $img_url = '/' . $img_url; }
if (!empty($thumb_url) && strpos($thumb_url, '/') !== 0 && strpos($thumb_url, 'http') !== 0) { $thumb_url = '/' . $thumb_url; }
echo '<div>';
// Link: Qui va l'immagine ORIGINALE (grande) per il Lightbox
echo '<a class="uk-inline uk-box-shadow-hover-large uk-transition-toggle" href="' . $img_url . '" data-caption="' . $img_cap . '">';
// Immagine: Qui va la THUMBNAIL (piccola) per la griglia visibile
echo '<img src="' . $thumb_url . '" alt="' . $img_alt . '" style="width: 100%; height: 200px; object-fit: cover; border-radius: 5px;">';
// Overlay scuro con lente d'ingrandimento in hover
echo '<div class="uk-transition-fade uk-position-cover uk-overlay uk-overlay-primary uk-flex uk-flex-center uk-flex-middle" style="border-radius: 5px;">';
echo '<span uk-icon="icon: search; ratio: 2"></span>';
echo '</div>';
echo '</a>';
echo '</div>';
}
}
echo '</div>'; // Fine griglia
}
}
} else {// Non acquistato: esce
return;
}
?>{/source}











