Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / spip
20573 validations de retard le dépôt en amont.
  • Fil's avatar
    91a73414
    backport de certaines modifs de la Contrib ESJ · 91a73414
    Fil a rédigé
    http://www.spip-contrib.net/ecrire/articles.php3?id_article=639
    
    Ajout de :
    - une version sure de flock()
    - debug complet #EXPOSER
    
    # Boucle hierarchie traitée de façon plus souple : on peut donc faire
      {inverse}, {par hasard}, {n-2,1}, {par titre} etc.
      Le critère {tout} permet dans les hiérarchies d'avoir la rubrique
      courante même si c'est elle qui est la "feuille".
    
    # Implantation du critère IN :
    	<BOUCLE_aa(ARTICLES){id_article IN 1,4,2,3}> -> 1 4 2 dans cet ordre
    	<BOUCLE_aa(ARTICLES){id_article IN 1,4,2,3}{inverse}> -> 2 4 1
    	<BOUCLE_aa(ARTICLES){id_article IN 1,4,2,3}{par id_article}> -> 1 2 4
    	(l'article 3 n'est pas publié)
    	et même :
    	<BOUCLE_aa(RUBRIQUES){titre in English documentation,
    	Chinese Documentation}>#ID_RUBRIQUE </BOUCLE_aa>
    
    # Correction de bugs multiples avec les critères {1/3}, {n-1,1}, {1,n-8}...
    91a73414
    Historique
    backport de certaines modifs de la Contrib ESJ
    Fil a rédigé
    http://www.spip-contrib.net/ecrire/articles.php3?id_article=639
    
    Ajout de :
    - une version sure de flock()
    - debug complet #EXPOSER
    
    # Boucle hierarchie traitée de façon plus souple : on peut donc faire
      {inverse}, {par hasard}, {n-2,1}, {par titre} etc.
      Le critère {tout} permet dans les hiérarchies d'avoir la rubrique
      courante même si c'est elle qui est la "feuille".
    
    # Implantation du critère IN :
    	<BOUCLE_aa(ARTICLES){id_article IN 1,4,2,3}> -> 1 4 2 dans cet ordre
    	<BOUCLE_aa(ARTICLES){id_article IN 1,4,2,3}{inverse}> -> 2 4 1
    	<BOUCLE_aa(ARTICLES){id_article IN 1,4,2,3}{par id_article}> -> 1 2 4
    	(l'article 3 n'est pas publié)
    	et même :
    	<BOUCLE_aa(RUBRIQUES){titre in English documentation,
    	Chinese Documentation}>#ID_RUBRIQUE </BOUCLE_aa>
    
    # Correction de bugs multiples avec les critères {1/3}, {n-1,1}, {1,n-8}...
inc-bcl-squel.php3 1,32 Kio
<?php

// encodage d'une boucle SPIP en un objet PHP

class Boucle {
	var $type = 'boucle';
	var $id_boucle, $id_parent;
	var $cond_avant, $milieu, $cond_apres, $cond_altern;
	var $lang_select;
	var $type_requete;
	var $param;
	var $separateur;
	var $doublons;
	var $partie, $total_parties,$mode_partie;
	var $externe = ''; # appel a partir d'une autre boucle (recursion)
	// champs pour la construction de la requete SQL
	var $tout = false;
	var $plat = false;
	var $select;
	var $from;
	var $where;
	var $limit;
	var $group = '';
	var $order = '';
	var $date = 'date' ;
	var $hash = false ;
	var $lien = false;
	var $sous_requete = false;
	var $compte_requete = 1;
	var $hierarchie = '';
	// champs pour la construction du corps PHP
	var $return;
	var $numrows = false; 
}

class Texte {
	var $type = 'texte';
	var $texte;
}

class Inclure {
	var $type = 'include';
	var $fichier;
	var $params;
}

class Champ {
	var $type = 'champ';
	var $nom_champ;
	var $cond_avant, $cond_apres; // tableaux d'objets
	var $fonctions;
}

//
// Structure de donnees pour parler aux fonctions calcul_champ_TOTO
//
class ParamChamp {
	var $fonctions;
	var $nom_champ;
	var $id_boucle;
	var $boucles;
	var $id_mere;
	var $code;

	function retour() {
		return applique_filtres($this->fonctions, $this->code, $this->id_boucle, $this->boucles, $this->id_mere);
	}
}

?>