Amélioration des url :

Par défaut les url de dotclear 2.2 ne sont pas totalement propres. Pour les affiner, nous allons faire une ou deux manipulations.

Dans le menu paramètres de l'admin du blog, nous changerons le champ "URL du blog :" qui par défaut ressemble à "http://www.votre-domaine.com/index.php?" pour : "http://www.votre-domaine.com/".

Cette configuration provoque des erreurs 404 sur tous les liens du blog. Pour pallier à ce problème, nous allons créer un fichier .htaccess à la racine de notre installation pour y mettre la condition de réécriture adéquate.

nano .htaccess

on y colle :

RewriteEngine on
RewriteBase /
RewriteRule ^admin/([\ A-Za-z0-9\-/_%?=()]+)$ /admin/$1 [L] 
RewriteRule ^([\ A-Za-z0-9\-/_%?=()]+)$ /index.php?$1 [L]

Ainsi, toutes les url seront redirigées vers index.php avec les paramètres qui vont bien.

L'interface d'administration devient alors disponible sur l'url : "http://www.votre-domaine.com/admin/index.php"

Installation du plugin Contact :

Pour installer le plugin Contact permettant de créer facilement un formulaire de contact, nous utiliserons le gestionaire de plugin disponible dans la section System >> extensions >> installer une extension

Le lien de l'extension en question est :

http://www.k-netweb.net/blog/datas/2006/10/06/plugin-contact-2.2.1.zip

disponible sur la page :

http://www.k-netweb.net/blog/?post/2006/10/06/61-plugin-dotclear-2-contact-2

Il sera assez simple de le configurer via l'interface.

Installation du plugin OpenPlanet :

On installe le plugin OpenPlanet pour pouvoir syndicaliser les flux de différents blogs. Ce plugin est disponible ici :

http://plugins.dotaddict.org/dc2/details/openplanet

Le blog de l'autheur : http://disvroian.le-regent.org/

Après avoir configuré la plugin et créé la catégorie dans laquelle on veut importer le(les) flux, on s'aperçoit alors que l'insertion ne fonctionne pas.

Il s'agit d'une erreur de récupération du type par défaut.

Pour régler ce problème, on édite le fichier plugin/openplanet/lib/class.dc.OpenPlanet.php et on remplace les lignes :

$aResult["typedefault"]= $rs->f("pl_author");
$aResult["typedefault"]= $rs->f("pl_type");

par :

$aResult["typedefault"]= $rs->f("pl_author");
if(!$aResult["typedefault"]){
    $aResult["typedefault"]= $rs->f("pl_type");
}

L'importation fonctionne donc, mais pas les liens vers les billets, pour les faire fonctionner, il faut éditer le fichier /inc/core/class.dc.rs.extentions.php et remplacer :

public static function getURL(&$rs)
{
	return $rs->core->blog->url.$rs->core->getPostPublicURL(
			$rs->post_type,html::sanitizeURL($rs->post_url)
		);
}

par :

public static function getURL(&$rs)
{
    if(strstr($rs->post_url, "http://")!==false) {
        return $rs->post_url;
    }
    else {
        return $rs->core->blog->url.$rs->core->getPostPublicURL(
			$rs->post_type,html::sanitizeURL($rs->post_url)
		);
    }
}

Pour ceux qui veulent autoriser les attributs de style dans les flux, il faut éditer le fichier plugin/openplanet/lib/class.dc.simplepie.php et remplacer :

function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))

par :

function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))

et :

var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');

par :

var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');

Une autre modification interessante de ce plugin consiste à ajouter automatiquement les tags lorsque le flux contient des balises <category>.

Il suffit d'ajouter ce code dans plugins/openplanet/functions.php ligne 501 pour avoir :

try {
	    $post_idEnd= $cur->insert();
	    $sSql= "INSERT INTO ".dcOpenPlanet::getTable(2)."
		    (planeterss_id, post_id)
		    VALUES
		    ('".$p_aPosted["id"]."', '".$post_id."')";
	    $core->con->execute($sSql) ;
	    //getting categories
        $meta_manager=new dcMeta($core);	
        foreach ($p_aParsed->get_categories() as $key => $value)
        {
            $meta_manager->setPostMeta($cur->post_id,'tag',$value->get_label());        
        }
    } catch (Exception $e) {
	$aError[]=__("One of the query has NOT been executed");
}