From: x2000habouzit Date: Mon, 16 Feb 2004 11:06:49 +0000 (+0000) Subject: mescontacts.php X-Git-Tag: xorg/old~1862 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=ffcff36e0d0c9f3c5a747c483c49516c559c311e;p=platal.git mescontacts.php --- diff --git a/configs/menu.conf.php b/configs/menu.conf.php index 98cc6f7..8dc8058 100644 --- a/configs/menu.conf.php +++ b/configs/menu.conf.php @@ -6,7 +6,7 @@ if(logged()) { 'Personnaliser' => Array( 'Mes emails' => 'emails.php' , 'Mon profil' => '###url###' , - 'Mes contacts' => '###url###' , + 'Mes contacts' => 'mescontacts.php' , 'Mon mot de passe' => 'motdepassemd5.php' , 'Mes préférences' => 'preferences.php' ), diff --git a/etat_migration b/etat_migration index 65749d6..b08dfd1 100644 --- a/etat_migration +++ b/etat_migration @@ -83,7 +83,6 @@ Etat | Ancien nom | Nouveau nom | emploi_public.php | | evenements.php | | index.coupure.php | - | mescontacts.php | | mescontacts_pdf.php | | pg.confirm.php | | pg.php | @@ -182,6 +181,7 @@ xx | getphoto.php | - xx | groupex.php | groupex/index.php xx | index.php | - xx | login.php | - +xx | mescontacts.php | - xx | motdepassemd5.php | - xx | nbpromo2.php | stats/nb_by_promo.php xx | newsletter.php | - diff --git a/htdocs/css/default.css b/htdocs/css/default.css index 7491e5a..87730df 100644 --- a/htdocs/css/default.css +++ b/htdocs/css/default.css @@ -5,7 +5,8 @@ I. Styles par défauts. balises sans attributs ou classes sans contexte II. Styles

,

, ...

,

, ,
  • , ... III. Tableaux bicolores Tableaux à lignes alternées, en taille normale, ou tiny -IV. Tableau de u choix de skins +IV. Tableau de choix de skins +V. contacts ..:: Appendices ::.. Choix de la skin @@ -28,6 +29,8 @@ hr { width: 90%; text-align: center } .center { text-align: center; } .right { text-align: right; } .middle { vertical-align: middle; } +.smaller { font-size: smaller; font-style: italic; } + /**: II. :**/ @@ -91,11 +94,6 @@ li.spaced { text-align: justify; } -p.smaller, div.smaller { - font-size: smaller; - font-style: italic; -} - td.half { width: 50%; padding: 4px; } /**: III. :**/ @@ -166,6 +164,53 @@ table.tinybicol td.info, table.bicol td.info { } #skin td.skidroite { padding: 0; } +/**: V. :**/ +div.contact-list { + width: 98%; + margin-left: 1%; +} + +div.contact-list div.contact { + width: 100%; + text-align: left; + border-top: 1px solid #003399; + background: #F4D09C; + color: inherit; +} + +div.contact div.nom { + font-weight: bold; + width: 35%; + float: left; +} + +div.contact div.appli { + width: 50%; + float: left; +} + +div.contact div.bits { + text-align: right; + width: 15%; + float: left; +} + +div.bits .smaller { display: none; } +div.contact:hover div.bits .smaller { display: inline; } + +div.contact div.long { + width: 100%; + clear: both; + background: white; + color: inherit; + padding-top: 1px; + padding-bottom: 1px; +} + +div.long table { width: 100%; } +div.long td.lt { width: 35%; } +div.long td.rt { width: 65%; } + /*************************/ /* ..:: Apendices ::.. */ /*************************/ @@ -275,4 +320,4 @@ table.tinybicol td.info, table.bicol td.info { vertical-align: top; } /* vim: set et ts=4 sts=4 sw=4: */ -/* $Id: default.css,v 1.19 2004-02-15 15:45:29 x2000habouzit Exp $ */ +/* $Id: default.css,v 1.20 2004-02-16 11:06:49 x2000habouzit Exp $ */ diff --git a/htdocs/images/ajouter.gif b/htdocs/images/ajouter.gif new file mode 100644 index 0000000..bbb6d38 Binary files /dev/null and b/htdocs/images/ajouter.gif differ diff --git a/htdocs/images/loupe.gif b/htdocs/images/loupe.gif new file mode 100644 index 0000000..2077936 Binary files /dev/null and b/htdocs/images/loupe.gif differ diff --git a/htdocs/images/retirer.gif b/htdocs/images/retirer.gif new file mode 100644 index 0000000..a1f0913 Binary files /dev/null and b/htdocs/images/retirer.gif differ diff --git a/htdocs/images/vcard.png b/htdocs/images/vcard.png new file mode 100644 index 0000000..603b08c Binary files /dev/null and b/htdocs/images/vcard.png differ diff --git a/htdocs/mescontacts.php b/htdocs/mescontacts.php new file mode 100644 index 0000000..1c22a0f --- /dev/null +++ b/htdocs/mescontacts.php @@ -0,0 +1,61 @@ +assign('erreur', "

    Contact {$_REQUEST['user']} retiré !

    \n"); + } + + // si l'utilisateur demande l'ajout de qqun à sa liste + } elseif ($_REQUEST["action"]=="ajouter") { + + if (($res = mysql_query("SELECT user_id FROM auth_user_md5 WHERE username='".$_REQUEST["user"]."'")) && mysql_num_rows($res)==1) { + list($cont_user_id) = mysql_fetch_row($res); + if (mysql_query("INSERT INTO contacts set uid = '{$_SESSION['uid']}', contact = '$cont_user_id'")) { + $page->assign('erreur', '

    Contact ajouté !

    '); + } else + $page->assign('erreur', '

    Contact déjà dans la liste !

    '); + } else { + $page->assign('erreur', '

    Utilisateur inexistant ou non inscrit !

    '); + } + } +} + +$sql = "SELECT contact AS id, + a.*, + i.deces != 0 AS dcd, i.matricule_ax, + e.entreprise, es.label AS secteur, ef.label AS fonction, + n.text AS nat, + ad0.text AS app0text, ad0.url AS app0url, ai0.type AS app0type, + ad1.text AS app1text, ad1.url AS app1url, ai1.type AS app1type, + adr.ville, gp.pays, gr.name AS region + FROM contacts AS c + INNER JOIN auth_user_md5 AS a ON (a.user_id = c.contact) + INNER JOIN identification AS i ON (a.matricule = i.matricule) + LEFT JOIN entreprises AS e ON (e.entrid = 1 AND e.uid = a.user_id) + LEFT JOIN emploi_secteur AS es ON (e.secteur = es.id) + LEFT JOIN emploi_naf AS ef ON (e.fonction = ef.id) + LEFT JOIN nationalites AS n ON (a.nationalite = n.id) + LEFT JOIN applis_ins AS ai0 ON (a.user_id = ai0.uid AND ai0.ordre = 0) + LEFT JOIN applis_def AS ad0 ON (ad0.id = ai0.aid) + LEFT JOIN applis_ins AS ai1 ON (a.user_id = ai1.uid AND ai1.ordre = 1) + LEFT JOIN applis_def AS ad1 ON (ad1.id = ai1.aid) + LEFT JOIN adresses AS adr ON (a.user_id = adr.uid AND FIND_IN_SET('active', adr.statut)) + LEFT JOIN geoloc_pays AS gp ON (adr.pays = gp.a2) + LEFT JOIN geoloc_region AS gr ON (adr.pays = gr.a2 AND adr.region = gr.region) + WHERE c.uid = {$_SESSION['uid']} + ORDER BY a.nom, a.prenom"; +mysql_query($sql); +echo mysql_error(); + +$page->mysql_assign($sql,'contacts','nb_contacts'); + +$page->display(); +?> diff --git a/htdocs/mescontacts_ldif.php b/htdocs/mescontacts_ldif.php index e28bb1b..f7e2ee0 100644 --- a/htdocs/mescontacts_ldif.php +++ b/htdocs/mescontacts_ldif.php @@ -44,17 +44,13 @@ mysql_free_result($req); * On y ajoute les infos d'adresses */ $req = mysql_query( - "SELECT c.contact AS id, adr1, adr2, adr3, cp, ville, gp.pays, gr.name, tel, fax, - FIND_IN_SET('courrier', a.statut) AS courrier + "SELECT c.contact AS id, adr1, adr2, adr3, cp, ville, gp.pays, gr.name, tel, fax FROM contacts AS c - INNER JOIN adresses AS a ON (a.uid = c.contact) + INNER JOIN adresses AS a ON (a.uid = c.contact AND FIND_IN_SET('active', a.statut)) LEFT JOIN geoloc_pays AS gp ON (a.pays = gp.a2) LEFT JOIN geoloc_region AS gr ON (a.pays = gr.a2 AND a.region = gr.region) - WHERE c.uid = {$_SESSION['uid']} AND FIND_IN_SET('active', a.statut) - AND NOT FIND_IN_SET('res-secondaire', a.statut) - ORDER BY c.contact - " -); + WHERE c.uid = {$_SESSION['uid']} + ORDER BY c.contact"); echo mysql_error(); while($line = mysql_fetch_assoc($req)) $contacts[$line['id']]['home'] = ensure_adr($line); diff --git a/include/applis.func.inc.php b/include/applis.func.inc.php new file mode 100644 index 0000000..30eb66d --- /dev/null +++ b/include/applis.func.inc.php @@ -0,0 +1,39 @@ +'; + $res=mysql_query("select * from applis_def order by text"); + while ($arr_appli=mysql_fetch_array($res)) { + echo '\n"; + } +} + */ + +/** formatte une ecole d'appli pour l'affichage + */ +function applis_fmt($params, &$smarty) { + extract($params); + $txt=""; + if (($type!="Ingénieur")&&($type!="Diplôme")) + $txt .= $type; + if ($text!="Université") { + if ($txt) $txt .= " "; + if ($url) + $txt .= "$text"; + else + $txt .= $text; + } + return $txt; +} +$page->register_function('applis_fmt','applis_fmt'); + +?> diff --git a/include/xorg.page.inc.php b/include/xorg.page.inc.php index dfaa902..c1d4744 100644 --- a/include/xorg.page.inc.php +++ b/include/xorg.page.inc.php @@ -6,7 +6,22 @@ function block_dynamic($param, $content, &$smarty) { return $content; } -function function_dyn($params) { return stripslashes(htmlentities(implode(' ',$params))); } +function function_implode($params) { + $sep = ' '; + if(isset($params['sep'])) { + $sep = $params['sep']; + unset($params['sep']); + } + foreach($params as $key=>$val) + if(empty($params[$key])) + unset($params[$key]); + + return stripslashes(htmlentities(implode($sep,$params))); +} + +function function_dyn($params) { + return stripslashes(htmlentities(implode(' ',$params))); +} class XorgPage extends DiogenesCorePage { var $_page_type; @@ -31,6 +46,7 @@ class XorgPage extends DiogenesCorePage { $this->DiogenesCorePage(); $this->register_block('dynamic', 'block_dynamic', false); $this->register_function('dyn', 'function_dyn', false); + $this->register_function('implode', 'function_implode'); // if necessary, construct new session if (empty($_SESSION['session'])) diff --git a/templates/include/x_inscrit.tpl b/templates/include/x_inscrit.tpl new file mode 100644 index 0000000..988b9d8 --- /dev/null +++ b/templates/include/x_inscrit.tpl @@ -0,0 +1,77 @@ +{* $Id: x_inscrit.tpl,v 1.1 2004-02-16 11:06:51 x2000habouzit Exp $ *} + +
    +
    + {$c.nom} {$c.prenom} + {if $c.epouse}
    ({$c.epouse} {$c.nom}){/if} + {if $c.dcd}(décédé){/if} +
    +
    + {strip} + ( + X{$c.promo}{if $c.app0text}, + {applis_fmt type=$c.app0type text=$c.app0text url=$c.app0url} + {/if}{if $c.app1text}, + {applis_fmt type=$c.app1type text=$c.app1text url=$c.app1url} + {/if} + ) + {/strip} +
    +
    + Afficher les détails + Afficher la carte de visite + + {$show_action} aux/des contacts + + {perms level='admin'} + AX + {/perms} + {$c.date|date_format:"%d-%m-%Y"} +
    +
    + + {if $c.nat} + + + + + {/if} + {if $c.web} + + + + + {/if} + {if $c.pays || $c.ville || $c.pays} + + + + + {/if} + {if $c.mobile} + + + + + {/if} + {if $c.entreprise} + + + + + {/if} + {if $c.libre} + + + + + {/if} +
    Nationalité:{$c.nat}
    Page web:{$c.web}
    Géographie:{implode sep=", " s1=$c.ville s2=$c.region s3=$c.pays}
    Mobile:{$c.mobile}
    Profession: + {$c.entreprise|escape:"html"} + {if $c.secteur}( {$c.secteur|escape:"html"} ){/if} + {if $c.fonction}
    {$c.fonction|escape:"html"} ){/if} +
    Commentaire:{$c.libre|escape:"html"|nl2br}
    +
    +
    + +{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/mescontacts.tpl b/templates/mescontacts.tpl new file mode 100644 index 0000000..49d0a5f --- /dev/null +++ b/templates/mescontacts.tpl @@ -0,0 +1,43 @@ +{* $Id: mescontacts.tpl,v 1.1 2004-02-16 11:06:50 x2000habouzit Exp $ *} + +{dyn s=$erreur} + +
    + Ma liste personnelle de contacts +
    + +
    + +

    + Ajouter la personne suivante à ma liste de contacts (prenom.nom) : +   + +

    +
    +

    + Tu peux également rajouter des camarades dans tes contacts lors d'une recherche dans l'annuaire : + il te suffit de cliquer sur l'icône ajout contact en face de son nom dans les résultats ! +

    + +{dynamic} +{if $nb_contacts} +

    + Pour récupérer ta liste de contacts dans un PDF imprimable :
    + [Triée par promo] + [Triée par noms] +

    + +
    + +
    +{foreach item=contact from=$contacts} +{include file=include/x_inscrit.tpl c=$contact show_action="retirer"} +{/foreach} +
    + +{else} +

    Actuellement ta liste de contacts est vide...

    +{/if} +{/dynamic} + +{* vim:set et sw=2 sts=2 sws=2: *}