Page 1 sur 2
aide pour ameliorer une appli
Posté : 20 août 2014, 16:49
par baxterbax
Bonjour,
Etant à la recherche d'une appli php me permettant de gérer mes contacts, je suis tombé sur ce site "
www.agora-project.net" , il n'y a que la partie annuaire de contact qui m’intéresse, j'ai testé et ça colle avec ce que je recherche, le seul bémol c'est l'exportation des contacts qui ne permet pas de faire une sélection .
l'idée est que je puisse au final exporter que ceux qui m’intéressent et non la totalité du dossier dans lequel se trouvent les contacts. je m'adresse ici car je trouve que leur forum n' est pas très actif. si quelqu'un veut bien m'aider à améliorer l'appli.. merci par avance
Re: aide pour ameliorer une appli
Posté : 20 août 2014, 17:13
par Elie
Peux-tu me donner le nom de la page qui affiche la liste des contacts et celle qui les exports ?
Il suffirait de mettre un checkbox devant chaque nom et de dire de n'exporter que les noms cochés !
Re: aide pour ameliorer une appli
Posté : 20 août 2014, 17:53
par baxterbax
Peux-tu me donner le nom de la page qui affiche la liste des contacts et celle qui les exports ?
Il suffirait de mettre un checkbox devant chaque nom et de dire de n'exporter que les noms cochés !
merci pour ton aide,
je te donne l'adresse de la page qui liste les contacts.
http://localhost/agora/module_contact/i ... _dossier=2
et la fenêtre pop up qui sert à exporter les contacts
http://localhost/agora/divers/contact_e ... _dossier=2
Re: aide pour ameliorer une appli
Posté : 20 août 2014, 18:01
par baxterbax
Re: aide pour ameliorer une appli
Posté : 20 août 2014, 19:06
par Elie
Alors la question est :
- J'ai vu qu'il y a un système pour cocher des gens.
Tu preferes te faire chier a cocher les membres que tu veux exporter
ou décocher les membres que tu ne veux pas exporter ?
Re: aide pour ameliorer une appli
Posté : 20 août 2014, 19:15
par baxterbax
merci, je prefere decocher les contacts.
Re: aide pour ameliorer une appli
Posté : 20 août 2014, 19:53
par Elie
Je me suis bien amusé.
Pour le don, tu veux mon adresse paypal ?
Remplace le fichier contact_export.php
<?php
//// INIT
if($_REQUEST["type_export_import"]=="users") {require "../module_utilisateurs/commun.inc.php";}
else{
require "../module_contact/commun.inc.php";
droit_acces_controler($objet["contact_dossier"], $_REQUEST["id_dossier"], 1);
}
require "contact_import_export.inc.php";
//// EXPORTE LES CONTACTS / UTILISATEURS
////
if(isset($_REQUEST["type_export_import"]) && isset($_POST["export_format"]))
{
//// LISTE DES CONTACTS
$contenu_export = "";
if($_REQUEST["type_export_import"]=="users") {$liste_contacts = db_tableau("SELECT * FROM gt_utilisateur WHERE 1 ".sql_utilisateurs_espace());}
else {$liste_contacts = db_tableau("SELECT * FROM gt_contact WHERE id_dossier='".intval($_REQUEST["id_dossier"])."' ".sql_affichage($objet["contact"],$_REQUEST["id_dossier"])." AND `id_contact` IN (".$_POST['id_to_export'].")");}
//// EXPORT CSV
if(preg_match("/csv/i",$_POST["export_format"]))
{
// INIT
$tab_csv = $formats_csv[$_POST["export_format"]];
$nom_fichier = $_POST["export_format"].".csv";
// ENTETE DU FICHIER CSV
foreach($tab_csv["champs"] as $champ_agora => $champ_csv) { $contenu_export .= $tab_csv["delimiteur"].$champ_csv.$tab_csv["delimiteur"].$tab_csv["separateur"]; }
$contenu_export .= "\n";
// AJOUT DE CHAQUE CONTACT (exporte les champs de chaque contacts)
foreach($liste_contacts as $contact)
{
foreach($tab_csv["champs"] as $champ_agora => $champ_csv)
{
if($tab_csv["delimiteur"]=="'") {$contact[$champ_agora] = addslashes($contact[$champ_agora]);}
if(isset($contact[$champ_agora]) && $contact[$champ_agora]!="") {$contenu_export .= $tab_csv["delimiteur"].$contact[$champ_agora].$tab_csv["delimiteur"].$tab_csv["separateur"];}
else {$contenu_export .= $tab_csv["separateur"];}
}
$contenu_export .= "\n";
}
}
//// EXPORT LDIF
elseif($_POST["export_format"]=="ldif")
{
// INIT
$nom_fichier = "contact.ldif";
// AJOUT DE CHAQUE CONTACT
foreach($liste_contacts as $contact)
{
$contenu_export .= "dn: cn=".$contact["prenom"]." ".$contact["nom"]."\n";
$contenu_export .= "objectclass: top\n";
$contenu_export .= "objectclass: person\n";
$contenu_export .= "objectclass: organizationalPerson\n";
$contenu_export .= "cn: ".$contact["prenom"]." ".$contact["nom"]."\n";
$contenu_export .= "givenName: ".$contact["prenom"]."\n";
$contenu_export .= "sn: ".$contact["nom"]."\n";
if($contact["mail"]!="") {$contenu_export .= "mail: ".$contact["mail"]."\n";}
if($contact["telephone"]!="") {$contenu_export .= "homePhone: ".$contact["telephone"]."\n";}
if($contact["telephone"]!="") {$contenu_export .= "telephonenumber: ".$contact["telephone"]."\n";}
if($contact["fax"]!="") {$contenu_export .= "fax: ".$contact["fax"]."\n";}
if($contact["telmobile"]!="") {$contenu_export .= "mobile: ".$contact["telmobile"]."\n";}
if($contact["adresse"]!="") {$contenu_export .= "homeStreet: ".$contact["adresse"]."\n";}
if($contact["ville"]!="") {$contenu_export .= "mozillaHomeLocalityName: ".$contact["ville"]."\n";}
if($contact["codepostal"]!="") {$contenu_export .= "mozillaHomePostalCode: ".$contact["codepostal"]."\n";}
if($contact["pays"]!="") {$contenu_export .= "mozillaHomeCountryName: ".$contact["pays"]."\n";}
if($contact["societe_organisme"]!="") {$contenu_export .= "company: ".$contact["societe_organisme"]."\n";}
if($contact["fonction"]!="") {$contenu_export .= "title: ".$contact["fonction"]."\n";}
if($contact["commentaire"]!="") {$contenu_export .= "description: ".$contact["commentaire"]."\n";}
$contenu_export .= "\n";
}
}
///// LANCEMENT DU TELECHARGEMENT
telecharger($nom_fichier, null, $contenu_export);
exit;
}
//// HEADER & TITRE DU POPUP
////
require_once PATH_INC."header.inc.php";
titre_popup(menu_import_export());
?>
<script type="text/javascript">
resizePopupLightbox(500,250);
$(document).ready(function(){
var id = Array();
$("#contenu_principal_table .div_elem_select input[type=checkbox]", opener.document).each(function() {
id.push($(this).attr('value').substr(8));
});
$('#id_to_export').val(id);
});
</script>
<style type="text/css">
body { background-image:url('<?php echo PATH_TPL; ?>module_utilisateurs/fond_popup.png'); font-weight:bold; }
</style>
<form action="<?php echo php_self(); ?>" method="post" style="text-align:center;">
<?php echo $trad["export_format"]; ?>
<select name="export_format">
<?php
foreach($formats_csv as $format_csv=>$infos_csv) { echo "<option value='".$format_csv."'>".strtoupper($format_csv)."</option>"; }
?>
<option value='ldif'>LDIF</option>
</select>
<input type="submit" value="<?php echo $trad["valider"]; ?>" class="button" />
<input type="hidden" name="type_export_import" value="<?php echo $_REQUEST["type_export_import"]; ?>" />
<input type="hidden" name="id_dossier" value="<?php echo @$_REQUEST["id_dossier"]; ?>" />
<input type="hidden" name="id_to_export" id="id_to_export" value="" />
</form>
<?php require PATH_INC."footer.inc.php"; ?>
Re: aide pour ameliorer une appli
Posté : 21 août 2014, 09:00
par baxterbax
merci encore pour ton aide, j'ai remplacé le fichier contact_export.php et je viens de tester mais cela ne change rien à la page initiale, je ne peux pas selectionner les contacts a exporter.
Re: aide pour ameliorer une appli
Posté : 21 août 2014, 09:26
par Elie
Euh bah chez moi ca marche pourquoi pas chez toi ...
As-tu teamviewer d'installé ? Peux-tu me contacter par MP
Re: aide pour ameliorer une appli
Posté : 21 août 2014, 09:46
par baxterbax
j'ai ceci quand j'ouvre le fichier .csv
<h4>error: SELECT * FROM gt_contact WHERE id_dossier='4' AND `id_contact` IN ()</h4><br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>C:\xampp1\htdocs\agora\divers\contact_export.php</b> on line <b>29</b><br />
Re: aide pour ameliorer une appli
Posté : 21 août 2014, 09:49
par baxterbax
desolé ne tient pas compte du message précedent, il n'y a pas d'erreur dans le fichier. csv
juste que je ne vois nul part ou selectionner les contacts à exporter.
Re: aide pour ameliorer une appli
Posté : 21 août 2014, 10:33
par Elie
Tu cliques sur "Tout selectionner" et tu décoches ceux que tu ne veux pas.
Re: aide pour ameliorer une appli
Posté : 21 août 2014, 11:03
par baxterbax
super big merci, je n'avais pas vu les choses comme ça, alors ça va sans doute me coûter un max cette affaire. mais j'ai encore plusieurs questions,
est-ce que c'est faisable de selectionner plusieurs dossiers de la même façon que les contatcs et d'en exporter tous les contacts ?
et la seconde, crois tu qu'il facilement faisable au même titre que l'on peut déplacer un contacts d'un dossier à l'autre de les dupliquer pour qu'ils se retrouvent dans 2 dossiers à la fois ?
ça c'est le code qui se trouve dans la page commun.inc.php
//// DEPLACEMENT D'UN CONTACT
////
function deplacer_contact($id_contact, $id_dossier_destination)
{
global $objet;
//// Accès en écriture au contact et au dossier de destination
if(droit_acces($objet["contact"],$id_contact)>=2 && droit_acces($objet["contact_dossier"],$id_dossier_destination)>=2)
{
//// Deplace à la racine : donne les droits d'accès de l'ancien dossier
racine_copie_droits_acces($objet["contact"], $id_contact, $objet["contact_dossier"], $id_dossier_destination);
//// On déplace le contact
db_query("UPDATE gt_contact SET id_dossier=".db_format($id_dossier_destination)." WHERE id_contact=".db_format($id_dossier_destination));
}
//// Logs
//add_logs("modif", $objet["contact"], $id_contact);
}
Re: aide pour ameliorer une appli
Posté : 21 août 2014, 12:22
par Elie
- Exporter tous les contacts de tous les dossiers :
Ca doit pas être bien compliqué.
Je te fais un <select> avec 1- Les contacts sélectionnés dans ce dossier ou 2- Tous les contacts de tous les dossiers.
(Il faudra du coup mettre un filtre pour pas exporter 2 fois le meme contact si on fait le truc pour dupliquer)
EDiT : Je vois que en fait tu veux pouvoir selectionner les dossiers. Donc oui c'est possible aussi mais du coup le principe de contacts selectionnés sera annulé dans cette demarche uniquement.
- Copier un contact dans 2 dossiers :
Comme le montre le code, un contact est associé a 1 seul dossier.
Seul solution "Dupliquer la fiche" de ce contact avec le nouveau id_dossier.
Ca evitera de rempenser toute la logique du systeme car je pourrais mettre en place un systeme qui met plusieurs numero dans le champ id_dossier
Re: aide pour ameliorer une appli
Posté : 21 août 2014, 14:42
par baxterbax
merci pour tes réponses, et sans vouloir abuser, saurais tu comment modifier le code pour dupliquer le contact ? merci par avance