Files
fdn2/public/admin/editNotizie.php
T
Riccardo Di Dato 1b0a3912d1 Corretta importazione dati per account antonio
Diminuita frequenza di aggiornamento del meteo
Inserito check per il meteo in caso di richiesta fallita
Inserito status accepted automatico sulla creazione di notizie in caso
di amministratori
Corretto social share in caso di dati open graph
2016-03-22 17:46:26 +01:00

165 lines
5.7 KiB
PHP

<?php
require_once(dirname(__FILE__)."/../load.php");
GUIHandler::generateHtmlHeaders(array(),true);
if (!AdminLoginManager::isLogged()){
GUIHandler::redirect("admin/login.php");
}
else if (!AdminLoginManager::getLogged()->hasRole(AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR) &&
!AdminLoginManager::getLogged()->hasRole(AdminModel::ADMIN_TYPE_EDITORE)){
GUIHandler::redirect("admin/index.php");
}
try{
$error = "";
$edit = false;
$notiziaId = PostHandler::get("id");
$notizia = new NotiziaModel();
$notizia->about->data = new MongoDate();
// var_dump($notizia);
if(!is_null($notiziaId) && strcmp($notiziaId, "")!=0){
$edit = true;
$notizia = GlobalVariables::get("dao")->getFirst("NotiziaModel",array("id"=>$notiziaId));
// echo "pene";
if(is_null($notizia)){
GUIHandler::redirect("admin/myNotizie.php");
}
if (!AdminLoginManager::getLogged()->hasRole(AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR) &&
AdminLoginManager::getLogged()->hasRole(AdminModel::ADMIN_TYPE_EDITORE)){
if($notizia->status == NotiziaModel::STATUS_ACCEPTED){
GUIHandler::redirect("admin/myNotizie.php");
}
if(strcmp($notizia->about->owner, AdminLoginManager::getLogged()->id) != 0){
GUIHandler::redirect("admin/myNotizie.php");
}
}
}
else {
$notizia->about->author = AdminLoginManager::getLogged()->nome." ".AdminLoginManager::getLogged()->cognome;
}
MenuGenerator::generateMenu();
HTMLHelper::generateAdminHead();
if(!is_null(PostHandler::get("action")) && strcmp(PostHandler::get("action"), "")!=0){
$save = PostHandler::get("action");
if(strcmp($save, "save")==0){
$notizia->titolo = strip_tags(PostHandler::get("titolo"));
$notizia->sottotitolo = strip_tags(PostHandler::get("sottotitolo"));
$notizia->testo = PostHandler::get("testo");
$notizia->category = PostHandler::get("category");
$notizia->about->author = PostHandler::get("author");
$dateString = PostHandler::get("data")." ".PostHandler::get("time");
if(!preg_match("/^[0-9]{2}[-][0-9]{2}[-][0-9]{4} [0-9]{2}[:][0-9]{2}$/", $dateString)){
throw new GUIException("Il formato della data inserita non è corretto. Per favore segui il seguente formato Date: dd-mm-yyyy hh:ii");
}
$mongoDate = new MongoDate(strtotime($dateString));
$notizia->about->data = $mongoDate;
if(!$edit){
$notizia->status = NotiziaModel::STATUS_PENDING;
if (AdminLoginManager::getLogged()->hasRole(AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR)){
$notizia->status = NotiziaModel::STATUS_ACCEPTED;
}
$notizia->about->owner = AdminLoginManager::getLogged()->id;
}
if (!array_key_exists($notizia->category,NotiziaModel::$NOTIZIE_CATEGORY)){
throw new GUIException("La categoria inserita non è valida");
}
GlobalVariables::get("dao")->save($notizia);
if (AdminLoginManager::getLogged()->hasRole(AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR)){
GUIHandler::redirectPost("admin/homeNotizie.php",array("id"=>$notizia->id));
}
else {
GUIHandler::redirect("admin/myNotizie.php");
}
}
}
else{
echo "post nullo";
}
}catch(GUIException $ex){
$error = $ex->getMessage();
}catch (Exception $exec){
LoggingFacilityManager::getLogger("gui")->log(LoggingFacility::$LEVEL_ERROR, $exec->getMessage());
$error = "Si è verificato un errore inaspettato durante l'esecuzione della pagina. Se l'errore persiste contattare il supporto tecnico.";
}
?>
<div>
<?php
if(strcmp($error, "")!=0){
?>
<div style="font-size: 16px; color:red;">
<?php echo $error;?>
</div>
<?php
}
?>
<form method="POST" id="notiziaForm">
<input type="hidden" value="<?php echo $notiziaId;?>" name="id"/>
<div style="padding:5px;display:inline-block;">
<span class="label">Categoria:</span>
<select name="category">
<option disabled="disabled" selected="selected" style="display:none;">Seleziona una categoria</option>
<?php foreach (NotiziaModel::$NOTIZIE_CATEGORY as $category=>$data){
if(strcmp($notizia->category,$category)==0){?>
<option value="<?php echo $category;?>" selected="selected">
<?php }
else{ ?>
<option value="<?php echo $category;?>">
<?php } ?>
<?php echo $data["label"];?></option>
<?php } ?>
</select>
</div>
<div >
<span class="label">Autore:</span>
<input type="text" value="<?php echo $notizia->about->author;?>" name="author"/>
</div>
<div style="">
<span class="label">Titolo:</span>
<textarea name="titolo" rows="3" cols="80" style="resize:none;"><?php echo $notizia->titolo;?></textarea>
</div>
<div style="">
<span class="label">Sottotitolo:</span>
<textarea name="sottotitolo" rows="3" cols="80" style="resize:none;"><?php echo $notizia->sottotitolo;?></textarea>
</div>
<div style="text-align:center;">Corpo della notizia</div>
<textarea name="testo" id="editore_testo" rows="10" cols="80"><?php echo $notizia->testo;?></textarea>
<div style="display:inline-block;"><span class="label">Data:</span><input type="text" id="datepicker" name="data" value="<?php echo date("d-m-Y",$notizia->about->data->sec);?>"></div>
<div style="display:inline-block;"><span class="label">Ora:</span><input type="text" id="timepicker" name="time" value="<?php echo date("H:i",$notizia->about->data->sec);?>"></div>
<input type="hidden" name="action" value=""/>
</form>
<div class="formBtns">
<a href="#" id="submit" >Salva</a>
</div>
</div>
<script type="text/javascript">
CKEDITOR.replace( 'editore_testo');
$(document).ready(function(event){
$("#submit").click(function(event){
$("form#notiziaForm input[type=hidden][name=action]").val("save");
$("form#notiziaForm").submit();
});
$("#datepicker").datepicker({dateFormat:"dd-mm-yy"});
$("#timepicker").datetimepicker({datepicker:false,
format:'H:i'});
});
</script>