Archives du mot-clé PHP

Supprimer le fil RSS de WordPress

Couleurs conceptionIl y a certaines raisons pour lesquelles on peut vouloir désactiver le flux RSS dans le header d’un site WordPress. Si vous ne vous servez pas de WordPress comme plateforme de blogue (vous n’utilisez que les pages et non pas les articles), il peut être gênant d’avoir un fil RSS vide publié et disponible dans le <head> de vos pages.

Avant d’aller plus loin, une petite parenthèse : Depuis quelques mois, je me sers presque systématiquement du CMS WordPress pour créer des sites qui ne sont que très rarement des blogues. Même si WordPress est initialement une plateforme pour blogues, il y a sans cesse des améliorations et de nouveaux plugins pour permettre une utilisation plus aisée comme site « vitrine ». Donc, si vous faites partie de ceux qui évitent encore WordPress à cause de sa réputation de CMS pour blogues par excellence, vous devriez lui donner une chance!

Pour ce qui est de supprimer les fils RSS de votre site WordPress, vous risquez de trouver des méthodes qui m’ont semblées peu efficaces, ou encore pas très propres (hacker le core inutilement).

Finalement, il semblerait qu’une fonction native de WordPress existe exprès pour ça, depuis la version 2.8.

Ça se passe dans le fichier functions.php de votre thème; si vous n’en avez aucun, créez-en un et placez-le dans le dossier de votre thème.

Ajoutez le code PHP suivant :

automatic_feed_links(false);

Et le tour est joué!

Magento : Comment afficher les nouveaux produits dans les listes

Dans un commerce électronique en production, il relève d’une bonne pratique d’indiquer clairement les nouveaux produits afin d’attirer l’attention de visiteurs réguliers. D’ailleurs, il est bien normal de vouloir mettre de l’avant les nouveautés qu’on ajoute à son catalogue, en partie pour pouvoir jauger l’intérêt généré autour de ces nouveaux produits.

Bien que Magento permette de configurer des dates de début et de fin pour un produit (indiquant à partir de quand et jusqu’à quand votre produit est considéré comme étant une nouveauté), le template par défaut ne fait aucune mention de ces nouveautés. C’est bien là l’objectif de ce mini-tutoriel : voir comment afficher les nouveautés dans les listes de produits sur Magento.

En fait, ce n’est rien de compliqué, il faut seulement savoir comment s’y prendre. Cette information, que j’ai trouvée sur ce forum, ne semble pas très répandue sur l’Internet; et pourtant, s’il faut encourager un peu le développement de la communauté Magento, donner des réponses aux mystères Magento enfouis peut y contribuer. Je l’ai donc résumée, clarifiée, mis en exemple et même en téléchargement au bas de cet article, pour les paresseux!

Tout d’abord, dans la fiche d’un produit dans le backend de votre boutique, indiquez des dates de début et de fin de son état de nouveauté. Pour effectuer un test, mettez (évidemment) une date inférieure à aujourd’hui pour le début et une date supérieure pour la fin.

Le bout de code à ajouter pour accéder aux variables des dates de nouveauté d’un produit est le suivant :

// Dates limites pour la nouveauté
$newFromDate = Mage::getModel('catalog/product')->load($_product->getID())->getNewsFromDate();
$newToDate = Mage::getModel(‘catalog/product’)->load($_product->getID())->getNewsToDate();

// Date et heure actuelles
$now = date(« Y-m-d H:m:s »);

if($newFromDate < $now && $newToDate > $now) {
echo « nv »;
}
?>

Les variables $newFromDate et $newToDate récupèrent la donnée de début et de fin de nouveauté dans les données disponibles pour le produit actif lors du parcours de la boucle. Ces données ne sont accessibles que si vous avez bien attribué des dates au produit en question, via la page admin. Si vous ne voyez aucun changement, vous avez peut-être passé outre cette étape.

Le fichier où ajouter le code se nomme list.phtml, situé dans votre site à cet emplacement (remplacer votretheme par le nom de votre thème, default par défaut) :

/app/design/frontend/default/yourtheme/template/catalog/product/list.phtml

Pour ajouter le code pour le mode « liste » (list), il faut vous rendre à la ligne 47, après ce début de boucle :

Pour le mode « grille » (grid), il faut se rendre à la ligne 93 après le même bout de code que ci-dessus ou presque.

Dans les deux cas, vous pouvez placer le bout de code à ajouter où vous le souhaitez, pourvu que ce soit à l’intérieur de la boucle foreach. Voici à quoi ressemble la fin de ces boucles, que vous ne devez pas dépasser :

Si vous avez bien suivi ce mini-tutoriel, vous devriez apercevoir au moins un produit avec la mention « Ceci est une nouveauté! ». Si ça ne fonctionne pas, vous pouvez toujours partir du fichier déjà prêt (Magento v1.3.2.4) et disponible en téléchargement ci-dessous, ou demander de l’aide dans les commentaires de cet article!

Valider le format d’un courriel (PHP & Javascript)

Voici deux échantillons de script pour valider des adresses courriel, ce qui est communément utilisé dans la validation de formulaires, pour éviter que les utilisateur.

Valider le format d’un courriel en Javascript

Insérez ce petit bout de Javascript entre les balises <head> et </head> de votre document HTML :



Insérer un formulaire de ce genre entre les balises <body> et </body> :



L’événement onsubmit appelle la fonction checkMail() et lui transmet la valeur du champs texte courriel. Le champs courriel est identifié par le ID courriel.

Essayez le script en ligne

Valider le format d’un courriel en PHP

Voici une petite fonction PHP qui permet de vérifier que l’utilisateur a bel et bien entré une adresse courriel qui puisse exister.

function validMail($addr) {
if ((!ereg(« .+\@.+\..+ », $addr)) || (!ereg(« ^[a-zA-Z0-9_@.-]+$ », $addr)))
RETURN FALSE;
else
RETURN TRUE;
}
// Exemple d’utilisation :
if(!validMail(‘infoadresse.com’)) {
echo « Votre adresse est invalide! »;
}

Ça ne teste pas son existence, mais ça évite que l’utilisateur instinctivement des conneries.

!JoomlaComments en dofollow

!JoomlaComments est un composant assez bien connu qui sert, comme vous vous en doutez, à gérer des commentaires sur un site Joomla!. Par défaut, les liens des commentaires sont en nofollow et il n’est pas possible de paramétrer ce détail assez important.

Donc, si par hasard vous désirez mettre les liens des commentaires en dofollow, il vous faut effectuer un petit hack au coeur du script lui-même :

Ouvrez le fichier /components/com_comments/joscomment/comment.class.php et chercher « nofollow », ce qui devrait vous amener aux alentours de la ligne 2293 à ceci :

$website = «  « ;

Il vu suffit d’enlever l’attribut « nofollow » :

$website = «  « ;

C’est tout! C’est à parier que dans les versions futures de !Joomlacomments, on pourra peut-être bien paramétrer le do/nofollow.

 

Groupes d’utilisateurs personnalisés Joomla! + Community Builder

Il n’existe pas encore de fonctionnalité implémentée dans Joomla pour avoir des groupes d’utilisateurs personnalisés selon votre besoin. Vous êtes obligés de vous en tenir aux groupes par défaut, à moins d’utiliser JaCL (commercial), ce qui n’est pas toujours acceptable, dépendamment du projet.

Si vous utilisez Community Builder, et que vous souhaitez avoir différents groupes d’utilisateurs possédant chacun des onglets (et des champs, donc) propres à eux, il existe une solution.

Il est possible d’attribuer un onglet spécialement à un groupe d’utilisateurs; il suffit de répartir judicieusement les champs de profiles selon les onglets, pour pouvoir afficher ou ne pas afficher un onglet, dépendament du groupe auquel appartient l’utilisateur.

Cet article vous montre comment appliquer un hack manuel à Joomla 1.5.x pour permettre l’utilisation de groupes différents et personnalisés pour Community Builder.

Je préfère vous conseiller dès maintenant de faire des copies de sauvegarde de tous les fichiers que vous allez modifier, car c’est vraiment de la bidouille!

Les versions de Joomla et CB utilisées pour l’exemple sont Joomla! 1.5.9 et Community Builder 1.2 RC4.

Créer des groupes personnalisés dans Joomla

La première étape consiste à créer des groupes personnalisés dans Joomla. Pour le besoin de l’article, disons que nous réalisons un site pour une communauté comprenant deux groupes d’utilisateurs : des employeurs et des personnes qui cherchent un emploi.

Cette unique partie est tirée de la documentation Joomla, réintégrée ici dans le souci de faire un tutoriel vraiment complet (ne suivez cependant pas les instruction sur la page de documentation, elles ne sont plus à jour).

Le bidouillage commence en force ici : il faut modifier la base de données, puis exécuter un script pour la restructurer correctement. Je n’expliquerai ici pas trop comment fonctionne la table qui contient les groupes d’utilisateurs dans Joomla; je me bornerai à expliquer comment la modifier à notre guise.

Accédez à votre base de données (avec l’outil PHPmyAdmin dans mon cas). Trouvez la table des groupes, qui s’apelle « jos_core_acl_aro_groups ». Par défaut, le préfixe de table est « jos », mais vérifiez cette information et remplacez le préfixe « jos » par le vôtre s’il est différent. Dans tous les exemples nous utiliserons « jos » comme préfixe; n’oubliez pas de le changer partout!

Insérer groupes personnalisés

Donc dans PHPmyAdmin, j’accède à la table « jos_core_acl_aro_groups ». Cette table contient tous mes groupes d’utilisateurs. Nous allons donc insérer deux nouveaux groupes : un pour les employés et un pour les employeurs (ou ce qui vous conviendra). Ce qui est important, c’est de correctement spécifier comme parent_id le id du groupe d’utilisateurs parent. Dans notre cas, ce sera simplement Registered (id : 18). Donc nous insérons ces deux groupes, en spécifiant uniquement le parent_id.

Nos groupes sont insérés, mais incorrectement hiérarchisés car cette table utilise un système de hiérarchisation qui repose sur une borne gauche et droite (nombres), qui selon certains calculs permettent de spécifier quel groupe est imbriqué dans quel groupe. Pas de panique : on a un script pour regénérer les bonnes bornes pour nos deux nouveaux groupes.

Créez un fichier nommé rebuild.php, placez-le à la racine de votre site Joomla, en mettant ceci dedans :

mysql_connect("localhost", "NOM_DUTILISATEUR_BD", "MOT_DE_PASSE_BD") or
die("Could not connect: " . mysql_error());
mysql_select_db("NOM_DELA_BD");
// 0-> parent_id in Joomla this is the value of the parent_id field of the Root record
// 1-> start the left tree at 1
rebuild_tree ( 0 , 1);

function rebuild_tree($parent_id, $left) {

// the right value of this node is the left value + 1
$right = $left+1;

// get all children of this node
$result = mysql_query(‘SELECT id FROM jos_core_acl_aro_groups ‘.
‘WHERE parent_id= »‘.$parent_id.’ »;’);
while ($row = mysql_fetch_array($result)) {
// recursive execution of this function for each
// child of this node
// $right is the current right value, which is
// incremented by the rebuild_tree function
$right = rebuild_tree($row['id'], $right);
}

// we’ve got the left value, and now that we’ve processed
// the children of this node we also know the right value
mysql_query(‘UPDATE jos_core_acl_aro_groups SET lft=’.$left.’, rgt=’.
$right.’ WHERE id= »‘.$parent_id.’ »;’);

// return the right value of this node + 1
return $right+1;
}
?>

…en changeant bien sûr « NOM_DUTILISATEUR », « MOT_DE_PASSE_BD » et « NOM_DE_LA_BD » par le nom d’utilisateur, le mot de passe et le nom de la BD.

Lancez le script dans votre navigateur, en accédant la page rebuild.php. Normalement, vous ne devriez rien remarquer, le script n’écrit aucune confirmation (donc une page blanche). Allez vérifier de quoi ça a l’air dans la base de données si vous comprenez un peu le système de structure hiérarchique des groupes, sinon faites-vous confiance et passez à l’étape suivante.

Configurer bornes correctes pour les groupes

Un indice : normalement vos deux nouveaux groupes devraient maintenant avoir une nouvelle valeur, autre que zéro, pour les colonnes « lft » et « rgt ». Sinon, je crois bien que vous avez dû mal spécifier les informations de connexion à la base de données, ou bien vous avez mal changé les noms des tables dans les requêtes.

Configurer le groupe de l'utilisateur

Un autre bon moyen de vérifier si tout est en ordre serait de vous rendre dans la Gestion des utilisateurs (Administration Joomla), sélectionnez un utilisateur et vérifiez que vous pouvez lui attribuer les groupes personnalisés que vous venez de créer.

Comment distribuer les profils appartenant aux groupes d’utilisateurs correspondants?

Le principe est simple : Il est possible, dans Community Builder, d’attribuer un groupe d’utilisateurs à un onglet.

Pour continuer l’exemple, rendez-vous dans la page composant de Community Builder, cliquez sur Tab Management et créez deux nouveaux onglets :

« Historique d’entreprise » : Attribuez cet onglet au groupe « Employeur », et n’oubliez pas de le publier.

« Expériences d’emploi » : Attribuez cet onglet au groupe « Employé », et n’oubliez pas de le publier.

Chaque groupe d’utilisateur personnalisé possède maintenant un onglet juste pour lui. Comme les onglets ne s’afficheront pas s’ils ne contiennent pas de champs, allez maintenant dans Field Management, et créez pour chacun de ces deux nouveaux onglets un champs (du même nom que l’onglet, on va dire), en n’oubliant pas de les placer chacun d’eux dans l’onglet correspondant.

Il est maintenant temps de s’attaquer à une problématique plutôt désagréable. Nous avons certes créé les deux groupes personnalisés d’utilisateurs, mais il n’existe en réalité dans Joomla que 3 niveaux d’accès : « publique », « enregistré » et « spécial ». Ces niveaux s’embriquent, c’est à dire que l’utilisateur « spécial » possède aussi les droits de l’utilisateur « enregistré ». Ça nous cause un certain problème, car nous souhaitons, dans cet exemple, que chaque utilisateur ait ses propres onglets, sans aucun mélange!

Par exemple, l’employeur possède dans son profil un onglet pour décrire l’historique de son entreprise, mais l’employé n’a pas besoin de cet onglet! Forcément, l’un des deux groupes aura plus de droits que l’autre, il faut donc trouver un moyen de les rendre réellement indépendants l’un de l’autre.

Il existe une solution un peu « broche à foin » : il faut appliquer un hack aux fichiers de Community Builder pour que les onglets soient réellement bien répartis. C’est maintenant que la chirurgie à coeur ouvert commence, n’oubliez pas de faire une copie de sauvegarde du fichier avant toute modification! Les numéros de ligne de code sont donnés pour la version CB 1.2 RC4, si vous possédez une version antérieure, recherchez les mêmes lignes mais leur emplacement peut avoir changé. Il y aura trois remplacements à faire, notez que nous laissons l’ancienne ligne en commenté dans le fichier.

Ouvrez le fichier [VOTRE SITE]/administrator/components/com_comprofiler/comprofiler.class.php

Cherchez cette ligne de code (ligne 3036) :

. « \n AND t.useraccessgroupid IN (« .implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))). ») »;

Remplacez-là par ceci :

// . « \n AND t.useraccessgroupid IN (« .implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))). ») »
. « \n AND (t.useraccessgroupid = « .$user->gid. » OR t.useraccessgroupid = -2) AND t.enabled = 1″

Cherchez cette ligne de code (ligne 3493) :

$sql .= « \n AND t.useraccessgroupid IN ( » . implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))) . « ) »;

Remplacez-là par ceci :

// $sql .= « \n AND t.useraccessgroupid IN ( » . implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))) . « ) »;
$sql .= « \n AND (t.useraccessgroupid = « .$user->gid. » OR t.useraccessgroupid = -2) AND t.enabled = 1″;

Cherchez cette ligne de code (ligne 3550) :

$where[] = ‘t.useraccessgroupid IN (‘ . implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))) . ‘)’;

Remplacez-là par ceci :

//$where[] = ‘t.useraccessgroupid IN (‘ . implode(‘,’,getChildGIDS(userGID( $_CB_framework->myId() ))) . ‘)’;
$where[] = ‘(t.useraccessgroupid = ‘ . $user->gid . ‘ OR t.useraccessgroupid = -2)’;

Ça y’est, votre fichier est correctement patché!

Donc si vous faites un test en créant un utilisateur pour chaque groupe d’utilisateurs, chaque compte utilisateur devrait normalement avoir son onglet personnalisé dans son profil.

Comment répartir les différents utilisateurs dans les bons groupes?

Maintenant que l’affichage de champs personnalisés pour des groupes d’utilisateurs personnalisés fonctionne, il faut s’attaquer à un autre problème : comment faire pour distribuer automatiquement les bons groupes aux bons utilisateurs?

En les laissant choisir!

Fort heureusement pour nous, il existe un plugin pour ça : CB JLS Group Selection, créé par Jorge Luis Savoini. Attention, ce plugin fonctionne uniquement pour Community Builder 1.2 RC3 !

Après avoir téléchargé le plugin, installez-le (au bas de la page Plugin Management du composant Community Builder).

Dans Field Management, créez un nouveau champs appelé précisément « cb_usertype », de type « Drop Down (Single Select) »). Entrez deux valeurs, soit les noms exacts de vos deux groupes, dans notre exemple « employe » et « employeur ».

Cliquez sur le plugin (JLSGroupSelector) dans la liste de la page Plugin Management pour le configurer.

Maintenant qu’il est possible pour tout le monde d’accéder à la configuration du plugin JLS Group Selection, assurez-vous que le plugin est bien publié ET activé (enabled).

Il vous suffit de demander obligatoirement à l’utilisateur de répondre au champ « cb_usertype » à l’enregistrement pour le forcer à choisir son groupe!

Voilà, c’est tout! C’est bien complexe pour quelque chose qui devrait pourtant être très simple…

J’aimerais remercier Jorge Luis Savoini pour l’aide qu’il m’a apporté afin de solutionner le problème dont est sujet cet article, et pour son plugin très utile!

Joomla, redirection personnalisée après connexion

Lorsque qu’un utilisateur se connecte à son compte dans Joomla, il est automatiquement redirigé à la page d’accueil.

Cet article explique comment effectuer un hack à Joomla 1.5, afin de rediriger l’utilisateur sur la page de votre choix après sa connexion. À partir de la configuration du module de connexion, vous pouvez spécifier une page dans le site, mais vous ne pouvez spécifier d’URL précise, ce qui est parfois nécessaire. Ça peut être très utile, surtout si vous attendez une action précise de votre visiteur (ex: poster un article, une image, inscrire son site dans votre annuaire, etc.).

Joomla 1.5.8 a servi pour cet exemple, mais c’est probablement exactement le même principe pour toutes les autres versions 1.5.x.

Ouvrez ce fichier :


[votre site]/components/com_user/controller.php

Il faut rechercher cette ligne de code qui se trouve normalement à la ligne 153, à l’intérieur de la fonction login() :

$mainframe->redirect( $return );

Il suffit simplement de remplacer $return par l’URL de votre choix. Par exemple :

$mainframe->redirect( « http://www.guylabbe.ca » );

Diffuser un flux RSS dynamique

Les fils de syndication RSS sont devenus essentiels pour les blogs, et tout autre type de site qui publie régulièrement du nouveau contenu. C’est un moyen très pratique pour diffuser votre contenu et permettre à vos visiteurs de suivre votre blog en s’abonnant à vos fils RSS.

En outre, cela permet aussi de s’inscrire dans des annuaires RSS, qui vous rapporteront de nombreux liens en profondeur (autres que votre page d’accueil), en plus de pouvoir accrocher les visiteurs de l’annuaire en leur présentant du contenu attrayant avant même qu’ils ne mettent le pied dans votre site Web!

La plupart des CMS (tels que Joomla, WordPress, Dotclear etc.) ont déjà un script intégré qui vous génère pour vous vos fils RSS. Par contre, si vous possédez un site Web dynamique fait « à la main », vous devrez vous débrouiller seul!

Assumons que vous possédez un site Web dynamique en PHP qui publie des articles de temps en temps. Nous allons créer un fonction PHP pour extraire ces articles de la base de données puis les inscrire dans un fichier XML, ce qui constituera votre fil RSS. Ainsi, votre fil RSS se mettra constamment automatiquement à jour.

Générer automatiquement le flux avec la réécriture d’URL

Pour y arriver, nous allons utiliser la réécriture d’URL car ça permet de faire le tout plus proprement, en simulant le fichier RSS sur demande, au lieu de constamment modifier dynamiquement un fichier RSS réel.

Créez un fichier .htaccess que vous placerez à la racine de votre site, ou bien modifiez celui que vous avez déjà, s’il y-a-lieu :


Options +FollowSymlinks
RewriteEngine on

# Le lien pour le fil RSS
RewriteRule ^rss\.xml$ /rss.php [L,NC]

Avec cette réécriture, le fichier rss.php va générer dynamiquement le contenu XML du flux RSS, il le simulera donc le fichier.

Créez un fichier qui se nommera rss.php. Nous extrayons dans l’exemple suivant les derniers articles d’un blogue (imaginaire).

Voici la structure de la table qui sert dans l’exemple :


CREATE TABLE IF NOT EXISTS `blog` (
`id` mediumint(9) NOT NULL COMMENT ‘ID de l »article’,
`texte` text NOT NULL COMMENT ‘Texte de l »article’,
`date` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=’Articles du blogue’;

À insérer dans le fichier rss.php :

// Connexion MySQL
$host = « localhost »; // généralement localhost
$user = « NOM_D_UTILISATEUR »;
$pass = « MOT_DE_PASSE »;
$bdd = « NOM_DE_LA_BD »;

@mysql_connect($host,$user,$pass) or die(« La connexion a échoué: « .mysql_error());
@mysql_select_db(« $bdd ») or die(« La sélection de la base a échoué: « .mysql_error());

// Spécifier le type de contenu : XML
header(« Content-Type: text/xml »);

// Requête MySQL qui extrait les articles de la base de données
$requete = « SELECT id, date FROM blog ORDER BY date DESC LIMIT 10″; // les 10 derniers articles
$resultat = mysql_query($requete);

// Écriture du fichier XML
// l’entête :
$sm =  »;
$sm .= ‘xmlns:xsi= »http://www.w3.org/2001/XMLSchema-instance »
xsi:schemaLocation= »http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd »>’;

// Articles du blog
while ($blog=mysql_fetch_array($resultat,MYSQL_ASSOC)) {
$xml = ‘‘;
$xml .= ‘‘;
$xml .= ‘‘; // Le titre de votre flux RSS. Par exemple : Derniers articles du site xyz
$xml .= ‘ HTTP://WWW.VOTRESITE.COM/‘; // URL de votre site
$xml .= ‘‘.$title.’‘; // Description de votre site

$xml .= ‘‘;
$xml .= ‘VOTRE_SITE/IMAGE.GIF‘; // Une image, logo
$xml .= ‘‘; // Normalement la même chose que le titre plus haut
$xml .= ‘ HTTP://WWW.VOTRESITE.COM/‘; // URL de votre site
$xml .= ‘DESCRIPTION‘; // Description de votre site (pour l’image)
$xml .= ‘‘;
}
$i = 0;

foreach($news as $a) {
if($i < 12) {
$id = $a['date'];
$datexml = explode('-', $a['date']);
$date2=date("D, d M Y H:i:s", mktime(0,0,0, $datexml[1],$datexml[2],$datexml[0]));

$lien = "http://www.votresite.com/articles.php?id=" . $id; // Le lien vers l'article spécifique (à modifier selon vos besoins)

$xml .= '‘;
$xml .= ‘‘; // Titre de l’article
$xml .= ‘ ‘.$lien.’‘; // Lien vers l’article
$xml .= ‘‘.$lien.’‘; // Permalink
$xml .= ‘ ‘.$date2.’ GMT‘;
$xml .= ‘‘.strip_tags($a['txt']).’‘; // Texte de l’article, en enlevant les tags HTML qu’il peut contenir (il peut y avoir plus de raffinement ici)
$xml .= ‘
‘;

$i++;
}
}

// édition de la fin du fichier XML
$xml .= ‘‘;
$xml .= ‘‘;

echo $xml;

Ainsi, lorsque vous tenterez d’accéder http://www.votresite.com/rss.xml, le fichier rss.php sera appelé et un document XML simulé affiché, avec les 10 derniers articles bien frais sortis de votre blog.

Si vous préférez, il est aussi possible de réaliser une fonction à l’aide de ce code, et, au lieu de simuler le fichier avec la réécriture d’URL, écrire directement dans un fichier flux.xml. Inscrivez simplement à la fin de votre fonction quelque chose comme ça, pour écrire dans le fichier :

// écriture dans le fichier
$fp = fopen(« flux.xml », ‘w+’);
fputs($fp, $xml);
fclose($fp);

Tronquer du texte en PHP

C’est simple, mais utile; par exemple, quand on liste de plusieurs articles sur une page mais qu’on ne veut que donner un petit aperçu du texte. Voici une petite fonction PHP pour tronquer du texte :

function tronquer($texte, $nbrChar, $append=’…’) {
rif(strlen($texte) > $nbrChar) {
$texte = substr($texte, 0, $nbrChar);
$texte .= $append;
}
return $texte;
}
// Maintenant, on applique la fonction à du texte echo tronquer(‘ceci est un texte que je désire couper à exactement cinquante caractères’, 50);
// ce qui donnera :
// ceci est un texte que je désire couper à exactemen…