Files
fdn2/public/articolo.php
T
Lorenzo Giacomelli 3f641fd7b5 esteso highcharts anche per general;
lock in categorySummary per le categorie hidden;
aggiunta del sondaggio in articolo;
inizio funzione di commento
2016-03-17 10:18:24 +01:00

316 lines
11 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("CommentiModel",
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"] ,"Send")==0){
$saveable = new stdClass();
$saveable->user = UserLoginManager::getLogged();
$saveable->notizia = $articolo->id;
$saveable->titolo = $_POST["titolo"];
$saveable->testo = $_POST["commento"];
$saveable->status = CommentoModel::STATUS_PENDING;
$commento = new CommentoModel($savable);
GlobalVariables::get("dao")->save($commento);
}
}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 echo $mediaMetaInfo;?>>
<?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;?> &mdash;</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>
<div class="votanti">Votanti: <?php $i=0; foreach ($articolo->sondaggio->votanti as $votante){ echo ($i++==0?"":", ").$votante;}?></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" href="www.facebook.com/"><div style="background-image:url(images/fb_round.png);"></div></a>
<a class="socialLink" href="www.tritter.com/"><div style="background-image:url(images/twitter_round.png);"></div></a>
<a class="socialLink" href="www.linkedin.com/"><div style="background-image:url(images/linkedin_round.png);"></div></a>
<a class="socialLink" href="www.plus.google.com/"><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">
<div class="caroselArrow left"><img alt="" src="images/leftArrow.png"></div>
<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>
<div class="caroselArrow right"><img alt="" src="images/rightArrow.png"></div>
</div>
</div>
<?php }?>
<div class="commentiContainer">
<div id="sentMessage"></div>
<?php if(UserLoginManager::isLogged()){?>
<div id="commentoArea" class="newCommento">
<form method="POST" id="commentoForm">
<div>Titolo commento:</div>
<textarea name="titolo" rows="2" cols="30"></textarea>
<div>Commento:</div>
<textarea name="commento"rows="5" cols="80"></textarea>
<input type="hidden" name="id" value="<?php echo $articolo->id;?>" />
<input type="submit" name="sendCommento" value="Send" />
</form>
</div>
<?php }
else{
?>
<div class="noLogin">Effettua il <a href="#loginLink">login</a> per commentare o se non hai ancora un account <a href="#regButton">registrati</a></div>
<?php }
if(sizeof($commenti)>0){
?>
<div class="oldCommentiContainer">
<?php foreach ($commenti as $oldCommento){
?>
<div class="commento">
<div>Username</div>
<span>Titolo</span>
<span>Testo</span>
</div>
<?php }
?>
</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>