Outils pour utilisateurs

Outils du site


projets:informatique:carnet_adresses

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
projets:informatique:carnet_adresses [2019/02/16 03:49] alexisprojets:informatique:carnet_adresses [2024/03/03 08:42] (Version actuelle) alexis
Ligne 1: Ligne 1:
 +{{tag>latex projet}}
 +
 ====== Mise en place d'un carnet d'adresse ====== ====== Mise en place d'un carnet d'adresse ======
- +Il y a quelques années, j'avais mis mon carnet d'adresse en ligne avec [[https://sourceforge.net/projects/php-addressbook/|PHP Address Book]]. Mais la solution choisie ne me convenait plus. Voici ce que j'ai fait pour mettre en place quelque chose de plus adapté à mes besoins.
-<WRAP todo> +
-  * <del>Modifier le template pour la génération de la liste en HTML (([[https://tex.stackexchange.com/questions/70059/generation-of-simple-css-less-html-with-htlatex|tex4ht - Generation of simple, CSS-less HTML with htlatex - TeX - LaTeX Stack Exchange]]))</del> +
-  * <del>Vérifier qu'il ne manque pas de contacts</del> +
-  * <del>Vérifier le script de sauvegarde</del> +
-  * <del>Supprimer mon ancien carnet d'adresse</del> +
-  * Supprimer la liste de contacts du sitemap +
-</WRAP> +
- +
-Il y a quelques années, j'avais mis mon carnet d'adresse en ligne avec [[https://sourceforge.net/projects/php-addressbook/|PHP Address Book]] +
-. Mais la solution choisie ne me convenait plus. Voici ce que j'ai fait pour mettre en place quelque chose de plus adapté à mes besoins.+
  
 Avec PHP Address Book, j'ai plusieurs fois perdu les adresses de certains de mes contacts. Parfois à cause de l'ergonomie peu adaptée, parfois à cause de vulnérabilités ({{:projets:informatique:exploits_of_a_mom.png?linkonly|injection SQL}}). En bref, ce n'était pas une situation acceptable pour conserver ce genre d'information. Avec PHP Address Book, j'ai plusieurs fois perdu les adresses de certains de mes contacts. Parfois à cause de l'ergonomie peu adaptée, parfois à cause de vulnérabilités ({{:projets:informatique:exploits_of_a_mom.png?linkonly|injection SQL}}). En bref, ce n'était pas une situation acceptable pour conserver ce genre d'information.
  
-Ma première idée fut de refaire quelque chose de similaire en utilisant [[https://symfony.com/|Symfony]] et le bundle [[https://symfony.com/doc/master/bundles/EasyAdminBundle/index.html|EasyAdminBundle]] +Ma première idée fut de refaire quelque chose de similaire en utilisant [[https://symfony.com/|Symfony]] et le bundle [[https://symfony.com/doc/master/bundles/EasyAdminBundle/index.html|EasyAdminBundle]]. J'utilise ce genre de chose tous les jours, je me suis donc dit que je pourrai faire ça rapidement. J'ai commencé à mettre en place et j'ai obtenu quelque chose de fonctionnel assez facilement. Par contre, ce n'était pas du tout travaillé en terme d'ergonomie et d'interface. Je me suis promis de revenir dessus mais je ne l'ai jamais fait. C'était il y a quelques mois.
-. J'utilise ce genre de chose tous les jours, je me suis donc dit que je pourrai faire ça rapidement. J'ai commencé à mettre en place et j'ai obtenu quelque chose de fonctionnel assez facilement. Par contre, ce n'était pas du tout travaillé en terme d'ergonomie et d'interface. Je me suis promis de revenir dessus mais je ne l'ai jamais fait. C'était il y a quelques mois.+
  
 En laissant mûrir ça, j'ai commencé à me dire que je n'avais pas besoin d'une application complète pour gérer mes quelques contacts. J'ai listé les choses que devait faire cette liste de contact afin de recentrer mes efforts. Après réflexion, voici ce que j'attends de cette liste : En laissant mûrir ça, j'ai commencé à me dire que je n'avais pas besoin d'une application complète pour gérer mes quelques contacts. J'ai listé les choses que devait faire cette liste de contact afin de recentrer mes efforts. Après réflexion, voici ce que j'attends de cette liste :
Ligne 28: Ligne 19:
 \documentclass{article} \documentclass{article}
  
-\usepackage[a4paper, margin=5mm]{geometry}+\usepackage[a4paper, bottom=15mm, top=1mm, left=1mm, right=1mm]{geometry}
 \usepackage{multirow} \usepackage{multirow}
 \usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
-\usepackage{marvosym} % For phone and cell icons+\usepackage{marvosym} % For phonecell, and email icons
 \usepackage{longtable} % For a table that spans on multiple pages \usepackage{longtable} % For a table that spans on multiple pages
 +\usepackage{hyperref}
 +\usepackage{fancyhdr}
 +
 +\def\mydate{\leavevmode\hbox{\twodigits\day-\twodigits\month-\the\year}}
 +\def\twodigits#1{\ifnum#1<10 0\fi\the#1}
  
 \newcommand\row[4]{% \newcommand\row[4]{%
- #1 & \rowcell{#2} & \rowcell{#3} & \rowcell{#4} \\%+ \rowcell{#1& \rowcell{#2} & \rowcell{#3} & \rowcell{#4} \\%
  \hline%  \hline%
 } }
-\newcommand\cell[1]{+\newcommand\cell[1]{\Mobilefone \ \href{tel:#1}{#1}
- \Mobilefone \ #1+\newcommand\phone[1]{\Telefon \ \href{tel:#1}{#1}} 
-+\newcommand\email[1]{\Email \ \href{mailto:#1}{#1}}
-\newcommand\phone[1]{+
- \Telefon \ #1% +
-}+
 \newcommand\rowcell[1]{% \newcommand\rowcell[1]{%
  \begin{tabular}{l}%  \begin{tabular}{l}%
Ligne 49: Ligne 42:
  \end{tabular}%  \end{tabular}%
 } }
 +
 +\pagestyle{fancy}
 +\fancyhf{}
 +\cfoot{\tiny Généré le \mydate}
  
 \begin{document} \begin{document}
  \begin{longtable}{llll}  \begin{longtable}{llll}
  \hline  \hline
- \row{Prénom Nom}{\cell{06.07.08.09.00}\\\phone{01.02.03.04.05}}{prenom.nom@example.org \\ nom.prenom@example.org}{1 rue de l'example \\ 77777 Example}%+ \row{Prénom Nom}{\cell{06.07.08.09.00}\\\phone{01.02.03.04.05}}{\email{prenom.nom@example.org}\\\email{nom.prenom@example.org}}{1 rue de l'example \\ 77777 Example}% 
 +… 
 + \row{Prénom Nom}{\cell{06.07.08.09.00}\\\phone{01.02.03.04.05}}{\email{prenom.nom@example.org}\\\email{nom.prenom@example.org}}{1 rue de l'example \\ 77777 Example}%
  \end{longtable}  \end{longtable}
 \end{document} \end{document}
Ligne 66: Ligne 65:
 htlatex <file.tex> htlatex <file.tex>
 </code> </code>
-Ça génère une page HTML avec une mise en page très simple. Je trouve que ce n'est pas très utilisable tel quel, car les commandes ''\Telefon'' et ''\Mobilefone'' sont affichées respectivement en ''T'' et ''H'' ((C'est le [[https://www.ctan.org/pkg/marvosym|package marvosym]] qui utilise une police différente pour afficher des symboles à la place des lettres.)), le tableau n'utilise pas toute la place disponible et il est difficile de savoir quelles coordonnées correspondent à quel contact.+Ça génère une page HTML avec une mise en page très simple. Je trouve que ce n'est pas très utilisable tel quel, car les commandes ''\Telefon''''\Mobilefone'' et ''Email'' sont affichées respectivement en ''T''''H'' et ''k'' ((C'est le [[https://www.ctan.org/pkg/marvosym|package marvosym]] qui utilise une police différente pour afficher des symboles à la place des lettres.)), le tableau n'utilise pas toute la place disponible et il est difficile de savoir quelles coordonnées correspondent à quel contact.
  
-Pour régler ces problèmes((Il y a beaucoup d'informations disponibles sur les deux pages suivantes : [[https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial|tex4ht tutorial]] et +Pour régler ces problèmes((Il y a beaucoup d'informations utiles sur les deux pages suivantes : [[https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial|tex4ht tutorial]] et 
 [[http://cvr.cc/?p=504|TeX4ht: Options]] [[http://cvr.cc/?p=504|TeX4ht: Options]]
-)), on commence par redéfinir les commandes ''\Telefon'' et ''\Mobilefone'' mais uniquement dans le cas de la conversion en HTML. Pour cela, on va créer le fichier ''marvosym.4ht'' ((Le nom est important car il doit correspondre au fichier ''sty'' correspondant, ici ''marvosym.sty''.)) qui va remplacer la commande initiale par le contenu du paramètre de la commande :+)), on commence par redéfinir les commandes ''\Telefon''''\Mobilefone'' et ''Email'' mais uniquement dans le cas de la conversion en HTML. Pour cela, on va créer le fichier ''marvosym.4ht'' ((Le nom est important car il doit correspondre au fichier ''sty'' correspondant, ici ''marvosym.sty''.)) qui va remplacer la commande initiale par le contenu du paramètre de la commande :
 <code latex> <code latex>
 \NewConfigure{Telefon}{1} \NewConfigure{Telefon}{1}
Ligne 76: Ligne 75:
 \NewConfigure{Mobilefone}{1} \NewConfigure{Mobilefone}{1}
 \renewcommand\Mobilefone{\a:Mobilefone} \renewcommand\Mobilefone{\a:Mobilefone}
 +\NewConfigure{Email}{1}
 +\renewcommand\Email{\a:Email}
 </code> </code>
 Ensuite, on cré un fichier CSS qui va contenir l'ensemble des règles à appliquer à notre page HTML ((Le nom est important, il ne doit pas correspondre au nom du fichier ''tex'' sinon il sera écrasé à chaque compilation.)) : Ensuite, on cré un fichier CSS qui va contenir l'ensemble des règles à appliquer à notre page HTML ((Le nom est important, il ne doit pas correspondre au nom du fichier ''tex'' sinon il sera écrasé à chaque compilation.)) :
Ligne 96: Ligne 97:
 .cell::after { .cell::after {
   content: "\1F4F1";   content: "\1F4F1";
 +}
 +.email::after {
 +  content: "\1F4E7";
 } }
 </code> </code>
Ligne 103: Ligne 107:
 \Configure{Telefon}{\HCode{<span class="landline"></span>}} \Configure{Telefon}{\HCode{<span class="landline"></span>}}
 \Configure{Mobilefone}{\HCode{<span class="cell"></span>}} \Configure{Mobilefone}{\HCode{<span class="cell"></span>}}
 +\Configure{Email}{\HCode{<span class="email"></span>}}
 \begin{document} \begin{document}
 \CssFile[<file.css>] \CssFile[<file.css>]
Ligne 113: Ligne 118:
 htlatex <file.tex> "<file.cfg>,css-in" htlatex <file.tex> "<file.cfg>,css-in"
 </code> </code>
 +<WRAP tip>
 +Pour ne pas avoir à me souvenir de cette commande, je l'ai incluse dans un fichier //MAKE//.
 +</WRAP>
  
 Maintenant, il ne reste plus qu'à mettre le fichier en ligne et à la sécuriser. Pour cela, on va utiliser le système de sécurité de Apache. Les besoins étant limités, ça suffira largement ((En tout cas, je l'espère)). Maintenant, il ne reste plus qu'à mettre le fichier en ligne et à la sécuriser. Pour cela, on va utiliser le système de sécurité de Apache. Les besoins étant limités, ça suffira largement ((En tout cas, je l'espère)).
projets/informatique/carnet_adresses.1550317748.txt.gz · Dernière modification : 2019/02/16 03:49 de alexis