Référencer un blog réalisé avec dotclear

WRInaute discret
Bonjour,

Je n'arrive pas à avoir d'info précise sur les eventuels modules ou modifs à réaliser sur dotclear pour avoir un referencement correct.

Il y a des mods sur phpbb par exemple qui fonctionnent très bien mais pour dotclear je n'ai rien trouvé de probant notamment au niveau de l'url rewriting.

Auriez vous des infos à ce sujet ?

Merci
 
WRInaute discret
Ok pour les url c'est bon

Ce qui me gene c'est que je ne trouve pas de balise "description" dans mes pages est-ce normal :/
 
WRInaute discret
Bah j'ai vu le code qq part mais je n'arrive pas à le retrouver je sais qu'il faut déclarer la variable dans le template mais après...
 
Nouveau WRInaute
cette petite fonction fait normalement l'affaire, à mettre dans prepend.php du thème utilisé s'il y en a un, ou dans prepend.php du thème par défaut, elle renvoie


  • la description de la catégorie en mode cat
    les 300 premiers caractères du chapô (ou du billet s'il n'y a pas de chapô) débarrassés du markup html
    la description du weblogue dans les autres modes

Code:
/**
@function dcMetaDescription

Affichage de la description de la catégorie, du billet ou du blog
pour meta description

@param integer length Entier précisant le nombre de caractères à afficher
@param string  hellip Indicateur de texte tronqué
*/
function dcMetaDescription ($length=300,$hellip='(...)')
{
	global $cat_id, $blog, $mode, $news;
	if ($mode == 'cat') {
		if ($cat_id != '') {
    	$rscat = $blog->getCat($cat_id);
    		if (!empty($rscat)) {
      		$desc = $rscat->f('cat_desc');
      			if ($desc != '') {
        		$res .= sprintf($desc);
        		printf(ereg_replace("\r?\n", " ", util::cutString($res,$length).$hellip));
      			} else {
				$res = dc_blog_desc;
        		printf($res);
				}
    		}
  		}		
	} elseif ($mode == 'post') {
	    
		if ($news->f('post_chapo') != '') {
		printf (ereg_replace("\r?\n", " ", util::cutString(strip_tags($news->getChapo()),$length).$hellip));
		} else {
		printf(ereg_replace("\r?\n", " ", util::cutString(strip_tags($news->getContent()),$length).$hellip));
		}
	} else {
		$res = dc_blog_desc;
        printf($res);
	}
}

et l'appeler dans le template

<meta name="DC.description" content="<?php dcMetaDescription() ?>" />

la fonction est encore en test et a un petit défaut : il ne faut pas avoir de guillemets doubles dans les premiers caractères d'un billet

si un spécialiste des expressions rationnelles passe par ici, d'ailleurs...
 
WRInaute impliqué
Bonsoir
ça tomble pile, je suis entrain de référencer un blog.
pourquoi ne pas nomer la meta "description" au lieu de "DC.description". Sur le blog de wri il y'a "description" !
Sinon quelqu'un connait d'autres astuces pour dotclear.
Merci Clair de Lune pour ton code, je vais regarder voir si je peux y ajouter autre chose.

Merci
 
Nouveau WRInaute
euh...si tu améliores le code ci dessus, et notamment si tu peux résoudre le problème de doubles guillemets, ce serait gentil de poster la réponse ici

pour le DC.description au lieu de Description, c'est la convention du Dublin Core, DotClear utilise d'ailleurs DC.title, j'ai jugé meilleur de le garder parce que c'est une sorte de norme, peu appliquée certes, tu peux toujours mettre ce que tu veux
 
WRInaute impliqué
Pour éliminer la prise en compte des guillemets, par le parseur HTML du navigateur il suffit de mettre htmlentities juste avant les printf de la fonction
 
Discussions similaires
Haut