First commit

This commit is contained in:
Pierre Hubert
2016-11-19 12:08:12 +01:00
commit 990540b2b9
4706 changed files with 931207 additions and 0 deletions

1
inc/.htaccess Executable file
View File

@ -0,0 +1 @@
Require all denied

40
inc/404.html Executable file
View File

@ -0,0 +1,40 @@
<?php
//Vérifications de dernières minute
if(!isset($infosURL['uri_base']))
$infosURL['uri_base'] = $urlsite;
if(!isset($infosURL['url_saisie']))
$infosURL['url_saisie'] = $_SERVER['PHP_SELF'];
?><!DOCTYPE html>
<html>
<head>
<title>Erreur 404 : page non trouv&eacute;e - Comunic</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<style type='text/css'>
body {margin:0px;padding:0px;background:#ffffff;font-family:arial, helvetica, sans-serif;}
#top {margin:0px;padding:0px;background:#0066CC; color: #FFFFFF; width:100%; }
#top .container { padding:0px 0px 0px 0px; height: 23px; }
#top .container a {color: white; text-decoration: none; }
.titre { text-align: center; }
</style>
</head>
<body>
<div id='top'>
<div class='container'>
<strong><a href='<?php echo $infosURL['uri_base']; ?>'>Comunic</a></strong>
</div>
</div>
<h1 class='titre'>Erreur : La page demand&eacute;e n'a pas &eacute;t&eacute; trouv&eacute;e</h1>
<p>L'adresse saisie <i><?php echo $infosURL['url_saisie']; ?></i> n'a pas &eacute;t&eacute; trouv&eacute;e.</p>
<p>Causes les plus probables:</p>
<ul>
<li>La page a &eacute;t&eacute; d&eacute;plac&eacute;e</li>
<li>La page a &eacute;t&eacute; supprim&eacute;e</li>
<li>Vous ne disposez pas des autorisations n&eacute;cessaires pour ouvrir la page.</li>
</ul>
<p>Si vous avez &eacute;crit l'URL &agrave; la main, v&eacute;rifiez votre saisie. Sinon, retournez &agrave; la page pr&eacute;c&eacute;dente et actualisez-la. Si le probl&egrave;me persiste, contactez-nous. Si vous le souhaitez, vous pouvez &eacute;galement <a href="<?php echo $infosURL['uri_base']; ?>">retourner &agrave; l'acceuil.</a></p>
<p><span style="text-decoration: underline;"><strong>Que signifie "Erreur 404" ?</strong></span></p>
<p>Dans le web, lorsqu'une page demand&eacute;e n'a pas &eacute;t&eacute; trouv&eacute;e sur un serveur, ce dernier renvoi une erreur de type 404. <em>404</em> est un <strong>&eacute;tat</strong>: l'&eacute;tat de la requ&ecirc;te envoy&eacute;e. Il existe d'autre &eacute;tat qui permette de d&eacute;finir si l'acc&egrave;s &agrave; une page est autoris&eacute; ou interdit, si tout s'est bien pass&eacute;...</p>
</body>
</html>

19
inc/account_created.php Executable file
View File

@ -0,0 +1,19 @@
<?php
//Sécurité
if(!isset($account_created_check) OR !isset($mail))
die('Invalid call!');
?><div class="metro account_created">
<h1 class="titre">F&eacute;licitations !</h1>
<p>Vous pouvez d&egrave;s &agrave; pr&eacute;sent utiliser Comunic pour communiquer avec vos amis! D&eacute;couvrez quelques-unes de ses fonctionalit&eacute;s :</p>
<div class="img_account_created_contener"><?php echo code_inc_img(path_img_asset('discover_comunic_modifie.png'), "Fonctions de Comunic"); ?></div>
<h2>C'est parti !</h2>
<p>Connectez-vous d&egrave;s maintenant pour profiter de ses fonctionalit&eacute;s :</p>
<form action="connecter.php<?php if(isset($redirect)) echo "?redirect=".urlencode($redirect); ?>" method="post" class="form_first_login">
<div class="input-control password size4">
<input type="password" value="" name="motdepasse" placeholder="Saisissez votre mot de passe"/>
</div>
<input type="hidden" name="mail" value="<?php echo $mail; ?>" />
<button onClick="this.submit();">Connexion</button>
</form>
</div>

View File

@ -0,0 +1,18 @@
<?php
//Vérification de la clé de sécurité
if(!isset($add_comunic_as_search_engine_check))
die('Invalid call!');
//Envoi de l'header XML
header('Content-Type: application/xml');
echo "<"; ?>?xml version="1.0" encoding="UTF-8" ?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Comunic</ShortName>
<Description>Un r&#233;seau social qui respecte votre vie priv&#233;e.</Description>
<InputEncoding>ISO-8859-1</InputEncoding>
<OutputEncoding>ISO-8859-1</OutputEncoding>
<Image width="16" height="16" type="image/x-icon"><?php echo $urlsite; ?>img/favicon.ico</Image>
<Image width="64" height="64" type="image/x-icon"><?php echo $urlsite; ?>img/favicon_64.ico</Image>
<Url type="text/html" method="get" template="<?php echo $urlsite; ?>recherche.php?q={searchTerms}"></Url>
<Language>fr_FR</Language>
</OpenSearchDescription>

34
inc/ajax_search_users.php Executable file
View File

@ -0,0 +1,34 @@
<?php
//Sécurité
if(!isset($ajax_search_users))
die('Invalid Request!');
if(!isset($_SESSION['ID']))
die('Login required!');
//Vérification de la présence des variables
if(!isset($_GET['search']))
die('Missing arguments');
if($_GET['search'] == "")
die('Invalid arguments !');
//On envoi l'en-tête
header("Content-type: text/plain");
//On effectue la recherche
$search = searchuser(corrige_accent_javascript($_GET['search']), $bdd, 5);
//On définit les variables
$separateur_user = "<|>";
$separateur_info = "*!*";
//On renvoi les résultats
foreach($search as $i=>$renvoi)
{
//Si la requête n'est pas la première, on met un séparateur
if($i != 0)
echo $separateur_user;
//On affiche les informations sur la personne (avec les séparateurs
echo corrige_caracteres_speciaux($renvoi['ID'].$separateur_info.$renvoi['prenom']." ".$renvoi['nom'].$separateur_info.avatar($renvoi['ID'], './', 32, 32));
}

21
inc/api/apiServer.inc.php Normal file
View File

@ -0,0 +1,21 @@
<?php
/**
* API Server
*
* @author Pierre HUBERT
*/
//Security
isset($_SESSION) OR exit("Invalid call ! - ".$_SERVER['PHP_SELF']);
$serviceName = "testService";
$token = "G5AoxG/URyYBDVyLYnsnVpQL0p+JTL7QgOopwQIDAQABAoIBAC7kB2BUVDEm3Dy4";
exit();
//Server framework inclusion
require_once(relativePath_3rdparty("RestServer/RestServer.php"));
//Creating server
$serverState = ($mode_site == "offline" ? "debug" : "production");
$server = new \Jacwright\RestServer\RestServer($serverState);
$server->handle();

79
inc/change_avatar_webcam.php Executable file
View File

@ -0,0 +1,79 @@
<?php
//Sécurité
if(!isset($change_avatar_webcam))
die("Invalid Request!");
if(!isset($_SESSION['ID']))
die("Login required !");
//On vérifie si un avatar a été envoyé
if(isset($_POST['data']))
{
if($_POST['data'] != "")
{
//On supprime l'ancien avatar si il y en a un
if(file_exists(relativeUserDataFolder('avatars/adresse_avatars/'.$_SESSION['ID'].'.txt')))
{
unlink(relativeUserDataFolder('avatars/'.file_get_contents(relativeUserDataFolder('avatars/adresse_avatars/'.$_SESSION['ID'].'.txt'))));
}
//Nom du nouvel avatar
$adresse = sha1(time()).".png";
//On modifie la date d'enregistrement de l'avatar
file_put_contents(relativeUserDataFolder('avatars/adresse_avatars/'.$_SESSION['ID'].'.txt'), $adresse);
//Enregistrement de l'avatar
base64_to_jpeg($_POST['data'], relativeUserDataFolder("avatars/".$adresse));
//Redirection vers la page de modification de l'avatar
//header('Location: parametres.php?c=avatar');
}
}
?><!DOCTYPE html>
<html>
<head>
<?php include(pagesRelativePath('common/head.php')); ?>
<title>Utilisation de la WebCam pour changer d'avatar</title>
</head>
<body>
<?php include(pagesRelativePath('common/pageTop.php')); ?>
<div class="corps_page_nouvel_avatar">
<h2 class="titre">Utilisation de la WebCam pour envoyer un nouvel avatar</h2>
<a href="parametres.php?c=avatar"> Retour aux param&egrave;tres </a>
<div id="container">
<!-- Bouton d'activation de la webcam -->
<div class="bouton_photo_webcam"><button onClick="navigator.getUserMedia(constraints, successCallback, errorCallback);">Activer la WebCam</button></div>
<!-- Zone d'apparition de la webcam -->
<video autoplay poster="<?php echo path_img_asset(''); ?>activer_webcam.png"></video>
<!-- Bouton de prise de photo -->
<div class="bouton_photo_webcam"><button id="bouton_prendre_photo">Prendre une photo</button></div>
<!-- Zone d'apparition de la photo -->
<canvas class="target_image_webcam_nouvel_avatar" id="target_image_webcam_nouvel_avatar"></canvas>
<!-- Bouton d'enregistrement de la photo -->
<div class="bouton_envoi_nouvel_avatar_from_webcam"><button onClick="send_snapshot_webcam_for_avatar();">Envoyer la photo</button></div>
<!-- Formulaire d'envoi des données -->
<form action="action.php?actionid=<?php echo $action; ?>" method="post" id="post_new_image_from_webcam"><input type="hidden" name="data" id="data" /></form>
</div>
<!-- Conseils pour les utilisateurs -->
<b> Note : Il se peut que si vous utilisez une ancienne version de votre navigateur ou que vous utilisez Internet Explorer cette page ne fonctionne pas.</b>
<p> Information : Il se peut que votre navigateur vous demande l'autorisation d'utiliser la webcam. Dans ce cas, acceptez-la. :</p>
<?php echo code_inc_img(path_img_asset('accepte_webcam.jpg'), "Dans Firefox, cliquez sur Partager le p&eacute;riph&eacute;rique selectionn&eacute; pour accepter l'affichage de la webcam.", "", "", "margin:auto;"); ?>
<!-- Fin de: Conseils pour les utilisateurs -->
</div>
<!-- Pied de page -->
<hr /><?php include(pagesRelativePath('common/pageBottom.php')); ?>
<!-- Inclusion des scripts Javascript spécifiques -->
<?php echo code_inc_js(path_js_asset('webrtc_main.js')); ?>
<!-- Fin de: Inclusion des scripts Javascript spécifiques -->
</body>
</html>

22
inc/change_hauteur_chat.php Executable file
View File

@ -0,0 +1,22 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Invalid Request.");
if(!isset($verification_change_auteur_chat))
die("404 File not found.");
//Vérification de l'existence des variables
if(!isset($_GET['size']))
die("Missing arguments.");
//Préparation de la mise à jour
$size = ($_GET['size'] > 20 ? $_GET['size'] : 150);
$size = ($size <= 220 ? $size : 150);
//On met à jour l'état de l'affichage du chat privé
$sql = "UPDATE utilisateurs SET height_private_chat = ? WHERE ID = ?";
$requete = $bdd->prepare($sql);
$requete->execute(array($size, $_SESSION['ID']));
//Message de succès
echo "OK. ".$size;

View File

@ -0,0 +1,39 @@
<?php
//Service Pierre
// 2015 - Tous droits réservés
//Fichier permettant de changer le niveau de visibilité d'un post
//Sécurité
if(!isset($verification_visibilite))
die(); //Sécurité
if(!isset($_SESSION['ID']))
die(); //Sécurité
//Vérification de l'existence des variables requises
if(isset($_GET['nouveau_niveau_visibilite']) && isset($_GET['idtexte']))
{
//Définition des variables
$nouveau_niveau_visibilite = $_GET['nouveau_niveau_visibilite'];
$idtexte = $_GET['idtexte'];
if($nouveau_niveau_visibilite*1 != 0 AND $idtexte*1 != 0)
{
//Vérification du niveau de visibilite
if($nouveau_niveau_visibilite > 0 AND $nouveau_niveau_visibilite < 4)
{
//Mise à jour de la video
$sql = "UPDATE texte SET niveau_visibilite = ? WHERE (ID_personne = ? AND ID_amis = 0 AND ID = ?) OR (ID_amis = ? AND ID = ?)";
//Exécution de la requête
$requete = $bdd->prepare($sql);
$requete->execute(array($nouveau_niveau_visibilite*1, $_SESSION['ID'], $idtexte, $_SESSION['ID'], $idtexte));
echo "OK. Fini.";
}
else
{
die("Niveau de visibilite incorrect.<br />");
}
}
}

View File

@ -0,0 +1,32 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Login required.");
if(!isset($code_session_private_chat))
die("404 File not found.");
//On récuère la la liste si elle est disponible
if(isset($_SESSION['private_chat']))
{
if(isset($_SESSION['private_chat'][$_SESSION['ID']]))
{
//On affiche toute les conversations de manière méthodique
foreach($_SESSION['private_chat'][$_SESSION['ID']] as $id=>$nothing)
{
//Récupération des informations de la personne
$info_personne = cherchenomprenom($id, $bdd);
echo "<div class='une_conversation_private_chat window'>";
echo "<div class='header_une_conversation_private_chat caption'>";
echo '<span class="icon icon-comments-2"></span>';
echo "<div class='title'>".corrige_caracteres_speciaux($info_personne['prenom']." ".$info_personne['nom'])."</div>";
echo " <button class='btn-close' onClick='close_conversation(".$id.");'></button>";
echo "</div>";
echo "<div class='content'>";
echo "<iframe src='".$urlsite."privatechat.php?notitle=1&screen=chat&id=".$id."' class='iframe_une_conversation_private_chat'></iframe>";
echo "</div>";
echo "</div>";
}
}
}

87
inc/config/config.php Executable file
View File

@ -0,0 +1,87 @@
<?php
//Fonctions du service Pierre
//D<>velopp<70> pour Comunic
//D<>but du d<>veloppement : fin 2013
//Tous droits r<>serv<72>s.
//Avertissement : ce fichier g<>n<EFBFBD>r<EFBFBD> automatiquement est n<>cessaire au bon fonctionnement de la base de donn<6E>es et des fonctions.
//Configuration d'acc<63>s <20> la base de donn<6E>es
$hotedb = "localhost"; //H<>te de la base de donn<6E>es
$nomdb = "comunic"; //Nom de la base de donn<6E>es
$userdb = "root"; //Nom utilisateur
$passworddb = "root"; //Mot de passe pour acc<63>der acc<63>s <20> la base de donn<6E>es
//Configuration du site
$urlsite = "http://devweb.local/comunic/current/"; //Url du site
$forceHttps = false; //Forcer ou non la connexion securisee (en HTTPS) du site
$preferenceredirection = "headerphp"; //Pr<50>f<EFBFBD>rence de redirection : HTML ou PHP
$mode_site = "offline"; //Mode du site : en ligne ou offline
$last_update_website = "1476950918"; //Nombre de secondes depuis la derni<6E>re mise <20> jour du site
$alert_last_update_website = "1"; //P<>riode suivant la mise <20> jour duant laquelle un avertissement sera affich<63>
$jqueryonline = ""; //Adresse de jQuery en ligne
$affichebeta = 0; //On affiche ou nom le message d'avertissement sur la page principale
$textebeta = array("fr" => ""); //Texte qui est affich<63> si le message de beta est affich<63> sur index.php (fran<61>ais)
$textebeta["en"]=""; //Texte qui est affich<63> si le message de beta est affich<63> sur index.php (anglais)
$textecookie["fr"]="Attention : Certaines fonctionnalités comme le niveau de visibilité des posts personnalisé ne sont pas encore entièrement disponibles."; //Texte qui est affich<63> en page d'acceuil qui avertis pour la cr<63>ation de cookies (fran<61>ais)
$textecookie["en"]="Warning : There is some undone functionalities in this website such as the visibility of the posts"; //Texte qui est affich<63> en page d'acceuil qui avertis pour la cr<63>ation de cookies (anglais)
$affichemessageclassique = 0; //Afficher ou non le message d'avertissement classique
$bloque_site_for_update = 0; //Bloquer ou non le site pour effectuer une mise <20> jour
$complementsource = ""; //Compl<70>ment de source pour le fichier header.php
$activer_publique_chat = "non"; //Activer ou non le chat publique
$activer_cache = "non"; //Activer ou non la mise en cache et la r<>duction des ressources
$bloque_clic_droit = "non"; //Intercepter ou non le chat clic droit de la souris
$active_services = "oui"; //Activer ou non les services: 'oui' ou 'non'
$active_gestion_404 = "oui"; //Activer ou non la gestion des erreurs 404 par le fichier index.php: 'oui' ou 'non'
$active_gestion_appareil_mobile = "non"; //Activer ou non la gestion des des appareils mobiles par le fichier index.php: 'oui' ou 'non'
$ID_official_page = "198"; //ID de la page officielle
$ID_actuality_page = "198"; //ID de la page d'actualite
$comment_size_limit = "2555"; //Taille maximum des commentaires, en nombre de caract<63>res
//Protection de la cr<63>ation de compte
$activcreationcompte = "nopass"; //Permet d'activer, de d<>sactiver ou de prot<6F>ger par mot de passe la cr<63>ation de compte
$passwordcreataccount = 'daOkAtJI0O5Cg'; //Mot de passe de protection de compte si demand<6E>. Est stock<63> crypt<70> pour plus de s<>curit<69>.
$messagecreateaccountdenied = ""; //Message a afficher en cas de refus de cr<63>ation de compte
$activimagevalidation = "1"; //Affiche ou non l'image de validation de cr<63>ation de compte. (image de s<>curit<69>)
//Configuration de Piwik
$enable_piwik = "0"; //Activer ou non le suivi Piwik
$id_site_piwik = "1"; //ID du site dans l'interface de Piwik
$adresse_piwik = "//communiquons.org/piwik"; //Adresse du site Piwik (doit <20>tre compl<70>te et commencer par // (pas de http: ou https:))
//Facebook API
$active_facebook_api = "non"; //Activer ou non les APIS FACEBOOK pour la cr<63>ation de compte
$id_app_facebook = ""; //ID de l'appplication Facebook
$facebook_api_key = ""; //Cl<43> des API Facebook
//Envoi de mails
$active_envoi_mail = "oui"; //Activation de l'envoi de mails
$methode_envoi_mail = "mail()"; //M<>thode d'envoi de mail (PHPMailer ou mail())
$active_login_envoi_mail = "oui"; //Activation de l'authentification pour l'envoi de mail
$mail_envoi = "pierre@mail.local"; //Adresse mail de l'exp<78>diteur
$admin_mail_envoi = "pierre@mail.local"; //Adresse mail de l'administration
$mail_envoi_erreur_sql = "pierre@mail.local"; //Adresse mail de l'envoi de bug relatif aux requ<71>tes SQL
$password_mail_envoi = "1478965"; //Mot de passe de l'exp<78>diteur
$adresse_serveur_mail_envoi = "localhost"; //Adresse du serveur mail d'envoi
$port_serveur_mail_envoi = "25"; //Port du serveur mail d'envoi
$nom_mail_expediteur = "Comunic (communiquons.org)"; //Nom pour les envoi de mail
$info_mail_securite = "Ce mail est un mail relatif &agrave; la s&eacute;cirt&eacute; de votre compte, c'est pourquoi il vous est adress&eacute; m&ecirc;me si vous avez refus&eacute; l'envoi de mails."; //Message <20> afficher dans tous les mails relatifs <20> la s<>curit<69> du compte
//Forcer le changement d'adresses mail (redirection)
$force_redirection_mails = "oui"; //Activation ou non de la redirection
$adresse_mail_redirection = "pierre@mail.local"; //Adresse mail de redirection
//Administration
$plus_securite_admin = "oui"; //Renforcer la s<>curit<69> <20> la connexion de l'administration
$enable_log_admin = "oui"; //Activer la surveillance de l'activit<69> de l'administration
//Support du SSL
if(isset($_SERVER['HTTPS']))
{
if($_SERVER['HTTPS'] == "on")
//Modification de http:// en https:// dans l'URL du site
$urlsite = str_replace('http://', 'https://', $urlsite);
}
elseif($forceHttps)
header("location: https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]);
?>

View File

@ -0,0 +1,14 @@
<?php
/**
* List of allowed hosts
*
* @author Pierre HUBERT
*/
$liste_allowed_hosts = array(
"communiquons.org",
"192.168.1.5",
"devweb.local"
//Add here your URL for your personnal installation
);

74
inc/config/listPages.php Normal file
View File

@ -0,0 +1,74 @@
<?php
/**
* Virtual pages list
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit("Invalid call - ".$_SERVER['PHP_SELF']);
$pagesList = array();
/**
* Edit a post
*/
$pagesList['editpost.php'] = array(
"file" => "homeUser/editPost/editPost.inc.php",
);
/**
* Search a user
*/
$pagesList['recherche.php'] = array(
"file" => "searchUser/searchUser.inc.php",
);
/**
* List opened pages
*/
$pagesList['pagepublique.php'] = array(
"file" => "openUsers/openUsers.inc.php",
);
/**
* About the project
*/
$pagesList['about.php'] = array(
"file" => "about/about.php",
);
/**
* About Comunic
*/
$pagesList['whatiscomunic.php'] = array(
"file" => "whatIsComunic/whatiscomunic.inc.php",
);
/**
* Contact administration
*/
$pagesList['contact.php'] = array(
"file" => "contact/contact.inc.php",
);
/**
* Improvement forum
*/
$pagesList['forum.php'] = array(
"file" => "improveForum/forum.inc.php",
);
/**
* Share a link
*/
$pagesList['share.php'] = array(
"file" => "share/share.inc.php",
);
/**
* Webmail
*/
$pagesList['webmail.php'] = array(
"file" => "webmail/webmail.inc.php",
);

View File

@ -0,0 +1,30 @@
<?php
/**
* Static configuration of website
* contains every elements which may not require to be changed
* when Comunic is installed on a new webserver
*
* @author Pierre HUBERT
*/
$staticConfig = array();
/**
* Path to 3rd party elements
*/
$staticConfig["3rdPartyElementsFolder"] = "3rdparty/";
/**
* Path to user data
*/
$staticConfig["userDataFolder"] = "user_data/";
/**
* Path the core elements of website
*/
$staticConfig['coreFolder'] = "inc/core/";
/**
* List of function files
*/
$staticConfig['listFunctionsFiles'] = array("sql", "main", "url", "api");

View File

@ -0,0 +1,88 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Login required.");
if(!isset($ok_for_recent_private_chat))
die("404 File not found.");
//Recherche des 5 dernières conversations dans la base de données
$array_last_conversations = array();
$supp_sql = "ID_destination != 0 ";
for($i = 0; $i < 5; $i++)
{
//Sélection SQL
$result_sql = select_sql("chatprive", "(ID_personne = ? OR ID_destination = ?) AND (".$supp_sql.") ORDER BY date_envoi DESC LIMIT 1", $bdd, $tableau_valeurs = array($_SESSION['ID'], $_SESSION['ID']));
//On vérifie si il reste des entrées
if(count($result_sql) == 0)
break;
//Détermination de l'ID de la personne distante
$temp_id_personne = ($result_sql[0]['ID_personne'] == $_SESSION['ID'] ? $result_sql[0]['ID_destination'] : $result_sql[0]['ID_personne']);
//Enregistrement des informations
$array_last_conversations[$temp_id_personne] = array(
'ID_personne' => $temp_id_personne,
'message' => $result_sql[0]['contenu'],
'vu' => ($result_sql[0]['ID_personne'] == $_SESSION['ID'] ? 1 : $result_sql[0]['vu']),
'date' => $result_sql[0]['date_envoi']
);
//Rajout de la condition SQL
$supp_sql .= "AND ID_destination != ".$temp_id_personne." AND ID_personne != ".$temp_id_personne." ";
}
?><!DOCTYPE html>
<html>
<head>
<title>Conversations r&eacute;centes du chat priv&eacute;</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<!-- Appel des feuilles de style -->
<?php echo code_inc_css(path_css_asset('global.php/'.$last_update_website)); ?>
<style type="text/css">
.conversations_contener {
text-align: center;
}
.a_conversation {
padding-top: 15px;
}
.open_conversation {
width: 98% !important;
margin: auto;
}
.a_conversation small {
font-size: 70% !important;
}
</style>
</head>
<body class="metro">
<!-- Affichage de la liste des conversations -->
<?php
if(count($array_last_conversations) == 0)
echo "<p>Vous n'avez aucune conversation r&eacute;cente &agrave; afficher</p>";
else
{
echo "<div class='conversations_contener'>";
foreach($array_last_conversations as $afficher)
{
?><div class="a_conversation">
<a class="open_conversation command-button" href="<?php echo $urlsite; ?>action.php?actionid=19&id=<?php echo $afficher['ID_personne']; ?>&autoredirect">
<i class="icon-<?php echo($afficher['vu'] == 1 ? "comments-2" : "new"); ?> on-left"></i>
<?php echo corrige_caracteres_speciaux(return_nom_prenom_user($afficher['ID_personne'], $bdd)); ?>
<small><?php echo corrige_caracteres_speciaux(affiche_smile(bloquebalise(wordwrap(str_replace(')', ') ', $afficher['message']), 30, " ", true)), $urlsite)); ?><br /><i><?php echo adapte_date($afficher['date']); ?></i></small>
</a>
</div><?php
}
echo "</div>";
}
?>
</body>
</html>

View File

@ -0,0 +1,16 @@
<?php
/**
* This file is used to check whether the website
* was shutdown for upgrade or not
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit("Invalid call - ".$_SERVER['PHP_SELF']);
//On vérifie si le site est bloqué pour une mise à jour ou non
if($bloque_site_for_update == 1)
{
echo add_url_site(file_get_contents(websiteRelativePath().'inc/message_update.html'), $urlsite);
die();
}

View File

@ -0,0 +1,24 @@
<?php
/**
* This file is useful to check we are
* on an allowed host for Comunic
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit("Invalid call - ".$_SERVER['PHP_SELF']);
/**
* Getting list of allowed host
*/
include(websiteRelativePath("inc/config/listAllowedHosts.inc.php"));
/**
* Performing security check
*/
if(!in_array($_SERVER['HTTP_HOST'], $liste_allowed_hosts))
{
//On redirige vers l'URL du site
header('location: '.$urlsite);
}

View File

@ -0,0 +1,60 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Login required !");
if(!isset($delete_avatar_img_background))
die("Invalid request!");
if(!isset($_SERVER['HTTP_REFERER']))
die("Invalid call!");
//Vérification de l'existence des variables
if(!isset($_GET['type']))
die("Invalid arguments !");
//Vérifions que l'appel du fichier vient bien de parametres.php
if(!preg_match("/parametres.php/", $_SERVER['HTTP_REFERER']))
die("This request has been stopped for security reasons.");
if($_GET['type'] == "avatar")
{
//Suppresion de l'avatar
$type = "avatars";
}
elseif($_GET['type'] == "imgfond")
{
//Suppresion de l'avatar
$type = "imgfond";
}
else
die("Incorrect arguments!");
//On définit l'adresse du fichier d'indication
$adresse_fichier_indication = relativeUserDataFolder($type.'/adresse_'.$type.'/'.$_SESSION['ID'].'.txt');
//On commence par vérifier si une image de fond a été postée
if(file_exists($adresse_fichier_indication))
{
//On a le fichier texte d'indication d'adresse
//On vérifie tout de même si le fichier existe
//Récupération de l'adresse indiquée par le fichier
$adresse = file_get_contents($adresse_fichier_indication);
//On vérifie si le fichier existe
if(file_exists(relativeUserDataFolder($type."/".$adresse)))
{
//Le fichier existe ->
//On supprime le fichier
unlink(relativeUserDataFolder($type."/".$adresse));
}
//On supprime maintenant le fichier texte d'indication
unlink($adresse_fichier_indication);
}
else
echo "L'avatar n'existe pas...";
//On redirige vers la page précédente
header('Location: '.$_SERVER['HTTP_REFERER']);
//On quitte le script (sécurité)
die();

View File

@ -0,0 +1,58 @@
<?php
//Sécurité
if(!isset($delete_old_notifications))
die("Invalid request.");
if(!isset($_SESSION['ID']))
die("Login required.");
?><!DOCTYPE html>
<html>
<head>
<title>Suppression des anciennes notifications</title>
<?php include(pagesRelativePath('common/head.php')); ?>
</head>
<body class="metro">
<?php
//On vérifie si une demande a été postée
$ok = false;
if(isset($_POST['choix']))
{
$choix = $_POST['choix'];
if($choix != "")
$ok = true; //On valide le choix
}
if(!$ok)
{
?><form action="action.php?actionid=<?php echo $action; ?>" method="post">
<div class="input-control text" id="datepicker">
<input type="text" name="choix" placeholder="Cliquez ici" />
</div>
<p>Cliquez ci-dessus pour choisir la date avant laquelle les notifications cr&eacute;&eacute;es seront supprim&eacute;es</p>
<p style="text-align: center"><input type="submit" value="Supprimer" /></p>
<script>
$("#datepicker").datepicker();
</script>
</form><?php
}
else
{
//Détermination de la date
$date = normalise_datepicker($choix);
//On supprime les entrées antérieures à cette date
$sql = "DELETE FROM notification WHERE date_envoi <= ? AND ID_personne = ?";
//Exécution de la requête
$requete = $bdd->prepare($sql);
$requete->execute(array($date, $_SESSION['ID']));
//Message de succès
?><p class="bg-lighterBlue padding20 fg-white">
Les notifications ant&eacute;rieures &agrave; cette date ont &eacute;t&eacute; supprim&eacute;es.
</p><?php
}
?>
</body>
</html>

View File

@ -0,0 +1,23 @@
<?php
//Sécurité
if(!isset($delete_request_become_friend))
die("Invalid request!");
if(!isset($_SESSION['ID']))
die("Login Required!");
//Vérification de l'existence des variables
if(!isset($_GET['id']))
die("Missing arguments!");
//On vérifie le contenu des variables
$id = $_GET['id']*1;
if($id == 0)
die("Invalid ID !");
//On supprime maintenant la demande, qu'elle n'existe ou pas (avec sécurité)
$sql = "DELETE FROM amis WHERE ID_personne = ? AND actif = 0 AND ID_amis = ?";
$requete = $bdd->prepare($sql);
$requete->execute(array($id, $_SESSION['ID']));
//Redirection vers la page de l'amis
header('Location: index.php?id='.$id);

26
inc/edit_commentaire.html Executable file
View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<title>Edition de commentaire</title>
</head>
<body>
<form action="../action.php?actionid=8" method="post">
<table border='1' align='center'>
<tr>
<td> Contenu du commentaire </td>
<td> <input type="text" name="commentaire" /> </td>
</tr>
<tr>
<td> ID du texte </td>
<td> <input type="text" name="idtexte" /> </td>
</tr>
<tr>
<td> ID du commentaire </td>
<td> <input type="text" name="idcommentaire" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center"> <input type="submit" value="Modifier" /> </td>
</table>
</form>
</body>
</html>

26
inc/edit_niveau_visibilite.html Executable file
View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<title>Edition du niveau de visibilit&eacute; d'un texte</title>
</head>
<body>
<form action="../action.php?actionid=14" method="get">
<table border='1' align='center'>
<tr>
<td> Nouveau niveau de visibilit&eacute; </td>
<td>
<input name="nouveau_niveau_visibilite" value="3" type="radio"> Moi uniquement
<input name="nouveau_niveau_visibilite" value="2" checked="" type="radio"> Moi et mes amis
<input name="nouveau_niveau_visibilite" value="1" type="radio"> Tout le monde
</td>
</tr>
<tr>
<td> ID du texte </td>
<td> <input type="text" name="idtexte" /> </td>
</tr>
<tr>
<td colspan="2" style="text-align: center"> <input type="submit" value="Modifier" /> </td>
</table>
</form>
</body>
</html>

22
inc/edit_nom_video.html Executable file
View File

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<title>Edition du nom d'une vid&eacute;o</title>
</head>
<body>
<form action="../action.php?actionid=12" method="post">
<table border='1' align='center'>
<tr>
<td> Nom de la vid&eacute;o </td>
<td> <input type="text" name="nouveau_nom_video" /> </td>
</tr>
<tr>
<td> ID de la vid&eacute;o </td>
<td> <input type="text" name="idvideo" /> </td>
</tr>
<tr>
<td colspan="2" style="text-align: center"> <input type="submit" value="Modifier" /> </td>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,45 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Login required !");
if(!isset($ok_maintenance))
die("Invalid request!");
if(!isset($_SERVER['HTTP_REFERER']))
die("Invalid call!");
//Vérifions que l'appel du fichier vient bien de parametres.php
if(!preg_match("/parametres.php?/", $_SERVER['HTTP_REFERER']))
die("This request has been stopped for security reasons.");
//Vérifions que la variable nécessaire existe
if(!isset($_POST['password']))
die('Invalid arguments!');
//On propose un lien vers la page précédente
echo "<title>Comunic - Maintenance de votre compte</title>";
echo "<a href='".$_SERVER['HTTP_REFERER']."'>Retour &agrave; la page pr&eacute;c&eacute;dente</a> <br /><br />";
//Vérification du mot de passe
echo "Contr&ocirc;le du mot de passe...";
//Cryptage du mot de passe envoyé
$afficher = cherchenomprenom($_SESSION['ID'], $bdd); //Récupération des informations de l'utilisateur
if(crypt_password($_POST['password']) != $afficher['password'])
die("Mot de passe invalide! Quitte le script.");
else
echo "Mot de passe correct.<br />";
//On effectue la maintenance
//Suppression des notifications
echo "Suppression de vos notifications...<br />";
$sql = "DELETE FROM notification WHERE ID_personne = ".$_SESSION['ID']." || ID_createur = ".$_SESSION['ID'];
$resultat = $bdd->query($sql);
echo "Termin&eacute;. <br />";
//On vide le chat prive
echo "Suppression de vos posts sur le chat priv&eacute;...<br />";
$sql = "DELETE FROM chatprive WHERE ID_personne = ".$_SESSION['ID'];;
$resultat = $bdd->query($sql);
echo "Termin&eacute;. <br />";
//On quitte le script (sécurité)
die();

153
inc/envoi_mail.php Executable file
View File

@ -0,0 +1,153 @@
<?php
//Sécurité
if(!isset($send_mail))
die();
//Chemin relatif
if(!isset($add_path))
{
$add_path = "";
}
//Inclusion de la configuration
include_once($add_path.'inc/config/config.php');
//Préparation de l'envoi de mail
//->préliminaire
if(!isset($config_path_defined))
{
define('CONFIG_PATH', $add_path.'config.php');
$config_path_defined = true;
}
//Vérification de l'existence de l'autorisation d'envoi de mail
if($active_envoi_mail == "oui")
{
//Paramètres d'envoi de mails
//$nom_destinataire : Nom et prénom du destinataire
//$texte_message : Code source HTML du message
//$adresse_mail_destinataire : adresse mail du destinataire
//$sujet : Sujet du message
//Préparation de l'envoi
$message_html = "<!DOCTYPE html>
<html>
<head>
<title>Comunic</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<style type='text/css'>
body {margin:0px;padding:0px;background:#ffffff;font-family:arial, helvetica, sans-serif;}
#top {margin:0px;padding:0px;background:#0066CC; color: #FFFFFF; width:100%; }
#top .container { padding:0px 0px 0px 0px; height: 23px; }
#top .container a {color: white; text-decoration: none; }
.titre { text-align: center; }
</style>
</head>
<body>
<div id='top'>
<div class='container'>
<strong><a href='".$urlsite."'>Comunic</a></strong>
</div>
</div>
".$texte_message."
<h6 style='text-align: center'>Merci de ne pas r&eacute;pondre, ce message a &eacute;t&eacute; envoy&eacute; automatiquement.
Pour changer les param&egrave;tres relatifs &agrave; l'envoi de mail,
<a href='".$urlsite."connecter.php?redirect=parametres.php'>
cliquez ici
</a>.
</h6>
</body>
</html>";
//Vérification de l'existence d'un forcage de redirection
if($force_redirection_mails == "oui")
{
$adresse_mail_destinataire = $adresse_mail_redirection;
}
//On vérifie quelle est la méthode d'envoi de mail
if($methode_envoi_mail == "mail()")
{
//Utilisation de la fonction mail()
//Définition des en-têtes
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=iso-8859-1";
$headers[] = "From: ".$nom_mail_expediteur." <".$mail_envoi.">";
$headers[] = "X-Mailer: PHP/".phpversion();
//Envoi du mail
mail($adresse_mail_destinataire, $sujet, wordwrap($message_html, 70), implode("\r\n", $headers));
}
else
{
//Utilisation de PHPMailer
//SMTP needs accurate times, and the PHP time zone MUST be set
//This should be done in your php.ini, but this is how to do it if you don't have access to that
date_default_timezone_set('Etc/UTC');
require_once relativePath_3rdparty('phpmailer/PHPMailerAutoload.php');
//Create a new PHPMailer instance
$mail = new PHPMailer();
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 0;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = $adresse_serveur_mail_envoi;
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = $port_serveur_mail_envoi;
//Vérification de la nécessité de connexion
if($active_login_envoi_mail == "oui")
{
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication
$mail->Username = $mail_envoi;
//Password to use for SMTP authentication
$mail->Password = $password_mail_envoi;
}
else
{
//Whether to don't use SMTP authentication
$mail->SMTPAuth = false;
}
//Set who the message is to be sent from
$mail->setFrom($mail_envoi, $nom_mail_expediteur);
//Set who the message is to be sent to
$mail->addAddress($adresse_mail_destinataire, $nom_destinataire);
//Set the subject line
$mail->Subject = $sujet;
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML($message_html, dirname(__FILE__));
//Replace the plain text body with one created manually
$mail->AltBody = (isset($description_rapide) ? $description_rapide :'Ce message vous est envoyé de la part de '.$nom_mail_expediteur);
//Attach an image file
//$mail->addAttachment('images/phpmailer_mini.png');
//send the message, check for errors
if (!$mail->send()) {
$statut = "Mailer Error: " . $mail->ErrorInfo;
} else {
$statut = "Message sent!";
}
}
}
else
{
$statut = "Erreur: l'envoi de mail est interdit.";
}
//echo (isset($statut) ? $statut : "Statut inconnu.");
?>

18
inc/functions/api.php Normal file
View File

@ -0,0 +1,18 @@
<?php
/**
* API functions
*
* @author Pierre HUBERT
*/
/**
* Check API credentials
*
* @param String $serviceName The name of the service
* @param String $token The service's token
* @param String $bdd BDD object
* @return Boolean True or false / Depending of validity of credentials
*/
function API_checkCredentials($serviceName, $token, $bdd){
}

3214
inc/functions/main.php Executable file

File diff suppressed because it is too large Load Diff

194
inc/functions/sql.php Normal file
View File

@ -0,0 +1,194 @@
<?php
/**
* SQL functions
*
* @author Pierre HUBERT
*/
//Fonction de récupération d'une ou plusieurs entrées dans la base de données
function select_sql($table, $conditions, $bdd, $tableau_valeurs = array())
{
//Requête SQL de recherche
$sql = "SELECT * FROM ".$table.($conditions != "" ? " WHERE ".$conditions : "");
if(!$requete = $bdd->prepare($sql))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Un probl&egrave;me ind&eacute;termin&eacute; a survenu. Impossible d\'ex&eacute;cuter <i>if(!$requete = $bdd->prepare($sql))</i>');
die('Un probl&egrave;me ind&eacute;termin&eacute; a survenu. Merci de r&eacute;essayer en rechargeant la page. (F5)');
}
if(!$requete->execute($tableau_valeurs))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Une erreur a survenue lors de la consultation de la base de donn&eacute;es. Impossible d\'ex&eacute;cuter <i>if(!$requete->execute($tableau_valeurs))</i>');
die(echo_erreur('Une erreur a survenue lors de la consultation de la base de donn&eacute;es. Merci de r&eacute;essayer en rechargeant la page.'));
}
//Enregistrement des résultats
$liste = array();
while($enregistrer = $requete->fetch())
$liste[] = $enregistrer;
//Fermeture de la requête
$requete->closeCursor();
//Affichage de la requête SQL ( en mode debug SEULEMENT !!! )
//echo $sql."<br />";
//Renvoi du résultat
return $liste;
}
//Fonction de comptage d'une ou plusieurs entrées dans la base de données
function count_sql($table, $conditions, $bdd, $tableau_valeurs = array())
{
//Requête SQL de recherche
$sql = "SELECT COUNT(*) AS count FROM ".$table.($conditions != "" ? " WHERE ".$conditions : "");
if(!$requete = $bdd->prepare($sql))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Un probl&egrave;me ind&eacute;termin&eacute; a survenu. Impossible d\'ex&eacute;cuter <i>if(!$requete = $bdd->prepare($sql))</i>');
die('Un probl&egrave;me ind&eacute;termin&eacute; a survenu. Merci de r&eacute;essayer en rechargeant la page. (F5)');
}
if(!$requete->execute($tableau_valeurs))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Une erreur a survenue lors de la consultation de la base de donn&eacute;es (pour compter des entr&eacute;es). Impossible d\'ex&eacute;cuter <i>if(!$requete->execute($tableau_valeurs))</i>');
die(echo_erreur('Une erreur a survenue lors de la consultation de la base de donn&eacute;es. Merci de r&eacute;essayer en rechargeant la page.'));
}
//Enregistrement du résultat
if(!$resultat = $requete->fetch())
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Une erreur a survenue lors de la consultation de la base de donn&eacute;es (pour compter des entr&eacute;es). Impossible d\'ex&eacute;cuter <i>if(!$resultat = $requete->fetch())</i>');
die(echo_erreur('Une erreur a survenue lors de la consultation de la base de donn&eacute;es. Merci de r&eacute;essayer en rechargeant la page.'));
}
if(!isset($resultat['count']))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Une erreur a survenue lors de la consultation de la base de donn&eacute;es (pour compter des entr&eacute;es). <i>Retour incorrect de la base de donn&eacute;es. (Absence de $resultat["count"])</i>');
die(echo_erreur('Une erreur a survenue lors de la consultation de la base de donn&eacute;es. Merci de r&eacute;essayer en rechargeant la page.'));
}
//Fermeture de la requête
$requete->closeCursor();
//Renvoi du résultat
return $resultat['count'];
}
//Fonction d'ajout d'une entrée dans la base de données
function insert_sql($table, $nom_valeur, $valeurs, $bdd, $tableau_valeurs = array())
{
//Fonction d'insertion dans la base de données
$sql = "INSERT INTO ".$table." (".$nom_valeur.") VALUES (".$valeurs.")";
$requete = $bdd->prepare($sql);
if(!$requete->execute($tableau_valeurs))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'L\'enregistrement a &eacute;chou&eacute;');
die('L\'enregistrement a &eacute;chou&eacute;');
}
}
//Fonction de modification d'une entrée dans la base de données
function update_sql($table, $modifications, $conditions, $bdd, $tableau_valeurs = array())
{
//Requête SQL de mise à jour
$sql = "UPDATE ".$table." SET ".$modifications." WHERE ".$conditions;
if(!$requete = $bdd->prepare($sql))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Un probl&egrave;me ind&eacute;termin&eacute; a survenu. Impossible d\'ex&eacute;cuter <i>$requete = $bdd->prepare($sql);</i>');
die('Un probl&egrave;me ind&eacute;termin&eacute; a survenu. Merci de r&eacute;essayer en rechargeant la page. (F5)');
}
if(!$requete->execute($tableau_valeurs))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Une erreur a survenue lors de la mise &agrave; jour de la base de donn&eacute;es. Impossible d\'executer la requ&ecirc;te.');
die(echo_erreur('Une erreur a survenue lors de la mise &agrave; jour de la base de donn&eacute;es. Merci de r&eacute;essayer en rechargeant la page.'));
}
}
//Fonction de suppression d'enregistrements dans la base de données
function delete_sql($table, $conditions, $bdd, $tableau_valeurs = array())
{
//Requête SQL de suppression
$sql = "DELETE FROM ".$table." WHERE ".$conditions;
if(!$requete = $bdd->prepare($sql))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Un probl&egrave;me ind&eacute;termin&eacute; a survenu. Impossible d\'ex&eacute;cuter <i>$requete = $bdd->prepare($sql);</i>');
die('Un probl&egrave;me ind&eacute;termin&eacute; a survenu. Merci de r&eacute;essayer en rechargeant la page. (F5)');
}
if(!$requete->execute($tableau_valeurs))
{
//Envoi d'un rapport d'erreur
report_sql($sql, 'Une erreur a survenue lors de la suppression d\'entr&eacute;es de la base de donn&eacute;es. Impossible d\'ex&eacute;cuter la requ&ecirc;te.');
die(echo_erreur('Une erreur a survenue lors de la suppression d\'entr&eacute;es de la base de donn&eacute;es. Merci de r&eacute;essayer en rechargeant la page.'));
}
}
//Fonction permettant de rapporter une erreur dans l'exécution d'un script SQL
function report_sql($requete_sql, $raison = "La raison n'a pas &eacute;t&eacute; sp&eacute;cifi&eacute;e.")
{
//Inclusion de la configuration
include('inc/config/config.php');
//Envoi du message
//Vérification de l'autorisation d'envoi de mails
if($active_envoi_mail == "oui")
{
//Envoi du message
$send_mail = true;
$sujet = "[SQL Comunic] Erreur dans une requête SQL"; //Sujet
$description_rapide = "Une erreure fatale est arrivee dans une requete pour Comunic.";
$nom_destinataire = "Dev de Comunic";
$adresse_mail_destinataire = $mail_envoi_erreur_sql;
$message = "<h2 style='text-align: center'>Erreur dans la requ&ecirc;te SQL</h2>
<p>Bonjour, ce message vous a &eacute;t&eacute; adress&eacute; suite &agrave; une erreur fatale dans un script SQL. La requ&ecirc;te SQL est la suivante : <i>".$requete_sql."</i></p>
<p>La raison de l'erreur est la suivante: ".$raison."</p>
<p>Les informations compl&eacute;mentaires sont les suivantes :</p>
<table>
<tr><td><b>$"."_POST</b></td></tr>";
//Parcours de la variable $_POST
foreach($_POST as $nom=>$valeur)
$message.= "<tr><td>".$nom." :</td><td>".$valeur."</td></tr>";
$message .= "<tr><td><b>$"."_GET</b></td></tr>";
//Parcours de la variable $_GET
foreach($_GET as $nom=>$valeur)
$message.= "<tr><td>".$nom." :</td><td>".$valeur."</td></tr>";
$message .= "<tr><td><b>$"."_SESSION</b></td></tr>";
//Parcours de la variable $_SESSION
foreach($_SESSION as $nom=>$valeur)
$message.= "<tr><td>".$nom." :</td><td>".$valeur."</td></tr>";
$message .= "<tr><td><b>$"."_SERVER</b></td></tr>";
//Parcours de la variable $_SERVER
foreach($_SERVER as $nom=>$valeur)
$message.= "<tr><td>".$nom." :</td><td>".$valeur."</td></tr>";
$message .= "</table>"; //Message
$texte_message = $message;
//Envoi du message
include(websiteRelativePath('inc/envoi_mail.php'));
echo "<!-- MailAdmin sent -->";
}
}

30
inc/functions/url.php Normal file
View File

@ -0,0 +1,30 @@
<?php
/**
* URL functions
*
* @author Pierre HUBERT
*/
/**
* Returns informations about typed URL
*
* @return Array Infos about URL
*/
function getInfosTypedURL(){
$data = array();
//On récupère l'URI de base
$data['uri_base'] = str_replace("index.php", "", $_SERVER['SCRIPT_NAME']);
//On enlève l'URI de base à l'URL saisie
$data['url_saisie'] = str_replace($data['uri_base'], "", $_SERVER['REDIRECT_URL']);
//On récupère le nom du premier sous-dossier (si il y a un slash)
if(str_replace("/", "", $data['url_saisie']) != $data['url_saisie'])
$data['premier_dossier'] = strstr($data['url_saisie'], "/", true);
else
$data['premier_dossier'] = $data['url_saisie'];
//Returning data
return $data;
}

84
inc/generate_pdf.php Executable file
View File

@ -0,0 +1,84 @@
<?php
//Vérification de sécurité
if(!isset($nom_fichier_pdf) OR !isset($liste_pages) OR !isset($auteur_pdf) OR !isset($titre_pdf) OR !isset($sujet_pdf) OR !isset($pdf_key_word))
die('Invalid call !');
if(!isset($complement_url))
$complement_url = "./";
// Include the main TCPDF library (search for installation path).
require_once(relativePath_3rdparty('tcpdf/tcpdf.php'));
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor($auteur_pdf);
$pdf->SetTitle($titre_pdf);
$pdf->SetSubject($sujet_pdf);
$pdf->SetKeywords($pdf_key_word);
// set default header data
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 061', PDF_HEADER_STRING);
// set header and footer fonts
//$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
//$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
//$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
// ---------------------------------------------------------
// set font
$pdf->SetFont('helvetica', '', 10);
/* NOTE:
* *********************************************************
* You can load external XHTML using :
*
* $html = file_get_contents('/path/to/your/file.html');
*
* External CSS files will be automatically loaded.
* Sometimes you need to fix the path of the external CSS.
* *********************************************************
*/
//Ajout des pages
foreach($liste_pages as $ajouter)
{
// add a page
$pdf->AddPage();
// output the HTML content
$pdf->writeHTML($ajouter, true, false, true, false, '');
}
// reset pointer to the last page
$pdf->lastPage();
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output($nom_fichier_pdf, 'I');
//============================================================+
// END OF FILE
//============================================================+

57
inc/gere_abonnement_ami.php Executable file
View File

@ -0,0 +1,57 @@
<?php
//Sécurité
if(!isset($gere_abonnement_ami))
die("Invalid request !");
if(!isset($_SESSION['ID']))
die("Login required !");
//Vérification de l'existence des variables nécessaires à l'exécution du script
if(!isset($_GET['id']))
die("Missing arguments!");
//On commence par préparer l'exécution du script (avec sécurité)
$id = $_GET['id']*1;
//On vérifie si il s'agit de la même personne
if($id == $_SESSION['ID'])
die("Abonn&eacute;");
//On vérifie que les deux personnes sont amies
if(!detectesilapersonneestamie($_SESSION['ID'], $id, $bdd))
die("You are not friend !");
//On récupère les informations sur la table ami
$sql = "SELECT * FROM amis WHERE (ID_personne = ?) && (ID_amis = ?) && (actif = 1)";
$requeteamis = $bdd->prepare($sql);
$requeteamis->execute(array($_SESSION['ID'], $id));
//On renvoi le résultat suivant si la personne est amie ou non
if(!$info_ami = $requeteamis->fetch())
{
//Fermeture de la requete
$requeteamis->closeCursor();
//Message d'erreur
die("Une erreur a survenue. Merci de r&eacute;essayer ult&eacute;rieurement.");
}
//Fermeture de la requete
$requeteamis->closeCursor();
//On vérifie si il faut changer le statut d'abonnement
if(isset($_GET['change']))
{
//On vérifie si il faut ajouter ou supprimer l'abonnement
$statut = ($info_ami['abonnement'] == 0 ? 1 : 0);
//On met à jour la base de données
$sql = "UPDATE amis SET abonnement = ? WHERE ID_personne = ? AND ID_amis = ?";
$requete = $bdd->prepare($sql);
$requete->execute(array($statut, $_SESSION['ID'], $id));
//On modifie la variable
$info_ami['abonnement'] = $statut;
}
//On affiche le statut d'abonnement
echo ($info_ami['abonnement'] == 0 ? "S'abonner" : "<img src='".path_img_asset('succes.png', "Vous &ecirc;tes abonn&eacute; &agrave; la personne.")."' /> Abonn&eacute;");

25
inc/gestion_piwik.php Executable file
View File

@ -0,0 +1,25 @@
<?php
if(!isset($_SESSION))
die("Invalid call!");
//On vérifie si Piwik est bien activé
if($enable_piwik == 1)
{
?><!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(["setDoNotTrack", true]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="<?php echo $adresse_piwik; ?>";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', <?php echo $id_site_piwik; ?>]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="<?php echo $adresse_piwik; ?>piwik/piwik.php?idsite=<?php echo $id_site_piwik; ?>" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
<?php
}

284
inc/header_page.php Executable file
View File

@ -0,0 +1,284 @@
<?php
//Vérification de sécurité
if(!isset($header_page_ok))
die("Invalid call !");
//Vérification de l'existence de la variable d'une personne
if(!isset($_GET['id']))
die("Missing arguments!");
//Détermination de l'ID de la personne
$id = $_GET['id']*1;
//Si c'est le fil d'actualité, on quitte immédiatement
if($id == 0)
goto end_of_header_page;
//Récupération des informations de la personne
$afficher = cherchenomprenom($id, $bdd);
//Si la personne n'est pas connectée, on vérifie si on peut ajouter la suite de la page
if(!isset($_SESSION['ID']))
{
if($afficher['pageouverte'] != 1)
die("Le contenu ne peut &ecirc;tre charg&eacute; : La page n'est pas ouverte.");
}
?><div class='headercontenu' style='background-image: url("<?php
//Requete de l'existence d'une image de fond
$id_img_fond = $id;
//On vérifie si un complément est disponible
echo imgfond($id_img_fond, null, null, null, null, true);
?>");' <?php
//Ajoute des entrées dans le menu contextuel si nécessaire
if(isset($_SESSION['ID']) AND $bloque_clic_droit == "oui")
{
if($_SESSION['ID'] == $id)
{
//Ajout des entrées dans la balise div
?> onmouseover="AddMenuContextuelTop('parametres.php?c=imgfond','Modifier l\'image de fond');" onmouseout="DelMenuContextuelTop();"<?php
}
}
?>>
<!-- Panneau d'informations -->
<?php
//Uniquement si l'utilisateur est connecté
if(isset($_SESSION['ID']))
{
//Liste d'amis si disponible
?><div class="infopage">
<?php
//Liste d'amis si disponible
if($afficher['liste_amis_publique'] == 1)
?><div class="element_infopage">
<a href="listeamis.php?id=<?php echo $afficher['ID']; ?>">
<?php echo code_inc_img(path_img_asset('users_3.png'), "Liste d'amis"); ?>
<span class="element_infopage_long_label">Liste d'amis</span>
<span class="element_infopage_short_label">Amis</span>
</a>
</div><?php
?>
<div class="element_infopage">
<a href="galerieimages.php?id=<?php echo $afficher['ID']; ?>">
<?php echo code_inc_img(path_img_asset('small/image.png'), "Galerie d'images"); ?>
<span class="element_infopage_long_label">Galerie d'images</span>
<span class="element_infopage_short_label">Images</span>
</a>
</div>
<?php
//Private chat. Only if the person isn't on his page
//And if the personn is connected.
if(isset($_SESSION['ID']))
{
if($id != $_SESSION['ID'])
{
?><div class="element_infopage">
<a onClick="affiche_chat_prive(<?php echo $id; ?>)" class="a">
<?php echo code_inc_img(path_img_asset('prive.png'), "Chat priv&eacute;", "16"); ?>
<span class="element_infopage_long_label">Ouvrir le chat priv&eacute;</span>
<span class="element_infopage_short_label">Chat Priv&eacute;</span>
</a>
</div><?php
}
}
?>
</div><?php
}
else
{
//Sinon, un petit formulaire de connexion...
?><div class='infopage'>
<form action='connecter.php?redirect=<?php echo urlencode('index.php?id='.$id) ?>' name='connexion' method='post'>
<table>
<tr><td>Mail :</td><td><input type='text' name='mail' /> </td></tr>
<tr><td>Mot de passe </td><td> <input type='password' name='motdepasse'></td></tr>
<tr><td></td><td><input type='submit' value='Connexion' /> </td></tr>
<tr><td>Creer un compte</td><td><a href='creercompte.php' title='Creer un nouveau compte'>Nouveau compte</a></td></tr>
</table>
</form>
</div>
<?php
}
?>
<!-- Fin de: panneau d'informations-->
<table class='header_infos_user'>
<tr class="first_tr">
<td width="200">
<?php
//Requete de recherche d'image
echo avatar($id, "./", 128, 128);
//Uniquement si l'utilisateur est connecté
if(isset($_SESSION['ID']))
{
//Modification de l'avatar uniquement si c'est la page de la personne
if($_SESSION['ID'] == $id)
{
?><br /><font class="metro"><a class="button" href="parametres.php?c=avatar">Modifier l'avatar</a></font><?php
?> <menu type="context" id="header_page">
<menuitem label="Modifier l'image de fond" onclick="window.location='<?php echo $urlsite; ?>parametres.php?c=imgfond';"></menuitem>
</menu><?php
}
}
?></td><td>
<?php
//Affichage du nom de la personne
echo "<h2 id='nom_personne'>".corrige_caracteres_speciaux($afficher['prenom']." ".$afficher['nom'])."</h2>";
//On vérifie si la personne a un site web
if($afficher['site_web'] != "") {
echo "<div class='site_web'>";
echo "<a href='".$afficher['site_web']."' title='Ouvrir le site web de la personne' target='_blank'>";
echo code_inc_img(path_img_asset('small/world.png'));
echo " Site web";
echo "</a>";
echo "</div>";
}
//On vérifie si la page est vérifiée
if($afficher['page_verifiee'] == 1)
{
echo "</td><td><img style='vertical-align: middle;' src='".path_img_asset('tick.png')."' title='Page v&eacute;rifi&eacute;e' />";
}
//On vérifie si c'est un amis uniquement si l'utilisateur est connecte
if (isset($_SESSION['ID']))
{
//On voit si c'est un amis
if($id != $_SESSION['ID'])
{
if(!detectesilapersonneestamie($_SESSION['ID'], $id, $bdd))
{
$detectesilapersonneestamie_false = true;
//On détermine si la personne est autorisée ou pas à afficher la page
if($afficher['public'] != 1)
{
//La personne n'est pas autorisée à voire la page
$non_amis = true;
}
//On vérifie si cette personne l'a demandée en ami
if(!isset_demande_amis($_SESSION['ID'], $id, $bdd))
{
//L'autre personne ne l'a pas demandée en ami
if(!isset_demande_amis($id, $_SESSION['ID'], $bdd) AND (!isset($_GET['demanderamis'])))
{
echo "<td class='invite_amis'><a href='index.php?id=".$id."&demanderamis=1'>Demander en amis</a></td>";
}
else
{
//On vérifie si il existe une demande à devenir amis
if(isset($_GET['demanderamis']))
{
//Exécution de la demande
demandeamis($_GET['id'], $_SESSION['ID'], $bdd);
}
echo "<td class='invite_amis'>";
echo code_inc_img(path_img_asset('succes.png'), "Succ&egrave;");
echo" Demande envoy&eacute;e (<a href='action.php?actionid=23&id=".$id."'>supprimer</a>)";
echo "</td>";
}
}
else
{
//L'autre personne l'a demandée en amie
echo "<td class='invite_amis'>";
echo "Invitation re&ccedil;ue: ";
echo "<a href='amis.php?action=activer&id=".$id."'>";
echo code_inc_img(path_img_asset('succes.png'), "Accepter l'invitation");
echo "</a>";
echo "<a href='amis.php?action=supp&id=".$id."'>";
echo code_inc_img(path_img_asset('supp.png'), "REfuser l'invitation");
echo "</a>";
echo "</td>";
}
}
else
{
//On affiche le bouton d'abonnement
echo "<td><div id='abonnement_".$id."' class='bouton_abonnement' onClick='get_abonnement(".$id.", 1);'></div></td>";
}
}
}
else
{
if($afficher['pageouverte'] == 1)
{
$non_amis = true;
}
}
?>
</tr>
<tr>
<td colspan="2" class="aimepage"><?php
//Recherche des j'aimes
//On vérifie déja si il faut modifier un j'aime - uniquement si l'utilisateur est connecté
if(isset($_SESSION['ID']))
{
if((isset($_GET['like'])) && (isset($_GET['aime'])) && (isset($_GET['typeaime_page'])))
{
if($_GET['like'] == $id)
{
aimeaimeplus($_GET['aime'], $_GET['like'], $_SESSION['ID'], $bdd, "page");
}
}
}
//Requete des j'aimes
$retour = requeteaime($id, $bdd, "page");
$vousaimez = $retour['vousaimez'];
$personnesaiment = $retour['personnesaiment'];
//Ouverture du contenur des j'aimes
echo "<span class='aime_contener' id='aime_page'>";
if(isset($_SESSION['ID']))
{
if($vousaimez == 0)
{
echo "<span class='aime' ><a onClick='like_text_page(".$id.", \"page\", 0)'>";
echo code_inc_img(path_img_asset('aime.png'));
echo " ".$lang[33]."</a> </span>";
}
else
{
echo "<span class='aime' ><a onClick='like_text_page(".$id.", \"page\", 1)'>";
echo code_inc_img(path_img_asset('aimeplus.png'));
echo " ".$lang[34]."</a> </span> ";
}
}
if ($personnesaiment == 1)
{
echo "<font class='aimepage_texte'>Une personne aime.</font>";
}
elseif ($personnesaiment != 0)
{
echo "<font class='aimepage_texte'>".$personnesaiment." personnes aiment.</font>";
}
else
{
echo "<font class='aimepage_texte'>Soyez le premier &agrave; aimer</font>";
}
//Fermeture du conteneur des j'aime
echo "</span>";
?>
</td>
</tr>
</table>
</div><?php
//Fin du fichier
end_of_header_page:
//EOF

View File

@ -0,0 +1,112 @@
<?php
/**
* Assets Helpers
*
* @author Pierre HUBERT
*/
/**
* Returns the path to an asset
*
* @param String $file The file researched in the assets
*/
function path_assets($file = ""){
//Path to an asset
return siteURL()."assets/".$file;
}
/**
* Returns the relative path to an asset
*
* @param String $file The file researched in the assets
*/
function relativePath_assets($file = ""){
//Path to an asset
return websiteRelativePath()."assets/".$file;
}
/**
* Returns the path to an CSS asset
*
* @param String $CSSfile The CSS file
*/
function path_css_asset($CSSfile = ""){
return path_assets('css/'.$CSSfile);
}
/**
* Returns the path to an JS asset
*
* @param String $CSSfile The JS file
*/
function path_js_asset($JSfile = ""){
return path_assets('js/'.$JSfile);
}
/**
* Returns the path to an Image asset
*
* @param String $IMGfile The IMG file
*/
function path_img_asset($IMGfile = ""){
return path_assets('img/'.$IMGfile);
}
/**
* Returns the path to an audio asset
*
* @param String $AUDIOfile The audio file
*/
function path_audio_asset($AUDIOfile = ""){
return path_assets('audio/'.$AUDIOfile);
}
/**
* Returns the source code to call a css file
*
* @param String $file The css file to call
*/
function code_inc_css($file){
return '<link rel="stylesheet" href="'.$file.'" />';
}
/**
* Returns the source code to call a javascript file
*
* @param String $file The javascript file to call
*/
function code_inc_js($file){
return '<script type="text/javascript" src="'.$file.'"></script>';
}
/**
* Returns the source code to include an image
*
* @param String $file The image file to call
* @param String $name Optionnal - The name of the image
* @param String $width Optionnal - The width of the image
* @param String $height Optionnal - The height of the image
* @param String $style Optionnal - The style attached to the image
* @param String $onClick Optionnal - What to do once image is clicked
* @param String $class Optionnal - The class of the image
*/
function code_inc_img($file, $name = "", $width = "", $height = "", $style = "", $onClick="", $class = ""){
if($width != "")
$width = " width='".$width."' ";
if($height != "")
$height = " height='".$height."' ";
if($style != "")
$style = " style='".$style."' ";
if($onClick != "")
$onClick = ' onClick="'.$onClick.'" ';
if($class != "")
$class = ' onClick="'.$class.'" ';
//Returning result
return '<img src="'.$file.'" name="'.$name.'" alt="'.$name.'" '.$width.$height.$style.$onClick.$class.' />';
}

View File

@ -0,0 +1,15 @@
<?php
/**
* Calling Helpers
*
* @author Pierre HUBERT
*/
//Config helper
include('configHelpers.php');
//Assets Help
include('assetsHelpers.php');
//3rdparty helper
include('thirdPartyHelpers.php');

View File

@ -0,0 +1,84 @@
<?php
/**
* Config Helpers
*
* @author Pierre HUBERT
*/
/**
* Define constants for config
*/
define('URL_SITE', $urlsite);
/**
* Return the path to config
*
* @param String $file Optionnal - The file researched in website
* @return String The path to the config
*/
function siteURL($file = ""){
//Path to an asset
return URL_SITE.$file;
}
/**
* Returns the relative path to the website
*
* @param String $file Optionnal - The file searched in the website
* @return String The relative path to the website
*/
function websiteRelativePath($file=""){
return RELATIVE_PATH.$file;
}
/**
* Returns the relative path to pages folder
*
* @param String $file Optionnal - The file searched in the website
* @return String The relative path to the folder path
*/
function pagesRelativePath($file=""){
return RELATIVE_PATH."inc/pages/".$file;
}
/**
* Returns the path to user data
*
* @param String $file Optionnal - The file to search in user data
* @return String The path to user data (from the URI of website)
*/
function userDataFolder($file=""){
return USER_DATA_FOLDER.$file;
}
/**
* Returns relative path to user data
*
* @param String $file Optionnal - file to search in user data
* @return String Path to user datas
*/
function relativeUserDataFolder($file=""){
return websiteRelativePath().userDataFolder($file);
}
/**
* Returns web path to user data
*
* @param String $file Optionnal - file to search in user data
* @return String Path to user datas
*/
function webUserDataFolder($file=""){
return siteURL().userDataFolder($file);
}
/**
* Returns relative path to the core elements of the website
*
* @param String $file Optionnal - file researched in the core of website
* @return String Relative path to the core of website
*/
function websiteCoreFolder($file = ""){
return websiteRelativePath().CORE_PATH.$file;
}

View File

@ -0,0 +1,36 @@
<?php
/**
* Third party Helpers
*
* @author Pierre HUBERT
*/
/**
* Returns the path to a third party element, from the base of the website
*
* @param String $file The file in the 3rd Party
*/
function path_3rdparty($file = ""){
//Path to an asset
return THIRD_PARTY_FOLDER.$file;
}
/**
* Returns the relative path to a third party element, from the base of the website
*
* @param String $file The file in the 3rd Party
*/
function relativePath_3rdparty($file = ""){
//Path to an asset
return websiteRelativePath().path_3rdparty($file);
}
/**
* Returns the url of a Third Party element
*
* @param String $file The file in the third party
* @return String The URL to the third party
*/
function url_3rdparty($file){
return siteURL().path_3rdparty($file);
}

5
inc/index.php Executable file
View File

@ -0,0 +1,5 @@
<?php
//Script de s<>curit<69>.
//Ne pas supprimer
header('location: ../index.php');
?>

66
inc/initPage.php Normal file
View File

@ -0,0 +1,66 @@
<?php
/**
* Page initiator
*
* @author Pierre HUBERT
*/
//Starting session
if(!isset($_SESSION))
session_start();
//Determine relative path to project
$relativePath = str_replace("inc", "", __DIR__);
if(!defined('RELATIVE_PATH'))
define('RELATIVE_PATH', $relativePath);
//Inclusion of static configuration
include($relativePath.'inc/config/staticConfig.php');
//Path to 3rdParty elements
if(!defined('THIRD_PARTY_FOLDER'))
define('THIRD_PARTY_FOLDER', $staticConfig["3rdPartyElementsFolder"]);
//Path to user data
if(!defined('USER_DATA_FOLDER'))
define('USER_DATA_FOLDER', $staticConfig["userDataFolder"]);
//Path to website core
if(!defined('CORE_PATH'))
define('CORE_PATH', $staticConfig["coreFolder"]);
//Files inclusion
$filesToInclude = array(
//Inclusion of configuration
$relativePath.'inc/config/config.php',
//Inclusion of helpers
$relativePath.'inc/helpers/callHelpers.php',
//Connecting to DataBase
$relativePath.'connexiondb.php',
//Inclusion of smiley list
$relativePath.'inc/liste_smile.php',
//Pages list
$relativePath.'inc/config/listPages.php',
);
//Adding function files
foreach($staticConfig['listFunctionsFiles'] as $functionFile)
require_once($relativePath."inc/functions/".$functionFile.".php");
//Get the list of already loaded files
$filesLoaded = get_included_files();
//Include files
foreach($filesToInclude as $file){
//Check if it has already been included
if(!in_array($file, $filesLoaded))
include($file);
}
//Initializate langue
$lang = detecteinstallelangue();

90
inc/lang/en.php Executable file
View File

@ -0,0 +1,90 @@
<?php
//Fichier de langue
//Nom de la langue : Anglais
//Service Pierre 2014
//Destin<69> <20> : Comuic
//Tous droits r<>serv<72>s.
//Initialisation du tableau de langues
$lang = array();
$lang['nomlangue'] = "English";
$lang['nomlangue_raccourcis'] = "en";
//Traductions de la langue
$lang[0] = "Log In";
$lang[1] = "Password";
$lang[2] = "Lost ?";
$lang[3] = "Create an account";
$lang[4] = "You haven't told your password yet.";
$lang[5] = "You haven't told your e-mail yet.";
$lang[6] = "You haven't told your e-mail or password yet.";
$lang[7] = "The e-mail or the password is wrong.";
$lang[8] = "Use the mobile version.";
$lang[9] = "About";
$lang[10] = "Help Center";
$lang[11] = "Open pages";
$lang[12] = "First Name.";
$lang[13] = "Surname.";
$lang[14] = "Mail Adress.";
$lang[15] = "Confirm Password";
$lang[16] = "Create account";
$lang[17] = "Validation image";
$lang[18] = "Type the validation image's code";
$lang[19] = "Type your surname";
$lang[20] = "Type your first name";
$lang[21] = "Type your e-mail adress";
$lang[22] = "Type your password";
$lang[23] = "Confirm your passord";
$lang[24] = "Warning";
$lang[25] = "What's the matter ?";
$lang[26] = "Logout";
$lang[27] = "All rights reserved";
$lang[28] = "Thanks";
$lang[29] = "Open public chat";
$lang[30] = "Close public chat";
$lang[31] = "Send";
$lang[32] = "Add";
$lang[33] = "I like";
$lang[34] = "I don't like anymore";
$lang[35] = "Comments";
$lang[36] = "Next page";
$lang[37] = "Send an image";
$lang[38] = "Name";
$lang[39] = "Search";
$lang[40] = "Search a person";
$lang[41] = "Your friends";
$lang[42] = "Control panel";
$lang[43] = "Friends";
$lang[44] = "Visit"; //cr<63><72> pour Menu IE (peut <20>tre r<>utilis<69> dans d'autres usages)
$lang[45] = "Quick add";
$lang[46] = "When you create an account you accept our lience terms.";
$lang[47] = "Operation canceled.";
$lang[48] = "Do you want to delete this comment?";
$lang[49] = "Do you want to delete this text?";
$lang[50] = "Avanced add";
$lang[51] = "No content have been added yet on this page!";
$lang[52] = "Go back to the previous page.";
$lang[53] = "Go back to the main page.";
$lang[54] = "Quit Comunic.";
$lang[55] = "Account Settings.";
$lang[56] = "General";
$lang[57] = "Save";
$lang[58] = "Change password";
$lang[59] = "Copy here the validation image's code.";
$lang[60] = "An error occured while trying to get the friends's list. Please try later by refreshing the page.";
$lang[61] = "people like that.";
$lang[62] = "More";
$lang[63] = "Go back to home page";
$lang[64] = "Send a message";
$lang[65] = "Private chat";
$lang[66] = "With the private chat you'll be able to chat easily with your friends.";
$lang[67] = "To have a private chat with anybody, you should go to your friend's page and click on \"Private Chat\".";
$lang[68] = "They have already chatted with you....";
$lang[69] = "Loading...";
$lang[70] = "Start to chat";
$lang[71] = "Go to his/her webpage.";
$lang[72] = "From";
$lang[73] = "To";
$lang[74] = "Note: HTML codes are dislabed <br /> but you can use smiles if you want."; //For the webmail
//End Of File

89
inc/lang/fr.php Executable file
View File

@ -0,0 +1,89 @@
<?php
//Fichier de langue
//Nom de la langue : Fran<61>ais
//Service Pierre 2014
//Destin<69> <20> : Comuic
//Tous droits r<>serv<72>s.
//Initialisation du tableau de langues
$lang = array();
$lang['nomlangue'] = "Fran<EFBFBD>ais";
$lang['nomlangue_raccourcis'] = "fr";
//Traductions de la langue
$lang[0] = "Connexion";
$lang[1] = "Mot de passe";
$lang[2] = "Perdu ?";
$lang[3] = "Cr&eacute;er un compte";
$lang[4] = "Vous n'avez pas indiqu&eacute; votre mot de passe.";
$lang[5] = "Vous n'avez pas indiqu&eacute; votre adresse mail.";
$lang[6] = "Vous n'avez pas indiqu&eacute; votre adresse mail ou votre mot de passe.";
$lang[7] = "Votre adresse mail ou votre mot de passe est incorrect.";
$lang[8] = "Utiliser la version mobile.";
$lang[9] = "A propos";
$lang[10] = "Centre d'aide";
$lang[11] = "Pages ouvertes";
$lang[12] = "Pr&eacute;nom";
$lang[13] = "Nom"; //D'une personne
$lang[14] = "Adresse Mail";
$lang[15] = "Confirmer le mot de passe";
$lang[16] = "Cr&eacute;er le compte";
$lang[17] = "Image de validation";
$lang[18] = "Recopiez le code de validation";
$lang[19] = "Indiquez votre nom";
$lang[20] = "Indiquez votre pr&eacute;nom";
$lang[21] = "Indiquez votre adresse mail";
$lang[22] = "Indiquez votre mot de passe";
$lang[23] = "Confirmez votre mot de passe";
$lang[24] = "Attention";
$lang[25] = "Quel est le probl&egrave;me ?";
$lang[26] = "D&eacute;connexion";
$lang[27] = "Tous droits r&eacute;serv&eacute;s.";
$lang[28] = "Remerciements";
$lang[29] = "Ouvrir chat public";
$lang[30] = "Fermer chat public";
$lang[31] = "Envoyer";
$lang[32] = "Ajouter";
$lang[33] = "J'aime";
$lang[34] = "Je n'aime plus";
$lang[35] = "Commentaires";
$lang[36] = "Page suivante";
$lang[37] = "Envoi d'une image";
$lang[38] = "Nom"; //D'une image
$lang[39] = "Chercher";
$lang[40] = "Rechercher une personne";
$lang[41] = "Vos amis";
$lang[42] = "Param&egrave;tres";
$lang[43] = "Amis";
$lang[44] = "Visitez"; //cr<63><72> pour Menu IE (peut <20>tre r<>utilis<69> dans d'autres usages)
$lang[45] = "Ajout rapide";
$lang[46] = "Lorsque vous cr&eacute;ez un compte vous acceptez pleinement et sans r&eacute;serve les conditions d'utilisation de Comunic."; //Message pour la licence lors de la cr<63>ation de compte
$lang[47] = "Op<EFBFBD>ration annul<75>e."; //Optimis<69> pour javascript
$lang[48] = "Voulez-vous vraiment supprimer ce commentaire ?";
$lang[49] = "Voulez-vous vraiment supprimer ce texte ?";
$lang[50] = "Ajout avec mise en page";
$lang[51] = "Il n'y a pas encore de texte sur cette page !";
$lang[52] = "Retour &agrave; la page principale.";
$lang[53] = "Retour &agrave; la page pr&eacute;c&eacute;dente.";
$lang[54] = "Quitter Comunic.";
$lang[55] = "Param&egrave;tres du compte.";
$lang[56] = "G&eacute;n&eacute;ral";
$lang[57] = "Enregistrer";
$lang[58] = "Changer le mot de passe";
$lang[59] = "Recopiez le code contenu dans l'image ci-dessus. Si vous rencontrez des difficult&eacute;es &agrave; lire le code, vous pouvez en essayer un autre en cliquant sur la fl&egrave;che situ&eacute;e &agrave; droite de l'image."; //Help for validation image
$lang[60] = "Une erreur est survenue lors du chargement de la liste des amis. Merci de r<>essayer ult<6C>rieurment en actualisant la page.";
$lang[61] = "personnes aiment &ccedil;a."; //Info bouton j'aime
$lang[62] = "Plus";
$lang[63]="Retour &agrave la page d'acceuil";
$lang[64] = "Envoyer un message";
$lang[65] = "Chat priv&eacute;";
$lang[66] = "Avec le chat priv&eacute; vous pourrez communiquer facilement avec vos amis.";
$lang[67] = "Pour avoir un chat priv&eacute; avec quelqu'un, allez sur sa page et cliquez sur \"Chat priv&eacute;\".";
$lang[68] = "Ils ont d&eacute;j&agrave; chatt&eacute; avec vous....";
$lang[69] = "Chargement en cours....";
$lang[70] = "Commencer &agrave; chatter";
$lang[71] = "Aller &agrave; son/sa page.";
$lang[72] = "De";
$lang[73] = "A";
$lang[74] = "Note: Les codes HTML sont d&eacute;sactiv&eacute;s <br /> mais vous pouvez utiliser les smiley."; //Pour la messagerie
//Fin du fichier de langue

5
inc/lang/index.php Executable file
View File

@ -0,0 +1,5 @@
<?php
//Script de s<>curit<69>.
//Ne pas supprimer
header('location: ../index.php');
?>

66
inc/like_comment.php Executable file
View File

@ -0,0 +1,66 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Login required.");
if(!isset($verification_edit_like_commentaire))
die("Erreur 404.");
//On vérifie l'existence de la variable
if(!isset($_GET['idcommentaire']) || !isset($_GET['idtexte']) || !isset($_GET['aime']))
{
die("Incorrect request. (Action : ".$action.")");
}
//On récupère les informations sur le commentaire
$sql = "SELECT * FROM commentaires WHERE ID = ?";
$requete = $bdd->prepare($sql);
$requete->execute(array($_GET['idcommentaire']));
//Récupération du résultat
if(!$info_commentaire = $requete->fetch())
{
//Fermeture de la requete
$requete->closeCursor();
//Message d'erreur
die("404 Comment.");
}
//Fermeture de la requête
$requete->closeCursor();
//Vérification de la correspondance avec le texte
if($info_commentaire['ID_texte'] != $_GET['idtexte'])
{
die("404 Text.");
}
//On télécharge les informations sur le commentaire
$info_aime = requeteaime($info_commentaire['ID'], $bdd, "commentaire");
//On détermine si il s'agit d'aimer ou de ne plus aimer
if($info_aime['vousaimez'] == "1")
{
//Il s'agit de ne plus aimer
//On retranche 1 au compteur
$info_aime['personnesaiment']--;
//On supprime l'entrée "d'aime" dans la bdd
$sql = "DELETE FROM aime WHERE (ID_type = ?) && (ID_personne = ?) && (type = ?)";
$suppression = $bdd->prepare($sql);
$suppression->execute(array($info_commentaire['ID'], $_SESSION['ID'], "commentaire"));
}
else
{
//Il s'agit d'aimer le texte
//On ajoute 1 au compteur
$info_aime['personnesaiment']++;
//On ajoute l'entrée dans la base de données
$sql = "INSERT INTO aime (ID_type, ID_personne, Date_envoi, type) VALUES (?, ?, NOW(), ?)";
$insertion = $bdd->prepare($sql);
$insertion->execute(array($info_commentaire['ID'], $_SESSION['ID'], "commentaire"));
}
//On renvoie le nombre de personnes qui aiment maintenant ce texte
echo $info_aime['personnesaiment'];

5
inc/like_external_page.php Executable file
View File

@ -0,0 +1,5 @@
<?php
//Sécurité
if(!isset($like_external_page_verification))
die('Invalid call!');
?>J'aime

111
inc/like_texte_page.php Executable file
View File

@ -0,0 +1,111 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Login required.");
if(!isset($like_texte_page))
die("Erreur 404.");
//On vérifie l'existence de la variable
if(!isset($_GET['id']) || !isset($_GET['aime']) || !isset($_GET['type']))
{
die("Invalid request. (Action: ".$action.")");
}
//On enregistre l'ID
$id = $_GET['id']*1;
//On détermine (séurité) si il s'agit d'un texte ou d'une page
if($_GET['type'] == "texte")
{
//Il s'agit d'un texte
$type = "texte";
//On récupère les informations sur le texte pour vérifier si il existe
$sql = "SELECT * FROM texte WHERE ID = ?";
$requete = $bdd->prepare($sql);
$requete->execute(array($id));
//Récupération du résultat
if(!$info_texte = $requete->fetch())
{
//Fermeture de la requete
$requete->closeCursor();
//Message d'erreur
die("404 Text.");
}
//Fermeture de la requête
$requete->closeCursor();
}
else
{
//Il s'agit d'une page
$type = "page";
//On vérifie si la personne existe
if(!isset_account($id, $bdd))
{
die("This account doesn't exists.");
}
}
//On télécharge les informations sur les aimes du type
$info_aime = requeteaime($id, $bdd, $type);
//On détermine si il s'agit d'aimer ou de ne plus aimer
if($info_aime['vousaimez'] == "1")
{
//Il s'agit de ne plus aimer
//On retranche 1 au compteur
$info_aime['personnesaiment']--;
$info_aime['vousaimez'] = 0;
//On supprime l'entrée "d'aime" dans la bdd
$sql = "DELETE FROM aime WHERE (ID_type = ?) && (ID_personne = ?) && (type = ?)";
$suppression = $bdd->prepare($sql);
$suppression->execute(array($id, $_SESSION['ID'], $type));
}
else
{
//Il s'agit d'aimer le texte
//On ajoute 1 au compteur
$info_aime['personnesaiment']++;
$info_aime['vousaimez'] = 1;
//On ajoute l'entrée dans la base de données
$sql = "INSERT INTO aime (ID_type, ID_personne, Date_envoi, type) VALUES (?, ?, NOW(), ?)";
$insertion = $bdd->prepare($sql);
$insertion->execute(array($id, $_SESSION['ID'], $type));
}
//On prépare le code source pour l'affichage
$vousaimez = $info_aime['vousaimez'];
$personnesaiment = $info_aime['personnesaiment'];
//On renvoie le code source pour le nouvel affichage
if($vousaimez == 0)
{
echo "<span class='aime' ><a onClick='like_text_page(".$id.", \"".$type."\", 0)' >";
echo code_inc_img(path_img_asset('aime.png'));
echo " ".$lang[33]."</a> </span>";
}
else
{
echo "<span class='aime' ><a onClick='like_text_page(".$id.", \"".$type."\", 1)' >";
echo code_inc_img(path_img_asset('aimeplus.png'));
echo " ".$lang[34]."</a> </span> ";
}
echo "&nbsp;";
//Fin de l'affichage du code source
if ($personnesaiment == 1)
{
echo " Une personne aime.";
}
elseif ($personnesaiment != 0)
{
echo " ".$personnesaiment." personnes aiment.";
}

14
inc/liste_descriptions.php Executable file
View File

@ -0,0 +1,14 @@
<?php
//Chaque fichier du site doit avoir une description diff&eacute;rente
//C'est pourquoi ce fichier &agrave; &eacute;t&eacute; cr&eacute;&eacute;.
$liste_descriptions = array(
"default" => "Comunic est un nouveau r&eacute;seau social qui a &eacute;t&eacute; con&ccedil;u face &agrave; la demande grandissante du respect de la vie priv&eacute;e sur Internet. Ce r&eacute;seau social ne soumettra donc pas vos donn&eacute;es personnelles &agrave; des robots.",
"about.php" => "Page d'&agrave; propos de Comunic. (rappel des auteurs du site, de leur travail et des conditions d'utilisation ainsi que de la d&eacute;claration de confidentialit&eacute;",
"contact.php" => "Page permettant la prise de contact avec l'administration de Comunic pour diverses raisons : r&eacute;initialisation de mot de passe, rapport de bug,...",
"aide.php" => "Centre d'aide de Comunic. Vous y trouverez diverses articles tel que l'affichage de smiley dans Comunic, l'ajout de vid&eacute;os YouTube...",
"connecter.php" => "Page contenant un formulaire de connexion &agrave; Comunic mais aussi un lien de r&eacute;initialisation de mot de passe.",
"recherche.php" => "Page permettant d'effectuer la recherche d'utilisateurs dans Comunic.",
"solvepassword.php" => "Page permettant de r&eacute;cup&eacute;rer le mot de passe de votre compte Comunic lorsque celui-ci a &eacute;t&eacute; perdu.",
"whatiscomunic.php" => "D&eacute;couvrez ce qu'est Comunic gr&acirc;ce &agrave; cette page !",
);

82
inc/liste_smile.php Executable file
View File

@ -0,0 +1,82 @@
<?php
//Fichier de Smiley
//Service Pierre 2014
//On affiche les smiley
$liste_smiley = array();
$liste_smiley[] = array(':)', 'assets/img/smiley/smile.gif', 'Smile, pour en afficher saisir :)');
$liste_smiley[] = array(':(', 'assets/img/smiley/smiley-cry.gif', 'Smile triste, pour en afficher saisir :(');
$liste_smiley[] = array('(cool)', 'assets/img/smiley/smiley-cool.gif', 'Smile cool, pour en afficher saisir (cool)');
$liste_smiley[] = array(':D', 'assets/img/smiley/smiley-laughing.gif', 'Smile rieur, pour en afficher saisir :D');
$liste_smiley[] = array('(angry)', 'assets/img/smiley/smiley-yell.gif', 'Smile &eacute;nerv&eacute;, pour en afficher saisir (angry)');
$liste_smiley[] = array(':P', 'assets/img/smiley/smiley-tongue-out.gif', 'Smile tirant la langue, pour en afficher saisir :P');
$liste_smiley[] = array('(devil)', 'assets/img/smiley/devil_smile.gif', 'Smile diable, pour en afficher saisir (devil)');
$liste_smiley[] = array(':O', 'assets/img/smiley/smiley-surprised.gif', 'Smile surpris, pour en afficher saisir :O');
$liste_smiley[] = array(array(':x', ':-x', ':=x', ':#'), 'assets/img/smiley/smiley-sealed.gif', 'Smile baillon&eacute;, pour en afficher saisir :x');
//Divers
$liste_smiley[] = array('(sun)', 'assets/img/smiley/sun.png', 'Soleil, pour en afficher saisir (sun)');
$liste_smiley[] = array('(f)', 'assets/img/smiley/flower.png', 'Fleure, pour en afficher saisir (f)');
$liste_smiley[] = array('(music)', 'assets/img/smiley/music.png', 'Musique, pour en afficher saisir (music)');
$liste_smiley[] = array('(n)', 'assets/img/smiley/bad.gif', 'Pouce vers le bas, pour en afficher saisir (n)');
$liste_smiley[] = array('(y)', 'assets/img/smiley/good.gif', 'Pouce vers le haut, pour en afficher saisir (y)');
$liste_smiley[] = array(array('(rain)', '(london)'), 'assets/img/smiley/rain.png', 'Pluie, pour en afficher saisir (rain)');
$liste_smiley[] = array(array('(o)', '(time)'), 'assets/img/smiley/time.png', 'Temps, pour en afficher saisir (o)');
$liste_smiley[] = array(array('(h)', '(i)', '(l)'), 'assets/img/smiley/heart.png', 'Coeur, pour en afficher saisir (h)');
$liste_smiley[] = array('(u)', 'assets/img/smiley/heart_break.png', 'Coeur cass&eacute;, pour en afficher saisir (u)');
$liste_smiley[] = array('(bug)', 'assets/img/smiley/bug.png', 'Bug, pour en afficher saisir (bug)');
$liste_smiley[] = array('(tea)', 'assets/img/smiley/tea_cup.png', 'Th&eacute;, pour en afficher saisir (tea)');
$liste_smiley[] = array(array('(cake)', '(^)'), 'assets/img/smiley/cake.png', 'G&acirc;teau, pour en afficher saisir (cake)');
$liste_smiley[] = array(array('(pizza)', '(pi)'), 'assets/img/smiley/pizza.png', 'Pizza, pour en afficher saisir (pizza)');
$liste_smiley[] = array(array('(film)', '(movie)', '~'), 'assets/img/smiley/movies.png', 'Film, pour en afficher saisir (film)');
$liste_smiley[] = array('(*)', 'assets/img/smiley/star.png', 'Etoile, pour en afficher saisir (*)');
$liste_smiley[] = array(array('(mp)', '(ph)'), 'assets/img/smiley/phone.png', 'T&eacute;l&eacute;phone, pour en afficher saisir (mp)');
$liste_smiley[] = array(array('(cash)', '(mo)', '($)'), 'assets/img/smiley/money_dollar.png', 'Cash, pour en afficher saisir (cash)');
$liste_smiley[] = array(array('(apple)', '(pomme)'), 'assets/img/smiley/apple.png', 'Pomme, pour en afficher saisir (apple)');
$liste_smiley[] = array(array('(bear)', '(hug)'), 'assets/img/smiley/teddy_bear.png', 'Ours, pour en afficher saisir (bear)');
$liste_smiley[] = array(array('(e)', '(m)'), 'assets/img/smiley/email.png', 'Email, pour en afficher saisir (e)');
$liste_smiley[] = array('(party)', 'assets/img/smiley/emotion_party.png', 'F&ecirc;te, pour en afficher saisir (party)');
$liste_smiley[] = array('(anchor)', 'assets/img/smiley/anchor.png', 'Ancre, pour en afficher saisir (anchor)');
$liste_smiley[] = array('(android)', 'assets/img/smiley/android.png', 'Logo Android, pour en afficher saisir (android)');
$liste_smiley[] = array('(attach)', 'assets/img/smiley/attach.png', 'Trombonne, pour en afficher saisir (attach)');
$liste_smiley[] = array('(bell)', 'assets/img/smiley/bell.png', 'Cloche, pour en afficher saisir (bell)');
$liste_smiley[] = array('(bus)', 'assets/img/smiley/bus.png', 'Bus, pour en afficher saisir (bus)');
$liste_smiley[] = array('(camera)', 'assets/img/smiley/camera_black.png', 'Appareil Photo, pour en afficher saisir (camera)');
$liste_smiley[] = array('(cd)', 'assets/img/smiley/cd.png', 'CD, pour en afficher saisir (cd)');
$liste_smiley[] = array('(medaille)', 'assets/img/smiley/award_star_gold_green.png', 'M&eacute;daille, pour en afficher saisir (medaille)');
$liste_smiley[] = array('(user)', 'assets/img/smiley/user.png', 'Personne, pour en afficher saisir (user)');
$liste_smiley[] = array('(vlc)', 'assets/img/smiley/vlc.png', 'Logo de VLC, pour en afficher saisir (vlc)');
$liste_smiley[] = array('(comunic)', 'assets/img/smiley/logo_comunic.png', 'Logo de Comunic, pour en afficher saisir (comunic)');
$liste_smiley[] = array('(computer)', 'assets/img/smiley/computer.png', 'Ordinateur, pour en afficher saisir (computer)');
$liste_smiley[] = array('(laptop)', 'assets/img/smiley/laptop.png', 'Ordinateur portable, pour en afficher saisir (laptop)');
$liste_smiley[] = array('(book)', 'assets/img/smiley/book.png', 'Livre, pour en afficher saisir (book)');
$liste_smiley[] = array('(book-open)', 'assets/img/smiley/book_open.png', 'Livre ouvert, pour en afficher saisir (book-open)');
$liste_smiley[] = array('(map)', 'assets/img/smiley/map.png', 'Carte, pour en afficher saisir (map)');
$liste_smiley[] = array('(tree)', 'assets/img/smiley/tree.png', 'Arbre, pour en afficher saisir (tree)');
$liste_smiley[] = array('(tick)', 'assets/img/smiley/tick.png', 'V vert, pour en afficher saisir (tick)');
$liste_smiley[] = array('(ubuntu)', 'assets/img/smiley/ubuntu.png', 'Logo de Ubuntu, pour en afficher saisir (ubuntu)');
$liste_smiley[] = array('(micro)', 'assets/img/smiley/microphone.png', 'Micro, pour en afficher saisir (micro)');
$liste_smiley[] = array('(king)', 'assets/img/smiley/user_king.png', 'Roi, pour en afficher saisir (king)');
$liste_smiley[] = array('(beer)', 'assets/img/smiley/beer.png', 'Bi&egrave;re, pour en afficher saisir (beer)');
$liste_smiley[] = array('(bomb)', 'assets/img/smiley/bomb.png', 'Bombe, pour en afficher saisir (bomb)');
$liste_smiley[] = array('(w)', 'assets/img/smiley/what.png', 'Point interrogatif, pour en afficher saisir (w)');
//On affiche les drapeaux
$liste_smiley[] = array('(flag: af)', 'assets/img/smiley/flag/flag_afghanistan.png', 'Drapeau Afghanistant, pour en afficher saisir (flag: af)');
$liste_smiley[] = array('(flag: al)', 'assets/img/smiley/flag/flag_albania.png', 'Drapeau Albanien, pour en afficher saisir (flag: al)');
$liste_smiley[] = array('(flag: dz)', 'assets/img/smiley/flag/flag_algeria.png', 'Drapeau Alg&eacute;rien, pour en afficher saisir (flag: dz)');
$liste_smiley[] = array('(flag: as)', 'assets/img/smiley/flag/flag_american_samoa.png', 'Am&eacute;rique Samoa, pour en afficher saisir (flag: as)');
$liste_smiley[] = array('(flag: ad)', 'assets/img/smiley/flag/flag_andorra.png', 'Andorra, pour en afficher saisir (flag: ad)');
$liste_smiley[] = array('(flag: br)', 'assets/img/smiley/flag/flag_brazil.png', 'Drapeau Br&eacute;silien, pour en afficher saisir (flag: br)');
$liste_smiley[] = array('(flag: ca)', 'assets/img/smiley/flag/flag_canada.png', 'Drapeau Canadien, pour en afficher saisir (flag: ca)');
$liste_smiley[] = array('(flag: cn)', 'assets/img/smiley/flag/flag_china.png', 'Drapeau Chinois, pour en afficher saisir (flag: cn)');
$liste_smiley[] = array('(flag: fr)', 'assets/img/smiley/flag/flag_france.png', 'Drapeau Fran&ccedil;ais, pour en afficher saisir (flag: fr)');
$liste_smiley[] = array('(flag: ger)', 'assets/img/smiley/flag/flag_germany.png', 'Drapeau Allemand, pour en afficher saisir (flag: ger)');
$liste_smiley[] = array('(flag: gb)', 'assets/img/smiley/flag/flag_great_britain.png', 'Drapeau de la Grande Bretagne, pour en afficher saisir (flag: gb)');
$liste_smiley[] = array('(flag: gr)', 'assets/img/smiley/flag/flag_greece.png', 'Drapeau Grecque, pour en afficher saisir (flag: gr)');
$liste_smiley[] = array('(flag: gy)', 'assets/img/smiley/flag/flag_guyana.png', 'Drapeau de la Guyanne, pour en afficher saisir (flag: gy)');
$liste_smiley[] = array('(flag: it)', 'assets/img/smiley/flag/flag_italy.png', 'Drapeau italien, pour en afficher saisir (flag: it)');
$liste_smiley[] = array('(flag: jp)', 'assets/img/smiley/flag/flag_japan.png', 'Drapeau japonais, pour en afficher saisir (flag: jp)');
$liste_smiley[] = array('(flag: sd)', 'assets/img/smiley/flag/flag_sweden.png', 'Drapeau de la Su&egrave;de, pour en afficher saisir (flag: sd)');
$liste_smiley[] = array('(flag: tun)', 'assets/img/smiley/flag/flag_tunisia.png', 'Drapeau de la Tunisie, pour en afficher saisir (flag: tun)');
$liste_smiley[] = array('(flag: tur)', 'assets/img/smiley/flag/flag_turkey.png', 'Drapeau de la Turkie, pour en afficher saisir (flag: tur)');
$liste_smiley[] = array('(flag: us)', 'assets/img/smiley/flag/flag_usa.png', 'Drapeau Am&eacute;ricain, pour en afficher saisir (flag: us)');

6
inc/load.html Executable file
View File

@ -0,0 +1,6 @@
<p>Comunic</p>
<p style="left: 45%; top: 0px; width: auto; position: fixed; z-index: 1; border: 1px black solid; background-color: blue;"><span style="color: #ffffff;">Veuillez patienter, chargement en cours...</span></p>
<?php include(pagesRelativePath('common/head.php')); ?>
<script>
document.location.href="index.php?metro_loaded";
</script>

20
inc/loading.html Executable file
View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<title>Chargement en cours...</title>
<meta http-equiv='Content-Type' content='text/html; charset=us-ascii'>
<style>
.chargement {
position: relative;
top: 50px;
margin: auto;
text-align: center;
}
</style>
</head>
<body>
<div class="chargement">
<img src="img/chargement.gif" />
</div>
</body>
</html>

51
inc/logout_with_roundcube.html Executable file
View File

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<head>
<title>Aller &agrave; la page d'acceuil</title>
<style type="text/css">
body {
font-family: Arial;
background-color: rgba(68, 116, 231, 0.7);
color: #FFFFFF;
}
a {
text-decoration: none;
}
a div {
color: #FFFFFF;
margin: auto;
font-size: 170%;
width: 170px;
text-align: center;
padding: 20px;
margin-top: 150px;
border: 3px rgba(68, 116, 231, 0.8) solid;
border-radius: 2px;
}
a div:hover {
background-color: rgba(68, 116, 231, 0.6);
}
a div:active {
background-color: rgba(68, 116, 231, 1);
}
p {
text-align: center;
}
iframe {
visibility: hidden;
}
</style>
</head>
<body>
<p>Cette page est apparue afin de permettre l'&eacute;ventuelle d&eacute;connexion du Webmail.</p>
<a href="%TARGET_REDIRECT%" target="_parent"><div>Page d'acceuil</div></a>
<meta http-equiv="refresh" content="10;URL=%TARGET_REDIRECT%">
<iframe src="roundcube/?_task=logout"></iframe>
</body>
</html>

12
inc/manage_flux.html Executable file
View File

@ -0,0 +1,12 @@
<!-- Gestion des flux réseaux réguliers (tel que les notifications ou la liste d'amis) -->
<script>
//Permet d'activer ou de désactiver les flux de notification
//Veuillez noter qu'il est recommandé de désactiver les flux lors de l'enregistrement d'une page web pour un fonctionnement local.
//Cette action n'a aucune incidence sur les contenus de la page, mais l'utilisateur ne peut être informé en live des nouveautés lorsque celle-ci est activée.
//true : Permet l'actualisation en live des notifications et consort
//false : Bloque les flux live excepté le chat privé (Recommandé pour une utilisation hors ligne de la page)
autoriser_flux_streaming_live = true; //Activé (true) par défaut pour permettre une meilleure expérience utilisateur.
</script>
<!--Fin de la gestion des flux réseaux réguliers -->

16
inc/menu_contextuel.php Executable file
View File

@ -0,0 +1,16 @@
<div id="ie5menu" class="menuclickdroit" onmouseover="highlightie5(event,'#663300','#FFFFFF');" onmouseout="lowlightie5(event,'','#000000');" onclick="jumptoie5(event);" style="display:block; visibility:hidden;">
<div id="menuitemsJSTop" style="display:none;"></div>
<div class="menuitems" onclick="alert('Afin de copier du texte, veuillez pressez simultan&eacute;nement les touches Ctrl et C de votre clavier.');" title="Copier du texte">Copier</div>
<div class="menuitems" onclick="alert('Afin de coller du texte, veuillez pressez simultan&eacute;nement les touches Ctrl et V de votre clavier.');" title="Coller du texte">Coller</div>
<div class="menuitems" onclick="alert('Afin de couper du texte, veuillez pressez simultan&eacute;nement les touches Ctrl et X de votre clavier.');" title="Couper du texte">Couper</div>
<hr/>
<div class="menuitems" onclick="window.location='index.php';" title="Votre page">Page d'acceuil</div>
<div class="menuitems" onclick="history.back();" title="Page pr&eacute;c&eacute;dente">Pr&eacute;c&eacute;dent</div>
<div class="menuitems" onclick="history.forward();" title="Page suivante">Suivant</div>
<div id="menuitemsJSBottom" style="display:none;"></div>
</div>
<script language="javascript" type="text/javascript">
if (MCie5||MCns6) menuobj=document.getElementById("ie5menu"); /* Détermine le menu de départ */
MCenable=true;
</script>

14
inc/message_fil_vu.php Executable file
View File

@ -0,0 +1,14 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Invalid Request.");
if(!isset($message_fil_vu))
die("404 File not found.");
//Récupération des informations sur l'utilisateur
$infos_user = cherchenomprenom($_SESSION['ID'], $bdd);
//Modification dans la base de données
update_sql("utilisateurs", "vu_message_info_fil = 1", "ID = ?", $bdd, array($_SESSION['ID']));
echo "Succes";

30
inc/message_update.html Executable file
View File

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html>
<head>
<title>Mise &agrave; jour de Comunic en cours...</title>
<!-- Styles de la page -->
<style type="text/css">
body {
background-color: #C0C0C0;
}
.message {
background-color: white;
width: 750px;
margin: auto;
margin-top: 10%;
padding: 60px;
font-size: 150%;
font-family: Arial;
}
</style>
<!-- Fin de: Styles de la page -->
</head>
<body>
<div class="message">
Comunic a &eacute;t&eacute; temporairement bloqu&eacute; en raison de mises &agrave; jour. <br/>
Vous pouvez revenir sur ce site ult&eacute;rieurement ou bien <a href="%URL_SITE%"> r&eacute;essayer d&egrave;s maintenant.<br />
</div>
</body>
</html>

View File

@ -0,0 +1,55 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Login required!");
//On vérifie si il faut changer les paramètres
if(isset($_POST['mois_nettoyage_automatique_notifications']) AND isset($_POST['jour_nettoyage_automatique_notifications']) AND isset($_POST['heure_nettoyage_automatique_notifications']))
{
//On vérifie si il faut activer ou non le système
$activer_systeme = (isset($_POST['nettoyage_automatique_notifications']) ? 1 : 0);
//On contrôle les valeurs données
//Préparation des données
$mois_nettoyage = $_POST['mois_nettoyage_automatique_notifications']*1;
$jour_nettoyage = $_POST['jour_nettoyage_automatique_notifications']*1;
$heure_nettoyage = $_POST['heure_nettoyage_automatique_notifications']*1;
//Vérification des valeurs
if(($mois_nettoyage > -1 AND $mois_nettoyage <= 12) AND ($jour_nettoyage > -1 AND $jour_nettoyage <= 31) AND ($heure_nettoyage > -1 AND $heure_nettoyage <= 24))
{
//On peut mettre à jour la base de données
$sql = "UPDATE utilisateurs SET nettoyage_automatique_notifications = ?, mois_nettoyage_automatique_notifications = ?, jour_nettoyage_automatique_notifications = ?, heure_nettoyage_automatique_notifications = ? WHERE ID = ?";
//Exécution de la requête
$update = $bdd->prepare($sql);
$update->execute(array($activer_systeme, $mois_nettoyage, $jour_nettoyage, $heure_nettoyage, $_SESSION['ID']));
//Rechargement des informations
$afficher = cherchenomprenom($_SESSION['ID'], $bdd);
//Affichage d'un message de succès
?><script type="text/javascript">affiche_notification_succes("Les param&egrave;tres de suppression des anciennes notifications ont &eacute;t&eacute; mis &agrave; jour.", "", 5);</script><?php
}
else
{
//Message d'erreur
?><script type="text/javascript">affiche_notification_erreur("Les valeurs saisies pour la suppression automatique des anciennes notifications sont incorrectes.", "Erreur", 5);</script><?php
}
}
?><div class="nettoyage_automatique_notifications">
<p><b>Nettoyage automatique des notifications :</b></p>
<form action="parametres.php?c=<?php echo $_GET['c']; ?>" method="post">
<label><input type='checkbox' name='nettoyage_automatique_notifications' <?php if($afficher['nettoyage_automatique_notifications'] == 1) echo 'checked'; ?> /> Activer le nettoyage automatique des anciennes notifications </label>
<p>Supprimer automatiquement les notifications ayant plus de ...</p>
<p>
<input type="text" size="2" required maxlength="2" value="<?php echo $afficher['mois_nettoyage_automatique_notifications']; ?>" name="mois_nettoyage_automatique_notifications" /> mois(s),
<input type="text" size="2" required maxlength="2" value="<?php echo $afficher['jour_nettoyage_automatique_notifications']; ?>" name="jour_nettoyage_automatique_notifications" /> jour(s) et
<input type="text" size="2" required maxlength="2" value="<?php echo $afficher['heure_nettoyage_automatique_notifications']; ?>" name="heure_nettoyage_automatique_notifications" /> heure(s)
</p>
<p><input type="submit" value="Enregistrer les modifications" />
<p>Note : Suivant les param&egrave;tres que vous avez choisi les anciennes notifications seront supprim&eacute;es lors de votre connexion au service.</p>
</form>
</div>

View File

@ -0,0 +1,60 @@
<?php
//Sécurité
if(!isset($_SESSION['ID']))
die("Invalid Request.");
if(!isset($ouvre_ferme_session_chat))
die("404 File not found.");
//Vérification de l'existence des variables
if(!isset($_GET['id']))
die("Missing arguments.");
//On crèe la variable liste si nécessaire
if(!isset($_SESSION['private_chat'][$_SESSION['ID']]))
{
//Création des variables
$_SESSION['private_chat'] = array();
$_SESSION['private_chat'][$_SESSION['ID']] = array();
}
//Préparation de la mise à jour
$id = $_GET['id']*1;
//On détermine si il faut ajouter ou supprimer la conversation
if(isset($_SESSION['private_chat'][$_SESSION['ID']][$id]))
{
//On supprime la conversation si demandé
if(isset($_GET['remove']))
{
unset($_SESSION['private_chat'][$_SESSION['ID']][$id]);
}
else
{
//Rien à faire
die("Nothing to be done.");
}
}
//Dans ce cas il faut ajouter la conversation
else
{
//Si une session temporaire d'affichage de conversations existe, il faut la fermer
if(isset($_SESSION['private_chat'][$_SESSION['ID']][0]))
unset($_SESSION['private_chat'][$_SESSION['ID']][0]);
//Vérification de l'existence du compte
if(!isset_account($id, $bdd) && $id != 0)
die("Erreur: Le compte demand&eacute; n'existe pas !");
else
{
//On ajoute la conversation à la liste
//Vérification de l'existence du compte
$_SESSION['private_chat'][$_SESSION['ID']][$id] = 1;
//Si demandé, on effectue une redirection vers la conversation demandée
if(isset($_GET['autoredirect']))
header('Location: '.$urlsite.'privatechat.php?id='.$id);
}
}
//Message de succès
echo "OK. ".$id;

107
inc/pages/about/about.php Executable file
View File

@ -0,0 +1,107 @@
<?php
/**
* About the project page
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit("Invalid call - ".$_SERVER['PHP_SELF']);
?>
<!DOCTYPE html>
<html id="<?php echo (isset($_GET['cgu']) ? "" :"about"); ?>">
<head>
<title>A propos</title>
<?php include(pagesRelativePath('common/head.php')); ?>
</head>
<body class="metro">
<?php include(pagesRelativePath('common/pageTop.php'));
if(!isset($_GET['cgu']))
{
?><h1 class='titre'>A propos</h1>
<div class="contener_main">
<div class="logo_contener">
<?php echo code_inc_img(path_img_asset('logo_comunic.png'), "Logo de Comunic"); ?>
</div>
<div class="text_content">Comunic a &eacute;t&eacute; con&ccedil;u par Pierre Hubert.</div>
<div class="text_content">Remerciement pour leurs pr&eacute;cieux conseil &agrave; Tristan Th&eacute;venin, Florent Wang et Samir Bertache.</div>
<div class="text_content">Tous droits r&eacute;serv&eacute;s. 2013-2016</div>
</div>
<div class="contener_infos">
<h2>Informez-vous</h2>
<!-- CGU Link -->
<div class="big_link">
<a href='<?php echo siteURL('about.php'); ?>?cgu'>
<?php echo code_inc_img(path_img_asset('text_list_numbers.png')); ?>
Lisez les conditions d'utilisation
</a>
</div>
<!-- Privacy Link -->
<div class="big_link">
<a href="<?php echo siteURL('about.php'); ?>?cgu&privacy">
<?php echo code_inc_img(path_img_asset('lock.png')); ?>
Politique de confidentialit&eacute; et d'utilisation des donn&eacute;es
</a>
</div>
</div>
<p style="text-align: center;">
Informations relatives &agrave; certaines extensions :
</p>
<!-- Let's Encrypt -->
<p style="text-align: center;">
Un grand merci &agrave; Let's Encrypt gr&acirc;ce &agrave; qui notre site peut fonctionner en HTTPS...
</p>
<!-- Metro UI CSS -->
<p style="text-align: center;">
Sans <a href="http://metroui.org.ua/" target='_blank'>Metro UI CSS</a>, notre site n'aurait pas une telle interface...
</p>
<!-- Webcam - WebRTC -->
<p style="text-align: center;">
<i>Certains composants de gestion de la webcam sont issues de <a href='http://www.webrtc.org/' target="_blank">WebRTC</a> dont la licence est disponible <a href="<?php echo path_assets('legal/LICENSE_webrtc.txt'); ?>" target="_blank"> ici </a>.</i>
</p>
<!-- Fatcow -->
<p style="text-align: center;">Certaines images de ce site sont issues de Fatcow: <br />
&copy; Copyright 2009-2014 FatCow Web Hosting. All rights reserved.<br />
<a href='http://www.fatcow.com' target='_blank'>http://www.fatcow.com</a><?php
}
else
{
?><div class="container_cgu">
<?php
//Preparing licence
if(!isset($_GET['privacy']))
{
//The subject are the CGU
$name = "Conditions d'utilisation de Comunic";
$path = path_assets('legal/cgu.html');
$licence = file_get_contents(relativePath_assets('legal/cgu.html'));
}
else
{
//The subject is the privacy policy
$name = "Politique de gestion et d'utilisation des donn&eacute;es";
$path = path_assets('legal/privacy.html');
$licence = file_get_contents(relativePath_assets('legal/privacy.html'));
}
//Showing licence
?><h2 class='titre'><?php echo $name; ?></h2>
<div class="cgu"><?php echo $licence; ?></div>
<a href="<?php echo $path; ?>" target="_blank">Fichier HTML</a><?php
?></div><?php
}
//Bottom inclusion
?><hr><?php
include(pagesRelativePath('common/pageBottom.php'));
?></body>
</html>

196
inc/pages/common/head.php Executable file
View File

@ -0,0 +1,196 @@
<?php
//Initialisation de la langue
$lang = detecteinstallelangue();
//R<>cup<75>ration du nom de fichier
$nom_fichier = substr(strrchr($_SERVER['PHP_SELF'], "/"), 1);
//$nom_fichier_cache = "cache/".sha1("header.php of ".$nom_fichier);
//Inclusion de la liste des descriptions
include(websiteRelativePath().'inc/liste_descriptions.php');
?>
<!-- Informations d'en-t<>te -->
<!--<meta http-equiv='Content-Type' content='text/html; charset=us-ascii'>-->
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<meta name="description" content="<?php
if(isset($liste_descriptions[$nom_fichier]))
echo $liste_descriptions[$nom_fichier];
else
echo $liste_descriptions["default"];
?>">
<meta name="abstract" content="Comunic est un r&eacute;seau social qui permet de communiquer gratuitement entre amis tout en respectant la vie priv&eacute;e.">
<meta name="keywords" content="r&eacute;seau social, chat, pages personnelles, amis, comuniquer, vie priv&eacute;e, accessibilit&eacute;, vid&eacute;os personnelles, compte, gratuit, moderne">
<meta name="author" content="Pierre Hubert">
<meta name="revisit-after" content="15">
<meta name="language" content="FR">
<meta name="copyright" content="2013 - 2016 Comunic">
<meta name="robots" content="All">
<!-- Fin de: Informations d'en-t<>te -->
<?php
//Autoriser ou non les flux r<>seaux
include(websiteRelativePath().'inc/manage_flux.html');
?>
<!-- Proposition de Comunic en tant que moteur de recherche -->
<link rel="search" type="application/opensearchdescription+xml" title="Comunic" href="<?php echo $urlsite; ?>action.php?actionid=33" />
<!-- Fin de: Proposition de Comunic en tant que moteur de recherche -->
<!-- Appel n<>cessaire au Responsive -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<?php
/**
* Calling CSS files
*/
//Main CSS file
echo code_inc_css(path_css_asset('global.php/'.$last_update_website));
//Opened page or login required
if(isset($_SESSION['ID']) || isset($not_home_login_page))
{
// Video-js
echo code_inc_css(url_3rdparty('video_js/video-js.css'));
// Login required
if(isset($_SESSION['ID']))
{
// Notifications
echo code_inc_css(path_css_asset('global_notifications.css'));
}
}
/**
* JS config
*/
?><script type="text/javascript">
var config = [];
config['pathAssets'] = "<?php echo path_assets(); ?>";
</script><?php
/**
* Calling JS files
*/
// Main JS file
echo code_inc_js(path_js_asset('global.php/'.$last_update_website));
// Smiley
echo code_inc_js(path_js_asset('liste_smile.js'));
// Opened page or login required
if(isset($_SESSION['ID']) || isset($not_home_login_page))
{
// Jquery MouseWheel
echo code_inc_js(path_js_asset('jquery/jquery.mousewheel.js'));
//Jquery Fancybox
echo code_inc_js(url_3rdparty('fancyapps/source/jquery.fancybox.js'));
echo code_inc_js(path_js_asset('initialise_fancybox.js'));
// VideoJS
echo code_inc_js(url_3rdparty('video_js/video.js'));
echo "<script type='text/javascript'>videojs.options.flash.swf = \"".$urlsite."video_js/video-js.swf\";</script>";
// Login required
if(isset($_SESSION['ID']))
{
//Liste des groupes
echo code_inc_js($urlsite.'r.php/js/liste_groupes.js');
// Gestion du choix de groupes
echo code_inc_js(path_js_asset('groupes.js'));
// Tiny MCE
echo code_inc_js(path_js_asset('tiny_mce/tiny_mce.js'));
}
}
/**
* Piwik, if allowed
*/
if($enable_piwik == 1 AND (!isset($_SESSION['block_piwik'])))
include('inc/gestion_piwik.php');
/**
* Personalisez source
*/
echo $complementsource;
?>
<!-- Icone du site -->
<link rel="icon" type="image/vnd.microsoft.icon" href="<?php echo path_img_asset('favicon.ico'); ?>" />
<link rel="shortcut icon" type="image/x-icon" href="<?php echo path_img_asset('favicon.ico'); ?>" />
<!-- Fin de: Icone du site -->
<!-- Feuilles de style CSS -->
<?php
//Compatibilit<69> de Internet Explorer
if(isset($_SERVER['HTTP_USER_AGENT']))
{
if(preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT']) || isset($_SESSION['compatible']))
{
?><!-- Compatibilt<6C> du navigateur -->
<link rel="stylesheet" href="<?php echo $urlsite; ?>css/ie.css">
<!-- Script javascript associ<63> -->
<script type="text/javascript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
</script>
<!-- Fin de: Compatibilit<69> du navigateur --><?php
}
}
?>
<!-- Fin de: Feuilles de style CSS -->
<?php
//On enregistre l'activit<69> de l'utilisateur uniquement si ce dernier est connect<63>
if(isset($_SESSION['ID']))
{
//On enregistre l'activit<69>
update_last_activity($_SESSION['ID'], $bdd);
//On d<>finit une routine pour un trackage r<>gulier
?><script type="text/javascript">
//Inutile, le fichier amis.php suffit
//var last_activity=setInterval("ajax_rapide('about.php?withbreak')", 30000); // r<>p<EFBFBD>te toutes les 30s
</script><?php
//On quitte le script courrant si c'<27>tait une demande de trackage d'activit<69>
if(isset($_GET['withbreak']))
{
//Fermeture du script
die();
}
}
//On charge les notifications de l'utilisateur uniquement si ce dernier est connect<63>
if(isset($_SESSION['ID']))
{
$info = cherchenomprenom($_SESSION['ID'], $bdd);
if($info['bloquenotification'] == 0)
{
//On affiche les scripts JAVASCRIPT
?><span id="son_notification_area"></span><script type="text/javascript">//Timer pour actualiser toute les 2 secondes les notifications
<?php echo ($info['bloque_son_notification'] == "0" ? 'prepare_joue_son("'.$urlsite.'audio/notification.ogg", "'.$urlsite.'audio/notification.mp3", "son_notification");' : ''); ?>//Pr<50>pare le son
var last_notifications_timer=setInterval("getpopupnotification('notification.php?rapide')", 3000); // r<>p<EFBFBD>te toutes les 3s
</script><?php
}
//On affiche le menu clique droit uniquement si l'utilisateur est connect<63> et que la capture du clic droit est activ<69>e
if($bloque_clic_droit == "oui")
{
//Inclusion du menu clique droit
include('inc/menu_contextuel.php');
}
}
?>

163
inc/pages/common/menu.php Executable file
View File

@ -0,0 +1,163 @@
<?php
/**
* Website menu
*
* @author Pierre HUBERT
*/
if($afficher['old_menu'] == 0 AND !isset($menu_light))
{
//Nouvelle version du menu
?><font class="metro">
<div class="navigation-bar <?php echo $afficher['color_menu']; ?> new_navbar">
<div class="navbar-content">
<!-- Home link -->
<a href="<?php echo $urlsite; ?>index.php" id="titre_site_nom" class="element">COMUNIC</a>
<a href="<?php echo $urlsite; ?>index.php" id="titre_site_lettre" class="element">C</a>
<!-- Two dividers -->
<span class="element-divider"></span>
<span class="element-divider"></span>
<!-- Notifications button -->
<a class="element brand" title="Afficher les notifications" onClick="affiche_notifications()">
<span class="button_moderne_menu" id="notification_area">
<span class="icon-newspaper"></span>
</span>
<span id="nb_notification_area"></span>
<script>setInterval('verifie_notifications_non_vues("<?php echo $urlsite; ?>");', 3000);</script>
</a>
<!-- Private chat button -->
<a class="element brand" title="Ouvrir le chat priv&eacut;" id="button_private_chat" onClick="affiche_chat_prive(0);">
<span class="button_moderne_menu">
<span class="icon-comments-4"></span>
</span>
</a>
<!-- Fil button -->
<a class="element brand" id="button_view_fil" onClick="open_page_ameliore(0)">
<span class="button_moderne_menu">
<span class="icon-history"></span>
</span>
</a>
<!-- New message button -->
<span id="new_message"></span><script>verifie_messages_non_lus(1);</script>
<!-- New friends button -->
<span id="new_friend"></span><script>verifie_messages_non_lus(2);</script>
<!-- Update alert information -->
<?php if(isset($alert_last_update)) echo $alert_last_update ?>
<!-- Divider -->
<span class="element-divider"></span>
<!-- Search someone -->
<div class="element input-element recherche_menu">
<div class="input-control text">
<form action="<?php echo $urlsite; ?>recherche.php" method="post">
<input placeholder="Recherche..." type="text" id="search_user_input" name="nom" autocomplete="off" onkeyup="search_user_ajax();">
<button class="btn-search" type="submit"></button>
</form>
</div>
</div>
<div id="result_search"></div>
<div id="list_results"></div>
<div class="element place-right">
<a class="dropdown-toggle" href="#">
<span class="icon-cog"></span>
</a>
<ul class="dropdown-menu place-right <?php echo ($afficher['color_menu'] == "light" ? "inverse" : $afficher['color_menu']); ?>" data-role="dropdown">
<li><a href="<?php echo $urlsite; ?>amis.php"><i class="icon-list"></i> Vos Amis</a></li>
<li><a href="<?php echo $urlsite; ?>messagerie.php"><i class="icon-mail"></i> Messagerie interne</a></li>
<!--<li><a href="<?php echo $urlsite; ?>webmail.php"><i class="icon-mail"></i> Webmail</a></li>-->
<li><a href="<?php echo $urlsite; ?>galerie_videos.php"><i class="icon-film"></i> Galerie de vid&eacute;os</a></li>
<li><a href="<?php echo $urlsite; ?>parametres.php"><i class="icon-tools"></i> Vos param&egrave;tres</a></li>
<!-- Multi-authentification -->
<?php
//On vérifie si $_SESSION['ID_parent'] existe
if(!isset($_SESSION['ID_parent']))
$_SESSION['ID_parent'] = $_SESSION['ID'];
if(count_sql("multi_login", "ID_personne = ?", $bdd, array($_SESSION['ID_parent'])) != 0)
{
?><li><a href="<?php echo $urlsite; ?>parametres.php?c=multi_login"><i class="icon-key"></i> Multi-authentification</a></li><?php
}
if($_SESSION['ID_parent'] != $_SESSION['ID'])
{
?><li><a href="<?php echo $urlsite; ?>parametres.php?c=multi_login&back_main_account"><i class="icon-key"></i> Compte parent</a></li><?php
}
?>
<!-- End of: multi-authentification -->
<li><a href="<?php echo $urlsite; ?>deconnexion.php"><i class="icon-switch"></i> D&eacute;connexion</a></li>
<li class="divider"></li>
<li><a onClick="affiche_panneau_amis()">Afficher le panneau des amis</a></li>
</ul>
<a>&nbsp;</a>
</div>
<span class="element-divider place-right"></span><!-- Séparateur -->
<button class="element image-button image-left place-right retour_page_user" onClick="open_page_ameliore(<?php echo $_SESSION['ID']; ?>);">
<?php echo $afficher['prenom']." ".$afficher['nom']; ?>
<?php echo avatar($_SESSION['ID'], './'); ?>
</button>
</div>
</div></font>
<div class="correctifnouvbarre">&nbsp;</div>
<div id="new_notification">
<div class='new_iframenotification notifications_contener' id='new_iframenotification'>
<div class="chargement">
<?php echo code_inc_img(path_img_asset('chargement.gif'), "Veuillez patienter, chargement en cours..."); ?>
</div>
</div>
<div id="new_notification_close">
<input type="button" value="Fermer" onClick='MM_showHideLayers("new_notification", "", "hide");' />
</div>
<div id="new_notification_refresh">
<?php
echo code_inc_img(path_img_asset('small/date_delete.png'), "Supprimer les anciennes notifications", "", "", "", "delete_old_notifications();");
echo " ".code_inc_img(path_img_asset('small/bin_closed.png'), "Supprimer toute les notifications", "", "", "", "supprime_toute_les_notifications();");
echo " ".code_inc_img(path_img_asset('refresh.png'), "Actualiser les notifications", "", "", "", "affiche_notifications();"); ?>
</div>
</div>
<?php
}
elseif(isset($menu_light))
{
?><font class="metro">
<div class="navigation-bar <?php echo $afficher['color_menu']; ?>" style="position: fixed">
<div class="navbar-content">
<a href="<?php echo $urlsite; ?>index.php" target="_blank" class="element">COMUNIC</a>
<span class="element-divider"></span>
<!-- Logout button -->
<a href="deconnexion.php" class="element place-right" >
D&eacute;connexion
</a>
<!-- End of: Logout button -->
</div>
</div>
</div></font>
<div class="correctifnouvbarre">&nbsp;</div><?php
}
else
{
echo "<p>The required menu couldn't be found !</p>";
//Fatal error : required menu not found
report_error("Required menu not found", $raison = "Required menu not found in menu.php.");
}

46
inc/pages/common/pageBottom.php Executable file
View File

@ -0,0 +1,46 @@
<!-- Pied de page -->
<div class='bottom'>
<!--<a href='index.php?lang=fr'>Fran&ccedil;ais</a>
<a href='index.php?lang=en'>English</a>-->
<a href='<?php echo $urlsite; ?>about.php'><?php echo $lang[9]; ?></a>
<a href='<?php echo $urlsite; ?>aide.php'><?php echo $lang[10]; ?></a>
<a href="<?php echo $urlsite; ?>contact.php">Contact</a>
<!--<a href='pagepublique.php'><?php echo $lang[11]; ?></a>-->
<a href='<?php echo $urlsite; ?>recherche.php'>Recherche</a>
<a href='<?php echo $urlsite; ?>tools' target="_blank">Outils</a>
<a href='<?php echo $urlsite; ?>index.php?id=<?php echo $ID_official_page; ?>'>Page officielle</a>
<a href='<?php echo $urlsite; ?>index.php?id=<?php echo $ID_actuality_page; ?>'>Actualit&eacute; monde</a>
<a href='<?php echo $urlsite; ?>whatiscomunic.php'>Qu'est-ce que Comunic ?</a>
<a href='<?php echo $urlsite; ?>developer/'>Developer</a>
<a href="forum.php">Am&eacute;liorations</a>
</div>
<!--<div class="metions_legales">
Une production de Pierre HUBERT <br />
&copy; Comunic, 2013, 2016
</div>-->
<!-- Fin de: pied page -->
<?php
//Si l'utilisateur est connect<63>, on inclus le chat publique ou chat priv<69>
if(isset($_SESSION['ID']))
{
//V<>rification de l'activation du chat publique
if($activer_publique_chat == "oui")
{
//Inclusion du chat
include(websiteRelativePath().'chat.php');
}
//Inclusion du fichier du chat priv<69>
include(websiteRelativePath().'inc/private_chat.php');
}
//On v<>rifie si l'utilisateur est au courant que des cookies sont enregitr<74>s lors de sa visite (inutile pour le moment)
if(!isset($_COOKIE['ok_message_cookie']) AND false)
{
?><div class="metro"><?php
?><p class="bg-lighterBlue padding20 fg-white info_cookies" id="info_cookies"><?php
?>Lors de votre navigation sur ce site quelques cookies sont enregistr&eacute;s. <a href="#">Cliquez ici</a> pour obtenir plus d'informations. <input type="button" value="OK" onClick="ajax_rapide('action.php?actionid=30'); show_hide_id('info_cookies', 'hidden');" /><?php
?></p><?php
?></div><?php
}
?>

150
inc/pages/common/pageTop.php Executable file
View File

@ -0,0 +1,150 @@
<?php
/**
* Top menu of the website's page and common contents to all website
*
* @author Pierre HUBERT
*/
//On d<>termine si il faut afficher un message d'alerte relatif <20> une mise <20> jour r<>cente
//D<>termination de la p<>riode d'alerte d'information d'une mise <20> jour
$periode_alerte_update = time() - $alert_last_update_website;
//On v<>rifie si il faut afficher un message d'avertissement
if($last_update_website > $periode_alerte_update)
$alert_last_update = '<a class="element brand" onClick="show_hide_id(\'alert_last_update\', \'visible\');"><span class="button_moderne_menu"><span class="icon-warning"></span></span></a>'; //Il faut alerter au sujet de la mise <20> jour
if(!isset($_SESSION['ID']))
{
?><font class="metro">
<div class="navigation-bar blue new_navbar">
<div class="navbar-content">
<a href="index.php" class="element titre_site_without_login_big">COMMUNIQUONS.ORG</a>
<a href="index.php" class="element titre_site_without_login_small">Comunic</a>
<span class="element-divider"></span>
<?php if(isset($alert_last_update)) echo $alert_last_update ?>
<!-- Formulaire de connexion -->
<div class="element input-element place-right" id="loginuser">
<form action="connecter.php" method="post" id="form_login_top">
<div class="input-control text">
<input placeholder="Adresse mail..." type="text" name="mail" required <?php if(isset($_COOKIE['usermail'])) echo "value='".$_COOKIE['usermail']."'"; ?> />
</div>
<div class="input-control text">
<input placeholder="Mot de passe..." type="password" name="motdepasse" required />
</div>
<div class="button" onClick="document.getElementById('form_login_top').submit()">
Connexion
</div>
<!-- Bouton cach<63>, Permet la validation du formulaire par la touche entr<74>e -->
<div style="visibility: hidden">
<input type="submit" />
</div>
<!-- Fin de: Bouton cach<63> -->
</form>
</div>
<a href="<?php echo $urlsite; ?>connecter.php" class="element bouton_login_user place-right">Connexion</a>
<!-- Fin de: Formulaire de connexion -->
</div>
</div>
<div class="correctifnouvbarre">&nbsp;</div> <!-- Correctif de la nouvelle barre de menu -->
</font>
<?php
}
else
{
//On commence par rechercher les informations de la personne
$afficher = cherchenomprenom($_SESSION['ID'], $bdd);
//On inclus le menu
include('menu.php');
//On affiche la liste des amis si n<>cessaire
if(!isset($menu_light))
{
//Affichage de la liste des amis
if(count(liste_amis($_SESSION['ID'], $bdd)) == 0)
{
//Peu d'amis
?><font class="metro">
<div class="listeamis_light" id="listeamis">
<div class="window">
<div class="caption" id="topAmis">
<span class="icon icon-user"></span>
<div class="title"><?php echo $lang[41]; ?></div>
<button class="btn-close" onClick="ferme_panneau_amis();" style="cursor: pointer;"></button>
</div>
<div class="content">
<!-- Affichage dynamique des amis -->
<table id="fileAmis">
<tr><td><?php echo code_inc_img(path_img_asset('wait.gif'), "Veuillez patienter, chargement en cours..."); ?></td></tr>
</table>
<!-- Fermeture du panneau des amis <span class="fermerpanneauami"><input type="button" value="Fermer" onClick="ferme_panneau_amis();" /></span>-->
<!-- Script javascript avec ajax -->
<script type='text/javascript'>var beaucoup_amis = false; /* De petits avatars sont pr<70>f<EFBFBD>rables */</script>
<script type='text/javascript'>var debut_URL_liste_amis = "<?php echo $urlsite; ?>"; /* Configuration de l'URL o<> trouver la liste d'amis */</script>
<?php echo code_inc_js(path_js_asset('amisajax.js')); ?>
<!-- Internet errors counter -->
<span style="display: none;" id="internet_error">0</span>
<!-- Fin de: Script javascript ajax -->
<!-- Fin de: affichage dynamique des amis -->
</div>
</div>
</div>
</font><?php
}
else
{
//Beacoup d'amis
?><div class="listeamis metro" id="listeamis">
<!-- Affichage dynamique des amis -->
<div class="panel" data-role="panel">
<div class="panel-header panel-header-liste-amis"> Amis </div>
<div class="panel-content">
<table id="fileAmis" class="grande_liste_amis">
<tr><td><?php echo code_inc_img(path_img_asset('wait.gif'), "Veuillez patienter, chargement en cours..."); ?></td></tr>
</table>
</div>
</div>
<!-- Fermeture du panneau des amis--> <div class="fermerpanneauami"><input type="button" value="Fermer" onClick="ferme_panneau_amis();" /></div>
<!-- Script javascript avec ajax -->
<script type='text/javascript'>var beaucoup_amis = true; /* De grands avatars sont pr<70>f<EFBFBD>rables */</script>
<script type='text/javascript'>var debut_URL_liste_amis = "<?php echo $urlsite; ?>"; /* Configuration de l'URL o<> trouver la liste d'amis */</script>
<?php echo code_inc_js(path_js_asset('amisajax.js')); ?>
<!-- Internet erros counter -->
<span style="display: none;" id="internet_error">0</span>
<!-- Fin de: Script javascript ajax -->
<!-- Fin de: affichage dynamique des amis -->
</div><?php
}
//On v<>rifie si il faut masquer le volet des amis
if($afficher['volet_amis_ouvert'] == 0)
{
?><style type="text/css">.listeamis { display: none; }</style><?php
}
}
}
//Message d'avertissement si n<>cessaire
if(isset($alert_last_update))
{
?><link rel="stylesheet" href="<?php echo $urlsite ?>css/warning_update.css" />
<div id="alert_last_update">
<!-- Image de l'avertissement -->
<img src="<?php echo $urlsite; ?>img/warning_update.png" />
<div class="close"><input type="button" value="Fermer" onClick="show_hide_id('alert_last_update', 'hidden');" /></div>
</div><?php
}
?>

277
inc/pages/contact/contact.inc.php Executable file
View File

@ -0,0 +1,277 @@
<?php
/**
* Contact administration page
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit("Invalid call - ".$_SERVER['PHP_SELF']);
//Crypt inclusion
$cryptinstall=path_3rdparty("crypt/cryptographp.fct.php");
include $cryptinstall;
?>
<!DOCTYPE html>
<html>
<head>
<title>Contact - Comunic</title>
<?php include(pagesRelativePath('common/head.php')); ?>
</head>
<body class="metro">
<?php include(pagesRelativePath('common/pageTop.php')); ?>
<h1 class='titre'>Contact</h1>
<div class="nouveau_corps_page"><?php
//R<>cup<75>ration de la liste des types de contact
$liste_type_contact = get_list_type_contact($bdd);
//Si il s'agit d'une personne connect<63>e, on liste des contacts disponibles
if(isset($_SESSION['ID']))
{
//On v<>rifie si il faut supprimer un contact
if(isset($_GET['delete_contact']))
{
//Enregistrement du num<75>ro de contact
$id_contact = $_GET['delete_contact']*1;
//V<>rification du num<75>ro de contact
if($id_contact > 0)
{
//On supprime le contact
$sql = "DELETE FROM contact WHERE ID = ? AND ID_personne = ?";
//Ex<45>cution de la requ<71>te
$requete = $bdd->prepare($sql);
$requete->execute(array($id_contact, $_SESSION['ID']));
}
}
?><h3>Anciennes prises de contact</h3>
<?php
//Requ<71>te de recherche
$sql = "SELECT * FROM contact WHERE ID_personne = ? ORDER BY ID";
$requete = $bdd->prepare($sql);
$requete->execute(array($_SESSION['ID']));
//Affichage des r<>sultats
while($afficher_contact = $requete->fetch())
{
?><div class="notice marker-on-right bg-cobalt fg-white one_contact">
<?php echo $liste_type_contact[$afficher_contact['ID_type']-1]["nom_".$lang['nomlangue_raccourcis']]; ?><br />
<small><?php echo adapte_date($afficher_contact['date_envoi']); ?> (<a href="#" onClick="confirmaction('<?php echo siteURL('contact.php')."?delete_contact=".$afficher_contact['ID']; ?>', 'Voulez-vous vraiment supprimer cette prise de contact ? Ce choix est definitif !');">supprimer</a>)</small><br /><br />
<?php echo $afficher_contact['texte']; ?>
</div><br /><?php
//On indique qu'un contact a <20>t<EFBFBD> afficher
$one_contact_showed = true;
}
//Fermeture de la requ<71>te
$requete->closeCursor();
//On v<>rifie si aucun contact n'a <20>t<EFBFBD> affich<63>
if(!isset($one_contact_showed))
{
?><div class="notice marker-on-right bg-cobalt fg-white one_contact">
Aucune prise de contact pour l'instant
</div><?php
}
?>
<?php
}
if(isset($_POST['texte']) AND isset($_POST['id_type']))
{
if($_POST['texte'] == "")
{
//Message d'erreur
echo('Vous n\'avez pas sp&eacute;cifi&eacute; de contact !');
}
else
{
if(!isset($_SESSION['ID']))
{
//On v<>rifie notre image :)
if(!isset($_POST['codeimage']) && !isset($_POST['mail']))
{
echo "Ce formulaire de contact ne doit pas provenir d'une autre ressource que Comunic.";
die();
}
elseif(!chk_crypt($_POST['codeimage']))
{
echo "<p>Le contact n'a pas pu &ecirc;tre enregistr&eacute; pour la raison suivante : Code de l'image de validation incorrect.</p>";
die();
}
elseif($_POST['mail'] == "")
{
echo "<p>Le contact n'a pas pu &ecirc;tre enregistr&eacute; pour la raison suivante : Erreur de l'adresse mail.</p>";
die();
}
}
//On v<>rifie le type de contact
if(!isset($liste_type_contact[$_POST['id_type']-1]))
{
die("<p>Raison de prise de contact ind&eacute;terminable.</p>");
}
//On d<>finit le compte de celui qui poste la demande
$user = 0;
if(isset($_SESSION['ID']))
{
$user = $_SESSION['ID'];
}
$texte = $_POST['texte'];
if(isset($_POST['mail']))
{
if($_POST['mail'] != "")
{
$texte = $_POST['texte']." <br /> Adresse mail de l'utilisateur non connect&eacute; : ".$_POST['mail'];
}
}
//Enregistrement de l'adresse IP
if(isset($_SERVER['REMOTE_ADDR']))
{
$texte = $texte." <br /> Adresse IP de l'ordinateur ayant envoy&eacute; le contact : ".$_SERVER['REMOTE_ADDR'];
}
//On poste la demande
$sql = "INSERT INTO contact (ID_personne, date_envoi, texte, ID_type, mail_personne, IP_personne) VALUES (".$user.", NOW(), ?, ?, ?, ?)";
//Ex<45>cution de la requete
$insertion = $bdd->prepare($sql);
$insertion->execute(array($texte, $_POST['id_type'], (!isset($_SESSION['ID']) ? $_POST['mail'] : ""), $_SERVER['REMOTE_ADDR']));
//On affiche un message de succ<63>s
echo "<p>".code_inc_img(path_img_asset('succes.png'), "Bravo !")." La demande a bien &eacute;t&eacute; prise en compte. ".($active_envoi_mail == "oui" ? "Un message de confirmation vous sera envoy&eacute;</p>" : '')."</p>";
echo "<p>Voici le texte de la demande : <pre>".$texte."</pre></p>";
echo "<p>Voici la raison de la prise de contact : <pre>".$liste_type_contact[$_POST['id_type']-1]["nom_".$lang['nomlangue_raccourcis']]."</pre></p>";
//Envoi du message <20> l'utilisateur
//V<>rification de l'autorisation de l'envoi d'un mail
if($active_envoi_mail == "oui")
{
//Envoi d'un message de confirmation
$send_mail = true;
$sujet = "Confirmation de demande de contact";
$description_rapide = "Votre demande de prise de contact Comunic a <20>t<EFBFBD> enregistr<74>e.";
$nom_destinataire = "Vous";
$adresse_mail_destinataire = (isset($_SESSION['ID']) ? $afficher['mail'] : $_POST['mail']);
$texte_message = "
<h3 class='titre'>Contact</h3>
<p>Votre demande de contact a &eacute;t&eacute; prise en compte. Voici quelle est votre demande :</p>
<pre>".$texte."</pre>
<p>Type de demande :</p>
<pre>".$liste_type_contact[$_POST['id_type']-1]["nom_fr"]."</pre>
<p>Nous vous r&eacute;pondrons dans les plus bref d&eacute;lais.</p>
<p><a href=".$urlsite.">Connectez-vous <20> Comunic</a> pour renvoyer un contact si n&eacute;cessaire.
</p>";
//Envoi du message
include('inc/envoi_mail.php');
}
//Envoi du message <20> l'administration
//V<>rification de l'autorisation de l'envoi d'un mail
if($active_envoi_mail == "oui")
{
//Envoi d'un message de confirmation
$send_mail = true;
$sujet = "Demande de contact";
$description_rapide = "Un utilisateur de Comunic a demand<6E> <20> entrer en contact avec vous.";
$nom_destinataire = "Administration de Comunic";
$adresse_mail_destinataire = $admin_mail_envoi;
$texte_message = "
<h3 class='titre'>Contact</h3>
<p>Un utilisateur de Comunic a souhait&eacute; entrer en contact avec l'administration. Voici le texte de la demande :</p>
<pre>".$texte."</pre>
<p>Veuillez r&eacute;pondre &agrave; ce contact dans les plus bref d&eacute;lais.</p>
<p>Connectez-vous &agrave; l'administration pour obtenir plus de d&eacute;tails.
</p><h4 class='titre'>
D&eacute;tails techniques:
</h4><table>
<tr><td>La personne est connect&eacute;e :</td>
<td>".(isset($_SESSION['ID']) ? "Oui" : "Non")."</td></tr><tr><td>
Adresse mail :</td>
<td>".(isset($_SESSION['ID']) ? $afficher['mail'] : $_POST['mail'])."</td></tr>
<tr><td>ID compte</td>
<td>".$user."</td></tr>
<tr><td>Type de contact</td>
<td>".$liste_type_contact[$_POST['id_type']-1]["nom_fr"]."</td></tr>
</table>";
//Envoi du message
include('inc/envoi_mail.php');
}
}
}
else
{
//On affiche le formulaire de contact
?><form action='<?php echo siteURL('contact.php'); ?>' method='post' name='contact' class="form_contact">
<h3> Contactez-nous </h3>
<p>Vous pouvez utiliser le formulaire de contact pour nous proposer une am&eacute;lioration ou nous faire une demande.</p>
<table>
</tr>
<td>La raison de cette prise de contact </td>
<td><select name="id_type"><?php
//On d<>termine quel type de contact sera s<>lectionn<6E> par d<>faut
$type_contact = (isset($_POST['id_type']) ? $_POST['id_type'] : 1 );
//Affichage de la liste des propositions
foreach($liste_type_contact as $afficher_type_contact)
{
echo "<option value='".$afficher_type_contact['ID']."' ".($type_contact == $afficher_type_contact['ID'] ? "selected" : "")."> ".$afficher_type_contact['nom_'.$lang['nomlangue_raccourcis']];
}
?></select></td>
</tr><tr>
<td>
Votre message
</td>
<td>
<textarea name='texte'><?php if(isset($_POST['contact'])) echo $_POST['contact']; ?></textarea>
</tr><?php
if(!isset($_SESSION['ID']))
{
//Petite v<>rification de s<>curit<69>, au cas ou... :)
?><tr>
<td>Image de validation :</td>
<td style="text-align: center"><?php dsp_crypt(0,1); ?></td>
</tr><tr>
<td>Code de l'image</td>
<td><input type="text" name="codeimage"></td>
</tr>
<tr>
<td>Votre adresse mail</td>
<td><input type="mail" name="mail" <?php if(isset($_POST['mail'])) echo "value='".$_POST['mail']."'"; ?> required/></td>
</tr><?php
}
?>
<tr>
<td colspan="2"><h6>Afin de pouvoir d&eacute;terminer avec pr&eacute;cision qui a r&eacute;ellement envoy&eacute;<br />
ce texte en cas de probl&egrave;me grave, votre adresse IP est enregistr&eacute;e.</h6></td>
</tr>
<tr>
<td>
Confirmer l'envoi
</td>
<td>
<input type='submit' value='Envoyer' />
</td>
</tr>
<tr>
<td colspan="2"><h6>En cliquant sur "Envoyer" vous reconaissez &ecirc;tre<br />
le l&eacute;gitime possesseur de l'adresse mail <i><?php if(isset($_SESSION['ID'])) echo $afficher['mail']; else echo "sp&eacute;cifi&eacute;e ci-dessus"; ?></i> .</h6></td>
</tr>
</table>
</form>
<?php
}
?>
</div><hr />
<?php include(pagesRelativePath('common/pageBottom.php')); ?>
</body>
</html>

View File

@ -0,0 +1,21 @@
<p>Between us.</p>
<table border="0">
<tbody>
<tr>
<td>&nbsp;<img src="%URL_SITE%img/user_add.png" alt="" /></td>
<td>Create an account now.</td>
</tr>
<tr>
<td>&nbsp;<img src="%URL_SITE%img/search_accounts.png" alt="" /></td>
<td>Search your friends.</td>
</tr>
<tr>
<td>&nbsp;<img src="%URL_SITE%img/comments.png" alt="" /></td>
<td>Talk with your friends.</td>
</tr>
<tr>
<td>&nbsp;<img src="%URL_SITE%img/lock.png" alt="" /></td>
<td>Comunic will respect your private life.</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,21 @@
<p>Un nouveau moyen de commmunication.</p>
<table border="0">
<tbody>
<tr>
<td><div class="img-add-account"></div></td>
<td>Cr&eacute;ez vous un compte d&egrave;s maintenant.</td>
</tr>
<tr>
<td><div class="img-search-accounts"></div></td>
<td>Cherchez vos amis.</td>
</tr>
<tr>
<td><div class="img-comments"></div></td>
<td>Communiquez avec vos amis.</td>
</tr>
<tr>
<td><div class="img-cadenas"></div></td>
<td>Comunic s'engage &agrave; respecter votre vie priv&eacute;e.</td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,112 @@
<?php
/**
* Home screen when no user is logged in
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call ! - homeLogout.inc.php');
//On vérifie si il s'agit de Internet Explorer 7
//Si c'est le cas, on affiche un message d'incompatibilté
if(isset($_SERVER['HTTP_USER_AGENT']))
{
if(preg_match('/MSIE 7/', $_SERVER['HTTP_USER_AGENT']))
{
?><table align='center'>
<tr>
<td>
<img src='img/erreur.png' />
</td>
<td>
<p><b><?php echo $lang[24]; ?> :</b> Internet Explorer 7.0 est un navigateur trop ancien pour &ecirc;tre encore utilis&eacute;.</p>
<p>Internet Explorer 7 ne permet pas l'ex&eacute;cution de toutes les fonctionalit&eacute;es de Comunic. Par exemple, le chat priv&eacute; pourra ne pas s'ouvrir correctement.</p>
<p>Ce navigateur pr&eacute;sente d'importantes failles de s&eacute;curit&eacute; pouvant nuire &agrave; la s&eacute;curit&eacute; de l'ordinateur.</p>
<p>Nous vous recommandons fortement d'installer sur votre ordinateur un nouveau navigateur comme Mozilla Firefox, qui est un navigateur gratuit, moderne et securis&eacute;.</p>
</td>
</tr>
</table><?php
}
//On vérifie si il s'agit de Internet Explorer 6
//Si c'est le cas, on affiche un message d'incompatibilté
if(preg_match('/MSIE 6.0/', $_SERVER['HTTP_USER_AGENT']))
{
//Fenêtre d'erreur dans ce cas-là
?><table align='center'>
<tr>
<td>
<img src='img/exclamation.png' />
</td>
<td>
<p>Le navigateur que vous utilisez (Internet Explorer 6) n'est pas compatible avec Comunic.</p>
<p>Nous vous recommandons fortement de mettre à niveau vers un nouveau navigateur tel que Mozilla Firefox accessible à cette adresse : <a href='http://mozilla.org/' title='Site officiel de mozilla'>http://mozilla.org/</a></p>
</td>
</tr>
</table><?php
}
}
//Check if we have to show a beta message
if ($affichebeta == 1)
{
//On affiche le message
?>
<!-- Message 'en beta' -->
<div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
<p>
<span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
<strong><?php echo $lang[24]; ?> :</strong> <?php echo $textebeta[$lang['nomlangue_raccourcis']]; ?>
</p>
</div>
<!-- Fin de: Message 'en beta' -->
<?php
}
if($affichemessageclassique == 1)
{
?>
<table align='center'>
<tr>
<td>
<img src='img/erreur.png' />
</td>
<td>
<p><b><?php echo $lang[24]; ?> :</b><?php echo corrige_caracteres_speciaux($textecookie[$lang['nomlangue_raccourcis']]); ?></p>
</td>
</tr>
</table>
<?php
}
?>
<!-- Open Graph content -->
<meta property="og:title" content="Communiquons.org"/>
<meta property ="og:description" content="D&eacute;couvrez un nouveau moyen de communication respectant la vie priv&eacute;e."/>
<meta property="og:image" content="<?php echo path_img_asset("logo_comunic.png"); ?>"/>
<br />
<div class="metro home_contener">
<!-- Texte d'acceuil -->
<div class="message_page_acceuil_login">
<?php echo add_url_site(file_get_contents(__DIR__.'/acceuil-'.$lang['nomlangue_raccourcis'].'.html'), $urlsite); ?>
</div>
<!-- Fin de: texte d'acceuil -->
<!-- Boutons d'accès -->
<div class="newaccount_page_acceuil_login">
<a class="command-button info" href="creercompte.php">
<i class="icon-pencil on-left"></i>
<small>Cr&eacute;ez-vous un compte</small>
</a>
<p class="or">ou</p>
<a class="command-button success" href="whatiscomunic.php">
<i class="icon-arrow-right-3 on-left"></i>
<small>D&eacute;couvrez les fonctionnalit&eacute;s de Comunic</small>
</a>
</div>
<!-- Fin de: Boutons d'accès-->
</div>
</div>
<?php include(pagesRelativePath('common/pageBottom.php'));

View File

@ -0,0 +1,103 @@
<?php
/**
* Add a post
*/
isset($_SESSION['ID']) OR exit('addPost requires login !');
//Check requirements
if(!isset($_GET['id']) AND !isset($id))
die("Invalid call!");
if(!isset($id))
//Définition de l'ID (avec sécurité)
$idPersonn = $_GET['id']*1;
else
$idPersonn = $id;
//If it is the actuality, we have to change the ID to the main ID
if($idPersonn == 0)
$idPersonn = $_SESSION['ID'];
//Récupération des informations de la personne
$afficher = cherchenomprenom($idPersonn, $bdd);
//Adaptation des variables serveur
$_SERVER['PHP_SELF'] = str_replace('action.php', 'index.php', $_SERVER['PHP_SELF']);
//Si ce n'est pas la page de la personne on vérifie si elle est amie et autorisée à ajouter un post
if($_SESSION['ID'] != $idPersonn)
{
//Including file
include('controllers/checkFriendAllowance.inc.php');
}
if($_SESSION['ID'] == $idPersonn || isset($allowcreatepost))
{
//Initialisation du niveau de visibilité
$niveau_visibilite = (isset($_POST['niveau_visibilite']) ? $_POST['niveau_visibilite']*1 : 2);
//On complète, si nécessaire, le niveau de visibilité
if($niveau_visibilite == 3 AND isset($_POST['liste_groupes']))
{
//Intégration des groupes dans le niveau de visibilité
foreach($_POST['liste_groupes'] as $lister=>$value)
{
$niveau_visibilite .= "|".$lister;
}
}
//Vérification de l'envoi d'un texte ou d'une image
if(isset($_POST['texte']))
{
//Including file
include('controllers/postTextImage.inc.php');
}
//If a YouTube video has been posted...
if(isset($_POST['youtube']) && isset($_POST['commentyoutube']))
{
//Including file
include('controllers/postYouTube.inc.php');
}
//Vérification de l'existence de l'envoi d'une vidéo
if(isset($_POST['idvideo']) && isset($_POST['commentaire_video']) && isset($_POST['niveau_visibilite']))
{
//Including file
include('controllers/postVideo.inc.php');
}
//Vérification de l'envoi d'un événement
if(isset($_POST['date']) AND isset($_POST['nom_evenement']))
{
//Including file
include('controllers/postEvent.inc.php');
}
//Vérification de l'envoi d'un lien vers une page web
if(isset($_POST['adresse_page']) AND isset($_POST['texte_lien_page']))
{
//Including file
include('controllers/postWebLink.inc.php');
}
//Vérification de l'envoi d'un fichier PDF
if(isset($_POST['texte_post_with_pdf']))
{
//Including file
include('controllers/postPDF.inc.php');
}
//On vérifie si il faut ajouter un sondage
if(isset($_POST['reponses_sondage']) AND isset($_POST['question_sondage']) AND isset($_POST['commentaire_sondage']))
{
//Including file
include('controllers/postSurvey.inc.php');
}
//Add text form
//Including file
include('views/v_addPost.inc.php');
}

View File

@ -0,0 +1,35 @@
<?php
/**
* If two personns are friend, this file check
* the second one has right to make posts on
* the first one page.
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
if($afficher['autoriser_post_amis'] == 1 and detectesilapersonneestamie($_SESSION['ID'], $idPersonn, $bdd))
{
//Requête de recherche (en fait, on regarde la ligne "ami" du point de vue de l'autre personne...)
$sql = "SELECT * FROM amis WHERE (ID_personne = ?) && (ID_amis = ?) && (actif = 1)";
//Exécution de la requête
$requeteamis = $bdd->prepare($sql);
$requeteamis->execute(array($idPersonn, $_SESSION['ID']));
//On renvoi le résultat suivant si la personne est amie ou non
if(!$verifierautorisation = $requeteamis->fetch())
{
//On ne possède pas de droit
}
else
{
//On vérifie si l'on a le droit
if($verifierautorisation['autoriser_post_page'] == 1)
$allowcreatepost = 1; //On l'a!
}
//Fermeture de la requete
$requeteamis->closeCursor();
}

View File

@ -0,0 +1,48 @@
<?php
/**
* Post an event
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
//Exemple d'envoi :
// [date] => 16.04.2015
// [heure] => 4
// [minute] => 4
// [nom_evenement] => test
// [niveau_visibilite] => 2
$date = $_POST['date'];
//$heure = $_POST['heure']*1;
//$minute = $_POST['minute']*1;
$nom_evenement = $_POST['nom_evenement'];
if($date == "")
{
echo affiche_message_erreur("L'&eacute;v&eacute;nement n'a pas de date !"); //L'événement doit avoir une date
}
else
{
//Décomposition de la date
$array_date = explode('|', str_replace('.', '|', $date));
if(count($array_date) != 3)
echo affiche_message_erreur("La date sp&eacute;cifi&eacute;e est incorrecte."); //La date donnée est invalide
elseif($array_date[1] > 31 OR $array_date[1] < 1)
echo affiche_message_erreur("Le jour sp&eacute;cifi&eacute; est incorrect."); //Le jour donné est invalide
elseif($array_date[2] < date("Y", time()))
echo affiche_message_erreur("L'ann&eacute;e donn&eacute;e est pass&eacute;e."); //L'année donnée est invalide
else
{
//Ajout du texte
if($_SESSION['ID'] == $idPersonn)
ajouttexte($_SESSION['ID'], $nom_evenement, $bdd, $niveau_visibilite, "count_down", "", $array_date[2], $array_date[1], $array_date[0]);
else //Si c'est un amis
ajouttexte_amis($_SESSION['ID'], $idPersonn, $nom_evenement, $bdd, $niveau_visibilite, "count_down", "", $array_date[2], $array_date[1], $array_date[0]);
//Message de succès
echo "<p><img src='".path_img_asset('succes.png')."' title='Succ&egrave;s' alt='V' /> L'&eacute;v&eacute;nement a bien &eacute;t&eacute; ajout&eacute;.</p>";
}
}

View File

@ -0,0 +1,72 @@
<?php
/**
* Post a PDF file
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
//Enregistrement du texte dans une variable
$texte = $_POST['texte_post_with_pdf'];
if(isset($_FILES['fichier_pdf']))
{
//Enregistrement des informations du PDF dans une variable
$infos_pdf = $_FILES['fichier_pdf'];
//Contrôle de la présence d'une erreur
if($infos_pdf['error'] != 0)
{
//Une erreur a survenue lors de l'envoi
$erreur_ajout_pdf = "Une erreur a survenue lors de l'envoi du PDF. Merci de r&eacute;ssayer.";
}
elseif($infos_pdf['type'] != "application/pdf")
{
//Le fichier choisi n'est pas un PDF
$erreur_ajout_pdf = "Le fichier envoy&eacute; n'est pas un PDF.";
}
else
{
//Détermination du nom du pdf
$nom_pdf = sha1(time().$_SESSION['ID'].$texte.$_SERVER['REMOTE_ADDR']);
while(file_exists(relativeUserDataFolder("post_pdf/".$nom_pdf.".pdf")))
{
$nom_pdf = crypt($nom_pdf);
}
//On vérifie si un dossier a été allouée à la personne, création automatique le cas échéant
checkPersonnalFolder(relativeUserDataFolder("post_pdf/"), $_SESSION['ID']);
$folder_user_pdf = "post_pdf/".$_SESSION['ID']."/";
//On finit le nom du PDF
$nom_pdf = $folder_user_pdf.$nom_pdf.".pdf";
//Copie du PDF
if(move_uploaded_file($infos_pdf['tmp_name'], relativeUserDataFolder($nom_pdf)))
{
//Ajout du texte
if($_SESSION['ID'] == $idPersonn)
ajouttexte($_SESSION['ID'], $texte, $bdd, $niveau_visibilite, "pdf", $nom_pdf);
else //Si c'est un amis
ajouttexte_amis($_SESSION['ID'], $idPersonn, $texte, $bdd, $niveau_visibilite, "pdf", $nom_pdf);
}
else
{
//Il y a une erreur lors de la copie
$erreur_ajout_pdf = "Une erreur a survenue lors de la copie du PDF vers son emplacement d&eacute;finitif. Merci de r&eacute;ssayer.";
}
}
//Si il y a une erreur, on l'affiche
if(isset($erreur_ajout_pdf))
{
?><script>affiche_notification_erreur("<?php echo $erreur_ajout_pdf; ?>");</script><?php
}
else
{
//Sinon on affiche un message de succès
?><script>affiche_notification_succes("Le PDF a bien &eacute;t&eacute; enregistr&eacute;.");</script><?php
}
}

View File

@ -0,0 +1,87 @@
<?php
/**
* Post a survey
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
//Enregistrement des variables
$reponses_sondage = bloquebalise($_POST['reponses_sondage']);
$question_sondage = bloquebalise($_POST['question_sondage']);
$commentaire_sondage = $_POST['commentaire_sondage'];
//Choix par défaut pour les réponses au sondage si il n'y en a aucune
if(str_replace("\n", "", $reponses_sondage) == "")
$reponses_sondage = "None";
//On commence par enregistrer le texte dans la bdd
if($_SESSION['ID'] == $idPersonn)
ajouttexte($_SESSION['ID'], $commentaire_sondage, $bdd, $niveau_visibilite, "sondage");
else //Si c'est un amis
ajouttexte_amis($_SESSION['ID'], $idPersonn, $commentaire_sondage, $bdd, $niveau_visibilite, "sondage");
//Récupération des informations sur le texte précédemment posté
$infos_texte = select_sql("texte", "texte = ? AND (ID_personne = ? OR ID_amis = ?) AND niveau_visibilite = ? ORDER BY ID DESC", $bdd, array(
$commentaire_sondage,
$_SESSION['ID'],
$_SESSION['ID'],
$niveau_visibilite
));
//On vérifie que l'on a bien notre texte
if(count($infos_texte) == 0)
{
//Rapport d'erreur à l'administration
report_error('if(count($infos_texte) == 0)', 'La variable $infos_texte ne compte aucune entr&eacute;e, alors qu\'elle devrait en contenir au moins une (permet l\'ajout de sondages) dans addpost.php (inc).');
//Affichage d'un message d'erreur
affiche_message_erreur("Nous avons rencontr&eacute; une erreur en interne. (Err Sondage Inser 1) L'administration a &eacute;t&eacute; inform&eacute;e de cette erreur. Nous ferons en sorte de la r&eacute;parer au plus vite, veuillez r&eacute;ssayer d'envoyer votre sondage.");
}
else
{
//Poursuite
//Récupération de l'ID du sondage
$idPersonn_texte = $infos_texte[0]['ID'];
//Création du sondage
insert_sql("sondage", "ID_utilisateurs, ID_texte, date_creation, question", "?, ?, NOW(), ?", $bdd, array($_SESSION['ID'], $idPersonn_texte, $question_sondage));
$infos_sondage = select_sql("sondage", "ID_utilisateurs = ? AND ID_texte = ? AND question = ? ORDER BY ID DESC", $bdd, array(
$_SESSION['ID'],
$idPersonn_texte,
$question_sondage
));
if(count($infos_sondage) == 0)
{
//Rapport d'erreur à l'administration
report_error('if(count($infos_sondage) == 0)', 'La variable $infos_sondage ne compte aucune entr&eacute;e, alors qu\'elle devrait en contenir au moins une (permet l\'ajout de sondages) dans addpost.php (inc).');
//Affichage d'un message d'erreur
affiche_message_erreur("Nous avons rencontr&eacute; une erreur en interne. (Err Sondage Inser 2) L'administration a &eacute;t&eacute; inform&eacute;e de cette erreur. Nous ferons en sorte de la r&eacute;parer au plus vite, veuillez r&eacute;ssayer d'envoyer votre sondage.");
exit();
}
//Récupération de l'ID du sondage
$idPersonn_sondage = $infos_sondage[0]['ID'];
//Ajout des réponses au sondage
$array_reponses = explode("\n", $reponses_sondage);
foreach($array_reponses as $traiter)
{
//Vérification de la réponse
if($traiter != "" AND $traiter != " ")
{
//Ajout du choix à la BDD
insert_sql("sondage_choix", "ID_sondage, date_creation, choix", "?, NOW(), ?", $bdd, array($idPersonn_sondage, $traiter));
}
}
//Message de succès
?><script>affiche_notification_succes("Le sondage a bien &eacute;t&eacute; enregistr&eacute;.");</script><?php
}

View File

@ -0,0 +1,48 @@
<?php
/**
* Post a text or an image
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
//An image does not require a valid text
if((isset($_FILES['image'])) AND ($_FILES['image']['error'] == 0))
$image = true;
else
$image = false;
//On vérifie si le texte n'est pas vide
if($_POST['texte'] != "" OR $image)
{
//Vérification de la validité du post
if(verifie_validite_ajout($_POST['texte']) OR $image)
{
//On vérifie si une image est incorporée au post
if((isset($_FILES['image'])) AND ($_FILES['image']['error'] == 0))
{
//Envoi de l'image en ligne
envoiimage(($_SESSION['ID'] == $idPersonn ? $_SESSION['ID'] : $idPersonn) , $_POST['texte'], $bdd, ($_SESSION['ID'] == $idPersonn ? 0 : $_SESSION['ID']), $niveau_visibilite);
}
else
{
//Ajout du texte
if($_SESSION['ID'] == $idPersonn)
ajouttexte($_SESSION['ID'], $_POST['texte'], $bdd, $niveau_visibilite);
else //Si c'est un amis
ajouttexte_amis($_SESSION['ID'], $idPersonn, $_POST['texte'], $bdd, $niveau_visibilite);
}
}
else
{
//On affiche un message d'erreur
?><script type='text/javascript'>affiche_notification_erreur("Votre texte est invalide : pas assez de caract&egrave;res diff&eacute;rents (au minimum 3).", "Erreur", 10);</script><?php
}
}
else
{
//On affiche un message d'erreur
?><script type='text/javascript'>affiche_notification_erreur("L'ajout de textes vides est interdit !", "Erreur", 10);</script><?php
}

View File

@ -0,0 +1,35 @@
<?php
/**
* Post a personnal video
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
if($_POST['idvideo'] != "" && $_POST['niveau_visibilite'] != "")
{
//On vérifie si il faut prendre la dernière vidéo disponible
if($_POST['idvideo'] == "last_one")
$_POST['idvideo'] = id_video_plus_recente($_SESSION['ID'], $bdd); //Récupération de l'ID de la vidéo la plus récente
if(isset_video($_POST['idvideo'], $_SESSION['ID'], $bdd))
{
if($_POST['niveau_visibilite'] <= 3)
{
//Ajout de la vidéo
if($_SESSION['ID'] == $idPersonn)
add_movie($_SESSION['ID'], $_POST['commentaire_video'], $_POST['idvideo'], $bdd, $_POST['niveau_visibilite']);
else //Si c'est un amis
add_movie($idPersonn, $_POST['commentaire_video'], $_POST['idvideo'], $bdd, $_POST['niveau_visibilite'], $_SESSION['ID']);
}
else
{
?><script>affiche_notification_erreur("Il y a une erreur dans votre requ&ecirc;te.");</script><?php //Vidéo indisponible
}
}
else
{
?><script>affiche_notification_erreur("La vid&eacute;o dmand&eacute;e n'est pas disponible.");</script><?php //Vidéo indisponible
}
}

View File

@ -0,0 +1,54 @@
<?php
/**
* Post a web link
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
//Enregistrement de l'URL
$url = $_POST['adresse_page'];
$description = ($_POST['texte_lien_page'] != "" ? "<p>".$_POST['texte_lien_page']."</p>" : "");
//Inclusion de la fonction d'analyse
require_once(relativePath_3rdparty('analysing_page/analyser_fr.php'));
//Contrôle de l'URL
if(!preg_match('<http://>', $url) AND !preg_match('<https://>', $url))
{
echo affiche_message_erreur("L'URL saisie est invalide !"); //L'URL donnée est invalide
}
else
{
//On commence par récupérer le code source de l'URL
ob_start();
$source = file_get_contents($url);
ob_end_clean();
//Contrôle de la source
if($source == "")
{
echo affiche_message_erreur("La page demand&eacute;e n'a pas &eacute;t&eacute; trouv&eacute;e !"); //Page non trouvée (404)
}
else
{
//On peut tenter d'extraire les informations
$infos_page = analyse_source_page_extrait_description($source);
//On prépare l'enregistrement de la page
$infos_page['titre'] = ($infos_page['titre'] == null ? "default" : $infos_page['titre']);
$infos_page['description'] = ($infos_page['description'] == null ? "default" : $infos_page['description']);
$infos_page['image'] = ($infos_page['image'] == null ? "default" : $infos_page['image']);
//On enregistre la page
//Ajout du texte
if($_SESSION['ID'] == $idPersonn)
ajouttexte($_SESSION['ID'], $description, $bdd, $niveau_visibilite, "webpage_link", "", 0, 0, 0, $url, $infos_page['titre'], $infos_page['description'], $infos_page['image']);
else //Si c'est un amis
ajouttexte_amis($_SESSION['ID'], $idPersonn, $description, $bdd, $niveau_visibilite, "webpage_link", "", 0, 0, 0, $url, $infos_page['titre'], $infos_page['description'], $infos_page['image']);
//Message de succès
echo "<p><img src='".path_img_asset('succes.png')."' title='Succ&egrave;s' alt='V' /> Le lien vers la page a bien &eacute;t&eacute; ajout&eacute;.</p>";
}
}

View File

@ -0,0 +1,53 @@
<?php
/**
* Post a YouTube video
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
if($_POST['youtube'] != "")
{
//Exemple d'URL YouTube :
// https://www.youtube.com/watch?v=1MBU0yRgBTw
if(strpbrk($_POST['youtube'], "<https://www.youtube.com/watch?v=>") != false OR strpbrk($_POST['youtube'], "<http://www.youtube.com/watch?v=>") != false)
{
$adresse = strstr($_POST['youtube'], "watch?v=");
$adresse = str_replace("watch?v=", "", $adresse);
if($adresse != "")
{
//Définition du texte de la vidéo
$source = "";
if($_POST['commentyoutube'] != "")
{
if(!preg_match('/endof/', $_POST['commentyoutube']))
{
$source .= $_POST['commentyoutube'];
}
}
//Enregistrement de la vidéo
//Ajout du texte
if($_SESSION['ID'] == $idPersonn)
ajouttexte($_SESSION['ID'], $source, $bdd, $niveau_visibilite, "youtube", $adresse);
else //Si c'est un amis
ajouttexte_amis($_SESSION['ID'], $idPersonn, $source, $bdd, $niveau_visibilite, "youtube", $adresse);
//Message de succès
?><script>affiche_notification_succes("La vid&eacute;o a bien &eacute;t&eacute; enregistr&eacute;e.");</script><?php
}
else
{
?><script>affiche_notification_erreur("L'adresse de la vid&eacute;o YouTube est incorrecte.");</script><?php
}
}
else
{
?><script>affiche_notification_erreur("L'adresse de la vid&eacute;o YouTube est incorrecte. Le nom de domaine ou l'URL est incorrecte.");</script><?php
}
}

View File

@ -0,0 +1,225 @@
<?php
/**
* Add post main view
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
?><font class="metro">
<div class="tab-control" data-role="tab-control" id="tabs_form_add">
<ul class="tabs" onmouseover="$('#tabs_form_add').tabcontrol();">
<li class="active"><a href="#_page_1">Texte / <i class="icon-pictures"></i></a></li>
<li><a href="#_youtube_add"><img src="<?php echo path_img_asset('logo-youtube.png'); ?>" height="16px"></a></li>
<li id='tab_add_a_movie'><a href="#_movie_add"><i class="icon-film"></i></a></li>
<li><a href="#_webpage_add"><i class="icon-link"></i></a></li>
<li id="tab_add_a_pdf"><a href="#_post_with_pdf_add"><i class="icon-file-pdf"></i></a></li>
<li><a href="#_count_down_add" onClick='$("#datepicker").datepicker();'><i class="icon-alarm-clock"></i></a></li>
<li><a href="#_sondage_add" ><i class="icon-pie"></i></a></li>
</ul>
<div class="frames">
<div class="frame" id="_page_1">
<div class="ajout_post">
<div id="button_form_ajout_simple">
<button class="command-button info" onClick="document.getElementById('button_form_ajout_simple').style.display = 'none'; document.getElementById('form_ajout_simple').style.display = 'block';">
<i class="icon-plus on-left"></i>
Ajouter un post
<small>Cliquez ici afin d'ajouter un post</small>
</button>
</div>
<div id="form_ajout_simple" style="display: none; height: 316px;">
<!-- Ajout simple -->
<form action='<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $idPersonn; ?>' method='post' enctype='multipart/form-data'>
<p>Image (optionelle) : <input type='file' class='filenouvimage' name='image' /></p>
<textarea name='texte' id='ajoutsimple'></textarea><br />
<!-- Niveau de visibilité -->
<?php choisir_niveau_visibilite(); ?>
<!-- Fin de: Niveau de visibilité -->
<!-- Boutons de validation -->
<input type='submit' value='<?php echo $lang[32]; ?>' />
<!-- Fin de: Boutons de validation -->
<!-- TinyMCE -->
<?php echo code_inc_js(path_js_asset('ajoutsimple.js')); ?>
<!-- /TinyMCE -->
</form>
<!-- Fin de: ajout simple -->
</div>
</div>
</div>
<div class="frame" id="_youtube_add">
Ajout d'une vid&eacute;o Youtube
<p>Pour ajouter une vid&eacute;o YouTube sur votre page, veuillez copier son adresse web puis la coller dans le champs ci-dessous.</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $idPersonn; ?>" method="post">
<input type="text" name="youtube" />
<p>Vous pouvez &eacute;galement ajouter un petit commentaire pour vos amis....</p>
<input type="text" name="commentyoutube" />
<p>Une fois que vous &ecirc;tes pr&ecirc;t, cliquez sur Ajouter.</p>
<!-- Niveau de visibilité -->
<?php choisir_niveau_visibilite(); ?>
<!-- Fin de: Niveau de visibilité -->
<!-- Bouton de validation -->
<p><input type="submit" value="Ajouter" /></p>
<!-- Fin de : Bouton de validation -->
</form>
</div>
<div class="frame" id="_movie_add">
<form action='<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $idPersonn; ?>' method='post' name="Envoi d'une video">
Envoi d'une vid&eacute;o personnelle
<div style="text-align: center;" class="metro"><input type="button" value="Envoi d'une vid&eacute;o" onclick="ouvre_fenetre_upload_video();" /></div>
<?php
//Listing de toute les vidéos disponibles
//Listage de l'ensemble des vidéos
$liste_video = liste_videos_user($_SESSION['ID'], $bdd);
//Affichage de la liste
echo "<div class='list_choix_video'>";
echo "<input type='radio' name='idvideo' checked value='last_one' /> La plus r&eacute;cente <br />"; //Proposition de lecture de la vidéo la plus récente
foreach($liste_video as $view)
{
echo "<input type='radio' name='idvideo' value='".$view['ID']."' /> ".corrige_caracteres_speciaux(corrige_accent_javascript($view['nom_video']))."<br />";
}
echo "</div>";
?>
<textarea name="commentaire_video" placeholder="Commentaire sur la vid&eacute;o..."></textarea>
<!-- Niveau de visibilité -->
<?php choisir_niveau_visibilite(); ?>
<!-- Fin de: Niveau de visibilité -->
<!-- Bouton de validation -->
<p><input type="submit" value="Ajouter" /></p>
<!-- Fin de : Bouton de validation -->
<p>Note : Lorsque vous envoyez une vid&eacute;o, vous prenez la responsabilit&eacute; du contenu envoy&eacute;. En cas de violation de droit d'auteur, vous serez d&eacute;sign&eacute; responsable du vol. Veillez donc &agrave; ne pas envoyer de vid&eacute;os susceptibles d'&ecirc;tre prot&eacute;g&eacute;e par droit d'auteur. <a href="http://192.168.1.5/divers/comunic/about.php?cgu" target="_blank"> R&eacute;f&eacute;rez-vous au conditions d'utilisation pour de plus amples informations. </a></p>
<p>Si vous n'arrivez pas &agrave; envoyer une vid&eacute;o &agrave; cause de son poids trop &eacute;lev&eacute;, nous vous recommandons de la poster sur YouTube puis de l'int&eacute;grer &agrave; Comunic.</a></p>
</form>
</div>
<div class="frame" id="_webpage_add">
<p>Ajout d'un lien vers une page web</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $idPersonn; ?>" method="post" name="Envoi d'un lien vers une URL">
<div class="input-control text size4">
<input type="text" name="adresse_page" value="" placeholder="URL de la page"/>
</div>
<div class="input-control text size4">
<input type="text" name="texte_lien_page" value="" placeholder="Commentaire personnel"/>
</div>
<!-- Niveau de visibilité -->
<?php choisir_niveau_visibilite(); ?>
<!-- Fin de: Niveau de visibilité -->
<!-- Bouton de validation -->
<p><input type="submit" value="Ajouter" /></p>
<!-- Fin de : Bouton de validation -->
<!-- Propostion d'ajout aux favoris -->
<p>
Vous pouvez &eacute;galement ajouter ce lien dans vos favoris en le glissant sur votre liste de favoris afin de pouvoir partager plus facilement des pages web : <br />
<a href="javascript:(function(){%20window.open('<?php echo $urlsite; ?>share.php?address=referer',%20'share_comunic',%20'width=600px,height=520px');%20})();" title="Partager sur Comunic">Partager sur Comunic</a>
</p>
<!-- Fin de: Propostion d'ajout aux favoris -->
</form>
</div>
<div class="frame" id="_post_with_pdf_add">
<p>Envoi d'un pdf</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $idPersonn; ?>" method="post" name="Envoi d'un post avec un PDF" enctype="multipart/form-data">
<input type="file" name="fichier_pdf" value="Choix du fichier PDF"/>
<div class="input-control text size4">
<input type="text" name="texte_post_with_pdf" value="" placeholder="Commentaire personnel"/>
</div>
<!-- Niveau de visibilité -->
<?php choisir_niveau_visibilite(); ?>
<!-- Fin de: Niveau de visibilité -->
<!-- Bouton de validation -->
<p><input type="submit" value="Envoyer" /></p>
<!-- Fin de : Bouton de validation -->
<!-- Rappel sur les copyright -->
<p>
<u>Note :</u> Vous &ecirc;tes responsables des contenus que vous envoyez sur Comunic. Ceux-ci ne doivent pas &ecirc;tre prot&eacute;g&eacute;s par droits d'auteur.
</p>
<!-- Fin de: Rappel sur les copyright -->
</form>
</div>
<div class="frame" id="_count_down_add">
<form action='<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $idPersonn; ?>' method='post' name="Envoi d'un evenement">
Ajout d'un &eacute;v&eacute;nement avec un compteur &agrave; rebours
<div style="text-align: center;" class="metro">
<!-- Choix de la date -->
<div class="input-control text size3" id="datepicker">
<input name="date" type="text" required placeholder="Cliquez ici pour choisir la date...">
</div>
<!-- Fin de: Choix de la date -->
<!-- Nom de l'événement -->
<br /><div class="input-control text size4">
<input type="text" name="nom_evenement" value="" placeholder="Nom de l'&eacute;v&eacute;nement"/>
</div>
<!-- Fin de: Nom de l'événement -->
<!-- Niveau de visibilité -->
<?php choisir_niveau_visibilite(); ?>
<!-- Fin de: Niveau de visibilité -->
<!-- Bouton de validation -->
<p><input type="submit" value="Ajouter" /></p>
<!-- Fin de : Bouton de validation -->
</div>
</form>
</div>
<!-- Création d'un sondage -->
<div class="frame metro" id="_sondage_add">
<form action='<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $idPersonn; ?>' method='post' name="Envoi d'un sondage">
Cr&eacute;ation d'un sondage
<!-- Question du sondage -->
<br /><div class="input-control text size3">
<input type="text" name="question_sondage" value="" placeholder="Question du sondage"/>
</div>
<!-- Fin de: Question du sondage -->
<!-- Réponses au sondage -->
<p>Choix du sondage</p>
<div class="input-control textarea">
<textarea name="reponses_sondage"><?php
//Réponses au sondage par défaut
echo "Choix 1\nChoix 2";
?></textarea>
</div>
<p>Veuillez effectuer un retour &agrave; la ligne &agrave; chaque nouvelle r&eacute;ponse</p>
<!-- Fin de: Réponses au sondage -->
<!-- Commentaire du sondage -->
<p>Commentaire du sondage (optionnel)</p>
<div class="input-control textarea">
<textarea name="commentaire_sondage"></textarea>
</div>
<!-- Fin de: Commentaire au sondage -->
<!-- Niveau de visibilité -->
<?php choisir_niveau_visibilite(); ?>
<!-- Fin de: Niveau de visibilité -->
<!-- Bouton de validation -->
<p><input type="submit" value="Cr&eacute;er le sondage" /></p>
<!-- Fin de : Bouton de validation -->
</form>
</div>
<!-- Fin de: Création d'un sondage -->
</div>
</div>
</font>

View File

@ -0,0 +1,158 @@
<?php
/**
* Text editing page
*
* @author Pierre HUBERT
*/
//Security
include(websiteRelativePath('securite.php'));
//On v<>rifie si il y a une demande d'<27>dit de post
if(!isset($_GET['id']))
{
//Redirection vers la page d'acceuil
header('location: index.php');
//On quitte la page
exit();
}
//Getting post ID
$id_texte = $_GET['id']*1;
?><!DOCTYPE html>
<html>
<head>
<title>Edition du post</title>
<?php include(pagesRelativePath('common/head.php')); ?>
</head>
<body class="metro">
<?php include(pagesRelativePath('common/pageTop.php')); ?>
<h1 class="titre">Edition d'un post</h1>
<?php
//On recherche le post
$sql = "SELECT * FROM texte WHERE ID = ? AND (ID_personne = ? || ID_amis = ?)";
//SQL -> ex<65>cution de la requ<71>te
$requete = $bdd->prepare($sql);
$requete->execute(array($id_texte, $_SESSION['ID'], $_SESSION['ID']));
//On v<>rifie si la demande est correcte
ob_start();
if(!$afficher_texte = $requete->fetch())
{
//Fin de l'interruption de l'envoi des donn<6E>es
ob_end_clean();
//On affiche un message d'erreur
?><table><tr><td><img src="img/erreur.png" title="Erreur"></td><td>Le message demand&eacute; ne peut pas &ecirc;tre &eacute;dit&eacute;. Causes les plus probables : vous ne disposez pas des autorisations n&eacute;cessaires ou le message n'existe plus. <a href="contact.php">Contactez-nous</a> pour plus d'informations.</td></tr></table><?php
//On arr<72>te le chargement de la page
exit();
}
ob_end_clean();
if(preg_match('/endof/', $afficher_texte['texte']))
{
?><script>alert("Les images qui ont <20>t<EFBFBD> post<73>es ne peuvent pas <20>tre modifi<66>es.");</script><?php
?><input type="button" onClick="javascript:history.back(1)" value="Retour <20> la page pr<70>c<EFBFBD>dente" /><?php
//On quitte le script courant
exit();
}
//On v<>rifie si la demande a d<>j<EFBFBD> <20>t<EFBFBD> post<73>e
if(isset($_POST['message']))
{
if($_POST['message'] != "")
{
if(preg_match('/endof/', $_POST['message']))
{
?><script>alert("Votre demande de modification n'a pas pu <20>tre re<72>ue car elle pr<70>sente un important probl<62>me de s<>curit<69>.");</script><?php
}
else
{
echo "<p>Application de la modification</p>";
//SQL -> requ<71>te de modification
$sql = "UPDATE texte SET texte = ? WHERE ( ID = ? AND (ID_personne = ? || ID_amis = ?))";
//SQL-> ex<65>cution de la requ<71>te
$update = $bdd->prepare($sql);
$update->execute(array($_POST['message'], $id_texte, $_SESSION['ID'], $_SESSION['ID']));
//Si il y a un sondage dans le texte
if(isset($_POST['question_sondage']))
{
$question_sondage = $_POST['question_sondage'];
//Si il y a une requ<71>te de modification de la question du sondage
if($question_sondage != "")
{
//Mise <20> jour de la question du sondage
update_sql("sondage", "question = ?", "ID_utilisateurs = ? AND ID_texte = ?", $bdd, array($question_sondage, $_SESSION['ID'], $id_texte));
}
}
//Messsage de succ<63>s
echo "<p>Application de la modification termin&eacute;e.</p>";
echo "<p><a href='index.php'>Retour &agrave; votre page d'acceuil</a></p>";
//On v<>rifie si une redirection automatique est possible
if(isset($_GET['iduser']))
{
echo "<p>Redirection automatique en cours...</p>";
?><meta http-equiv="refresh" content="0;URL=index.php?id=<?php echo $_GET['iduser'].(isset($_GET['page']) ? "&page=".$_GET['page'] : "" ); ?>"><?php
}
//Fermeture du script courant
exit();
}
}
}
//Inclusion de TinyMce
include(relativePath_assets('html/tinymce.html'));
//Affichage de l'<27>diton du message
echo "<form action='editpost.php?id=".$afficher_texte['ID'].(isset($_GET['iduser']) ? "&iduser=".$_GET['iduser'] : "" ).(isset($_GET['page']) ? "&page=".$_GET['page'] : "" )."' method='post'>";
echo "<table style='text-align: center; margin: auto;'>";
echo "<tr><td>";
echo "<textarea name='message' id='textarea'>".$afficher_texte['texte']."</textarea>";
//echo "<p>L'<27>dition ne peut temporairement pas aboutir. Veuillez nous excuser du d<>sagr<67>ment encouru.</p>"; //Bug ou d<>veloppement SELEUMENT, ce message peut pertuber l'utilisateur final.
echo "</td></tr>";
if($afficher_texte['type'] == "sondage")
{
//On r<>cup<75>re les informations sur le sondage
$infos_sondage = get_sondage_by_text_id($afficher_texte['ID'], $bdd);
if(!$infos_sondage)
echo "<p><b>Une erreur temporaire emp&ecirc;che de modifier le sondage rattach&eacute; au texte.</b></p>";
else
{
?><tr>
<td>
<label>Question du sondage : </label>
<div class="input-control text">
<input type="text" name="question_sondage" value="<?php echo $infos_sondage[0]['question']; ?>" />
</div>
</td>
</tr><?php
}
}
echo "<tr><td>";
echo "<input type='submit' value='Modifier' />";
echo "</td></tr>";
echo "</table>";
echo "</form>";
?>
<hr /><?php
//Pieds de page
include(pagesRelativePath('common/pageBottom.php'));
?>
</body>
</html>

View File

@ -0,0 +1,149 @@
<?php
/**
* User's home
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call! - homeUser.inc.php');
//En-tête autorisé par défaut
$allow_entete = true;
//Vérification de l'existence de la demande d'un autre profil
if(isset($_GET['id']))
{
$id = $_GET['id']*1; //Sécurité
}
else
{
//Sinon on prend la page de la personne
//$id = $_SESSION['ID'];
//Fil d'actualité
$id = "fil";
//Désactivation de l'en-tête
$allow_entete = false;
$page_fil = true;
if($afficher['vu_message_info_fil'] == 0)
{
?><script type="text/javascript">
$.Dialog({
overlay: true,
shadow: true,
draggable: true,
flat: true,
icon: '<span class="icon-newspaper"></span>',
title: 'Voici le fil d\'actualit&eacute;',
content: '<p>Avec le fil d\'actualit&eacute;, vous pouvez voir les derni&egrave;res publications auxquelles vous avez acc&egrave;s.</p> <br /><br /><br />' +
'<div style="text-align: right; margin-right: 5px;"><button class="button primary" type="button" onclick="$.Dialog.close(); ajax_rapide(\'action.php?actionid=35\');">C\'est parti !</button></div>',
});
</script><?php
}
}
//Correction de l'erreur de certains scripts appelés
$_GET['id'] = $id;
//Récupération des informations sur la personne
$afficher = cherchenomprenom($id, $bdd);
//Définition de la variable de stockage des informations sur les utilisateurs
$info_users = array();
$info_users[$id]['table_utilisateurs'] = $afficher;
$info_users[$id]['avatar_32_32'] = avatar($id, "./", 32, 32);
//Modification du titre de la page au nom de la personne
?><script type="text/javascript">
//Changement du titre de la page au nom de la personne
document.title = "<?php echo $afficher['prenom']." ".$afficher['nom']; ?> - Comunic";
</script>
<?php
?>
<div class='contenupage'>
<div id="header_contenu" contextmenu="header_page">
<?php
//En-tête si autorisé
if($allow_entete)
{
//Récupération du statut de l'abonnement à la personne
$header_page_ok = true;
include('inc/header_page.php');
?><script type="text/javascript">get_abonnement(<?php echo $id; ?>, 0);</script><?php
}
?></div>
<?php
//La suite ne s'affiche que si c'est un amis
if(isset($non_amis))
{
//On vérifie si la page est non publique
if ($afficher['public'] == 0)
{
//On bloque le reste du chargment de la page
echo '<div id="add_form_texte"></div><p>'.$afficher['prenom']." ".$afficher['nom']." refuse que vous voyez sa page sans etre son amis.</p> <p>Vous pouvez lui envoyer une demande pour devenir son ami ci-dessus.</p></table></div></body></html>";
echo '<hr />';
include(pagesRelativePath('common/pageBottom.php'));
die();
}
}
?>
<?php
//Inclusion du script pour l'ajout de posts
echo "<div id='add_form_texte'>";
if(!isset($_GET['post']) AND isset($_SESSION['ID']))
include('inc/pages/homeUser/addPost/addpost.inc.php');
echo "</div>";
?>
<table align='center' class='corpstextes' id="corpstexte">
<?php
//On vérifie si il s'agit d'une page supérieur à la page 1
if(isset($_GET['page']))
{
if($_GET['page'] > 0)
{
echo "<tr><td></td><td>";
if($_GET['page'] !== '1')
{
$pageprecedent = $_GET['page'] - 1;
echo "<a href='index.php?id=".$id."&page=".$pageprecedent."'><input class='retourpageprincipale' type='button' value=\"".$lang[53]."\" /></a>";
}
echo "<a href='index.php?id=".$id."'><input class='retourpageprincipale' type='button' value=\"".$lang[52]."\" /></a>";
$page = $_GET['page']*1;
echo "</td></tr>";
}
else
{
$page = 0;
}
}
else
{
$page = 0;
}
//Définition de la requête AJAX de recherche de textes
$ok_textes_check = "source:index.php";
$_GET['id'] = $id;
$_GET['page'] = $page;
$no_view_more = true;
include('viewTexts/viewTexts.inc.php');
if(!isset($_GET['post']))
echo '<tr class="metro"><td colspan="2"><input value="Afficher plus de textes" onclick="get_show_textes('.$id.', \'corpstexte\', '.($page+1).', 0); this.parentNode.parentNode.style.display = \'none\'" type="button"></td></tr>';
//Fermeture du tableau
?></table><?php
//Fermeture de la balise <div>
echo "</div>";
//Inclusion du pied de page
include(pagesRelativePath('common/pageBottom.php'));

View File

@ -0,0 +1,717 @@
<?php
isset($_SESSION) OR exit("Invalid call - viewTexts.inc.php");
//Vérification de la présence des variables requises
if(!isset($_GET['id']))
die("Missing arguments !");
// Si c'est un appel AJAX pour le fil d'actualité
if($_GET['id'] == "0")
{
$_GET['id'] = "fil";
$id = 0;
}
else
//Getting personn's ID
$id = $_GET['id']*1;
//Définition du numéro de page
$numero_page = (isset($_GET['page']) ? $_GET['page']*1 : 0);
//On vérifie si la personne est autorisée à visualiser la page
$niveau_visibilite_autorise = is_allowed_to_view_page($id, $bdd);
//On vérifie si la liste des smiley a bien été chargée
if(!isset($liste_smiley))
{
//Inclusion de la liste des smiley
include('liste_smile.php');
}
//On vérifie si la personne est autorisée à visualiser la page
if(!$niveau_visibilite_autorise)
{
//On vérifie si l'utilisateur est connecté
if(isset($_SESSION['ID']))
{
die('<p>'.corrige_caracteres_speciaux(return_nom_prenom_user($id, $bdd))." refuse que vous voyez sa page sans &ecirc;tre son amis.</p> <p>Vous pouvez lui envoyer une demande pour devenir son ami ci-dessus.</p>");
}
else
die("Vous n'&ecirc;tes pas autoris&eacute;s &agrave; voir le contenu de cette page.");
}
//Si il s'agit du fil, on restreint au niveau des amis
if($_GET['id'] == "fil")
{
$niveau_visibilite_autorise = 2; //Niveau arbitraire
}
//On vérifie si l'utilisateur appartient à un des groupes du propriétaire de la page
$liste_groupes = (isset($_SESSION['ID']) ? search_appartenance_groupes($id, $_SESSION['ID'], $bdd) : array());
//Détermination des informations de la personne
$afficher = cherchenomprenom($id, $bdd);
//Définition de la variable de stockage des informations sur les utilisateurs
$info_users = array();
$info_users[$id]['table_utilisateurs'] = $afficher;
$info_users[$id]['avatar_32_32'] = avatar($id, "./", 32, 32);
//Définition de l'id de la personne de recherche
$id_personne_recherche = $id;
//On vérifie si il s'agit du fil d'actualité
if($_GET['id'] == "fil")
{
//On vérifie si l'utilisateur est connecté
if(!isset($_SESSION['ID']))
die("Le fil d'actualit&eacute; n'est pas encore accessible aux personnes non connect&eacute;es.");
//Récupération de la liste des amis
$liste_amis = liste_amis($_SESSION['ID'], $bdd);
$complement_personnes = " OR ID_Personne = ".implode($liste_amis, " OR ID_Personne = ");
$id_personne_recherche = $_SESSION['ID']." ".$complement_personnes;
}
//On vérifie si il faut recharger tous les textes ultérieurs ou non ainsi que si il faut chercher un post précis
if(isset($_GET['post']))
{
//Contrôle de sécurité
$num_post = $_GET['post']*1;
if($num_post <= 0)
{
die('valeur incorrecte');
}
//Recherche du texte précis
$textes = affichertextes($id_personne_recherche, $bdd, false, false, $niveau_visibilite_autorise, false, $num_post, $liste_groupes);
//On compte le nombre de textes dont dispose l'utilisateur
$sql = "SELECT COUNT(*) AS nb_textes FROM texte WHERE ID_personne = ? AND niveau_visibilite <= ? AND ID >= ?";
//Exécution de la requête
$requete = $bdd->prepare($sql);
$requete->execute(array($id_personne_recherche, $niveau_visibilite_autorise, $num_post));
//On enregistre le résultat
if(!$enregistrer = $requete->fetch())
$fatal_error = true;
//Fermeture de la requête
$requete->closeCursor();
//On vérifie si il y a une erreur
if(isset($fatal_error))
die("Une erreur a survenue, merci de r&eacute;essayer ult&eacute;rieurement.");
//On divise la valeur par 10
$nb_pages = floor($enregistrer['nb_textes']/10);
if($enregistrer['nb_textes'] == $nb_pages*10)
$nb_pages--;
$numero_page = $nb_pages;
$_GET['page'] = $nb_pages;
echo "<tr><td><a class='a' onClick='open_page_ameliore(".$id.");'>Retour &agrave la page principale</a></td></tr>";
}
elseif(!isset($_GET['reload']))
{
//Recherche des textes demandés
$textes = affichertextes($id_personne_recherche, $bdd, $numero_page*10, 10, $niveau_visibilite_autorise, false, false, $liste_groupes);
}
else
{
//Recherche de tous les textes de la personne (jusqu'à la page actuelle)
$textes = affichertextes($id_personne_recherche, $bdd, 0, $numero_page*10 + 10, $niveau_visibilite_autorise, false, false, $liste_groupes);
}
if(count($textes) == 0)
{
if($numero_page != 0)
{
echo "<p>Il n'y a plus de texte &agrave; afficher.</p>";
}
elseif(isset($_SESSION['ID']))
{
if($id != $_SESSION['ID'] OR isset($_GET['reload']) OR isset($_GET['post']))
{
echo "<tr><td><img src='img/erreur.png' title='Avertissement' /></td><td><p>".$lang[51]."</p></td></tr></table>";
echo "</div>";
if($ok_textes_check != "source:index.php")
die();
}
else
{
?><tr><td><div class="no_texte">
<?php echo code_inc_img(path_img_asset('add_text.gif')); ?>
<span class="titre_no_texte">Bienvenue dans Comunic !</span><br />
<p>Vous n'avez pas encore ajout&eacute; de texte sur votre page. Vous pouvez, si vous souhaitez vous manifester d&egrave;s maintenant, en ajouter depuis le formulaire ci-dessus. Par quoi allez-vous commencer ? Un texte simple, une image, une vid&eacute;o de votre cru ou de Youtube ou encore un compteur &agrave; rebours ? Vous avez le choix ! N'oubliez pas, apr&egrave;s cela, de rechercher vos amis qui se sont d&eacute;j&agrave; inscrit sur le site ! Bonne route dans Comunic, le nouveau moyen de communication !</p>
</div></td></tr><?php
if($ok_textes_check != "source:index.php")
die();
}
}
else
{
if($ok_textes_check != "source:index.php")
die();
}
}
//On prépare l'affichage des résultats
$afficherfond = 1;
//Affichage des résultats
for($i = 0; isset($textes[$i]); $i++)
{
$afficherresultats = $textes[$i];
if($afficherresultats['ID_amis'] != 0)
{
//C'est l'ami qui a mis le post
$id_posteur = $afficherresultats['ID_amis'];
//On vérifie si on connait les informations sur cette personne
if(!isset($info_users[$id_posteur]['table_utilisateurs']))
{
$info_users[$id_posteur]['table_utilisateurs'] = cherchenomprenom($afficherresultats['ID_amis'], $bdd);
$info_users[$id_posteur]['avatar_32_32'] = avatar($id_posteur, "./", 32, 32);
}
//C'est un amis qui a posté le texte
$infoami = $info_users[$afficherresultats['ID_amis']]['table_utilisateurs'];
}
else
{
$id_posteur = $afficherresultats['ID_personne']; //C'est le possesseur de la page qui a posté le texte
//On vérifie si on connait les informations sur cette personne
if(!isset($info_users[$id_posteur]['table_utilisateurs']))
{
$info_users[$id_posteur]['table_utilisateurs'] = cherchenomprenom($id_posteur, $bdd);
$info_users[$id_posteur]['avatar_32_32'] = avatar($id_posteur, "./", 32, 32);
}
}
if($_GET['id'] == "fil")
{
//C'est un amis qui a posté le texte
$infoami = $info_users[$id_posteur]['table_utilisateurs'];
}
?>
<tr class="separateur_texte"><td>&nbsp;</td></tr>
<tr class='post <?php if($afficherfond == 1) {echo "texte_bg_grey"; } ?>'>
<td class="td_left">
<?php
//Recherche de l'avatar de la personne
echo $info_users[$id_posteur]['avatar_32_32'];
echo corrige_caracteres_speciaux((isset($infoami) ? "<span onClick='change_page_personne(".$infoami['ID'].");'>".$infoami['prenom']." ".$infoami['nom']."</span>" : $afficher['prenom']." ".$afficher['nom']));
//Uniquement si l'utilisateur est connecté
if (isset($_SESSION['ID']))
{
//On vérifie si l'utilisateur est autorisé à supprimer le texte
if($id == $_SESSION['ID'] || (isset($infoami['ID']) ? ($infoami['ID'] == $_SESSION['ID'] ? true : false) : false) )
{
//On vérifie d'abord l'existence d'une demande de suppression de texte
if(isset($_GET['suppidtxt']))
{
if($afficherresultats['ID'] == $_GET['suppidtxt'])
{
//On supprime le texte
deletetexte($afficherresultats['ID'], $afficherresultats['texte'], $bdd, $afficherresultats);
//On redirige vers la meme page pour éviter les collisions
echo "Suppression termin&eacutee, redirection en cours....<br />";
echo '<meta http-equiv="refresh" content="0;URL=index.php?id='.$id.'">';
die();
}
}
//La personne est autorisée à supprimer ou modifier le texte (la modification du texte doit être réservée uniquement à celui qui a posté le texte)
echo " <a onClick='confirmaction(\"action.php?actionid=29&id=".$id;
echo "&page=".$numero_page;
echo "&suppidtxt=".$afficherresultats['ID']."\", \"".$lang[49]."\");'>";
echo code_inc_img(path_img_asset('supp.png'), "Supprimer le texte", "16", "16");
echo "</a>";
//On affiche le lien d'édition de post uniquement si l'utilisateur est le posteur du texte
if($afficherresultats['ID_amis'] != 0 ? ($_SESSION['ID'] == $afficherresultats['ID_amis'] ? true : false) : true)
echo "<a href='editpost.php?id=".$afficherresultats['ID']."&iduser=".$id."&page=".$numero_page."'>";
echo code_inc_img(path_img_asset('edit.png'), "Editer le texte", "16", "16");
echo "</a>";
}
}
?>
</td>
<td>
<?php echo adapte_date($afficherresultats['date_envoi']); ?>
<?php
$droit_modification_niveau_visibilite = false;
if(isset($_SESSION['ID'])) //L'utilisateur doit être connecté
{
if($id == $_SESSION['ID'] || (isset($infoami['ID']) ? ($infoami['ID'] == $_SESSION['ID'] ? true : false) : false)) //Réservé au propriétaire du post.
$droit_modification_niveau_visibilite = true;
}
affiche_menu_change_niveau_visibilite($afficherresultats['niveau_visibilite'], $afficherresultats['ID'], $droit_modification_niveau_visibilite);
?>
</td>
</tr>
<tr class='post <?php if($afficherfond == 1) {echo "texte_bg_grey"; } ?>'>
<td colspan="2"><?php
//On vérifie si il y a une vidéo intégrée
if($afficherresultats['type'] == "video")
{
//Récupération des informations de la vidéo
$info_video = get_info_video($afficherresultats['idvideo'], $bdd);
//Préparation de l'affichage des vidéos
echo "<div class='video_contener'>";
//Affichage de la vidéo
affiche_video(array(array($info_video['URL'], $info_video['file_type'])), "metadata", "640", "264", "none", "controls", true, sha1($info_video['URL'].$info_video['file_type'].time().$_SERVER['REQUEST_URI']));
//Fermeture de l'affichage de la vidéo
echo "</div>";
}
//On adapte le texte au cas où il y aurait une image intégrée
if($afficherresultats['type'] == "image" || $afficherresultats['type'] == "web_image")
{
//Affichage de l'image
echo '<a class="fancybox" rel="group" href="';
echo webUserDataFolder($afficherresultats['path']);
echo '" title="'.str_replace('"', "'", affiche_smile(corrige_caracteres_speciaux(bloque_javascript_css(afficher_lien($afficherresultats['texte']))), $urlsite, $liste_smiley));
echo ' <a href=\'index.php?id='.$id.'&post='.$afficherresultats['ID'].'\'> Voir plus </a>"><img class="img_from_upload" alt="Image envoy&eacute;e par l\'utilisateur" src="';
echo webUserDataFolder($afficherresultats['path']);
echo '" alt="" /></a> <br />';
}
//On adapte l'affichage au cas où il y aurait un compte à rebours
if($afficherresultats['type'] == "count_down")
{
//Affichage du compte à rebours
affiche_compte_rebours($afficherresultats);
}
//On adapte l'affichage au cas où il y aurait un lien vers une page web
if($afficherresultats['type'] == "webpage_link")
{
//Affichage du compte à rebours
affiche_lien_webpage($afficherresultats);
}
//On adapte l'affichage au cas où il y aurait un pdf
if($afficherresultats['type'] == "pdf")
{
//Affichage du compte à rebours
affiche_lien_pdf($afficherresultats);
}
//On adapte le texte au cas où il y aurait une vidéos YouTube
if($afficherresultats['type'] == "youtube")
{
//Affichage de l'image
echo code_video_youtube($afficherresultats['path']);
}
//On adapte le texte si un sondage est présent dans le post
if($afficherresultats['type'] == "sondage")
{
//Affichage du sondage
//Récupération des informations sur le sondage
$infos_sondage = get_sondage_by_text_id($afficherresultats['ID'], $bdd);
if(!$infos_sondage)
continue;
//Ouverture du sondage
?><div class="metro sondage"><?php
//On simplifie la variable $infos_sondage pour la suite du script
$infos_sondage = $infos_sondage[0];
//Affichage de la question du sondage
echo "<div class='question_sondage'>".corrige_caracteres_speciaux($infos_sondage['question'])."</div>";
//Récupération des choix du sondage
$choix_sondage = select_sql("sondage_choix", "ID_sondage = ?", $bdd, array($infos_sondage['ID']));
//On vérifie si la personne est autorisée à prendre part au sondage
if(isset($_SESSION['ID']))
$allow_participation = 1;
else
$allow_participation = 0;
//On propose le vote si celui-ci est possible
if($allow_participation == 1)
{
$reponse_user_sondage = vote_personne_sondage($_SESSION['ID'], $infos_sondage['ID'], $bdd);
if(!$reponse_user_sondage)
{
//Affichage du formulaire de vote
?><div class="reponse_sondage" id="reponse_sondage_<?php echo $infos_sondage['ID']; ?>_contener">
<?php
//Parcours des options de vote
echo '<div class="input-control select">';
echo "<select id='reponse_sondage_".$infos_sondage['ID']."' >";
foreach($choix_sondage as $afficher_choix)
{
?><option value="<?php echo $afficher_choix['ID']; ?>"><?php echo $afficher_choix['Choix'];
}
echo "</select>";
echo "</div>";
?>
<!-- Bouton de vote -->
<input type="button" class="primary" value="Voter" onClick="voteSondage(<?php echo $infos_sondage['ID']; ?>, <?php echo $infos_sondage['ID_utilisateurs']; ?>);" />
<!-- Fin de: Bouton de vote -->
</div><?php
}
else
{
?>Votre r&eacute;ponse au sondage : <?php
foreach($choix_sondage as $afficher_choix)
{
if($afficher_choix['ID'] == $reponse_user_sondage)
{
echo $afficher_choix['Choix'];
}
}
?> <span class="a" onClick="if(confirm('Voulez-vous annuler votre vote ?')) { ajax_rapide('<?php echo $urlsite; ?>action.php?actionid=37&type=cancel_vote&id_choix=<?php echo $reponse_user_sondage; ?>&id_sondage=<?php echo $infos_sondage['ID']; ?>'); this.innerHTML = 'Annul&eacute;'; this.style.color='black'; }">Annuler</span><?php
}
}
//On affiche les réponses au sondage
$reponse_sondages = select_sql("sondage_reponse", "ID_sondage = ?", $bdd, array($infos_sondage['ID']));
//On vérifie si il y a des réponses au sonde
if(count($reponse_sondages) == 0)
{
echo "<p>Personne n'a r&eacute;pondu pour le moment au sondage.</p>";
}
else
{
//Retour à la ligne
echo "<br />";
//Préparation à la comptabilité
$liste_reponses = array();
//Traitement des choix proposés
foreach($choix_sondage as $traiter_choix)
{
$liste_reponses[$traiter_choix['ID']] = array('hit' => 0, 'nom' => $traiter_choix['Choix']);
}
//Traitement des réponses
foreach($reponse_sondages as $traiter_reponse)
{
//On vérifie si la réponse proposée existe
if(isset($liste_reponses[$traiter_reponse['ID_sondage_choix']]))
//On incrémente le nombre de réponses
$liste_reponses[$traiter_reponse['ID_sondage_choix']]['hit']++;
}
//Définition des ID d'affichage
$id_tableau_valeurs = "sondage_tableau_resultat_".$infos_sondage['ID']."_".time();
$id_canvas_camembert = "sondage_tableau_resultat_".$infos_sondage['ID']."_".time()."_canvas";
echo "<div class='main_resultat_sondage_contener'>"; // class="grid" enlevé
//echo "<div class='row'>";
//echo "<div class='span2'>";
//Tableau de valeurs
echo "<table id='".$id_tableau_valeurs."'>";
echo "<tr><th>Choix</th><th>Total</th></tr>";
//Traitement des résultat
foreach($liste_reponses as $afficher_reponse)
{
echo "<tr><td>".$afficher_reponse['nom']."</td><td>".$afficher_reponse['hit']."</td></tr>";
}
echo "</table>";
//echo "</div><div class='span4'>";
//Affichage du tableau des résultats
//Canvas de destination du camembert
echo '<canvas id="'.$id_canvas_camembert.'" width="300" height="300"></canvas>';
//echo "</div>";
//echo "</div>";
echo "</div>";
//On indique qu'il faut afficher le sondage au chargement de la page
echo "<sondage_result>".$id_tableau_valeurs."|".$id_canvas_camembert."</sondage_result>";
echo "<script>draw_camembert('".$id_tableau_valeurs."', '".$id_canvas_camembert."');</script>";
}
?></div><?php
}
//Showing text
$texte = $afficherresultats['texte'];
echo affiche_smile(corrige_caracteres_speciaux(bloque_javascript_css(afficher_lien($texte))), $urlsite, $liste_smiley)."<!-- '\" -->";
//Recherche des j'aimes
//On vérifie déja si il faut modifier un j'aime - uniquement si l'utilisateur est connecté
if(isset($_SESSION['ID']))
{
if((isset($_GET['like'])) && (isset($_GET['aime'])) && (isset($_GET['typeaime_commentaire'])))
{
if($_GET['like'] == $afficherresultats['ID'])
{
aimeaimeplus($_GET['aime'], $_GET['like'], $_SESSION['ID'], $bdd);
}
}
}
//Ouverture du conteneur des j'aime
echo "<span class='aime_contener' id='aime_texte_".$afficherresultats['ID']."'>";
//Requete des j'aimes
$retour = requeteaime($afficherresultats['ID'], $bdd);
$vousaimez = $retour['vousaimez'];
$personnesaiment = $retour['personnesaiment'];
if(isset($_SESSION['ID']))
{
if($vousaimez == 0)
{
echo "<span class='aime' ><a onClick='like_text_page(".$afficherresultats['ID'].", \"texte\", 0);' >";
echo code_inc_img(path_img_asset('aime.png'));
echo " ".$lang[33]."</a> </span> ";
}
else
{
echo "<span class='aime' ><a onClick='like_text_page(".$afficherresultats['ID'].", \"texte\", 1);' >";
echo code_inc_img(path_img_asset('aimeplus.png'));
echo " ".$lang[34]."</a> </span> ";
}
}
if ($personnesaiment == 1)
{
echo " Une personne aime &ccedil;a.";
}
elseif ($personnesaiment != 0)
{
echo " ".$personnesaiment." ".$lang[61];
}
//Fermeture du conteneur des j'aime
echo "</span>";
?></td>
</tr>
<?php
$ok_commentaire = true;
if(isset($infoami)) { if($infoami['bloquecommentaire'] == 1) $ok_commentaire = false; }
if($afficher['bloquecommentaire'] == 0 AND $ok_commentaire == true)
{
?>
<tr class='commentaires <?php if($afficherfond == 1) {echo "texte_bg_grey"; $afficherfond = 1;} else $afficherfond=1; ?>'>
<!--<td class="td_left"><?php echo $lang[35]; ?></td>-->
<td colspan="2">
<table id="tablecommentaire<?php echo $afficherresultats['ID']; ?>" class="tablecommentaire">
<?php
//Vérification de l'existence du post d'un commentaire
if ((isset($_POST['commentaire'])) && (isset($_POST['idtexte'])))
{
if($_POST['idtexte'] == $afficherresultats['ID'])
{
//On vérifie si le commentaire n'est pas vide
if($_POST['commentaire'] != "" || isset($_FILES['image']))
{
//Insertion du commentaire
ajoutcommentaire($_SESSION['ID'], $afficherresultats['ID'], corrige_accent_javascript($_POST['commentaire']), $bdd);
//Texte de la notification
if($afficher['ID'] == $_SESSION['ID'])
$texte_notification = "a ajout&eacute; un commentaire sur sa page.";
else
$texte_notification = "a ajout&eacute; un commentaire sur la page de ".$afficher['prenom']." ".$afficher['nom'];
//And the notification
if(!visibilite_privee($afficherresultats["niveau_visibilite"]))
{
sendnotification($_SESSION['ID'], $texte_notification, $bdd, "page:".$afficher['ID']."post:".$afficherresultats['ID'], $afficher['ID'], "commentaire");
}
else
{
//Envoi de la notification aux personnes autorisées uniquemement
sendnotification($_SESSION['ID'], $texte_notification, $bdd, "page:".$afficher['ID']."post:".$afficherresultats['ID'], $afficher['ID'], "commentaire", list_personnes_groupes($afficherresultats["niveau_visibilite"], $bdd));
}
}
else
{
//On affiche un message d'erreur
?><script type='text/javascript'>alert("L'ajout de commentaires vides est interdit!");</script><?php
}
//On ne quitte pas le script
echo("<!-- Add comment -->");
}
}
//Affichage des commentaires
$commentaires = affichecommentaire($afficherresultats['ID'], $bdd);
//Affichage des commentaires
foreach($commentaires as $affichercommentaires)
{
//Affichage du commentaire
?>
<tr>
<td class="commentaire"><?php
//Recherche de l'avatar et du nom de la personne (si nécessaire
$id_posteur_commentaire = $affichercommentaires['ID_personne'];
if(!isset($info_users[$id_posteur_commentaire]['table_utilisateurs']))
{
$info_users[$id_posteur_commentaire]['table_utilisateurs'] = cherchenomprenom($id_posteur_commentaire, $bdd);
$info_users[$id_posteur_commentaire]['avatar_32_32'] = avatar($id_posteur_commentaire, "./", 32, 32);
}
echo $info_users[$id_posteur_commentaire]['avatar_32_32'];
$infopersonne = $info_users[$id_posteur_commentaire]['table_utilisateurs'];
echo corrige_caracteres_speciaux($infopersonne['prenom']." ".$infopersonne['nom']);
?>
<?php
//Affichage de l'image du commentaire(si il y en a une)
if($affichercommentaires['image_commentaire'] != "")
{
// Ancienne version
// echo "<img src='data:image/png;base64,".$affichercommentaires['image_commentaire']."' />";
//Adresse de l'image
$adresse_image = $urlsite."imgcommentaire.php/".base64_encode($affichercommentaires['ID'])."/".sha1($affichercommentaires['commentaire']);
echo "<a style='cursor: pointer' onClick='$.fancybox.open({href :\"".$adresse_image."\", type : \"image\"});'><img src='".$adresse_image."' height='100' /></a> ";
}
//Affichage du commentaire
if($ok_textes_check != "source:index.php")
echo afficher_lien(corrige_caracteres_speciaux(decorrige_accent_javascript(affiche_smile(bloquebalise($affichercommentaires['commentaire'], "commentaire"), $urlsite, $liste_smiley))));
else
echo afficher_lien(corrige_caracteres_speciaux(corrige_accent_javascript(affiche_smile(bloquebalise($affichercommentaires['commentaire'], "commentaire"), $urlsite, $liste_smiley))));
//Bouton du j'aime pour commentaire
bouton_aime_commentaire($affichercommentaires['ID'], $afficherresultats['ID'], $bdd);
echo "<span>";
//Uniquement si l'utilisateur est connecté
if(isset($_SESSION['ID']))
{
//Bouton de suppression de commentaire, si c'est autorisé...
if(($_SESSION['ID'] == $id) || ($affichercommentaires['ID_personne'] == $_SESSION['ID']))
{
//On vérifie d'abord l'existence d'une demande de suppression de commentaire
if(isset($_GET['suppidcom']))
{
if($affichercommentaires['ID'] == $_GET['suppidcom'])
{
//On supprime le commentaire
echo suppcom($affichercommentaires['ID'], $bdd);
die();
}
}
//La personne est autorisée à supprimer le commentaire
echo "<a onClick='delete_comment(\"".$affichercommentaires['ID']."\", \"".$afficherresultats['ID']."\", \"".$id."\", \"".(isset($_GET['page']) ? $_GET['page'] : 0)."\")";
echo "'>";
echo code_inc_img(path_img_asset('supp.png'), "Supprimer le commentaire");
echo "</a>";
//On vérifie si la personne est bien celle qui est l'auteur du commentaire pour pouvoir le modifier
if($_SESSION['ID'] == $affichercommentaires['ID_personne'])
{
echo "<a onClick='editcommentaire(\"".$affichercommentaires['ID']."\", \"".$afficherresultats['ID']."\", \"".$id."\", \"".(isset($_GET['page']) ? $_GET['page'] : 0)."\");'>";
echo code_inc_img(path_img_asset('edit.png'), "Modifier le commentaire", "16", "16");
echo "</a>";
}
}
}
?>
<?php echo adapte_date($affichercommentaires['date_envoi']); ?></span>
</td>
</tr>
<?php
}
//Formulaire d'envoi de nouveau commentaire - uniquement si l'utilisateur est connecté
if(isset($_SESSION['ID']))
{
//On vérifie que l'avatar de l'utilisateur connecté est disponible
if(!isset($info_users[$_SESSION['ID']]['avatar_32_32']) OR !isset($info_users[$_SESSION['ID']]['table_utilisateurs']))
{
$info_users[$_SESSION['ID']]['avatar_32_32'] = avatar($_SESSION['ID'], "./", 32, 32);
$info_users[$_SESSION['ID']]['table_utilisateurs'] = cherchenomprenom($_SESSION['ID'], $bdd);
}
/**
* Add a comment
*/
?>
<tr class="add_comment">
<td colspan="2">
<form id="addcommentaire_<?php echo $afficherresultats['ID']; ?>" enctype="multipart/form-data" method="post">
<!-- Avatar -->
<?php echo $info_users[$_SESSION['ID']]['avatar_32_32']; ?>
<!-- Text comment -->
<input type='text' placeholder="Ajout d'un commentaire..." name='commentaire' id="addcommentaire<?php echo $afficherresultats['ID']; ?>" /><?php echo source_ajout_smiley($afficherresultats['ID']); ?>
<!-- ID of text -->
<input type='hidden' name='idtexte' value='<?php echo $afficherresultats['ID']; ?>' />
<!-- Optionnal: image -->
<label class="input_commentaire_image">
<?php echo code_inc_img(path_img_asset('small/image.png'), "Optionnel: ajout d'une image"); ?>
<input type="file" id="image_<?php echo $afficherresultats['ID']; ?>" name="image" />
</label>
<!-- Submit comment -->
<input onClick="submitCommentaire('action.php?actionid=29&id=<?php echo $id; if(isset($_GET['page'])) echo "&page=".$_GET['page']; ?>', 'addcommentaire<?php echo $afficherresultats['ID']; ?>', 'tablecommentaire<?php echo $afficherresultats['ID']; ?>', <?php echo $afficherresultats['ID']; ?>, <?php if(isset($_GET['page'])) echo $_GET['page']; else echo 0; ?>, <?php echo $id; ?> );" type='button' value='<?php echo $lang[32]; ?>' />
</form>
</td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
<?php
}
//On supprime l'ID du posteur pour le prochain affichage
unset($id_posteur);
//On supprime l'ID de l'ami si il existe pour le prochain post
if(isset($infoami))
unset($infoami);
}
//Création de l'ID du bouton "Afficher plus"
//$id_bouton_afficher_plus = "view_more_".time();
if(!isset($no_view_more))
{
?><tr id="view_more"><?php echo $id; ?>|<?php echo $numero_page+1; ?><tr><?php
}
//Fin de fichier
//die();

View File

@ -0,0 +1,316 @@
<?php
/**
* Comunic improvement forum
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit("Invalid call - ".$_SERVER['PHP_SELF']);
?><!DOCTYPE html>
<html>
<head>
<title>Forum - Comunic</title>
<style>
.retour {
text-align: center;
}
.infouser {
width: 25%;
}
.post {
width: 75%;
}
.liresujet {
width: 950px;
max-width: 950px;
}
.infoleft {
font-size: 75%
}
</style>
<?php include(pagesRelativePath('common/head.php')); ?>
</head>
<body>
<?php include(pagesRelativePath('common/pageTop.php')); ?>
<?php
if(!isset($_GET['action']))
{
if(isset($_SESSION['ID']))
{
?>
<table style="margin: auto;">
<tr>
<td>
<?php echo code_inc_img(path_img_asset('page_add.png')); ?>
</td>
<td>
<a href='forum.php?action=nouvsujet'>
Nouveau sujet
</a>
</td>
</tr>
</table>
<?php
}
else
{
?>
<p><i>Vous devez &ecirc;tre connect&eacute; pour pouvoir poster un nouveau sujet</i></p>
<?php
}
//Affichage de tous les sujets
$sql = 'SELECT * FROM forum_sujet ORDER BY ID DESC';
//Ex<45>cution de la requete
$requete = $bdd->query($sql);
//Affichage des r<>sultat
echo '<table align="center" border="1" cellspacing="0" cellpadding="4">';
echo '<tr><td>Titre du sujet</td><td>Identifiant de la personne</td><td>Date d\'envoi</td></tr>';
while($afficher = $requete->fetch())
{
echo '<tr><td><a href="forum.php?action=affichersujet&id='.$afficher['ID'].'">'.$afficher['titre'].'</a></td><td>';
$info = cherchenomprenom($afficher['ID_personne'], $bdd);
echo $info['prenom']." ".$info['nom'];
echo '</td><td>'.$afficher['date_envoi'].'</td></tr>';
}
echo '</table>';
}
else
{
?><p class='retour'><a href='forum.php'>Retour &agrave; l'acceuil du forum</a></p><?php
if($_GET['action'] == 'nouvsujet')
{
if(isset($_SESSION['ID']))
{
if(isset($_POST['titre']) AND isset($_POST['sujet']))
{
if($_POST['titre'] != '' AND $_POST['sujet'] != '')
{
//On enregistre le sujet dans la base de donn<6E>es
$sql = 'INSERT INTO forum_sujet (titre, ID_personne, date_envoi, sujet) VALUES (?, ?, NOW(), ?) ';
//Ex<45>cution de la requete
$insertion = $bdd->prepare($sql);
$insertion->execute(array( $_POST['titre'], $_SESSION['ID'], $_POST['sujet']));
//On affiche un message de succ<63>s et on bloque l'affichage du reste de la page
?><p>Le message a bien &eacute;t&eacute; post&eacute;. <a href='forum.php'> Retour &agrave; l'acceuil du forum</a></p><?php
exit();
}
else
{
echo '<p style="color: red;">Certains champs n\'ont pas <20>t<EFBFBD> remplis !</p>';
}
}
include(relativePath_assets('html/tinymce.html'));
?>
Nouveau sujet (faites attention aux fautes d'orthographe) :
<form action='forum.php?action=nouvsujet' method='post'>
<table>
<tr>
<td>
Titre du sujet : <input type='text' name='titre' <?php if(isset($_POST['titre'])) { echo 'value="'.$_POST['titre'].'"' ; } ?> />
</td>
</tr>
<tr>
<td>
<textarea name='sujet' id='textarea'><?php if(isset($_POST['sujet'])) { echo $_POST['sujet']; } ?></textarea>
</td>
</tr>
<tr>
<td>
<input type='submit' value='Poster le sujet' />
</td>
</tr>
</table>
</form>
<?php
}
else
{
?><p>Erreur : vous devez &ecirc;tre connect&eacute; pour poster un nouveau sujet. <a href='connexion.php'>Connexion</a></p><?php
}
}
elseif($_GET['action'] == 'affichersujet')
{
if(isset($_GET['id']))
{
if($_GET['id'] != "")
{
if(isset($_SESSION['ID']))
{
//On v<>rifie si il ne faut pas poster une r<>ponse
if(isset($_POST['reponse']))
{
if($_POST['reponse'] != '')
{
//On enregistre la r<>ponse
$sql = 'INSERT INTO forum_reponse (ID_personne, ID_sujet, date_envoi, reponse) VALUES (?, ?, NOW(), ?) ';
//Ex<45>cution de la requete
$insertion = $bdd->prepare($sql);
$insertion->execute(array($_SESSION['ID'], $_GET['id'], $_POST['reponse']));
//On affiche une message de succ<63>s
echo '<p>La r&eacute;ponse a &eacute;t&eacute; post&eacute;e avec succ&egrave;s.</p>';
}
}
}
//On recherche le sujet pour l'afficher
$info_sujet = info_sujet($_GET['id'], $bdd);
//On affiche le sujet
//On recherche les informations de la personne
$info_personne = cherchenomprenom($info_sujet['ID_personne'], $bdd);
//On v<>rifie si la personne est autoris<69>e <20> supprimer la r<>ponse
if(isset($_SESSION['ID']))
{
if($_SESSION['ID'] == $info_personne['ID'])
{
//On v<>rifie si une demande a d<>j<EFBFBD> <20>t<EFBFBD> post<73>e
if(isset($_GET['suppsujet']))
{
//On v<>rifie si c'est le bon commentaire et la bonne personne, ce serai dommage...
if($_GET['suppsujet'] == $info_sujet['ID'])
{
//On supprime alors le sujet
$sql = 'DELETE FROM forum_sujet WHERE ID = '.$_GET['id'];
//Execution de la requete
$supp = $bdd->query($sql);
//On supprime les commentaires associ<63>s
$sql = 'DELETE from forum_reponse WHERE ID_sujet = '.$_GET['id'];
//Execution de la requete
$supp = $bdd->query($sql);
//Rafra<72>chissement de la page
echo 'Suppression termin&eacute;e, redirection en cours...';
echo '<meta http-equiv="refresh" content="0;URL=forum.php">';
exit();
}
}
//On affiche un message de suprression
?><a href='forum.php?id=<?php echo $_GET['id']; ?>&action=affichersujet&suppsujet=<?php echo $_GET['id']; ?>' title='Supprimer le sujet'>Supprimer le sujet</a> <br /><?php
}
}
?>
<table align="center" border="1" cellspacing="0" cellpadding="4" class='liresujet'>
<tr>
<td class='infouser'>
Par <b><?php echo $info_personne['prenom']." ".$info_personne['nom']; ?></b><br />
<span class='infoleft'><i>Date d'inscription :</i> <?php echo $info_personne['date_creation']; ?></span><br />
<span class='infoleft'><i>Date d'envoi :</i> <?php echo $info_sujet['date_envoi']; ?></span><br />
</td>
<td class='post'><?php echo $info_sujet['sujet']; ?></td>
</tr>
<?php
//On r<>cup<75>re les r<>ponse qui ont <20>t<EFBFBD> post<73>es
$info_reponses = info_reponses($info_sujet['ID'], $bdd);
//On affiche les r<>ponses
foreach($info_reponses as $afficher)
{
$info_personne = cherchenomprenom($afficher['ID_personne'], $bdd);
?>
<tr>
<td class='infouser'>
<?php
//On v<>rifie si la personne est autoris<69>e <20> supprimer la r<>ponse
if(isset($_SESSION['ID']))
{
if($_SESSION['ID'] == $info_personne['ID'])
{
//On v<>rifie si une demande a d<>j<EFBFBD> <20>t<EFBFBD> post<73>e
if(isset($_GET['suppcom']))
{
//On v<>rifie si c'est le bon commentaire et la bonne personne, ce serai dommage...
if($_GET['suppcom'] == $afficher['ID'])
{
//On supprime alors le commentaire
$sql = 'DELETE FROM forum_reponse WHERE ID = '.$afficher['ID'];
//Execution de la requete
$supp = $bdd->query($sql);
//Rafra<72>chissement de la page
echo 'Suppression termin&eacute;e, redirection en cours...';
echo '<meta http-equiv="refresh" content="0;URL=forum.php?action=affichersujet&id='.$_GET['id'].'">';
exit();
}
}
//On affiche un message de suprression
?><a href='forum.php?id=<?php echo $_GET['id']; ?>&action=affichersujet&suppcom=<?php echo $afficher['ID']; ?>' title='Supprimer la r&eacute;ponse'><?php echo code_inc_img(path_img_asset('supp.png')); ?></a> <br /><?php
}
}
?>
Par <b><?php echo $info_personne['prenom']." ".$info_personne['nom']; ?></b><br />
<span class='infoleft'><i>Date d'inscription :</i> <?php echo $info_personne['date_creation']; ?></span><br />
<span class='infoleft'><i>Date d'envoi :</i> <?php echo $afficher['date_envoi']; ?></span><br />
</td>
<td class='post'><?php echo $afficher['reponse']; ?></td>
</tr>
<?php
}
//On v<>rifie si la personne peut poster une reponse
if(isset($_SESSION['ID']))
{
?>
<tr>
<td class='infouser'>
Poster une r&eacute;ponse
</td>
<td>
<form action='forum.php?action=affichersujet&id=<?php echo $info_sujet['ID']; ?>' method='post'>
<?php include(relativePath_assets('html/tinymce.html')); ?>
<textarea name='reponse' id='textarea'></textarea><br />
<span class="text-align: center"><input type='submit' value='Envoyer la r&eacute;ponse' /></span>
</form>
</td>
</tr>
<?php
}
echo '</table>';
}
else
{
header('location: forum.php');
}
}
else
{
header('location: forum.php');
}
}
}
?>
<p><b>Astuce:</b> Pour retrouver facilement un sujet ou une r&eacute;ponse qui vous int&eacute;resse vous pouvez utiliser les touches Ctrl + F de votre clavier pour effectuer une recherche dans la page.</p>
<hr />
<?php include(pagesRelativePath('common/pageBottom.php')); ?>
</body>
</html>

View File

@ -0,0 +1,38 @@
<?php
/**
* List all opened users
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit("Invalid call - ".$_SERVER['PHP_SELF']);
?><!DOCTYPE html>
<html>
<head>
<?php include(pagesRelativePath('common/head.php')); ?>
<title><?php echo $lang[11]; ?> - Comunic</title>
</head>
<body>
<?php include(pagesRelativePath('common/pageTop.php')); ?>
<h1 class='titre'><?php echo $lang[11]; ?></h1>
<?php
//On r<>cup<75>re la liste des pages publiques
$liste = get_page_publique($bdd);
//On affiche le r<>sultat
?><p>Voici l'ensemble de la liste des pages ouvertes :</p>
<table><?php
foreach($liste as $afficher)
{
//On recherche les informations de la personne
$infopersonne = cherchenomprenom($afficher['ID'], $bdd);
//On affiche le r<>sultat
echo "<tr><td>".avatar($afficher['ID'], './')."</td><td><a href='./?id=".$afficher['ID']."'>".$afficher['prenom']." ".$afficher['nom']."</a></td></tr>";
}
?></table><?php
?><hr />
<?php include(pagesRelativePath('common/pageBottom.php')); ?>
</body>
</html>

View File

@ -0,0 +1,115 @@
<?php
/**
* Search somebody
*
* @author Pierre HUBERT
*/
isset($_SESSION) OR exit('Invalid call - '.$_SERVER['PHP_SELF']);
//On d<>termine un ID de session pour l'utilisateur
$id_session = (isset($_SESSION['ID']) ? $_SESSION['ID'] : 0);
//On corrige la requ<71>te si n<>cessaire
if(isset($_GET['q']) AND !isset($_POST['nom']))
$_POST['nom'] = $_GET['q'];
?>
<!DOCTYPE html>
<html>
<head>
<?php include(pagesRelativePath('common/head.php')); ?>
<title><?php echo $lang[39]; ?></title>
</head>
<body>
<?php include(pagesRelativePath('common/pageTop.php')); ?>
<h1 class='titre'><?php echo $lang[40]; ?></h1>
<table align='center'>
<tr>
<td>
<form action='recherche.php' name="Recherche d'utilisateurs" method='post'>
<input type='text' name='nom' size="53" autocomplete="off" id="searchuser" value="<?php echo(isset($_POST['nom']) ? $_POST['nom']: ""); ?>" placeholder="<?php echo $lang[40]; ?>" style="color:black;" />
<input type='submit' value='<?php echo $lang[39]; ?>' />
</form>
</td>
</tr>
<tr>
<td>
<?php
if(isset($_POST['nom']))
{
//Mettons "" <20> la place de "%"
$nom = str_replace("%", "", $_POST['nom']);
//V<>rifions si la personne ne veut pas tout afficher
if(($nom != '') && ($nom != '%')&& ($nom != ' '))
{
//Continuons de prot<6F>ger les personnes et la table
$nom = str_replace("'", '"', $nom);
//Rendons flexible la requete
$nom = str_replace(' ', '%', $nom);
//Nous pouvons maintenant faire la recherche
//Requ<71>te SQL
//$sql = "SELECT * FROM utilisateurs WHERE (nom LIKE '%".$nom."%') || (prenom LIKE '%".$nom."%') || (CONCAT(prenom, '%', nom) LIKE '%".$nom."%' ) || (CONCAT(prenom, ' ', nom) LIKE '%".$nom."%' ) || (mail LIKE '%".$nom."%') "; //Avec E-mail
$sql = "SELECT * FROM utilisateurs WHERE (nom LIKE '%".$nom."%') || (prenom LIKE '%".$nom."%') || (CONCAT(prenom, '%', nom) LIKE '%".$nom."%' ) || (CONCAT(prenom, ' ', nom) LIKE '%".$nom."%' ) "; //Sans E-mail
//Ex<45>cution de la requete SQL
$recherche = $bdd->query($sql);
//Affichage des r<>sultats
echo "<table>";
while($afficherrecherche = $recherche->fetch())
{
//On v<>rifie qu'il ne s'agit pas de l'utilisateur effectuant la recherche
if($afficherrecherche['ID'] != $id_session AND ($id_session == 0 ? ( ($afficherrecherche['pageouverte'] == 1 ? true : false) ) : true))
{
?>
<tr>
<td>
<table>
<tr>
<td><?php
echo avatar($afficherrecherche['ID'], "./", 64, 64);
?></td>
<td><a href='index.php?id=<?php echo $afficherrecherche['ID']; ?>' title='Voire sa page'><?php echo $afficherrecherche['prenom']." ".$afficherrecherche['nom']; ?></a></td>
<td>
<?php
//On v<>rifie si la page est v<>rifi<66>e
if($afficherrecherche['page_verifiee'] == 1)
{
message_checked_page();
}
?>
</td>
</tr>
</table>
</td>
</tr>
<?php
}
}
echo "</table>";
}
}
?>
</td>
</tr>
</table>
<p style="text-align: center;"><?php
//Si l'utilisateur n'est pas connect<63>, on lui propose de se connecter
if($id_session == 0 AND isset($_POST['nom']))
{
//Message de proposition avec redirection automatique
echo "<a href='connecter.php?redirect=".urlencode("recherche.php?q=".$_POST['nom'])."'>Connectez-vous et acc&eacute;dez &agrave; plus de r&eacute;sultats</a>";
}
?></p>
<?php if(isset($_POST['nom'])) { ?><p style="text-align:center;"><a href="http://www.bing.com/search?q=<?php echo urlencode($_POST['nom']); ?>" target="_blank">Elargir la recherche au web avec Bing</a></p><?php } ?>
<hr />
<?php
//Inclusion du pied de page
include(pagesRelativePath('common/pageBottom.php'));
?>
</body>
</html>

View File

@ -0,0 +1,44 @@
<?php
/**
* Change appearance settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
if(isset($_POST['color_menu']))
{
//On vérifie si l'utilisateur veut l'ancien menu ou un menu moderne
if(($_POST['color_menu'] == "blue") || ($_POST['color_menu'] == "dark") || ($_POST['color_menu'] == "light") || ($_POST['color_menu'] == "white"))
{
//Modification de la base de donnée pour un menu moderne
$sql = "UPDATE utilisateurs SET old_menu = ?, color_menu = ? WHERE ID = ?";
$modif = $bdd->prepare($sql);
$modif->execute(array(0, $_POST['color_menu'], $_SESSION['ID']));
}
else
{
//Modification de la base de donnée pour l'ancien menu
$sql = "UPDATE utilisateurs SET old_menu = 1, color_menu = 'none' WHERE ID = ".$_SESSION['ID'];
$modif = $bdd->query($sql);
//$modif->execute(array('none', $_SESSION['ID']));
}
//Actualisation de la page
echo "Enregistrement des modification termin&eacute;, actualisation de la page....";
echo '<meta http-equiv="refresh" content="0;URL=parametres.php?c=apparence">';
die();
}
?><h3>Apparence du site</h3>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=apparence" method="post">
<table>
<tr><td>Menu bleu</td><td><input type="radio" name="color_menu" value="blue" <?php echo ($afficher['color_menu'] == "blue" ? "checked" : ""); ?> /></td></tr>
<tr><td>Menu noir</td><td><input type="radio" name="color_menu" value="dark" <?php echo ($afficher['color_menu'] == "dark" ? "checked" : ""); ?> /></td></tr>
<tr><td>Menu l&eacute;ger</td><td><input type="radio" name="color_menu" value="light" <?php echo ($afficher['color_menu'] == "light" ? "checked" : ""); ?> /></td></tr>
<tr><td>Menu blanc</td><td><input type="radio" name="color_menu" value="white" <?php echo ($afficher['color_menu'] == "white" ? "checked" : ""); ?> /></td></tr>
<!--<tr><td>Ancienne version du menu</td><td><input type="radio" name="color_menu" value="old_menu" <?php echo ($afficher['old_menu'] == "1" ? "checked" : ""); ?> /></td></tr>-->
<tr><td colspan="2"><input type="submit" value="Mettre &agrave; jour l'apparence de Comunic" /></td></tr>
</table>
</form><?php

View File

@ -0,0 +1,158 @@
<?php
/**
* Change avatar settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
?>
<h1>Avatar</h1>
<?php
//Vérifions si un avatar a déjà été posté
if ((isset($_FILES['avatar'])) AND ($_FILES['avatar']['error'] == 0))
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['avatar']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg');
//Génération du nom de l'avatar
$extension = ".jpg";
$nom_avatar = str_replace('@', '', sha1(time()).$extension);
//On supprime l'ancien avatar si il y en a un
if(file_exists('avatars/adresse_avatars/'.$_SESSION['ID'].'.txt'))
{
unlink(relativeUserDataFolder('avatars/'.file_get_contents(relativeUserDataFolder('avatars/adresse_avatars/'.$_SESSION['ID'].'.txt'))));
}
//On modifie l'adresse d'enregistrement de l'avatar
file_put_contents(relativeUserDataFolder("avatars/adresse_avatars/".$_SESSION['ID'].".txt"), $nom_avatar);
// On peut copier l'avatar vers le répertoire de destinations
move_uploaded_file($_FILES['avatar']['tmp_name'], relativeUserDataFolder('avatars/'.$nom_avatar));
echo "<h2>Terminer l'envoi</h2>";
echo "<p>".code_inc_img(path_img_asset('succes.png'), "Succ&egrave;")." L'envoi a bien &eacute;t&eacute; effectu&eacute; !</p>";
}
//Check if we have to edit image
if(isset($_GET['editimage']))
{
echo "<p>Veuillez choisir quelle partie de l'image sera votre avatar :</p>";
echo avatar($_SESSION['ID'], "./", "", "", "photo"); ?>
<style type="text/css">#photo{max-width: none !important;}</style>
<script type="text/javascript">
$(document).ready(function () {
$('#photo').imgAreaSelect({
handles: true,
x1: 0, y1: 0, x2: 128, y2: 128,
onSelectEnd: function (img, selection) {
$('input[name="x1"]').val(selection.x1);
$('input[name="y1"]').val(selection.y1);
$('input[name="x2"]').val(selection.x2);
$('input[name="y2"]').val(selection.y2);
},
aspectRatio: '2:2',
});
});
</script>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>&editavatar" method="post">
<input type="hidden" name="x1" value="0" />
<input type="hidden" name="y1" value="0" />
<input type="hidden" name="x2" value="128" />
<input type="hidden" name="y2" value="128" />
<input type="submit" name="submit" value="Enregistrer" />
</form><?php
}
//Vérifions si il faut modifier l'avatar
if(isset($_GET['editavatar']) && isset($_POST['x1']) && isset($_POST['y1']) && isset($_POST['x2']) && isset($_POST['y2']))
{
//On définit l'adresse de l'avatar
$nom_avatar = str_replace('@', '', sha1(time()).".jpg");
//On redimensionne l'image
redimensionnne_enregistre_image(
$_POST['x1'],
$_POST['x2'],
$_POST['y1'],
$_POST['y2'],
relativeUserDataFolder("avatars/".file_get_contents(relativeUserDataFolder("avatars/adresse_avatars/".$_SESSION['ID'].".txt"))),
relativeUserDataFolder("avatars/".$nom_avatar),
128,
128);
//On modifie la date d'enregistrement de l'avatar
file_put_contents(relativeUserDataFolder("avatars/adresse_avatars/".$_SESSION['ID'].".txt"), $nom_avatar);
?><p><strong>F&eacute;licitations! Votre avatar a bien &eacute;t&eacute; configur&eacute;.</strong></p><?php
}
//Requete de l'existence d'un avatar
if(file_exists(relativeUserDataFolder('avatars/adresse_avatars/'.$_SESSION['ID'].".txt")))
{
echo avatar($_SESSION['ID'], "./", 64, 64, "avatar");
}
else
{
echo "Vous n'avez pas encore d&eacute;fini d'avatar. Voici l'avatar par d&eacute;faut :<img src='".webUserDataFolder('avatars/0.jpg')."' whidth='32' height='32' title='Vous pouvez définir votre avatar dans les parametres.' />";
//We notice that there isn't any avatar yet
$noAvatar = true;
}
?>
<!-- New avatar form -->
<h5>Formulaire d'envoi d'un avatar :</h5>
<form action='<?php $_SERVER['PHP_SELF']; ?>?c=avatar' name="Envoi d'un nouvel avatar" method='post' enctype="multipart/form-data">
<table>
<tr>
<td>
S&eacute;lectionnez le nouvel avatar
</td>
<td>
<input type='file' name='avatar' />
</td>
</tr>
<td>
</td>
<td>
<input type='submit' value="Envoyer le nouvel avatar" />
</td>
</tr>
</table>
</form>
<!-- Resize avatar -->
<?php
if(!isset($noAvatar)){
?><div class="bouton_edit_image_parametres">
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>&editimage">
<?php echo code_inc_img(path_img_asset('image_edit.png')); ?> Redimensionner votre avatar
</a>
</div><?<?php
} ?>
<!-- Use Webcam -->
<div class="bouton_edit_image_parametres">
<a href="action.php?actionid=26">
<?php echo code_inc_img(path_img_asset('webcam.png')); ?> Utilisez votre WebCam pour changer d'avatar
</a>
</div>
<!-- Delete avatar -->
<div class="bouton_edit_image_parametres">
<a href="#" onClick="confirmaction('action.php?actionid=27&type=avatar', 'Voulez-vous vraiment supprimer votre avatar ?');">
<?php echo code_inc_img(path_img_asset('image_delete.png')); ?> Supprimer votre avatar
</a>
</div>
<?php

View File

@ -0,0 +1,59 @@
<?php
/**
* Change avatar visibility settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//On vérifie si il faut changer le niveau de visibilité
if(isset($_POST['niveau_visibilite_avatar']))
{
//Préparation du contrôle de la valeu
$nouveau_niveau_visibilite_avatar = $_POST['niveau_visibilite_avatar'];
//Contrôle de la valeur
if($nouveau_niveau_visibilite_avatar == 1 OR $nouveau_niveau_visibilite_avatar == 2 OR $nouveau_niveau_visibilite_avatar == 3)
{
//Modification de la valeur
if(modifie_niveau_visibilite_avatar($_SESSION['ID'], $nouveau_niveau_visibilite_avatar))
{
//Message de succès
?><script type="text/javascript">affiche_notification_succes("Le niveau de visibilit&eacute; de l'avatar a &eacute;t&eacute; chang&eacute;.", "", 5);</script><?php
}
else
{
//Message d'erreur
?><script type="text/javascript">affiche_notification_erreur("La modification ud niveau de visibilit&eacute; de l'avatar a &eacute;chou&eacute;e.", "", 5);</script><?php
}
}
else
{
//Message d'erreur
?><script type="text/javascript">affiche_notification_erreur("La valeur saisie pour le niveau de visibilit&eacute; de l'avatar est incorrecte.", "", 5);</script><?php
}
}
//Récupération du niveau actuel de visibilité de l'avatar
$niveau_visibilite_avatar = get_niveau_visibilite_avatar($_SESSION['ID']);
?>
<h3>Visibilit&eacute; de votre avatar</h3>
<p><i>Cette fonctionalit&eacute; vous permet de choisir quelle type d'utilisateur pourra visualiser votre avatar.</i></p>
<form action='<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>' method="post">
<p>Quelle groupe de personne pourra voir votre avatar: </p>
<!-- Choix du niveau avec comme pré-définit le niveau actuel -->
<label><input type="radio" name="niveau_visibilite_avatar" value="1" <?php echo($niveau_visibilite_avatar == 1 ? "checked" : ""); ?> /> Moi et mes amis </label> <br />
<label><input type="radio" name="niveau_visibilite_avatar" value="2" <?php echo($niveau_visibilite_avatar == 2 ? "checked" : ""); ?> /> Moi, mes amis et les personnes connect&eacute;es </label> <br />
<label><input type="radio" name="niveau_visibilite_avatar" value="3" <?php echo($niveau_visibilite_avatar == 3 ? "checked" : ""); ?> /> Tout le monde </label> <br />
<!-- Fin de: Choix de niveau avec comme pré-définit le niveau actuel -->
<!-- Bouton de confirmation -->
<input type="submit" value="Modifier" />
<!-- Fin de: Bouton de confirmation -->
</form>
<!--<a href="action.php?actionid=4">Envoyer les donn&eacute;es par mail</a>-->
<?php

View File

@ -0,0 +1,151 @@
<?php
/**
* Change user background image
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
?>
<h3>Image de fond</h3>
<?php
//Vérifions si une image de fond a déjà été posté
if ((isset($_FILES['imgfond'])) AND ($_FILES['imgfond']['error'] == 0))
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['imgfond']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg');
//On supprime l'ancienne image de fond si il y en a une
if(file_exists(relativeUserDataFolder('imgfond/adresse_imgfond/'.$_SESSION['ID'].'.txt')))
{
unlink(relativeUserDataFolder('imgfond/'.file_get_contents(relativeUserDataFolder('imgfond/adresse_imgfond/'.$_SESSION['ID'].'.txt'))));
}
//Définition de l'adresse de l'image de fond
$adresse_img_fond = sha1(time()).".jpg";
//On modifie la date d'enregistrement de l'image de fond
file_put_contents(relativeUserDataFolder("imgfond/adresse_imgfond/".$_SESSION['ID'].".txt"), $adresse_img_fond);
// On peut valider l'image de fond et copier vers son répertoire de destination
move_uploaded_file($_FILES['imgfond']['tmp_name'], relativeUserDataFolder('imgfond/'.$adresse_img_fond));
echo "<p>".code_inc_img(path_img_asset('succes.png'), "Succ&egrave;")." L'envoi a bien &eacute;t&eacute; effectu&eacute; !</p>";
}
//Vérifions si il faut redimmensionner l'image de fond
if(isset($_GET['editimage']))
{
echo "<p>Veuillez maintenant choisir quelle partie de l'image sera votre image de fond :</p>";
echo imgfond($_SESSION['ID'], "./", "", "", "photo"); ?>
<style type="text/css">#photo{max-width: none !important;}</style>
<script type="text/javascript">
$(document).ready(function () {
$('#photo').imgAreaSelect({
handles: true,
x1: 0, y1: 0, x2: 128, y2: 128,
onSelectEnd: function (img, selection) {
$('input[name="x1"]').val(selection.x1);
$('input[name="y1"]').val(selection.y1);
$('input[name="x2"]').val(selection.x2);
$('input[name="y2"]').val(selection.y2);
},
maxHeight: 200,
});
});
</script>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>&editimgfond" method="post">
<input type="hidden" name="x1" value="0" />
<input type="hidden" name="y1" value="0" />
<input type="hidden" name="x2" value="128" />
<input type="hidden" name="y2" value="128" />
<input type="submit" name="submit" value="Enregistrer" />
</form><?php
//On évite les problèmes
die();
}
//Vérifions si il faut modifier l'image de fond
if(isset($_GET['editimgfond']) && isset($_POST['x1']) && isset($_POST['y1']) && isset($_POST['x2']) && isset($_POST['y2']))
{
//Définition de l'adresse de l'image de fond
$adresse_img_fond = sha1(time()).".jpg";
//On redimensionne l'image
redimensionnne_enregistre_image(
$_POST['x1'],
$_POST['x2'],
$_POST['y1'],
$_POST['y2'],
relativeUserDataFolder('imgfond/'.file_get_contents(relativeUserDataFolder("imgfond/adresse_imgfond/".$_SESSION['ID'].".txt"))),
relativeUserDataFolder("imgfond/".$adresse_img_fond),
$_POST['x2']-$_POST['x1'],
200,
"no"
);
//On modifie la date d'enregistrement de l'avatar
file_put_contents(relativeUserDataFolder("imgfond/adresse_imgfond/".$_SESSION['ID'].".txt"), $adresse_img_fond);
//Message de succès
?><p><strong>F&eacute;licitations! Votre nouvelle image de fond a bien &eacute;t&eacute; configur&eacute;e.</strong></p><?php
}
//Requete de l'existence d'une image de fond
if(file_exists(relativeUserDataFolder("imgfond/adresse_imgfond/".$_SESSION['ID'].".txt")))
{
echo imgfond($_SESSION['ID'], "./", "", 32, "img_fond");
}
else
{
echo "Vous n'avez pas encore d&eacute;fini d'image de fond. Vous pouvez en envoyer une sur cette page, ce qui permettra de la personnaliser en y ajoutant une touche de votre personnalit&eacute;.";
}
?>
<!-- New background image form -->
<h5>Formulaire d'envoi d'une image de fond :</h5>
<form action='<?php $_SERVER['PHP_SELF']; ?>?c=imgfond' name="Envoi d'une nouvelle image de fond" method='post' enctype="multipart/form-data">
<table>
<tr>
<td>
S&eacute;lectionnez la nouvelle image de fond (grande et rectangulaire si possible) :
</td>
<td>
<input type='file' name='imgfond' />
</td>
</tr>
<tr>
<td>
Confirmer l'envoi
</td>
<td>
<input type='submit' value="Modifier l'imgage de fond" />
</td>
</tr>
</table>
</form>
<!-- Resize image link -->
<div class="bouton_edit_image_parametres">
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>&editimage">
<?php echo code_inc_img(path_img_asset('image_edit.png')); ?> Redimensionner votre image de fond
</a>
</div>
<!-- Delete background image link -->
<div class="bouton_edit_image_parametres">
<a href="#" onClick="confirmaction('action.php?actionid=27&type=imgfond', 'Voulez-vous vraiment supprimer votre image de fond ?');">
<?php echo code_inc_img(path_img_asset('image_delete.png')); ?> Supprimer votre image de fond
</a>
</div>
<?php

View File

@ -0,0 +1,50 @@
<?php
/**
* Change chat settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//On vérifie si il faut vider le chat
if(isset($_GET['vide']))
{
//Requete de suppression
$sql = 'DELETE FROM chat WHERE ID_personne = '.$_SESSION['ID'].' ';
//Execution de la requete
$videchat = $bdd->query($sql);
//On affiche un message de succès
echo "<p>".code_inc_img(path_img_asset('succes.png'), "Succ&egrave;")." Le chat a bien &eacute;t&eacute; vid&eacute; !</p>";
}
?>
<!-- Parametres du chat -->
<h3>Parametres du chat</h3>
<p>Affichage de tous vos posts</p>
<table>
<?php
//Requete de recherche de post
$sql='SELECT * FROM chat WHERE ID_personne = '.$_SESSION['ID'];
//Execution de la requete
$requete = $bdd->query($sql);
//Affichage des résultats
while ($afficherchat = $requete->fetch())
{
?>
<tr>
<td><?php echo $afficherchat['date_envoi']; ?></td>
<td><?php echo corrige_accent_javascript(bloquebalise(corrige_caracteres_speciaux($afficherchat['message']))); ?></td>
</tr>
<?php
}
?>
</table>
<p><a href='<?php echo $_SERVER['PHP_SELF']; ?>?c=chat&vide=yes'>Vider l'historique du chat</a></p>
<!-- Fin de: parametres du chat -->
<?php

View File

@ -0,0 +1,30 @@
<?php
/**
* lean account settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
?>
<h3>Nettoyage du compte</h3>
<p><i>Vous permet de "nettoyer votre compte" en supprimant des traces tel que vos posts dans le chat priv&eacute; ou vos anciennes notifications.</i></p>
<p>Ce qui sera fait :</p>
<p>
<ul>
<li>
Suppression de toute vos notifications et de toute les notifications dont vous &ecirc;tes &agrave; l'origine
</li>
<li>
Suppression de toute vos posts dans le chat priv&eacute;
</li>
</ul>
</p>
<form action='action.php?actionid=28' method="post">
<p>Pour des raisons de s&eacute;curit&eacute;, veuillez saisir votre mot de passe : </p>
<input type="password" name="password" placeholder="Mot de passe" />
<input type='submit' value='Effectuer la maintenance' />
</form>
<?php

View File

@ -0,0 +1,23 @@
<?php
/**
* Settings page not found
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//This message should appear only when an error occur.
?><table align='center'>
<tr>
<td>
<?php echo code_inc_img(path_img_asset('erreur.png')); ?>
</td>
<td>
<p><b>Erreur :</b> La rubrique demand&eacute;e n'a pas &eacute;t&eacute; trouv&eacute;e ou n'existe pas</p>
<p>Pour r&eacute;soudre le probl&egrave;me, retournez &agrave; la page pr&eacute;c&eacute;dente et actualisez-la.</p>
<p>N'h&eacute;sitez pas &agrave; nous <a href='<?php echo siteURL(); ?>contact.php'>contacter</a> pour de plus amples informations.</p>
</td>
</tr>
</table><?php

View File

@ -0,0 +1,22 @@
<?php
/**
* Export datas
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
?>
<h3>Export des informations personnelles</h3>
<p>
<i>Vous permet de g&eacute;n&eacute;rer une page web contenant toute les informations personnelles vous concernant dans une page web que vous pourrez enregister ou imprimer. Vous permet de contr&ocirc;ler l'int&eacute;gralit&eacute; de votre activit&eacute;.</i>
</p>
<form action='exportdonnees.php' method="post">
<p>Pour des raisons de s&eacute;curit&eacute;, veuillez saisir votre mot de passe : </p>
<input type="password" name="password" placeholder="Mot de passe" />
<input type='submit' value='Exporter vos donn&eacute;es personelles vers une page web' />
</form>
<!--<a href="action.php?actionid=4">Envoyer les donn&eacute;es par mail</a>-->
<?php

View File

@ -0,0 +1,274 @@
<?php
/**
* Change general settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
?><div class="metro general_settings">
<h3><?php echo $lang[56]; ?></h3>
<?php
//Vérification de l'existence d'une demande de vérification
if((isset($_POST['nom'])) && (isset($_POST['prenom'])) && (isset($_POST['public'])))
{
if(!isset($_POST['affiche_chat']))
{
$_POST['affiche_chat'] = $afficher['affiche_chat'];
}
//On vérifie si la page est ouverte
if (isset($_POST['pageouverte']) && $_POST['public'] == '1')
{
//On rend la page ouverte
$pageouverte = 1;
}
else
{
//Sinon elle est fermée
$pageouverte = 0;
}
//On vérifie si les commentaires doivent être bloqués
if (isset($_POST['bloquecommentaire']))
{
//On bloque les commentaires
$bloquecommentaire = 1;
}
else
{
//Sinon ils sont accessibles
$bloquecommentaire = 0;
}
//On vérifie si les posts en provenance des amis sont autorisés
$autoriser_post_amis = (isset($_POST['autoriser_post_amis']) ? 1 : 0);
//On vérifie si l'envoi de mail est autorisé
$autorise_mail = (isset($_POST['autorise_mail']) ? 1 : 0);
//On vérifie si la liste d'amis est publique
$liste_amis_publique = (isset($_POST['liste_amis_publique']) ? 1 : 0);
//On vérifie si l'on doit structurer les posts en plusieurs pages
$mode_pages = (isset($_POST['mode_pages']) ? 1 : 0);
//On vérifie si l'on doit autoriser le système de multiauthentification pour ce compte ou non
$allow_multilogin = (isset($_POST['allow_multilogin']) ? 1 : 0);
//Sécurité pour l'adresse URL
$site_web = str_replace('javascript:', '', $_POST['site_web']);
//Modification de la base de données
$sql = "UPDATE utilisateurs SET nom = ?, prenom = ?, affiche_chat = ?, public = ?, pageouverte = ".$pageouverte.", site_web = ?, question1 = ?, reponse1 = ?, question2 = ?, reponse2 = ?, bloquecommentaire = ?, autoriser_post_amis = ?, autorise_mail = ?, liste_amis_publique = ?, mode_pages = ?, allow_multilogin = ? WHERE ID = ?";
$modif = $bdd->prepare($sql);
$modif->execute(array($_POST['nom'], $_POST['prenom'], $_POST['affiche_chat'], $_POST['public'], $site_web, $_POST['question1'], $_POST['reponse1'], $_POST['question2'], $_POST['reponse2'], $bloquecommentaire, $autoriser_post_amis, $autorise_mail, $liste_amis_publique, $mode_pages, $allow_multilogin, $_SESSION['ID']));
//Vérification de l'autorisation d'envoi de mails
if($active_envoi_mail == "oui")
{
//Envoi d'un message au demandé
$send_mail = true;
$sujet = "Modification de vos paramètres";
$description_rapide = "Les paramètres de votre compte ont été modifiés.";
$nom_destinataire = $afficher['prenom']." ".$afficher['nom'];
$adresse_mail_destinataire = $afficher['mail'];
//Rechargement des informations
$afficher = cherchenomprenom($_SESSION['ID'], $bdd);
$texte_message = "
<h3 class='titre'>Modification de vos param&egrave;tres</h3>
<p>Voici les nouveau param&egrave;tres de votre compte:</p>
<table align='center'>
<tr><td>ID </td><td>".$afficher['ID']."</td></tr>
<tr><td>Pr&eacute;nom :</td><td>".$afficher['prenom']."</td></tr>
<tr><td>Nom :</td><td>".$afficher['nom']."</td></tr>
<tr><td>Adresse mail :</td><td>".$afficher['mail']."</td></tr>
<tr><td>Page publique :</td><td>".($afficher['public'] == 1 ? "Oui" : "Non")."</td></tr>
<tr><td>Page ouverte :</td><td>".($afficher['pageouverte'] == 1 ? "Oui" : "Non")."</td></tr>
<tr><td>Structurer les posts en plusieurs pages :</td><td>".($afficher['mode_pages'] == 1 ? "Oui" : "Non")."</td></tr>
<tr><td>Autoriser Comunic &agrave; m'envoyer des mails</td><td>".($afficher['autorise_mail'] == 1 ? "Oui" : "Non")."</td></tr>
<tr><td>Adresse de votre site web (optionnel)</td><td>".$afficher['site_web']."</td></tr>
<tr><td>Autoriser la gestion de ce compte depuis un autre compte ? </td><td>".($afficher['allow_multilogin'] == 1 ? "Oui" : "Non")."</td></tr>
<tr><td>Question de s&eacute;curit&eacute; 1:</td><td>".$afficher['question1']."</td></tr>
<tr><td>R&eacute;ponse de s&eacute;curit&eacute; 1:</td><td>".$afficher['reponse1']."</td></tr>
<tr><td>Question de s&eacute;curit&eacute; 2:</td><td>".$afficher['question2']."</td></tr>
<tr><td>R&eacute;ponse de s&eacute;curit&eacute; 2:</td><td>".$afficher['reponse2']."</td></tr>
</table>
".$info_mail_securite."
<p><strong>Important : Si vous n'avez pas chang&eacute; vos param&egrave;tres, modifiez votre mot de passe et contactez-nous. Il se peut que quelqu'un ait pirat&eacute; votre compte et r&eacute;cup&eacute;r&eacute; votre mot de passe.</strong></p>
<p><a href='".$urlsite."'>Connectez-vous</a> pour acc&eacute;der &agrave; toute les param&egrave;tres de Comunic.</a></p>
";
//Envoi du message
include(websiteRelativePath().'inc/envoi_mail.php');
}
//Actualisation de la page
echo "Enregistrement des modification termin&eacute;, actualisation de la page....";
echo '<meta http-equiv="refresh" content="0;URL=parametres.php">';
die();
}
?>
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' id="general">
<?php
/*//Recherche des informations personelles
$sql = "SELECT * utilisateurs WHERE ID='".$_SESSION['ID']."'";
//Exécution de la requete
$requete = $bdd->query($sql);
//Recherche d'éventuelles erreurs
if(!$afficher = $requete->fetch())
{
echo "<p>Un problème technique est survenu. Merci de réessayer plus tard.</p>";
die();
}
//Fermeture de la requete
$general->closeCursor();*/
?><legend>Informations de connexion</legend>
<label>Num&eacute;ro de compte et <?php echo $lang[14]; ?></label>
<div class="input-control text size2">
<input type="text" disabled value="<?php echo $afficher['ID']; ?>" />
</div>
<div class="input-control text size4">
<input type="text" disabled value="<?php echo $afficher['mail']; ?>" />
</div>
<label><?php echo $lang[12]; ?> et <?php echo $lang[13]; ?></label>
<div class="input-control text size3">
<input type='text' name='prenom' value='<?php echo $afficher['prenom']; ?>' />
</div>
<div class="input-control text size3">
<input type='text' name='nom' value='<?php echo $afficher['nom']; ?>' />
</div>
<label><?php echo $lang[1]; ?></label>
<div class="input-control">
<a href='<?php echo $_SERVER['PHP_SELF']; ?>?c=password' title='Cliquez ici pour modifier le mot de passe'><?php echo $lang[58]; ?></a>
</div>
<p>&nbsp;</p>
<legend>Personnalisation g&eacute;n&eacute;rale du compte</legend>
<?php if($activer_publique_chat == "oui") { ?><label>Affichage du chat automatique</label><div class="input-control select"><select name='affiche_chat'><option <?php if ($afficher['affiche_chat'] == 1) echo "selected"; ?> value='1' />Oui <option <?php if ($afficher['affiche_chat'] == 0) echo "selected"; ?> value='0' />Non</select></div><?php } ?>
<label>Votre page est... <a href='aide.php?id=6' target='_blank'><?php echo code_inc_img(path_img_asset('help.png')); ?></a></label>
<div class="input-control select size6">
<select name='public'>
<option <?php if ($afficher['public'] == 1) echo "selected"; ?> value='1' />Publique
<option <?php if ($afficher['public'] == 0) echo "selected"; ?> value='0' />Privee
</select>
</div>
<?php // On affiche cette ligne uniqument si la page est publique
if($afficher['public'] == 1)
{
?><div class="input-control switch">
<label>
<input type='checkbox' <?php
if ($afficher['pageouverte'] == 1)
echo 'checked';
?> name='pageouverte' /><span class="check"></span> Page ouverte <strong>Attention: Cette option rend votre page accessible aux personnes non connect&eacute;es!</strong>
</label>
</div><?php
}
?>
<?php /* On affiche cette ligne uniqument si la page est ouverte */ if ($afficher['pageouverte'] == 1) echo '<p>Votre page est accessible &agrave; cette adresse : '.$urlsite.'?id='.$afficher['ID'].'</p>';?>
<div class="input-control switch">
<label>
<input type='checkbox' name='bloquecommentaire' <?php if ($afficher['bloquecommentaire'] == 1) echo 'checked'; ?> />
<span class="check"></span>
Interdire le post de commentaires sur ma page
</label>
</div><br />
<div class="input-control switch">
<label>
<input type='checkbox' name='autoriser_post_amis' <?php if ($afficher['autoriser_post_amis'] == 1) echo 'checked'; ?> />
<span class="check"></span>
Autoriser les posts provenant de mes amis
</label>
</div><br />
<div class="input-control switch">
<label>
<input type='checkbox' name='mode_pages' <?php if ($afficher['mode_pages'] == 1) echo 'checked'; ?> />
<span class="check"></span>
Structurer mes posts en plusieurs pages (En d&eacute;veloppement)
</label>
</div><br />
<div class="input-control switch">
<label>
<input type='checkbox' name='autorise_mail' <?php if ($afficher['autorise_mail'] == 1) echo 'checked'; ?> />
<span class="check"></span>
Autoriser Comunic &agrave; m'envoyer des mails (ne concerne pas les mails de s&eacute;curit&eacute;, qui sont syst&eacute;matiquement envoy&eacute;s.)
</label>
</div><br />
<!-- Liste d'amis publique -->
<div class="input-control switch">
<label>
<input type='checkbox' name='liste_amis_publique' <?php if ($afficher['liste_amis_publique'] == 1) echo 'checked'; ?> />
<span class="check"></span>
Rendre ma liste d'amis publique
</label>
</div><br />
<!-- Fin de: Liste d'amis publique -->
<!-- Autorisation de gérer ce compte depuis un autre compte -->
<div class="input-control switch">
<label>
<input type='checkbox' name='allow_multilogin' <?php if ($afficher['allow_multilogin'] == 1) echo 'checked'; ?> />
<span class="check"></span>
Autoriser ce compte a &ecirc;tre g&eacute;r&eacute; depuis un autre compte (multi-authentification)
</label>
</div><br />
<!-- Fin de: Autorisation de gérer ce compte depuis un autre compte -->
<p>&nbsp;</p>
<legend>Site web (optionnel)</legend>
<label>Adresse URL</label>
<div class="input-control text size4">
<input type='text' name='site_web' placeholder="http://" value='<?php echo $afficher['site_web']; ?>' />
</div>
<p>&nbsp;</p>
<legend>Pr&eacute;paration &agrave; l'oubli de mot de passe</legend>
<label>
Question de s&eacute;curit&eacute; 1
<!-- Help -->
<a href='aide.php?id=7' title="En savoir plus..." target='_blank'> <?php echo code_inc_img(path_img_asset('help.png')); ?></a>
<small>Ne faites pas attention aux majuscules/minuscules.</small>
</label>
<div class="input-control text size3">
<input type='text' name='question1' placeholder="Question 1" value='<?php echo echap_guillemet_html($afficher['question1']); ?>' />
</div>
<div class="input-control text size3">
<input type='text' name='reponse1' placeholder="R&eacute;ponse 1" value='<?php echo echap_guillemet_html($afficher['reponse1']); ?>' />
</div>
<label>Question de s&eacute;curit&eacute; 2 <small>Ne faites pas attention aux majuscules/minuscules.</small></label>
<div class="input-control text size3">
<input type='text' name='question2' placeholder="Question 2" value='<?php echo echap_guillemet_html($afficher['question2']); ?>' />
</div>
<div class="input-control text size3">
<input type='text' name='reponse2' placeholder="R&eacute;ponse 2" value='<?php echo echap_guillemet_html($afficher['reponse2']); ?>' />
</div>
<label><input type='submit' value='<?php echo $lang[57]; ?>' /></label>
<label><span id="ciblesuppressioncompte"><h6><a onClick="confirmdeleteaccount()" title="Supprimer votre compte">Supprimer votre compte</a></h6></span></label>
</table>
</form>
</div><?php

View File

@ -0,0 +1,173 @@
<?php
/**
* Change groups settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//On vérifie si il faut ajouter (ou modifier) un groupe
if(isset($_POST['nom_groupe']) AND isset($_POST['choixpersonne']))
{
if($_POST['nom_groupe'] != "")
{
if(is_array($_POST['choixpersonne']))
{
if(count($_POST['choixpersonne'] > 0))
{
//On enregistre le groupe
$nom_groupe = $_POST['nom_groupe'];
//Listing de toute les personnes
$liste_id = array();
foreach($_POST['choixpersonne'] as $id=>$value)
$liste_id[]= $id;
$liste_id = implode("|", $liste_id);
if(!isset($_POST['edit']))
{
//Enregistrement dans la base de données
$sql = "INSERT INTO groupe_personnes (ID_personne, nom, date_ajout, liste_ID) VALUES (?, ?, NOW(), ?)";
$insertion = $bdd->prepare($sql);
$insertion->execute(array($_SESSION['ID'], $nom_groupe, $liste_id));
//Message de succès
?><script type="text/javascript">affiche_notification_succes("Le groupe <?php echo $nom_groupe; ?> vient d'&ecirc;tre enregistr&eacute; avec succ&egrave;s.");</script><?php
}
else
{
$edit = $_POST['edit']*1;
if($edit > 0)
{
//Modification de la base de données
$sql = "UPDATE groupe_personnes SET nom = ?, liste_ID = ? WHERE ID_personne = ? AND ID = ?";
$insertion = $bdd->prepare($sql);
$insertion->execute(array($nom_groupe, $liste_id, $_SESSION['ID'], $edit));
//Message de succès
?><script type="text/javascript">affiche_notification_succes("Le groupe <?php echo $nom_groupe; ?> vient d'&ecirc;tre modifi&eacute; avec succ&egrave;s.");</script><?php
}
}
}
}
}
}
?><h3>Groupe de personnes</h3>
<div class="metro gestion_groupe_personnes"><?php
//Ajout (ou modification) d'un groupe de personnes
//Recherche des information sur le groupe (si modification)
$nom_groupe = "";
$liste_amis_checked = array();
if(isset($_GET['edit']))
{
$sql = "SELECT * FROM groupe_personnes WHERE ID = ? AND ID_personne = ?";
$requete = $bdd->prepare($sql);
$requete->execute(array($_GET['edit']*1, $_SESSION['ID']));
//Enregistrement du résultat
if(!$info_groupe = $requete->fetch())
{
unset($_GET['edit']);
}
else
{
//Préparation du traitement
$nom_groupe = $info_groupe['nom'];
$liste_amis_checked = explode('|', $info_groupe['liste_ID']);
}
//Fermeture de la requête
$requete->closeCursor();
}
//Titre du formulaire
if(!isset($info_groupe['ID'])) {
?><p>Ajout d'un nouveau groupe :</p><?php
} else {
?><p>Modification du groupe :</p><?php
}
//Ouverture du formulaire
?><form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>" method="post">
<div class="input-control text">
<input type="text" name="nom_groupe" value="<?php echo $nom_groupe; ?>" placeholder="Nom du groupe" required />
</div><?php
//Si nécessaire, on indique qu'il s'agit d'une modification de groupe
if(isset($info_groupe['ID'])) echo "<input type='hidden' name='edit' value='".$info_groupe['ID']."' />";
//Listing des amis
$liste_amis = liste_amis($_SESSION['ID'], $bdd, 1);
//Affichage de la liste en tant que formulaire
foreach($liste_amis as $afficher_liste)
{
//Récupération des informations si nécessaire
$id_amis = $afficher_liste;
if(!isset($info_users[$id_amis]['table_utilisateurs']) OR !isset($info_users[$id_amis]['avatar_32_32']))
{
$info_users[$id_amis]['table_utilisateurs'] = cherchenomprenom($id_amis, $bdd);
$info_users[$id_amis]['avatar_32_32'] = avatar($id_amis, "./", 32, 32);
}
//Affichage de la proposition
?><div class="input-control checkbox">
<label>
<input type="checkbox" <?php if(in_array($id_amis, $liste_amis_checked)) echo "checked"; ?> name="choixpersonne[<?php echo $id_amis; ?>]" />
<span class="check"></span>
<?php echo $info_users[$id_amis]['avatar_32_32']." ".$info_users[$id_amis]['table_utilisateurs']['prenom']." ".$info_users[$id_amis]['table_utilisateurs']['nom']; ?>&nbsp;
</label>
</div><?php
}
//Fin du formulaire
?><br /><input type="submit" value="<?php if(!isset($info_groupe['ID'])) echo "Ajouter"; else echo "Modifier"; ?> le groupe" /><?php
?></form><?php
//Listing des groupes de personnes
$liste = list_groupes_personnes($_SESSION['ID'], $bdd);
//Affichage de la liste
foreach($liste as $afficher)
{
//On vérifie si il faut supprimer le groupe
if(isset($_GET['delete_groupe']))
{
//Suppression du groupe
$groupe = $_GET['delete_groupe']*1;
if($groupe == $afficher['ID'])
{
//Requête de suppression
$sql = "DELETE FROM groupe_personnes WHERE ID_personne = ? AND ID = ?";
$delete = $bdd->prepare($sql);
$delete->execute(array($_SESSION['ID'], $groupe));
//On saute le groupe
continue;
}
}
//Affichage du nom du groupe
echo "<h3>".$afficher['nom']." <a href='".$_SERVER['PHP_SELF']."?c=".$_GET['c']."&edit=".$afficher['ID']."'><img src='".path_img_asset("edit.png")."' title='Modifier le groupe' /></a>";
echo "<small class='on_right'><a href='#' onClick='confirmaction(\"".$_SERVER['PHP_SELF']."?c=".$_GET['c']."&delete_groupe=".$afficher['ID']."\", \"Voulez-vous vraiment supprimer ce groupe ?\");'> Supprimer le groupe </a></small></h3>";
//Récupération de la liste des personnes
$liste_personnes = explode("|", $afficher['liste_ID']);
foreach($liste_personnes as $nom_personnes)
{
$id_amis = $nom_personnes;
if(!isset($info_users[$id_amis]['table_utilisateurs']) OR !isset($info_users[$id_amis]['avatar_32_32']))
{
$info_users[$id_amis]['table_utilisateurs'] = cherchenomprenom($id_amis, $bdd);
$info_users[$id_amis]['avatar_32_32'] = avatar($id_amis, "./", 32, 32);
}
echo "<span>".$info_users[$id_amis]['avatar_32_32']." ".$info_users[$id_amis]['table_utilisateurs']['prenom']." ".$info_users[$id_amis]['table_utilisateurs']['nom']."&nbsp;</span>";
}
}

View File

@ -0,0 +1,236 @@
<?php
/**
* Manage multiauth
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//On a besoin de l'ID du compte parent pour permettre l'exécution de cette page !
if(!isset($_SESSION['ID_parent']))
{
//Rapport d'erreur à l'administration
report_error('if(!isset($_SESSION[\'ID_parent\']))', 'La variable $_SESSION[\'ID_parent\'] n\'existe pas, elle est n&eacute;cessaire &agrave; multi_login_settings.php (inc).');
//Affichage d'un message d'erreur
affiche_message_erreur("Votre navigateur n'a pas bien &eacute;t&eacute; connect&eacute; &agrave; Comunic. Veuillez essayer de vous d&eacute;connecter et vous reconnecter et r&eacute;essayer.");
//Fermeture
exit();
}
if(!isset($bdd))
die('An error occured while accessing the BDD !');
//On vérifie si il faut retourner au compte principal
if(isset($_GET['back_main_account']))
{
//Attribution de l'ID_parent à l'ID
$_SESSION['ID'] = $_SESSION['ID_parent'];
//Retour à la page d'acceuil du site
echo "<script>location.href='".$urlsite."';</script>";
}
//On vérifie si il faut supprimer un compte
if(isset($_GET['delete_entree']) AND isset($_GET['id']))
{
//Définition des variables
$id_entree_to_delete = $_GET['delete_entree']*1;
$id_personne_concernee_1 = $_GET['id']*1;
$id_personne_concernee_2 = $_SESSION['ID_parent']*1;
if($id_entree_to_delete > 0 AND $id_personne_concernee_1 > 0 AND $id_personne_concernee_2 >0)
{
//Suppression de la base de données
delete_sql("multi_login", "ID = ? AND ((ID_personne = ? AND ID_target = ?) OR (ID_target = ? AND ID_personne = ?))", $bdd, array(
$id_entree_to_delete,
$id_personne_concernee_1,
$id_personne_concernee_2,
$id_personne_concernee_1,
$id_personne_concernee_2
));
//Affichage d'un message de succès
?><script>affiche_notification_succes("Le compte a bien &eacute;t&eacute; supprim&eacute; de la console de multi-authentification.");</script><?php
}
else
//Afficher un message d'erreur
affiche_message_erreur("Une erreur d'entr&eacute; a emp&ecirc;ch&eacute; la suppression d'avoir lieu !", true);
}
//On vérifie si il faut ajouter un compte
if(isset($_POST['mail_new_account']) AND isset($_POST['pass_new_account']))
{
//On vérifie si les informations sont correctes
$infos_user_add = connnecteruser($_POST['mail_new_account'], $_POST['pass_new_account'], $bdd, true, false, true);
if(!$infos_user_add)
{
//Afficher un message d'erreur
affiche_message_erreur("L'adresse mail ou le mot de passe du compte saisi est/sont incorrects !", true);
}
elseif($infos_user_add['allow_multilogin'] != "1")
{
//Afficher un message d'erreur
affiche_message_erreur("Ce compte refuse la multi-authentification !", true);
}
elseif($infos_user_add['ID'] == $_SESSION['ID_parent'])
{
//Afficher un message d'erreur
affiche_message_erreur("Vous ne pouvez pas ajouter votre propre compte dans le gestionnaire de multi-authentification !", true);
}
else
{
//On peut rajouter le comtpe à la liste des comptes connus
insert_sql("multi_login", "ID_personne, ID_target, date_ajout, IP_ajout", "?, ?, NOW(), ?", $bdd, array(
$_SESSION['ID_parent'],
$infos_user_add['ID'],
$_SERVER['REMOTE_ADDR']
));
//Vérification de l'autorisation d'envoi de mails
if($active_envoi_mail == "oui")
{
//Envoi d'un message au demandé
$send_mail = true;
$sujet = "Modification de vos paramètres de multi-authentification";
$description_rapide = "Les paramètres de multi-authentification de votre compte ont été modifiés.";
$nom_destinataire = $infos_user_add['prenom']." ".$infos_user_add['nom'];
$adresse_mail_destinataire = $infos_user_add['mail'];
//Rechargement des informations
$afficher = cherchenomprenom($_SESSION['ID_parent'], $bdd);
$texte_message = "
<h3 class='titre'>Ajout de votre compte &agrave; la console de multi-authentification de ".$afficher['prenom']." ".$afficher['nom']."</h3>
<p>Nous vous informons que votre compte a &eacute;t&eacute; ajout&eacute; &agrave; la console de multi-authentification de ".$afficher['prenom']." ".$afficher['nom'].". Si vous n'avez pas fait cette demande, prenez imm&eacute;diatement contact avec l'administration de Comunic pour rapporter ce probl&egrave;. ".$afficher['prenom']." ".$afficher['nom']." pourra d&eacute;sormais depuis son compte acc&eacute;der au v&ocirc;tre sans saisir votre mot de passe &agrave; chaque fois.</p>
";
//Envoi du message
include(websiteRelativePath('inc/envoi_mail.php'));
}
//Affichage d'un message de succès
?><script>affiche_notification_succes("Le compte a bien &eacute;t&eacute; ajout&eacute; &agrave; la console de multi-authentification!");</script><?php
}
}
//Récupération de la liste des comptes qui gèrent le compte de l'utilisateur courant, connecté
$liste_managed = select_sql("multi_login", "ID_target = ?", $bdd, array($_SESSION['ID_parent']));
//Récupération de la liste des comptes qui peuvent être gérés par le compte de l'utilisateur courant, connecté
$liste_accounts_user = select_sql("multi_login", "ID_personne = ?", $bdd, array($_SESSION['ID_parent']));
?><style type="text/css">
.multi_account_listing img { vertical-align: middle; }
.volet_droit_parametres {
max-width: 90% !important;
text-align: justify;
}
</style>
<h3>Gestion de la multi-authentification</h3>
<p>La multi-authentification vous permet de g&eacute;rer plusieurs comptes rapidement en ne vous connectant qu'&agrave; un seul, le compte principal. Il vous est vivement conseill&eacute; de choisir un mot de passe s&ucirc;r pour le compte principal.</p>
<h4> Votre compte </h4>
<p> Multi-authentification autoris&eacute;e : <b><?php echo ($afficher['allow_multilogin'] == 1 ? "Autoris&eacute;e" : "Interdite"); ?></b> (Voir la section <i>G&eacute;n&eacute;ral</i>)</p>
<p> Ce compte peut &ecirc;tre g&eacute;r&eacute; par : </p>
<?php
if(count($liste_managed) == 0)
echo "<p><i>Votre compte n'est actuellement rattach&eacute; &agrave; aucun compte pour le moment.</i></p>";
else
{
?><div class="grid multi_account_listing"><?php
foreach($liste_managed as $afficher_entree)
{
?><div class="row"><?php
//Recherche des informations de la personne
$infos_personne_manager = cherchenomprenom($afficher_entree['ID_personne'], $bdd);
//Affichage de l'avatar
echo avatar($infos_personne_manager['ID']);
echo " ";
//Affichage du prénom et du nom
echo "<a href='index.php?id=".$infos_personne_manager['ID']."'>".$infos_personne_manager['nom_complet']."</a>";
echo " ";
echo "<img src='".path_img_asset('supp.png')."' class='a' title='Supprimer de la console' onClick='confirmaction(\"".$_SERVER['PHP_SELF']."?c=".$_GET['c']."&delete_entree=".$afficher_entree['ID']."&id=".$infos_personne_manager['ID']."\", \"Souhaitez-vous vraiment supprimer ".$infos_personne_manager['nom_complet']." de la liste des personnes pouvant acc&eacute;der &agrave; votre compte ?\");' />";
?></div><?php
}
?></div><?php
}
?>
<h4>G&eacute;rer un compte</h4>
<p> Compte d&eacute;j&agrave; g&eacute;r&eacute;s :</p>
<p> Ce compte peut acc&eacute;der sans saisie de mots de passes aux comptes suivants : </p>
<?php
if(count($liste_accounts_user) == 0)
echo "<p><i>Votre compte ne peut acc&eacute;der actuellement &agrave; aucun compte.</i></p>";
else
{
?><div class="grid multi_account_listing"><?php
foreach($liste_accounts_user as $afficher_entree)
{
?><div class="row"><?php
//Recherche des informations de la personne
$infos_personne_managed = cherchenomprenom($afficher_entree['ID_target'], $bdd);
//On vérifie si il faut utiliser ce compte
if(isset($_GET['use_account']))
{
if($_GET['use_account'] == $infos_personne_managed['ID'])
{
//Attribution de l'ID
$_SESSION['ID'] = $infos_personne_managed['ID'];
//Redirection vers la page d'acceuil
//header('Location: '.$urlsite);
echo '<meta http-equiv="refresh" content="0;URL=index.php">';
}
}
//Affichage de l'avatar
echo avatar($infos_personne_managed['ID']);
echo " ";
//Affichage du prénom et du nom
echo "<a href='index.php?id=".$infos_personne_managed['ID']."'>".$infos_personne_managed['nom_complet']."</a>";
echo " ";
echo "<img src='".path_img_asset('supp.png')."' class='a' title='Supprimer de la console' onClick='confirmaction(\"".$_SERVER['PHP_SELF']."?c=".$_GET['c']."&delete_entree=".$afficher_entree['ID']."&id=".$infos_personne_managed['ID']."\", \"Souhaitez-vous vraiment supprimer ".$infos_personne_managed['nom_complet']." de la liste des personnes auxquelles vous pouvez acc&eacute;der depuis votre compte ?\");' />";
echo "<a class='button' href='".$_SERVER['PHP_SELF']."?c=".$_GET['c']."&use_account=".$infos_personne_managed['ID']."'><i class='icon-enter'></i> Utiliser ce compte</a>";
?></div><?php
}
?></div><?php
}
?>
<!-- Ajout d'un compte pour la multi-authentification -->
<p> Ajouter un compte : </p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>" method="post">
<label>Adresse mail, mot de passe du compte</label>
<!-- Adresse mail -->
<div class="input-control text size3">
<input type="mail" required name="mail_new_account" placeholder="Adresse mail du compte..." />
</div>
<!-- Mot de passe -->
<div class="input-control password size3">
<input type="password" required name="pass_new_account" placeholder="Mot de passe du compte..." />
</div>
<!-- Bouton de validation -->
<input type="submit" value="Ajouter le compte" />
</form>
<!-- Fin du formulaire d'ajout de compte -->

View File

@ -0,0 +1,64 @@
<?php
/**
* Change notifications settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//Configuration des notifications
if(isset($_POST['edit_notifications']))
{
//On vérifie si il faut activer l'ancienne version de notifications
$bloquenotification = (isset($_POST['bloquenotification']) ? 0 : 1);
//On vérifie si les sons des notifications sont autorisés
$bloque_son_notification = (isset($_POST['bloque_son_notification']) ? 1 : 0);
//Modification de la base de données
$sql = "UPDATE utilisateurs SET bloquenotification = ?, bloque_son_notification = ? WHERE ID = ?";
$modif = $bdd->prepare($sql);
$modif->execute(array($bloquenotification, $bloque_son_notification, $_SESSION['ID']));
//Actualisation de la page
echo "Enregistrement des modification termin&eacute;, actualisation de la page....";
echo '<meta http-equiv="refresh" content="0;URL=parametres.php?c=notifications">';
die();
}
//Si demandé, vider le cache des notifications
if(isset($_GET['vide_cache_notification']))
{
//On supprime les entrées de la base de données
$sql = "DELETE FROM notification WHERE ID_personne = ?";
$suppression = $bdd->prepare($sql);
$suppression->execute(array($_SESSION['ID']));
?><font style="color: green"><?php echo code_inc_img(path_img_asset('succes.png')); ?> Le cache des notifications a &eacute;t&eacute; vid&eacute;.</font><?php
}
?><form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>" method="post">
<input type="hidden" name="edit_notifications" value="1"><!-- Correctif de formulaire : Il n'y a que des cases à cocher -->
<p>Cette page vous permet de configurer le comportement de notifications.</p>
<table>
<tr><td>Activer l'ancienne version des notifications</td><td><input type='checkbox' name='bloquenotification' <?php if ($afficher['bloquenotification'] != 1) echo 'checked'; ?> /></td></tr>
<tr><td>Bloquer le son de l'ancienne version de notifications</td><td><input type='checkbox' name='bloque_son_notification' <?php if ($afficher['bloque_son_notification'] == 1) echo 'checked'; ?> /></td></tr>
<tr><td colspan="2"><input type="submit" value="Mettre &agrave; jour les param&egrave;tres de notification de Comunic" /></td></tr>
<tr><td colspan="2"><p>Voici &agrave; quoi ressemble l'ancienne version des notifications :</p></td></tr>
<tr><td colspan="2" style="text-align: center;"><?php echo code_inc_img(path_img_asset('notification_old.png'), "Ancienne version du syst&egrave;me de notification."); ?></td></tr>
<tr><td colspan="2"><p>Vous pouvez &eacute;galement &eacute;couter le son produit par l'ancien syst&egrave;me de notifications:</p></td></tr>
<tr><td colspan="2" style="text-align: center;">
<audio controls>
<source src='<?php echo path_audio_asset('notification.ogg'); ?>'></source>
<source src='<?php echo path_audio_asset('notification.mp3'); ?>'></source>
Votre navigateur est trop ancien pour &eacute;couter le son de l'ancien syst&egrave;me de notifications.
</audio>
</td></tr>
<tr><td colspan="2">Il est possible de vider le cache du syst&egrave;me de notification :</td></tr>
</table>
</form>
<!-- Pour vider le cache des notifications --><button onClick="document.location.href='<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>&vide_cache_notification'"> Vider le cache des notifications</button>
<!-- Nettoyage automatique des notifications --><?php include('inc/nettoyage_automatique_notifications.php'); ?>
<?php

View File

@ -0,0 +1,28 @@
<?php
/**
* Change pages settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//Titre
?><h3>Gestion de vos pages</h3><?php
//Sous-titre
?><h4>Liste de vos pages</h4><?php
//Récupération de la liste des pages
$liste_pages = get_liste_pages($_SESSION['ID'], $bdd);
//Affichage de la liste des pages (temporaire)
echo "<pre>";
print_r($liste_pages);
echo "</pre>";
//Sous-titre
?><h4>Ajout d'une page</h4><?php
?>Fonctions en d&eacute;veloppement<?php

View File

@ -0,0 +1,90 @@
<?php
/**
* Change password
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
?>
<h3>Modification du mot de passe</h3>
<?php
//Vérification de l'existence de l'existence demande de modification de mot de passe
if((isset($_POST['oldpassword'])) && (isset($_POST['newpassword'])) && (isset($_POST['confirmnewpassword'])))
{
//Vérification de la corresponde du nouveau mot de passe et de sa confirmation
if($_POST['newpassword'] != $_POST['confirmnewpassword'])
{
echo "<p><font color='#FF0000'><p>Erreur : Le nouveau mot de passe et sa confirmation ne correspondent pas. </font></p> \n";
}
else
{
//Requete de vérification de l'ancien mot de passe
$oldpass = $bdd->query("SELECT * FROM utilisateurs WHERE ID = ".$_SESSION['ID']);
$test = $oldpass->fetch();
$oldpass->closeCursor();
//Hachage du mot de passe saisi dans le formulaire
$oldpassword = sha1($_POST['oldpassword']);
$oldpassword = crypt($oldpassword, $oldpassword);
//Vérification
if($oldpassword != $test['password'])
{
echo "<p><font color='#FF0000'><p>Erreur : l'ancien mot de passe saisi est invalide. </font></p> \n";
}
else
{
//Maintenant que tous les tests ont étés passés avec succès, on peut hacher et modifier le mot de passe dans al base de donnéesss
$motdepasse = sha1($_POST['newpassword']);
$motdepasse = crypt($motdepasse, $motdepasse);
//Enregistrement de la modification dans la base de donnée
$sql = "UPDATE utilisateurs SET password = ? WHERE ID = ?";
$modif = $bdd->prepare($sql);
$modif->execute(array($motdepasse, $_SESSION['ID']));
//Affichage d'un message de succès
echo "<p>".code_inc_img(path_img_asset('succes.png'), "Succ&egrave;")."Le mot de passe a &eacute;t&eacute; modifi&eacute; avec succ&egrave;s.</p>";
//Vérification de l'autorisation d'envoi de mails
if($active_envoi_mail == "oui")
{
//Envoi d'un message au demandé
$send_mail = true;
$sujet = "Modification de votre mot de passe";
$description_rapide = "Vous avez changé votre mot de passe.";
$nom_destinataire = $afficher['prenom']." ".$afficher['nom'];
$adresse_mail_destinataire = $afficher['mail'];
//Rechargement des informations
$afficher = cherchenomprenom($_SESSION['ID'], $bdd);
$texte_message = "
<h3 class='titre'>Modification de votre mot de passe</h3>
<p>Ce message vous a &eacute;t&eacute; adress&eacute; automatiquement afin de vous informer que vous (ou quelqu'un se passant pour vous) avez modifi&eacute; votre mot de passe avec succ&egrave;s depuis la page de param&egrave;tres.
Nous vous recommandons de modifier votre mot de passe r&eacute;guli&egrave;rement afin d'&eacute;viter que votre mot de passe soit vol&eacute; et si c'est le cas, de le modifier imm&eacute;diatement.</p>
".$info_mail_securite."
<p><strong>Important : Si vous n'avez pas chang&eacute; votre mot de passe, changez-le et contactez-nous. Il se peut que quelqu'un ait pirat&eacute; votre compte et r&eacute;cup&eacute;r&eacute; votre mot de passe.</strong></p>
<p><a href='".$urlsite."'>Connectez-vous</a> pour acc&eacute;der &agrave; toute les param&egrave;tres de Comunic.</a></p>
";
//Envoi du message
include('inc/envoi_mail.php');
}
}
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=password" method='post'>
<table>
<tr><td>Ancien mot de passe</td><td><input type='password' name='oldpassword' /></td></tr>
<tr><td>Nouveau mot de passe</td><td><input type='password' name='newpassword' /></td></tr>
<tr><td>Confirmer le nouveau mot de passe</td><td><input type='password' name='confirmnewpassword' /></td></tr>
<tr><td>Confirmer la modification</td><td><input type='submit' value='Modifier le mot de passe' /></td></tr>
</table>
</form>
<?php

View File

@ -0,0 +1,64 @@
<?php
/**
* Change Piwik settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//On vérifie si une demande de modification a été envoyée
if(isset($_POST['send']))
{
//On vérifie quel a été le choix de l'utilisateur
$allow_piwik = (isset($_POST['allow_piwik']) ? 1 : 0);
//On met à jour la base de données
update_sql("utilisateurs", "allow_piwik = ?", "ID = ?", $bdd, array($allow_piwik, $_SESSION['ID']));
//On applique le nouveau choix
//Si Piwik est interdit, on l'applique dès maintenant
if($allow_piwik == 0)
$_SESSION['block_piwik'] = true;
//Sinon, on s'assure que son autorisation est bien appliquée.
elseif(isset($_SESSION['block_piwik']))
unset($_SESSION['block_piwik']);
//On actualise les informations de l'utilisateurs
$afficher = cherchenomprenom($_SESSION['ID'], $bdd);
}
?><style type="text/css">
.piwik_manager {
text-align: justify;
}
.form_piwik_manager {
text-align: center;
}
</style>
<div class="piwik_manager">
<h3>Gestion de Piwik</h3>
<p>Piwik est un outils d'analyse d'audience d&eacute;velopp&eacute; pour les sites web.</p>
<p>Piwik est le syst&egrave;me d'analyse d'audience de site web le plus respectueux de la vie priv&eacute;e du march&eacute; : les informations sont syst&eacute;matiquements anonymis&eacute;es avant d'&ecirc;tre enregistr&eacute;es, de plus si vous activer activer "Do No Track" sur votre navigateur, celui-ci n'envoi pas de donn&eacute;es vers le serveur. Sachez &eacute;galement que Piwik a fait l'objet d'une d&eacute;rrogation de la part de la CNIL, les webmasters optant pour ce dernier n'ont pas &agrave; afficher de banni&egrave;res sur leur site informant leurs utilisateurs que le site recueille des informations, et ce &agrave; deux conditions :</p>
<ol>
<li>Que les adresses IP des utilisateurs soient anonymis&eacute;es avant d'&ecirc;tre envoy&eacute;es au serveur.</li>
<li>Que les sites web affichent une page telle que celle-ci pour informer les utilisateurs et leur permettre de d&eacute;sactiver Piwik sur leur site.</li>
</ol>
<p>Nous avons besoin des informations envoy&eacute;es par Piwik afin de savoir notamment quels sont les navigateurs les plus utilis&eacute;s par nos utilisateurs afin de faire &eacute;voluer Comunic dans le but de le rendre plus performant avec ces derniers. Piwik nous permet &eacute;galement de d&eacute;terminer l'audience de Comunic par de simples graphiques affichant des valeurs approch&eacute;es de l'&eacute;volution des visites du site.<br />Cependant nous mettons un point d'honneur, en accord avec les directives de la CNIL, de vous permettre de d&eacute;sactiver Piwik. Cette d&eacute;sactivation entre en vigueur d&egrave;s que vous vous connectez &agrave; votre compte Comunic.</p>
<p>N'h&eacute;sitez pas &agrave; <a href="contact.php">nous contacter</a> pour plus d'informations</p>
<form class="form_piwik_manager" action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>" method="post">
<div class="input-control switch">
<label>
<input type="checkbox" name="allow_piwik" <?php echo ($afficher['allow_piwik'] == 1 ? "checked" : ""); ?> />
<span class="check"></span>
Autoriser Piwik <i>(Activ&eacute; par d&eacute;faut)</i>
</label>
</div>
<!-- Valider -->
<input type="hidden" name="send" value="1" />
<input type="submit" value="Enregistrer" />
</form>
</div>

View File

@ -0,0 +1,40 @@
<?php
/**
* Change personnal URL settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//Vérification de l'existence d'une demande de modification
if(isset($_POST['choix_url']))
{
if(verifie_validite_sous_repertoire($_POST['choix_url'], $bdd))
{
//Mise à jour de la BDD
$sql = "UPDATE utilisateurs SET sous_repertoire = ? WHERE ID = ?";
$requete = $bdd->prepare($sql);
$requete->execute(array($_POST['choix_url'], $_SESSION['ID']));
//Message de succès
?><script>affiche_notification_succes('Le nouveau sous-r&eacute;pertoire virtuel a &eacute;t&eacute; enregistr&eacute; et entre en vigueur d&egrave;s maintenant.', '', 7); </script><?php
//Rechargement des informations
$afficher = cherchenomprenom($_SESSION['ID'], $bdd);
}
else
echo "<script>affiche_notification_erreur('Impossible de continuer avec le sous-r&eacute;pertoire: soit il est d&eacute;ja utilis&eacute;, soit il est incorrect.', 'Erreur', 10); </script>";
}
//Message
?><h3>Choix du r&eacute;pertoire</h3><?php
//Explication
?><p>Sur cette page, vous pouvez choisir un sous-r&eacute;pertoire virtuel qui, lorsqu'il est ouvert, redirigera vers votre page.</p><?php
//Formulaire
?><form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>" method="post">
Choix de l'URL : <?php echo $urlsite; ?><input type="text" name="choix_url" value="<?php echo $afficher['sous_repertoire']; ?>" /> <input type="submit" value="Valider" />
</form><?php

View File

@ -0,0 +1,62 @@
<?php
/**
* Change RSS settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//On vérifie la demande d'une génération de clé
if(isset($_GET['generate']))
{
//Génération de la clé
if(isset($_GET['delete']))
$cle = "";
else
$cle = sha1(time().$_SESSION['ID'].$afficher['last_activity']);
//Enregistrement de la clé
$sql = "UPDATE utilisateurs SET flux_rss = ? WHERE ID = ?";
$modif = $bdd->prepare($sql);
if($modif->execute(array($cle, $_SESSION['ID'])))
{
//Message de succès
?><script type="text/javascript">affiche_notification_succes("La cl&eacute; du flux RSS a &eacute;t&eacute; modifi&eacute;e avec succ&egrave;s.");</script><?php
//Rechargement des informations
$afficher = cherchenomprenom($_SESSION['ID'], $bdd);
}
else
{
?><script type="text/javascript">affiche_notification_succes("La modification de la cl&eacute; du flux RSS a &eacute;chou&eacute;. Veuillez r&eacute;essayer.");</script><?php
}
}
?><h3>Flux RSS</h3>
<p>Vous permet de t&eacute;l&eacute;charger les notifications de Comunic sur votre logiciel de gestion de flux.</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>&generate" method="post">
<input type="submit" value="<?php echo ($afficher['flux_rss'] == "" ? "G&eacute;n&eacute;rer" : "Reg&eacute;n&eacute;rer"); ?> une cl&eacute; de flux RSS" />
</form>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?c=<?php echo $_GET['c']; ?>&generate&delete" method="post">
<input type="submit" class="danger" value="Supprimer la cl&eacute; de flux RSS" />
</form>
<p><u>Note :</u> Lorsque vous reg&eacute;n&eacute;rez une nouvelle cl&eacute;, l'ancienne cl&eacute; est &eacute;cras&eacute; et n'est plus utilisable.</p>
<p>Adresse actuelle du flux :</p>
<?php
if($afficher['flux_rss'] == "")
//Il n'y a pas de clé
echo "Aucune cl&eacute; pour le moment.<br />";
else
{
//Génération de l'adresse
$adresse_flux = $urlsite."rss.php?id=".$_SESSION['ID']."&key=".$afficher['flux_rss'];
echo "<p>Cette adresse vous permet d'acc&eacute;der au flux : <i><a href='".$adresse_flux."' target='_blank'>".$adresse_flux."</a></p>";
}

View File

@ -0,0 +1,66 @@
<?php
/**
* Listing of settings pages
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//Settings list
$settingsList = array(
//Left side menu
"settingsMenu" => array("file" => "settingsMenu.inc.php"),
//General settings
"general" => array("file" => "general.inc.php"),
//RSS personnal settings
"rss" => array("file" => "rss.inc.php"),
//People groups settings
"groupe_personnes" => array("file" => "groupePersonnes.inc.php"),
//Multi-auth settings
"multi_login" => array("file" => "multiLogin.inc.php"),
//Piwik configuration settings
"piwik" => array("file" => "piwik.inc.php"),
//Multi-pages settings (not released yet)
"pages" => array("file" => "pages.inc.php"),
//Appearance settings
"apparence" => array("file" => "appearance.inc.php"),
//Notifications settings
"notifications" => array("file" => "notifications.inc.php"),
//Personnal URL settings
"repertoire" => array("file" => "repertoire.inc.php"),
//Password settings
"password" => array("file" => "password.inc.php"),
//Avatar settings
"avatar" => array("file" => "avatar.inc.php"),
//Background image settings
"imgfond" => array("file" => "backgroundImg.inc.php"),
//Chat settings
"chat" => array("file" => "chat.inc.php"),
//Clean account settings
"clean_account" => array("file" => "cleanAccount.inc.php"),
//Change avatar visibility settings
"visibilite_avatar" => array("file" => "avatarVisibility.inc.php"),
//Export personnal datas
"exportinfo" => array("file" => "exportData.inc.php"),
//No page found whith the current request
"error" => array("file" => "error.inc.php"),
);

View File

@ -0,0 +1,34 @@
<?php
/**
* Change menu settings
*
* @author Pierre HUBERT
*/
if(!isset($_SESSION))
exit("Invalid call !");
//Menu Bar
?><nav class="sidebar <?php echo (($afficher['color_menu'] == "blue") || ($afficher['old_menu'] == 1) ? "light" : $afficher['color_menu']); ?>">
<ul>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>"><i class="icon-home"></i> <?php echo $lang[56]; ?></a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=groupe_personnes">Groupes de personnes</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=multi_login"><i class="icon-key"></i> Multi-authentification</a></li>
<!--<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=pages">Vos pages</a></li>-->
<li class="title">Personnalisation</li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=avatar"><i class="icon-user"></i> Avatar</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=imgfond"><i class="icon-pictures"></i> Image de fond</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=apparence"><i class="icon-tools"></i> Apparence</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=notifications"><i class="icon-comments-4"></i> Notifications</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=rss"><i class="icon-feed"></i> Flux RSS</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=repertoire"><i class="icon-globe"></i> Choix de l'URL</a></li>
<li class="title">Vie priv&eacute;e</li>
<?php if($activer_publique_chat == "oui") { ?><li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=chat"><i class="icon-comments"></i> Chat publique</a></li><?php } ?>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=clean_account"><i class="icon-cycle"></i> Nettoyage de votre compte</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=visibilite_avatar"><i class="icon-menu"></i> Visibilit&eacute; de votre avatar</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=piwik"><i class="icon-stats"></i> Gestion de Piwik</a></li>
<li><a href="<?php echo $_SERVER['PHP_SELF']; ?>?c=exportinfo"><i class="icon-share"></i> Export des informations personnelles</a></li>
</ul>
</nav>

Some files were not shown because too many files have changed in this diff Show More