#16 15-01-2006 18:43:50

Americas
Survivors
Lieu: Argentine
Date d'inscription: 04-07-2005
Messages: 4603
Site web

Re: Réecriture d'url Dotclear

C'est bon... ça le fait... J'ai maintenant de superbes url sur http://football.americas-fr.com

mais j'ai un problème avec les catégories... il retrouve plus les liens ... idem au niveau du calendrier hmm

Hors ligne

 

#17 15-01-2006 18:53:39

Rottman
Tagglers+
Date d'inscription: 06-10-2005
Messages: 455
Site web

Re: Réecriture d'url Dotclear

mmmh bizarre je vois pas pourquoi sad désolé

Hors ligne

 

#18 15-01-2006 19:01:38

Americas
Survivors
Lieu: Argentine
Date d'inscription: 04-07-2005
Messages: 4603
Site web

Re: Réecriture d'url Dotclear

bon... j'ai fait marche arrière en attendant de trouver une solution.

Peux pas laisser un truc avec des erreurs 404 sur ces liens hmm

Hors ligne

 

#19 03-04-2006 16:11:09

Lachouchet
Tagglers
Lieu: Bordeaux
Date d'inscription: 27-10-2005
Messages: 397
Site web

Re: Réecriture d'url Dotclear

Par contre, on a pas pris en compte le flux Rss, car les url n'ont pas été modifiées à l'interieur.

Je ne peux pas vous proposer la solution, car je n'ai pas réussi à la trouver sad


l'Annuaire Gratuit, avec une sélection d'annonce de rencontre, de sonnerie à télécharger, et son Générateur d'idées.

Hors ligne

 

#20 03-04-2006 17:25:16

appollo
Rémy BLANCHARD
Lieu: Lyon
Date d'inscription: 04-09-2005
Messages: 1272
Site web

Re: Réecriture d'url Dotclear

Rottman va te trouvez la solution lol

Hors ligne

 

#21 03-04-2006 21:08:23

christophe
Survivors
Date d'inscription: 30-07-2005
Messages: 1553

Re: Réecriture d'url Dotclear

Salut et merci
A l'occaze tu peux nous filer aussi le Hack pour passer les URL's en HTML ?


Le L'annuaire gratuit est dans son coffre fort pas loin de Twikeo ??? avec son chat

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/tgarchive/forum/include/parser.php on line 414

#22 03-04-2006 21:32:57

Rottman
Tagglers+
Date d'inscription: 06-10-2005
Messages: 455
Site web

Re: Réecriture d'url Dotclear

URLs du type : /id-du-billet-titre-du-billet.html

- Créer un .htaccess à la racine :

Code:

RewriteEngine on
RewriteRule ^(.*).html$ /?$1

- Installer le plugin Personnalisation d'URL :
>http://tw.apinc.org/stuff/plugin-twurlmod-0.2.pkg.gz
>aller dans les options du plugin et cocher Utiliser "Sans date (numéro-titre)"
>cocher toutes les cases Reconnaître

- Modification du fichier /themes/default/list.php
> Tout remplacer par :

Code:

<!-- Boucle sur la liste de billets -->
<?php while ($news->fetch()) : 
$url_rewrite = str_replace('/?','',$GLOBALS['news']->getPermURL()).'.html';
?>
    <div class="post">
        <?php dcDayDate('<p class="day-date">%s</p>'); ?>
        
        <h2 id="p<?php dcPostID(); ?>" class="post-title"><a
        href="<?php echo $url_rewrite; ?>"><?php dcPostTitle(); ?></a></h2>
        
        <p class="post-info">Par <?php dcPostAuthor(); ?>,
        <?php dcPostDate(); ?> &agrave; <?php dcPostTime(); ?>
        <span>::</span> <a href="<?php dcPostCatURL(); ?>"><?php dcPostCatTitle(); ?></a>
        </p>
        
        <div class="post-content" <?php dcPostLang(); ?>>
            <?php dcPostAbstract('%s','<p><a href="'.$url_rewrite.'" title="Lire %s">Lire la suite</a></p>'); ?>
        </div>
        
        <p class="post-info-co"><a href="<?php echo $url_rewrite; ?>#co"
        title="commentaires pour : <?php dcPostTitle(); ?>"><?php
        dcPostNbComments('aucun commentaire','un commentaire','%s commentaires');
        ?></a>
        <span>::</span> <a href="<?php echo $url_rewrite; ?>#tb"
        title="trackbacks pour : <?php dcPostTitle(); ?>"><?php
        dcPostNbTrackbacks('aucun trackback','un trackback','%s trackbacks');
        ?></a></p>
    </div>
<?php endwhile; ?>

(Rajouter <?php if ($mode == 'pagination') dcPagination::showNavigation(); ?> après endwhile;?> si nécessaire !)

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/tgarchive/forum/include/parser.php on line 414

#23 03-04-2006 21:44:02

Rottman
Tagglers+
Date d'inscription: 06-10-2005
Messages: 455
Site web

Re: Réecriture d'url Dotclear

Modification des liens dans les flux

- modifier le fichier layout/class.xblogpost.php :

Code:

<?php
class xblogpost extends blogpost
{
    # Contenu (avec ou sans smilies)
    function getContent()
    {
        if ($this->blog->use_smilies)    {
            return $this->blog->addSmilies($this->f('post_content'));
        } else {
            return $this->f('post_content');
        }
    }
    
    function getChapo()
    {
        if ($this->blog->use_smilies)    {
            return $this->blog->addSmilies($this->f('post_chapo'));
        } else {
            return $this->f('post_chapo');
        }
    }
    
    
    function openComment()
    {
        return (
            dc_allow_comments && $this->f('post_open_comment') &&
            (dc_comments_ttl == 0 ||
            time()-(dc_comments_ttl*86400) < $this->getTS())
            );
    }
    
    function openTb()
    {
        return (
            dc_allow_trackbacks && $this->f('post_open_tb') &&
            (dc_comments_ttl == 0 ||
            time()-(dc_comments_ttl*86400) < $this->getTS())
            );
    }
    
    # Liens vers tous les billets pour l'en tête
    function getHeadLinks()
    {
        $res = '';
        
        $index = $this->int_index;
        $this->moveStart();
        
        while (!$this->EOF())
        {
            $url_rewrite = str_replace('/?','/',$this->getPermURL()).'.html';
        
            $res .= '<link rel="chapter" href="'.$url_rewrite.'" '.
            'title="'.$this->f('post_titre').'" />'."\n";
            $this->moveNext();
        }
        $this->move($index);
        
        return $res;
    }
    
    function nbComments($zero,$one,$more)
    {
        $nb = $this->f('nb_comment');
        
        if($nb == 0) {
            return $zero;
        } elseif($nb == 1) {
            return $one;
        } elseif($nb > 1) {
            return sprintf($more,$nb);
        }
    }
    
    function firstPostOfDay()
    {
        $prev_dt = NULL;
        if($this->movePrev()) {
            $prev_dt = $this->getLDate();
            $this->moveNext();
        }
        
        if($prev_dt == NULL || $prev_dt != $this->getLDate()) {
            return true;
        } else {
            return false;
        }
    }
    
    function getRSSSeq()
    {
        $url_rewrite = str_replace('/?','/',$this->getPermURL()).'.html';
        
        return '  <rdf:li rdf:resource="'.$url_rewrite.'" />'."\n";
    }
    
    function getRSSItem($short=false)
    {
        
        $url_rewrite = str_replace('/?','/',$this->getPermURL()).'.html';
        
        if ($this->f('post_chapo') != '') {
            $desc = strip_tags($this->f('post_chapo'));
        } else {
            $desc = util::cutString(strip_tags($this->f('post_content')),300).'...';
        }
        
        if ($short) {
            $content = $desc;
        } else {
            $content = $this->f('post_chapo').' '.$this->f('post_content');
        }
        
        return
        '<item rdf:about="'.$url_rewrite.'">'."\n".
        '  <title>'.$this->blog->toXML($this->f('post_titre'))."</title>\n".
        '  <link>'.$url_rewrite."</link>\n".
        '  <dc:date>'.$this->getIsoDate()."</dc:date>\n".
        (($this->f('post_lang')) ? '  <dc:language>'.$this->f('post_lang')."</dc:language>\n" : '').
        '  <dc:creator>'.htmlspecialchars($this->getUserCN())."</dc:creator>\n".
        '  <dc:subject>'.htmlspecialchars($this->f('cat_libelle'))."</dc:subject>\n".
        '  <description>'.$this->blog->toXML($desc)."</description>\n".
        '  <content:encoded><![CDATA['.$content."]]></content:encoded>\n".
        '</item>'."\n";
    }
    
    function getAtomEntry($short=false)
    {
    
        $url_rewrite = str_replace('/?','/',$this->getPermURL()).'.html';

        if ($this->f('post_chapo') != '') {
            $desc = strip_tags($this->f('post_chapo'));
        } else {
            $desc = util::cutString(strip_tags($this->f('post_content')),300).'...';
        }
        
        if ($short) {
            $content = $desc;
        } else {
            $content = $this->f('post_chapo').' '.$this->f('post_content');
        }
        
        return
        '<entry' .
        (($this->f('post_lang')) ? ' xml:lang="'.$this->f('post_lang').'"' : '').
        '>'."\n".
        '  <title>'.$this->blog->toXML($this->f('post_titre'))."</title>\n".
        '  <link rel="alternate" type="text/html" href="'.$url_rewrite.'" />'."\n".
        '  <issued>'.$this->getIsoDate()."</issued>\n".
        '  <modified>'.$this->getIsoDate()."</modified>\n".
        '  <id>'.$url_rewrite."</id>\n".
        '  <author><name>'.htmlspecialchars($this->getUserCN())."</name></author>\n".
        '  <dc:subject>'.htmlspecialchars($this->f('cat_libelle'))."</dc:subject>\n".
        '  <summary>'.$this->blog->toXML($desc)."</summary>\n".
        '  <content type="text/html" mode="escaped">'.htmlspecialchars($content)."</content>\n".
        '</entry>'."\n";
    }
}
?>

- modifier le fichier layout/class.xblogcomment.php :

Code:

<?php
class xblogcomment extends blogcomment
{
    # Extraction des trackbacks dans un autre recordset
    function extractTrackbacks()
    {
        $res = array();
        foreach ($this->arry_data as $k => $v)
        {
            if ($v['comment_trackback'] == 1) {
                $res[] = $v;
                unset($this->arry_data[$k]);
            }
        }
        
        $this->recordSet(array_values($this->arry_data));
        
        $rs = new xblogcomment($res);
        $rs->setBlog($this->blog);
        return $rs;
    }
    
    function auteurLink()
    {
        if($this->f('comment_email') != '') {
            return $this->getEncodMail();
        } else {
            return false;
        }
    }
    
    function auteurSite()
    {
        if($this->f('comment_site') != '') {
            return 'http://'.$this->f('comment_site');
        } else {
            return false;
        }
    }
    
    function xGetContent()
    {
        if ($this->blog->use_smilies)    {
            return $this->blog->addSmilies($this->getContent());
        } else {
            return $this->getContent();
        }
    }
    
    function getRSSSeq()
    {
        $url_rewrite = str_replace('/?','/',$this->getPermURL()).'.html';
        
        $id_comment = ereg('#c([0-9]+)', $url_rewrite, $id_c);
        
        $url_rewrite = str_replace('#c'.$id_c[1], '', $url_rewrite);
        
        $url_rewrite = $url_rewrite.'#c'.$id_c[1];
        
        return '  <rdf:li rdf:resource="'.$url_rewrite.'" />'."\n";
    }
    
    function getRSSItem($short=false)
    {
        
        $url_rewrite = str_replace('/?','/',$this->getPermURL()).'.html';
        
        $id_comment = ereg('#c([0-9]+)', $url_rewrite, $id_c);
        
        $url_rewrite = str_replace('#c'.$id_c[1], '', $url_rewrite);
        
        $url_rewrite = $url_rewrite.'#c'.$id_c[1];

        $tb = (boolean) $this->f('comment_trackback');
        
        $desc = util::cutString(strip_tags($this->getContent()),300).'...';
        
        $content = ($short) ? $desc : $this->getContent();
        
        return
        '<item rdf:about="'.$url_rewrite.'">'."\n".
        '  <title>'.($tb ? 'trackback - ' : '').
        $this->blog->toXML($this->f('post_titre')).' - '.
        $this->blog->toXML($this->f('comment_auteur'))."</title>\n".
        '  <link>'.$url_rewrite."</link>\n".
        '  <dc:date>'.$this->getIsoDate()."</dc:date>\n".
        '  <dc:creator>'.htmlspecialchars($this->f('comment_auteur'))."</dc:creator>\n".
        '  <description>'.$this->blog->toXML($desc)."</description>\n".
        '  <content:encoded><![CDATA['.$content."]]></content:encoded>\n".
        '</item>'."\n";
    }
    
    function getAtomEntry($short=false)
    {

        $url_rewrite = str_replace('/?','/',$this->getPermURL()).'.html';
        
        $id_comment = ereg('#c([0-9]+)', $url_rewrite, $id_c);
        
        $url_rewrite = str_replace('#c'.$id_c[1], '', $url_rewrite);
        
        $url_rewrite = $url_rewrite.'#c'.$id_c[1];
    
        $tb = (boolean) $this->f('comment_trackback');
        
        if ($short) {
            $content = util::cutString(strip_tags($this->getContent()),300).'...';
        } else {
            $content = $this->getContent();
        }
        
        return
        '<entry>'."\n".
        '  <title>'.($tb ? 'trackback - ' : '').
        $this->blog->toXML($this->f('post_titre')).' - '.
        $this->blog->toXML($this->f('comment_auteur'))."</title>\n".
        '  <link rel="alternate" type="text/html" href="'.$url_rewrite.'"/>'."\n".
        '  <issued>'.$this->getIsoDate()."</issued>\n".
        '  <modified>'.$this->getIsoDate()."</modified>\n".
        '  <id>'.$url_rewrite."</id>\n".
        '  <author><name>'.htmlspecialchars($this->f('comment_auteur'))."</name></author>\n".
        '  <content type="text/html" mode="escaped">'.htmlspecialchars($content)."</content>\n".
        '</entry>'."\n";
    }
}
?>

Hors ligne

 

#24 04-04-2006 13:59:44

Lachouchet
Tagglers
Lieu: Bordeaux
Date d'inscription: 27-10-2005
Messages: 397
Site web

Re: Réecriture d'url Dotclear

Quelle performance !!!

Super, et vraiment merci Rottman.


l'Annuaire Gratuit, avec une sélection d'annonce de rencontre, de sonnerie à télécharger, et son Générateur d'idées.

Hors ligne

 

#25 04-04-2006 15:07:19

easyguy
Tagglers
Date d'inscription: 04-10-2005
Messages: 761

Re: Réecriture d'url Dotclear

Merci Rottman,
Je suis sur que sa sera utile cool

@


Trouver un Appartement à Paris ou en région Ile de France. En province :  Immobilier Lyon, ou Immobilier Annecy

Hors ligne

 

#26 04-04-2006 22:31:55

christophe
Survivors
Date d'inscription: 30-07-2005
Messages: 1553

Re: Réecriture d'url Dotclear

Salut,
J'ai essayé de suivre le tuto à la lettre cepndant je n'obtiens pas tout à fait le même resultat sad
Chez RottMan : http://www.voyages-en-ligne.info/2-un-autre-billet.html
Chez moi : http://www.carcassonne-web.com/index.ph … -post.html

J'ai toujours ce fichu index.php? qui me dérange ? Ai je loupé une étape ?

Merci chris


Le L'annuaire gratuit est dans son coffre fort pas loin de Twikeo ??? avec son chat

Hors ligne

 

#27 05-04-2006 08:27:46

Rottman
Tagglers+
Date d'inscription: 06-10-2005
Messages: 455
Site web

Re: Réecriture d'url Dotclear

Bizarre, ton dotclear est bien installé en mode Query String ?
dans configuration, "URL vers le weblogue :" est bien / et non index.php ?


Pour l'exemple que j'ai donné, j'ai rien fait d'autre que l'installer et effectuer les étapes ci-dessus.

Derni�re modification par Rottman (05-04-2006 08:29:57)

Hors ligne

 

#28 05-04-2006 08:42:59

christophe
Survivors
Date d'inscription: 30-07-2005
Messages: 1553

Re: Réecriture d'url Dotclear

Oups, j'ai presque honte roll
Un grand merci à toi !
PS : fais moi signe sur Gtalk ou mail à l'occaze tongue


Le L'annuaire gratuit est dans son coffre fort pas loin de Twikeo ??? avec son chat

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/tgarchive/forum/include/parser.php on line 414

#29 24-05-2006 12:47:39

Rottman
Tagglers+
Date d'inscription: 06-10-2005
Messages: 455
Site web

Re: Réecriture d'url Dotclear

Yop, à la suite des 2 mods ci-dessus,

Rewriter les liens des catégories

- Ouvrir le fichier functions.php dans le repertoire layout

Vers la ligne 360 vous avez quelque chose comme :

Code:

$id = $rs_cat->f('cat_libelle_url');
$libelle = $rs_cat->f('cat_libelle');

// DES TRUCS
                
$res .= sprintf($item,$lien);

vous supprimez ce qu'il y'a à la place de // DES TRUCS et vous y mettez :

Code:

            
$url_rewrite = str_replace('/?','/', sprintf($blog->front_url['cat'],$comp_url.$id)).'.html';        
$lien = '<a href="'.$url_rewrite.'">'.$libelle.'</a>';

Hors ligne

 

#30 19-10-2006 05:14:08

La Gerance
Tagglers
Date d'inscription: 24-08-2006
Messages: 1794

Re: Réecriture d'url Dotclear

Hello

Je viens d'installer dotclear sur deux sites (un sur ovh l'autre sur nfrance)

j'ai le meme probleme qu'Americas :

j'obtiens des urls qui fonctionnent de la forme :

http://www.site.com/repertoire/index.ph … du-message

J'ai installé le script non pas à la racine mais sur un répertoire

Je voudrais donc virer le "index.php"

si je le vire via htaccess, j'obtiens des 404
j'ai utilisé path info et non query string vu que après avoir tenté la méthode de rottman ca n'a pas marché...

Si quelqu'un a depuis trouvé la solution !

Merci Charlie smile


Blue spirit

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 R. Andersson