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!

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Chi sei?
[Connettersi]

Per mostrare qui il tuo avatar, registralo prima su gravatar.com (gratis e indolore). Non dimenticare di fornire il tuo indirizzo email.

Inserisci qui il tuo commento

Questo campo accetta scorciatoie SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> ed il codice HTML <q> <del> <ins>. Per creare paragrafi lasciare semplicemente delle righe vuote.

Aggiungi un documento

Segui i commenti: RSS 2.0 | Atom