- déc. 16, 2010
-
-
Fil a rédigé
{{{ <BOUCLE_r7(DATA){datasource http://dbpedia.org/data/SPIP.json, json}> <dt>#CLE</dt> <dd> [(#VALEUR|var_export{1})] </dd> </BOUCLE_r7> }}}
-
cerdic a rédigé
la generation de code de la boucle ne depend plus du type d'iterateur, ce qui permet de le rendre generique. Il faudra optimiser la rafale de if(!isset()) remplacant les static au profit d'un seul test, mais c'est fonctionnel
-
cerdic a rédigé
Une fabrique d'iterateur qui permet de creer n'importe quel iterateur defini dans le dossier iterateurs/
-
cerdic a rédigé
Renommer Iter en IterateurSPIP et les 3 variantes en IterateurXXX Travail preparatif, il faut encore brancher le compilateur sur cette version
-
cerdic a rédigé
-
cerdic a rédigé
methode skip() generique sur la classe Iter, qui permet de retrouver une balise #SAUTER fonctionnelle
-
cerdic a rédigé
-
cerdic a rédigé
Suppression de seek(), la methode parent fait cela tres bien (et avec moins de bug)
-
cerdic a rédigé
Utiliser protected plutot que private, pour permettre des surcharges eventuelles proteger les 3 proprietes de Iter, qui ne doivent pas etre accedees en direct Ajout des proprietes pos et total qui memorisent la position courant et le nombre total de resultat Implementations par defaut dans Iter, qui gerent la mise a jour de pos et total Debog de la methode seek() de IterSQL qui ne prenait pas en compte correctement le saut
-
cerdic a rédigé
-
Fil a rédigé
http://php.net/manual/fr/class.iterator.php il devient possible de faire : {{{ <?php $s = new IterSQL( array ( 'select' => array ( 0 => 'articles.date', 1 => 'articles.id_article', 2 => 'articles.id_rubrique', 3 => 'articles.titre', 5 => 'articles.descriptif', 6 => 'articles.chapo', 7 => 'articles.lang', ), 'from' => array ( 'articles' => 'spip_articles', ), 'type' => array ( ), 'where' => array ( 0 => array ( 0 => '=', 1 => 'articles.statut', 2 => '\'publie\'', ), 1 => '1=1', ), 'join' => array ( ), 'groupby' => array ( ), 'orderby' => array ( 0 => 'articles.date DESC', ), 'limit' => '0,1', 'having' => array ( ), 'table' => 'articles', 'id' => '_articles_recents', 'connect' => '', ) ); foreach ($s as $k=>$v) { var_dump($v); } ?> }}} mais aussi : {{{ <?php $s = new IterDATA( array ( 'source' => 'http://rezo.net/backend/', 'sourcemode' => 'rss' ) ); foreach ($s as $k=>$v) { var_dump($v); } ?> }}}
-
- déc. 15, 2010
-
-
cerdic a rédigé
modificateur['criteres']['statut'] mais modificateur['tout'] (idem pour plat ou lien)
-
cerdic a rédigé
-
cerdic a rédigé
via la globale table_statut : $table_statut[nom_table][] = array( 'champ'=>'statut', // champ de la table sur lequel porte le filtrage par le statut 'publie'=>'publie', // valeur ou liste de valeurs, qui definissent l'objet comme publie. 'previsu'=>'publie,prop', // valeur ou liste de valeurs qui sont visibles en previsu 'post_date'=>'date', // un champ de date pour la prise en compte des post_dates, ou rien sinon 'exception'=>'statut', // liste des modificateurs qui annulent le filtrage par statut // si plusieurs valeurs : array('statut','tout','lien') ); Pour 'publier' ou 'previsu', si la chaine commence par un "!" on exclu au lieu de filtrer sur les valeurs donnees si la chaine est vide, on ne garde rien si elle est seulement "!" on n'exclu rien Si le statut repose sur une jointure, 'champ' est alors un tableau du format suivant : 'champ'=>array( array(table1, cle1), ... array(tablen, clen), champstatut ) champstatut est alors le champ statut sur la 'tablen' dans les jointures, 'clen' peut etre un tableau pour une jointure complexe : array('id_objet','id_article','objet','article') On evacue le codes des boucles sur les tables articles, auteurs, et rubriques. La table documents est en sursis, son cas est deja regle dans le plugin mediatheque
-
cerdic a rédigé
-
Fil a rédigé
-
Fil a rédigé
-
- déc. 14, 2010
-
-
cerdic a rédigé
Permet a un critere d'injecter une clause group dynamique, evaluee au calcul, qui rendra '' si pas de group a faire.
-
- déc. 13, 2010
-
-
davux a rédigé
-
Fil a rédigé
-
Fil a rédigé
une {{{ {datasource,plugins} }}} vite fait (n'offre pas de critere pour les plugins pas actifs)... qui veut faire mieux... {{{ <BOUCLE_r5(DATA){datasource , plugins}{pagination 7}> <dt>#CLE</dt> <dd> [(#VALEUR|var_export{1})] </dd> </BOUCLE_r5> }}}
-
http://core.spip.org/trac/spip/changeset/aa0a47bcerdic a rédigé
Il subsiste un defaut : seuls les criteres present avant le {recherche} sont pris en compte dans la recherche. A ameliorer si possible.
-
Fil a rédigé
recherche generique d'un filtre sur la datasource, grace a charger_fonction() ; pour feter ca, un filtre 'file' qui lit un fichier ligne a ligne
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
cerdic a rédigé
-
- déc. 12, 2010
-
-
davux a rédigé
Comme le fait remarquer Cédric, certains plugins ont déjà pris en compte que la dev actuelle s'appellera 2.3 dans leurs dépendances. Si elle sort en 2.2, ils ne seront pas contents. Revenons donc à 2.3 pour la future stable issue du tronc.
-
davux a rédigé
Suite à r16666, la prochaine branche stable sera spip-2.2.
-
salvatore a rédigé
-
salvatore a rédigé
-
salvatore a rédigé
-