Envoyer des mails depuis un serveur unix avec mailx!

La méthode mailx est très largement utilisée pour envoyer des mails depuis un serveur unix. Problème, dans la majorité des sources que l’on trouve sur internet on peut soit envoyer une pièce jointe, soit envoyer un contenu …. A la limite en passant par un fichier plat certaines méthodes permettraient d’envoyer un texte suivi de fichier texte … bref pas top!

Rassurez vous, rien de bien sorcier pour arrivez à vos fins! Pour envoyer un « message » au « destinataire » depuis l’adresse mail « mailFrom » avec en objet « object » et en pièce jointe « ficlog » … c’est la commande suivante!

(echo « ${message} \n » ; uuencode ${ficlog} ${ficlogName}) | mailx -s « ${object} » -r « ${mailFrom} » « ${destinataire} »

Dans la première partie on concatene le texte du message avec le fichier « ficlog ». Le retour a la ligne est très important pour séparer les deux éléments. Il est nécessaire de transcoder le fichier avec uuencode afin que le mail reconnaisse un encodage de pièce jointe. Dans le mail, le fichier aura comme nom le contenu de la variable « ficlogName ». Le reste du mailx est assez classique … bien évidement pour que le mail parte il faut que au niveau système le serveur de mail ait été bien paramétré!

Vous n’êtes pas obligés de mettre des guillemets autours des variables mais au moins pas de problème avec les espaces si vous entrez en dur du texte à la place d’une variable!

Transcoder un répertoire de macRoman vers UTF-8

Cette après midi je me suis penché sur un problème idiot, dans le cadre d’un projet java j’ai commencé à travailler sur mon mac. Le java étant portable, j’ai voulu le tester sous windows et là … échec. Tous les accents et autres caractères spéciaux ne sont pas reconnus et rendent très mal à l’écran.

Le projet est trop avancé pour tout modifier à la main, il faut une méthode automatique. Pour ce faire, aller dans un terminal, rendez vous dans le dossier à transcoder et utiliser la commande suivante

for i in *.java; do iconv -f macRoman -t utf-8 $i > u$i; done

Le principe : dans le répertoire, pour tous les fichiers se terminant par java, changer l’encodage de macRoman vers utf-8. Le fichier « Fichier.java » transcodé sera renommé en « uFichier.java ». Vous pouvez aussi jouer avec un ../transo/$i pour créer un répertoire transco qui contiendra les fichiers transcodés et seulement eux!

Et hop le tour est joué. Une fois retourné dans Eclipse,il ne faut pas oublier de changer le setting de l’encodage pour que le nouveau format soit pris en compte!

Ne pas afficher d’articles sur une page « showcase » du thème Twenty Eleven

Ce matin j’ai décidé de modifier une des pages d’un site sur lequel je travaille afin de ne pas remonter la colonne latérale sur celle ci. Le modèle ‘showcase’ présent par défaut me semble tout indiqué, malheureusement il a l’inconvénient de récupérer les derniers articles publiés et d’afficher dans son intégralité le premier de ceux ci.

Comment faire ? Direction l’éditeur de thème! (Dans la console administrateur -> Thème -> Editeur). Je sélectionne ensuite « Modèle de page showcase Templace (showcase.php). Je repère la partie du code qui permet d’afficher le premier article :

if ( $recent->have_posts() ) : $recent->the_post();
// Set $more to 0 in order to only get the first part of the post.
global $more;
$more = 0;
get_template_part( ‘content’, get_post_format() );
echo ‘<ol class= »other-recent-posts »>’;
endif;

Pour faire ma modification il suffit de commenter cette partie et d’extraire la mise à jour du « modèle d’affichage » des billets afin de conserver la version « réduite » pour l’affichage des posts récents (y compris le premier post, comme il n’aura pas été lu dans la partie du code que nous venons de commenter il sera présenté en version réduite lui aussi!)

/**
if ( $recent->have_posts() ) : $recent->the_post();
// Set $more to 0 in order to only get the first part of the post.
global $more;
$more = 0;
get_template_part( ‘content’, get_post_format() );
echo ‘<ol>’;
endif;
*/
get_template_part( ‘content’, get_post_format() );

Un exemple valant mieux que de longs discours, ça se passe ici !

Inverser l’odre des posts WordPress

Je suis actuellement en train de rédiger un bog wordpress qui sert de carnet de route à un voyage. Pour ce type de contenu, il peut être intéressant d’avoir les posts les plus anciens (ceux du début du voyage) en tête de la page d’accueil et d’aller vers les posts les plus récents au fil de la lecture. ..malheureusement il ne s’agit absolument pas d’une fonctionnalité standard des thèmes wordpress …

Heureusement comme les choses sont quand même plutôt bien faites vous avez la possibilité d’éditer votre thème avec de faire vous même la modification.

Attention d’un thème à l’autre il peut y avoir des différences non couvertes par cet article!!

Rendez vous dans votre console administrateur : Apparence -> Editeur.

Ensuite j’ai sélectionné la page : Modèle pour la page d’accueil (index.php) et j’ai recherché le bloc :

<?php if ( have_posts() ) : ?>

<?php while ( have_posts() ) : the_post(); ?>

<?php get_template_part( ‘content’, get_post_format() ); ?>

<?php endwhile; ?>

J’ai simplement inséré juste au dessus de celui ci la commande :

<?php query_posts($query_string . « &order=ASC »); ?>

 Et les billets ont été classés par ordre chronologique ascendant : les plus anciens en premier! (Mettez DESC à la place de ASC pour retrouver l’odre normal).
Le seul point négatif de cette méthode est qu’à chaque mise à jour de thème il faudra repositionner la ligne de commande.

Forcer modification d’URL WordPress

Halala encore des tracas avec mon wordpress. En voulant tester un peu vite un sous-domaine que 1and1 devait m’avoir défini j’ai modifié l’adresse du blog dans la partie administration du site au niveau du menu réglage -> général l’URL (pour la passer en http://www.yudi.fr/).

Grand dieu qu’ai je fait!! Plus rien ne marche! Le thème du site tire la tête, impossible de retourner dans la partie administrateur … je suis piégé!

Du coup pas de panique, quelqu’un a bien du avoir le même problème. Je parcours un grand nombre d’articles dédié à la modification d’URL, tous précisent qu’il faut vraiment faire attention à modifier les URL depuis la partie administration AVANT de déplacer le site. Echec. Quelque propositions sont quand même présentes sur des forums, en particulier modifier le fichier wp-config.php.

Option 1 forcer l’adresse du site

define(‘WP_HOME’,'http://mysite.com’);

define(‘WP_SITEURL’,'http://mysite.com’);

Echec.

Option 2, dire à wordpress que l’on est en train de changer d’adresse.

define(‘RELOCATE’,true);

Echec.

Je me rabats sur une étude détaillé de mon répertoire wordpress à l’aide de multiples find et grep, aucun « www.yudi.fr » …. Gnaaa…. C’est donc dans la base de données!

Eurêka! Une fois connecté sans aucun problème à ma base, je trouve la table wp_options (si vous avez gardé wp_ comme préfixe!) il existe une option « siteurl » qu’il vous suffit de mettre à jour … et tout remarche!

Mon conseil serait quand même : ne modifier ce champs au travers de la console d’administration que si vous êtes sur de la nouvelle adresse à renseigner!