paginazione in searchResults; elimitate le freccie nel carosel se non ci sono abbastanza media; paginazione in archivio ancora da completare
361 lines
13 KiB
PHP
361 lines
13 KiB
PHP
<?php
|
|
/*
|
|
Author: Riccardo Di Dato
|
|
Creation Date: 05/feb/2016
|
|
*/
|
|
|
|
require_once(dirname(__FILE__)."/load.php");
|
|
|
|
try {
|
|
// UserLoginManager::logout();
|
|
$sendComment = false;
|
|
$articolo = null;
|
|
|
|
if (array_key_exists("id", $_GET)){
|
|
$articolo = GlobalVariables::get("dao")->getFirst("NotiziaModel",array("id"=>$_GET["id"],"status"=>NotiziaModel::STATUS_ACCEPTED));
|
|
}
|
|
if (is_null($articolo)){
|
|
GUIHandler::redirect("index.php");
|
|
}
|
|
AnalyticsHelper::logNotiziaImpression($articolo->id);
|
|
AnalyticsHelper::logPageImpression();
|
|
|
|
$user = UserLoginManager::getLogged();
|
|
|
|
$media = DaoMediaHandler::getMainMediaFromModel($articolo);
|
|
$medias = DaoMediaHandler::getMedias($articolo);
|
|
|
|
$commenti = GlobalVariables::get("dao")->query("CommentoModel",
|
|
array("notizia"=>$articolo->id,"status"=>CommentoModel::STATUS_ACCEPTED),
|
|
array("sort"=>array("about.data"=>-1))
|
|
);
|
|
// echo $articolo->titolo;
|
|
// var_dump($medias);
|
|
$mesi = array(1=>'Gennaio', 'Febbraio', 'Marzo', 'Aprile',
|
|
'Maggio', 'Giugno', 'Luglio', 'Agosto',
|
|
'Settembre', 'Ottobre', 'Novembre','Dicembre');
|
|
|
|
$data = date("d",$articolo->about->data->sec)." ".$mesi[date("n",$articolo->about->data->sec)]." ".date("Y",$articolo->about->data->sec);
|
|
|
|
$additionalHeaders = array();
|
|
$additionalHeaders[] = '<meta property="og:url" content="'.$_SERVER['REQUEST_URI'].'"/>';
|
|
$additionalHeaders[] = '<meta property="og:site_name" content="I Fatti di Napoli"/>';
|
|
$additionalHeaders[] = '<meta property="og:title" content="'.preg_replace('/"/', '\"', strip_tags($articolo->titolo)).'"/>';
|
|
$additionalHeaders[] = '<meta property="og:description" content="'.preg_replace('/"/', '\"', strip_tags($articolo->sottotitolo)).'"/>';
|
|
|
|
$mediaMetaInfo = '';
|
|
if ($media->mediaType == MediaModel::TYPE_LOCALVIDEO || $media->mediaType == MediaModel::TYPE_YOUTUBE){
|
|
$mediaMetaInfo = 'itemprop="video"';
|
|
if ($media->mediaType == MediaModel::TYPE_YOUTUBE){
|
|
$additionalHeaders[] = '<meta property="og:image" content="'.$media->getRenderer()->getThumbnailLink().'"/>';
|
|
|
|
$additionalHeaders[] = '<meta property="og:video" content="'.$media->getRenderer()->getVideoLink().'"/>';
|
|
$additionalHeaders[] = '<meta property="og:video:type" content="application/x-shockwave-flash"/>';
|
|
$additionalHeaders[] = '<meta property="og:video:width" content="240"/>';
|
|
$additionalHeaders[] = '<meta property="og:video:height" content="205"/>';
|
|
}
|
|
}
|
|
else if ($media->mediaType == MediaModel::TYPE_IMAGE){
|
|
$mediaMetaInfo = 'itemprop="image"';
|
|
$additionalHeaders[] = '<meta property="og:image" content="'.$media->getRenderer()->getImageLink(MediaRenderer::SIZE_SMALL).'"/>';
|
|
}
|
|
|
|
if(array_key_exists("submit", $_POST) && strcmp($_POST["submit"] ,"Submit")==0){
|
|
// var_dump($articolo->sondaggio->voci);
|
|
if($articolo->hasProperty("sondaggio") && !is_null($articolo->sondaggio)){
|
|
if(!in_array($user->username, $articolo->sondaggio->votanti)){
|
|
$selectedVoice = $_POST["voce"];
|
|
foreach ($articolo->sondaggio->voci as $voce){
|
|
// var_dump($voce);
|
|
if(strcmp($voce->nome, $selectedVoice)==0){
|
|
$voce->voti +=1;
|
|
}
|
|
// var_dump($voce);
|
|
}
|
|
|
|
$articolo->sondaggio->votanti[] = $user->username;
|
|
GlobalVariables::get("dao")->save($articolo);
|
|
}
|
|
}
|
|
// var_dump($articolo->sondaggio);
|
|
}
|
|
|
|
if(array_key_exists("sendCommento", $_POST) && strcmp($_POST["sendCommento"] ,"Invia")==0){
|
|
if(UserLoginManager::isLogged()){
|
|
$saveable = new stdClass();
|
|
|
|
$saveable->user = $user->id;
|
|
$saveable->notizia = $articolo->id;
|
|
$saveable->titolo = strip_tags($_POST["titolo"]);
|
|
$saveable->testo = strip_tags($_POST["commento"]);
|
|
$saveable->status = CommentoModel::STATUS_PENDING;
|
|
|
|
// var_dump($saveable);
|
|
$commento = new CommentoModel($saveable);
|
|
GlobalVariables::get("dao")->save($commento);
|
|
$sendComment = true;
|
|
}
|
|
}
|
|
|
|
}catch(GUIException $ex){
|
|
$error = $ex->getMessage();
|
|
}catch (Exception $exec){
|
|
$msg = LogModel::fromException($exec);
|
|
GlobalVariables::get("dao")->save($msg);
|
|
|
|
GUIHandler::redirect("index.php");
|
|
}
|
|
GUIHandler::generateHtmlHeaders(array("additionalHeaders"=>$additionalHeaders));
|
|
?>
|
|
<div style="width:1000px;margin-left:auto;margin-right:auto;" itemscope itemtype="http://schema.org/Article">
|
|
<?php
|
|
|
|
GUIHandler::generateHeadPublic();
|
|
GUIHandler::generateMenu();
|
|
?>
|
|
<div class="articoloCategory">
|
|
<div class="categoryStyle">
|
|
<div class="icon"><img alt="" src="images/categoryIcon.png"></div>
|
|
<div class="articoloCategoryName"><span itemprop="articleSection"><?php echo strtoupper(NotiziaModel::$NOTIZIE_CATEGORY[$articolo->category]["label"]);?></span></div>
|
|
</div>
|
|
</div>
|
|
<div class="articoloContainer" >
|
|
<div class="headArticolo">
|
|
<div class="articoloMainMedia mediaContent" >
|
|
<?php if(!is_null($media)) {
|
|
$media->renderMedia(array("size"=>MediaRenderer::SIZE_BIG));
|
|
}
|
|
?>
|
|
</div>
|
|
<div class="articoloTitle">
|
|
<div class="title" itemprop="name"><?php echo $articolo->titolo;?></div>
|
|
<div class="subTitle">
|
|
<span><?php echo $data;?> —</span>
|
|
<span itemprop="headline"><?php echo $articolo->sottotitolo;?></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php if($articolo->hasProperty("sondaggio") && !is_null($articolo->sondaggio)){?>
|
|
<div class="sondaggioContainer">
|
|
<div id="sondaggioGraph" style="height:300px;margin-right:280px;margin-top:10px;"></div>
|
|
<?php if(UserLoginManager::isLogged()){
|
|
if(!in_array($user->username, $articolo->sondaggio->votanti)){?>
|
|
<div class="sondaggioOptions">
|
|
<form method="POST">
|
|
<?php foreach ($articolo->sondaggio->voci as $voce){?>
|
|
<input type="radio" name="voce" value="<?php echo $voce->nome;?>"><?php echo $voce->nome;?>
|
|
<?php } ?>
|
|
<input type="submit" name="submit" value="Submit" />
|
|
</form>
|
|
</div>
|
|
<?php }
|
|
else{
|
|
?>
|
|
<div class="noLogin">Hai già votato per questo sondaggio</div>
|
|
<?php }
|
|
}
|
|
else{
|
|
?>
|
|
<div class="noLogin">Effettua il <a href="#loginLink">login</a> per votare o se non hai ancora un account <a href="#regButton">registrati</a></div>
|
|
<?php }
|
|
?>
|
|
</div>
|
|
<?php }?>
|
|
<div class="articoloLeftBar">
|
|
<div class="utilityBar">
|
|
<div class="socialBarArticolo">
|
|
<a class="socialLink" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=http://ifattidinapoli.com/articolo.php?id=<?php echo $articolo->id;?>"><div style="background-image:url(images/fb_round.png);"></div></a>
|
|
<a class="socialLink" target="_blank" href="https://twitter.com/intent/tweet?via=fattidinapoli&url=http://ifattidinapoli.com/articolo.php?id=<?php echo $articolo->id;?>"><div style="background-image:url(images/twitter_round.png);"></div></a>
|
|
<a class="socialLink" target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=http://ifattidinapoli.com/articolo.php?id=<?php echo $articolo->id;?>"><div style="background-image:url(images/linkedin_round.png);"></div></a>
|
|
<a class="socialLink" target="_blank" href="https://plus.google.com/share?url=http://ifattidinapoli.com/articolo.php?id=<?php echo $articolo->id;?>"><div style="background-image:url(images/google_round.png);"></div></a>
|
|
</div>
|
|
</div>
|
|
<div class="articoloTesto" itemprop="articleBody"><?php echo $articolo->testo;?></div>
|
|
<?php if(sizeof($medias)>1){?>
|
|
<div class="mediasConatiner">
|
|
<div class="headMedias">
|
|
<div class="moreMedia"><span>Altri media bellissimi</span></div>
|
|
</div>
|
|
<div class="caroselContainer">
|
|
<?php
|
|
if(sizeof($medias)>4){
|
|
?>
|
|
<div class="caroselArrow left"><img alt="" src="images/leftArrow.png"></div>
|
|
<?php
|
|
}
|
|
else{
|
|
?>
|
|
<div class="caroselArrow left" style="display:none;"><img alt="" src="images/leftArrow.png"></div>
|
|
<?php
|
|
}
|
|
?>
|
|
<div class="imagesContainer_carosel">
|
|
<div id="carosel" class="insideCarosel">
|
|
<?php
|
|
foreach($medias as $mediaImage){?>
|
|
<div class="carosImage mediaContent"><span class="helper"></span><?php $mediaImage->renderMedia(array("size"=>MediaRenderer::SIZE_SMALL));?></div>
|
|
<?php }?>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
if(sizeof($medias)>4){
|
|
?>
|
|
<div class="caroselArrow right"><img alt="" src="images/rightArrow.png"></div>
|
|
<?php
|
|
}
|
|
else{
|
|
?>
|
|
<div class="caroselArrow right" style="display:none;"><img alt="" src="images/rightArrow.png"></div>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
<?php }?>
|
|
<div class="commentiContainer">
|
|
<div class="commentiLabelContainer">
|
|
<div class="commentiLabel">
|
|
Commenti dei nostri lettori
|
|
</div>
|
|
<hr style="color:#ddd;">
|
|
</div>
|
|
<?php if(sizeof($commenti)>0){
|
|
?>
|
|
<div class="oldCommentiContainer">
|
|
<?php foreach ($commenti as $oldCommento){
|
|
$utonto = GlobalVariables::get("dao")->getFirst("UserModel",array("_id"=>$oldCommento->user));
|
|
?>
|
|
<div class="commento">
|
|
<div class="commentoTitle"><?php echo $oldCommento->titolo;?></div>
|
|
<div class="commentoTesto"><?php echo $oldCommento->testo;?></div>
|
|
<div class="userInfo">
|
|
<div class="userCommento">Inviato da <span class="user" ><?php echo $utonto->nome." ".$utonto->cognome;?></span> il <span class="data"><?php echo date("d/m/Y",$oldCommento->date->sec)?></span></div>
|
|
</div>
|
|
</div>
|
|
<?php }
|
|
?>
|
|
</div>
|
|
<?php
|
|
}
|
|
echo '<hr style="color:#ddd;">';
|
|
if($sendComment){
|
|
?>
|
|
<div class="commento commentoInviato">Il tuo commento è stato inviato alla redazione ed è in attesa di essere accettato.</div>
|
|
<?php }
|
|
else if(UserLoginManager::isLogged()){
|
|
?>
|
|
<div id="commentoArea" class="commento">
|
|
<div class="commentoTitle">
|
|
Aggiungi il tuo commento per questa notizia
|
|
</div>
|
|
<div>
|
|
<form method="POST" id="commentoForm">
|
|
<input name="titolo" type="text" placeholder="Titolo del commento"/>
|
|
<textarea name="commento" placeholder="Il tuo commento" rows="5" cols="80"></textarea>
|
|
<input type="hidden" name="id" value="<?php echo $articolo->id;?>" />
|
|
<div class="sendBtnDiv">
|
|
<input type="submit" name="sendCommento" value="Invia" />
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<?php }
|
|
else{
|
|
?>
|
|
<div class="commento noLogin">Per commentare questa notizia <a href="#loginLink">accedi</a> all'applicazione o <a href="#regButton">registrati</a> se non hai ancora un account </div>
|
|
<?php }
|
|
|
|
?>
|
|
</div>
|
|
</div>
|
|
<div class="articoloRightBar" style="width:280px;display:inline-block;">
|
|
<?php GUIHandler::generateRightBannerBlock();?>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
GUIHandler::generateFooter();
|
|
?>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function(event){
|
|
|
|
<?php if(sizeof($medias)>1){?>
|
|
var size = $("#carosel").children().length;
|
|
var childrenWidth = $(".carosImage").outerWidth();
|
|
|
|
$("#carosel").width((size+1 )* childrenWidth);
|
|
|
|
var minLeft = (size - 4)*childrenWidth;
|
|
var actualLeft = $("#carosel").position().left;
|
|
|
|
$(".left").click(function(){
|
|
if(actualLeft > -minLeft){
|
|
$("#carosel").animate({left:"-=" + childrenWidth});
|
|
actualLeft = $("#carosel").position().left;
|
|
// alert(actualLeft);
|
|
}
|
|
});
|
|
|
|
$(".right").click(function(){
|
|
if(actualLeft < minLeft){
|
|
$("#carosel").animate({left:"+=" + childrenWidth});
|
|
actualLeft = $("#carosel").position().left;
|
|
// alert(actualLeft);
|
|
}
|
|
});
|
|
<?php } ?>
|
|
$("#submit").click(function (){
|
|
// $("form#commentoForm").submit(function (){
|
|
$.ajax({
|
|
method:'POST',
|
|
url:'sendCommentoBackend.php',
|
|
dataType:'html',
|
|
data:$("#commentoForm").serialize(),
|
|
success: function(data){
|
|
$("#commentoArea").remove();
|
|
$("#sentMessage").html(data);
|
|
}
|
|
});
|
|
// });
|
|
});
|
|
|
|
<?php if($articolo->hasProperty("sondaggio") && !is_null($articolo->sondaggio)){?>
|
|
$("#sondaggioGraph").highcharts({
|
|
chart:{type:'bar'},
|
|
title:{text:'<?php echo trim(html_entity_decode($articolo->sondaggio->titolo)); ?>'},
|
|
xAxis:{
|
|
categories:[<?php $i =0; foreach($articolo->sondaggio->voci as $voce){
|
|
echo ($i++==0?"":", ")."\"".trim($voce->nome)."\"";
|
|
}
|
|
?>]
|
|
},
|
|
yAxis:{
|
|
title:{text:"Numero Voti"}
|
|
},
|
|
series:[{
|
|
name:"Voti",
|
|
data:[<?php $i =0; foreach($articolo->sondaggio->voci as $voce){
|
|
echo ($i++==0?"":", ").$voce->voti;
|
|
}
|
|
?>]
|
|
}]
|
|
});
|
|
<?php }?>
|
|
// $("form#commentoForm").on('submit',function (){
|
|
// $.ajax({
|
|
// type:'post',
|
|
// url:'sendCommentoBackend.php',
|
|
// dataType:'html',
|
|
// data:$("#commentoForm").serialize(),
|
|
// target: '#sentMessage',
|
|
// complete: function(){
|
|
// $("#commentoArea").remove();
|
|
|
|
// }
|
|
// });
|
|
// });
|
|
|
|
});
|
|
</script>
|
|
<?php GUIHandler::generateGoogleAnalyticsScripts();?>
|