VarianteContrib Trouver-les-traductions-des

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Trouver les traductions des rubriques (récursif)

Par Patenteux

Conçu pour SPIP 1.8

J’ai conçu cette variante afin d’accomoder le cas où, dans un site SPIP, on veut trouver la traduction de certaines rubriques qui ne contiennent elles-mêmes que des sous-rubriques, celles-ci contenant des articles (ou possiblement d’autres sous-rubriques, celles-ci contenant des articles (ou possiblement d’autres sous-rubriques, celles-ci contenant des articles ([...]))).

Vous aurez compris que l’approche est récursive. Elle n’est appropriée que lorsque chaque langue est repésentée par une rubrique racine et que chaque rubrique racine de langue possède la même arborescence.

[Erreur...7][Erreur...8]

<?php

[Erreur...10]        // cas normal (articles) : la table possede un champ id_trad
        if ($param == 'traduction') {
                $boucle->where[] = "((".$boucle->id_table.".id_trad > 0 AND "
                        . $boucle->id_table.".id_trad ='"."
                        . calculer_argument_precedent($idb, 'id_trad',
                                $boucles)
                        . "."')
                OR
                        (" . $boucle->id_table.".".$boucle->primary." ='"."
                        . calculer_argument_precedent($idb, $boucle->primary,
                                $boucles)
                        . "."'))";
        } else
                erreur_squelette(_T('zbug_info_erreur_squelette'), $param);
}


[Erreur...12]function _recur_descendre_arbo($id_rubrique, &$profondeur)
{
        if($profondeur == 0) {
                return $id_rubrique;
        } else {
                
                $select[] = "id_parent";
                $from[] = "spip_rubriques";
                $where[] = "id_rubrique = $id_rubrique";
                 $result = spip_abstract_select($select, $from, $where);
                if($rangee = mysql_fetch_assoc($result)) {
                    return _recur_descendre_arbo($rangee['id_parent'], --$profondeur);
            }
        }
}

?>

Une fois que c’est fait, dans le squelette de rubrique, on dit :

[Erreur...16]Et hop !

Dernière modification de cette page le 6 mars 2007

Discussion

Aucune discussion

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom