denisb
698583309c
bonne année.
7 years ago
Cerdic
df9468d101
le critere {recherche} necessite une cle primaire non composee, generer une erreur si ce n'est pas le cas
...
+ chaine de langue pour ce type d'erreur
+ correction erreur critere doublons
9 years ago
denisb
52ed3754f3
bonne année 2014 !
9 years ago
Cerdic
4a8317ecfb
Revert de r20389 car TIMESTAMPDIFF pas supporte par Mysql 4.x, on garde l'optimisation dans la branche 3.1
10 years ago
Cerdic
c80365467f
Ferme #2912 : ne pas casser un critere {annee=2013} sur une table avec un champ année
...
+ notice PHP potentielle
10 years ago
Cerdic
1b98a71693
simplification de jour_relatif : la fonction SQL TO_DAYS donne exactement le bon resultat, inutile d'y ajouter un calcul basé sur le mois et l'année qui donne un résultat approximatif dès que les dates sont à cheval sur des mois différents.
10 years ago
Cerdic
5b223f9f8a
Optimisation du critere {age} : utiliser la fonction SQL TIMESTAMPDIFF plutot qu'une expression compliquee. On doit pouvoir optimiser aussi les xxx_relatifs mais c'est à creuser
10 years ago
Matthieu Marcillaud
ea940c5b10
Report de r20105 : Amélioration du critère {par x.y} qui ne se débrouillait pas de lui-même pour ajouter la jointure, si elle n'était pas déjà là au moment du calcul du critère.
10 years ago
kent1
ff1bdacc2c
Report de r19965
...
Pouvoir utiliser des déclarations de champs de date qui ne sont pas habituels pour les critères de dates (jour_relatif, age_relatif etc) en utilisant $GLOBALS['table_date'][$table['id_table']]
10 years ago
Matthieu Marcillaud
0c3b9c1728
Correction de notice PHP lors d'un critère {1/2}
11 years ago
Matthieu Marcillaud
a74ca6baee
PHP Doc sur les paramètres des objets décrivant l'AST. Il reste Boucle qui n'est pas fini (mais c'est épuisant à faire !).
...
+ on passe les "var" en "public" au passage, qui explicite plus la visibilité de la variable.
11 years ago
Matthieu Marcillaud
ff39a3f9a7
Évacuation d'une notice PHP sur le critère {doublons}.
...
Pas si simple : on initialise le tableau $doublons dans l'en-tête de la boucle
11 years ago
Matthieu Marcillaud
1d72d3b88b
Réorganisation et documentation du code du critère doublons pour mieux le comprendre (aucun changement fonctionnel dedans).
...
Il reste une notice PHP dessus car $doublons[ x ] est demandé alors qu'il n'existe pas encore.
11 years ago
Matthieu Marcillaud
968f31a7db
Quelques Php Doc
11 years ago
Matthieu Marcillaud
08fa023b5e
Notice PHP + 1 phpdoc
11 years ago
Matthieu Marcillaud
0e85830e5d
Notice sur les recherches sans résultat
...
+ PHPDoc du critère branche
11 years ago
Matthieu Marcillaud
8eaba2a296
Hum... Pas de $quote_end en exces ! disions nous.
11 years ago
Matthieu Marcillaud
16956d4b08
Pas de $quote_end en exces !
11 years ago
Cerdic
23136845c7
oups dans r19527
11 years ago
Cerdic
75c5334551
l'usage d'un in minuscule dans {id_rubrique in 1,23} passe en mySQL mais pas en SQLite pour une sombre histoire de quote. Corrigeons
11 years ago
Matthieu Marcillaud
28db44f74a
Correction de notices PHP
...
+ dans aiguiller, en plus de charger inc/lang, on demande a remplir la globale spip_lang si elle n'existe pas.
11 years ago
Matthieu Marcillaud
7f6cd3d2b1
Corrections de notices PHP
11 years ago
Matthieu Marcillaud
5b6087ceb8
Corrections de notices PHP
...
Et une coquille qui datait de 4 ans dans r12160 avec $boucle_mode_partie au lieu de $boucle->mode_partie !
11 years ago
Matthieu Marcillaud
29edf73fac
Corrections de notices PHP
11 years ago
Cerdic
f761016fa6
Reparer les criteres age, age_relatif, et (jour|mois|annee)_relatif qui se comparent tous a un entier et non une date (bug visible sous sqlite uniquement, mysql etant laxiste), suite a r19343
...
Reparer le critere heure qui était cassé partout par la faute d'un echappement manquant
11 years ago
Cerdic
8cae8c4e96
Ferme #2686 : prise en compte erronee du type des champs date dans les criteres
11 years ago
denisb
bf84a7b5ab
public/criteres.php : on revert [19338] qui casse trp de chose, en particulier {par titre}{par id_article}{inverse} (cerdic).
11 years ago
denisb
804437925e
public/criteres.php : appliquer le critère inverse sur tous les champs possiblement passés au critère par (résout #2685 ).
11 years ago
Cerdic
f264f76e99
Complement a r19257 r19260 r19261 : quand un critere porte sur un champ externe trouvé par jointure, remonter le $desc de la table correspondante pour permettre de le quoter correctement
11 years ago
Cerdic
a196d11fea
Corriger le cas le quote dans le cas
...
<BOUCLE_art(ARTICLES){export=#ENV{export}}>
il faut analyser correctement le sql_quote produit en amont pour y inserer le type, y compris en cas de debug ou l'expression comprend des commentaires
On se fonde sur le fait que dans sql_quote(a,b,c) :
b et c sont optionnels
b qui est un nom de connect.php ne peut pas contenir de parenthese fermante )
c qui est un type de champ ne peut contenir qu'une occurence de parenthese ouvrante/fermante autour d'un nombre
On donne les cas tests de la regexp dans les commentaires
11 years ago
Cerdic
5ab470f317
Complement a r19257 : corriger le quote des int quand le type du champ le justifie y compris lors du debug ou la valeur est precedee d'un commentaire
11 years ago
Cerdic
f437e6a4cc
<BOUCLE_art(ARTICLES){export=01234}> produit une requete SQL invalide car 01234 n'est pas quote au pretexte qu'il ressemble a un nombre alors que export est au format varchar.
...
L'approximation passe inapercu en mySQL mais coince avec les autres SQL.
Pour corriger on permet a kwote de recevoir le serveur et le type et de les passer a sql_quote, et on passe un type char systematique quand on kwote une valeur fournie dans le squelette. Les entiers sont demontes plus loins en fonction du type du champ, on deconditionne simplement cette operation en l'applicant systematiquement : les champs dont on ne connait pas le type sont presumes int, ce qui nous ramene au kwote de depart...
11 years ago
Cerdic
70765aeb72
Ferme #2661 : quand on quote une colonne calculée non définie en base, préciser NOT NULL car sinon sql_quote renvoie NULL pour une valeur non definie (=null php) et non 0 comme auparavant
11 years ago
denisb
861077f749
ecrire/public/criteres.php : résout #2648
11 years ago
Cerdic
3353745b5e
Ferme #2507 : la boucle ENUM disparait au profit du critère de la boucle DATA {enum min,max} qui peut aussi s'ecrire {enum max,min} ou {enum min,max,pas} :
...
Exemples :
<BOUCLE_enum1(DATA){enum 1,5}>#VALEUR<br /></BOUCLE_enum1><hr />
<BOUCLE_enum2(DATA){enum 5,1}>#VALEUR<br /></BOUCLE_enum2><hr />
<BOUCLE_enum3(DATA){enum a,z}>#VALEUR<br /></BOUCLE_enum3><hr />
<BOUCLE_enum4(DATA){enum z,a}>#VALEUR<br /></BOUCLE_enum4><hr />
<BOUCLE_enum5(DATA){enum 1.2,4.5}>#VALEUR<br /></BOUCLE_enum5><hr />
<BOUCLE_enum6(DATA){enum 1,6,2}>#VALEUR<br /></BOUCLE_enum6><hr />
11 years ago
Matthieu Marcillaud
7b59bc7f04
Il restait un problème avec l'usage du critère {si }.
...
Il faut initialiser le tableau si à chaque iteration de la boucle, mais pas donc à chaque apparition d'un critère si, si la boucle en contient plusieurs. (Rastapopoulos).
Boucle qui a servi de test :
{{{
#SET{expose,1}
<BOUCLE_un(DATA){liste 1,2,3,4,5}>
#SET{expose,#VALEUR|=={2}|?{oui}}
<h2>BOUCLE un : #VALEUR ; expose : #GET{expose}</h2>
<BOUCLE_deux(DATA){si #GET{expose}}{liste a,b,c,d,e,f}>
<h3>BOUCLE deux : #VALEUR; expose : #GET{expose}</h3>
</BOUCLE_deux>
</BOUCLE_un>
}}}
11 years ago
Matthieu Marcillaud
31c49ce837
Pouvoir mettre plusieurs conditions {si } dans une boucle sans que la précédente condition soit écrasée !
11 years ago
Cerdic
eabed38e61
DATE_FORMAT produit une chaine qu'il faut comparer a une chaine et non a un format int (mysql tolerait cela, sqlite non)
11 years ago
Cerdic
fdfb00a276
Ferme #2012 suite a http://zone.spip.org/trac/spip-zone/changeset/59085 : imbrication des else dans le cas ou l'on declare une exception des jointures sur la table et generique : la premiere ne doit pas empecher d'utiliser la seconde
...
+ coquille
11 years ago
Cerdic
3bbf9da688
Ferme #2548 : dans les criteres ou l'on compare un champ avec une valeur, passer le type du champ a sql_quote a chaque fois qu'on le peut, et non uniquement pour les int
11 years ago
Cerdic
8f9c12a39e
Ferme #2539 : passer le type complet a sql_quote et non juste "int" ce qui permet de repérer les NOT NULL et de forcer un intval sur une valeur d'env non renseignée (sql_quote renvoie 0 et non NULL dans ce cas)
11 years ago
Cerdic
36d5316e44
quand on precise un critère {articles.statut='publie'} et que la table articles est deja jointe, il ne faut pas reinstaller la jointure une seconde fois...
11 years ago
BennyB
d8f7f77955
Happy New Year
11 years ago
Matthieu Marcillaud
9f983589af
On indique dans le critère pagination le debut et le pas dans le tableau $command['pagination'], ce qui peut servir à un iterateur pour ne demander que les resultats entre les termes de la pagination.
11 years ago
Matthieu Marcillaud
ba38f325f5
Petite coquille dans r18863
...
+ code commenté au cas où on ait l'idée de cacher les erreurs de {id_mot?} si le plugin mot n'est pas là
Et bonne année à tous !
11 years ago
Matthieu Marcillaud
3aeaf32ef8
Les critères de jointures forcées {x.champ} étaient en panne.
...
Cette correction est j'espère satisfaisante, mais à vérifier tout de même.
Ferme #2464
11 years ago
Matthieu Marcillaud
0226e6eb5f
Ne pas tenter un table_objet(true) + phpDoc un peu plus à jour car on peut arriver ici visiblement avec une chaine.
11 years ago
Matthieu Marcillaud
9b74fd420a
Coquille dans r18822 : Ne pas laisser de point tout seul !
11 years ago
Cerdic
c7e83245e4
r16662 qui reportait r16655 avait cassé les critères relatifs sur les SQL qui ne tolèrent pas la comparaison d'un nombre avec une chaine (nombre quoté), ie SQLite notamment.
...
On retablit le fonctionnement en modifiant le retour de la fonction calculer_critere_infixe_date qui n'est appelé qu'une unique fois dans tout le core.
11 years ago
Matthieu Marcillaud
c8233d68b1
Permettre des recherches de tables jointes sur les critères {par multi x} (merci Cédric).
...
On autorise :
- {par multi L1.nom} , mais également
- (PAQUETS plugins){par multi nom}, nom étant sur la table plugins
Cependant :
- (ARTICLES){par multi nom} ne fonctionne pas seul avec ce dépot. il faut la table de destination connue, par exemple avec
- (ARTICLES auteurs){par multi nom}
11 years ago