- déc. 31, 2007
-
-
renato a rédigé
$boucle->from_type est un tableau du type array(alias du table => type_jointure, ...) C'est pas necessaire mais possible a declarer le type du jointure pour le cas INNER
-
esj a rédigé
Les 5 modèles correspondant aux 5 groupes MIME standard, introduits par [10948] pour faciliter l'incrustation, étaient peu utilisables en l'état sans passer par leur inclusion via le modèle ''emb'', car ''inclure_modele'' ne sait pas que la boucle associée a pour clé primaire ''id_document''. En conséquence, petite réécriture pour utiliser systématiquement le paramètre ''id'' initialisé par ''inclure_modele'', il n'y a que lui de fiable. Principal avantage: si un type MIME du groupe ''application'' est en fait du texte brut (par exemple le PGN), on peut forcer l'incrustation en mode texte en insérant dans l'article {{{<textNNN>}}} bien que le type MIME ne soit pas officiellement du texte. En revanche, il faut réécrire le modèle ''application'' si l'on veut avoir cet effet dans le cas de l'incrustation automatique lorsque le corps de l'article est vide.
-
marcimat a rédigé
-
stephane a rédigé
ajout de 3 criteres sur les boucles SYNDIC_ARTICLES pour remonter les articles syndiques selon les mots cles associes au site syndique : - {id_mot_syndic} : en passant l'id_mot - {titre_mot_syndic} : en passant le titrer du mot - {type_mot_syndic} : en passant le type (titre du groupe) de mot
-
- déc. 30, 2007
-
-
esj a rédigé
Déport dans le fonction d'abstraction sql_in du traitement des cas particuliers de l'argument de IN, valable pour tous les portages. On en profite pour rajouter un ''array_unique'' dans le cas du tableau pour préparer [10995]. Toutefois, alors que PHP traite intuitivement bien {{{$x .= '...'}}} quand {{{$x}}} est indéfini, il déclenche une erreur fatale pour {{{$x += array(...)}}}. Autrement dit, il faut produire un code compilé ne générant pas de Warning si l'on veut éviter les répétitions dans le IN de SQL. Pour plus tard.
-
- déc. 29, 2007
- déc. 28, 2007
- déc. 27, 2007
- déc. 26, 2007
- déc. 24, 2007
-
-
marcimat a rédigé
-
esj a rédigé
La possibilité de ne pas faire apparaître le forum interne dans le script ''articles'' avait disparu (d'ailleurs un argument ne servait plus). On réintroduit en étendant à une surcharge du type du forum.
-
marcimat a rédigé
- alléger la regexp du showtable (sqlite) pour voir même les tables qui n'ont qu'un champ avec aucune parenthèse dans la description (cas de la table spip_test (a INT)) - IF EXISTS sur DROP table ne passait pas SQLite2 - Ne pas bloquer la suppression de la table 'spip_test' lors du sql_alter() en sqlite3 en conservant un objet contenant des résultats d'une requete sur cette table. Avec ça, sqlite passe le test ALTER TABLE sur 'spip_test' dans base/upgrade
-
Fil a rédigé
-
Fil a rédigé
Pour securiser l'acces aux documents, on passe desormais une cle dans l'URL; soit on a obtenu cette cle, et on peut voir le doc, soit non et on ne peut pas le voir : on ne regarde donc plus le statut du document a chaque hit, ca devrait alleger le serveur (sich)
-
- déc. 23, 2007
-
-
esj a rédigé
-
Fil a rédigé
-
esj a rédigé
Si une boucle a plusieurs critères doublons, les fusionner pour n'avoir qu'une seul IN. Ce serait encore mieux d'arriver à éliminer les répétitions éventuellement induites (le summum du ridicule est atteint avec {doublons}{doublons}) car il n'est vraiment pas sûr que les serveurs SQL le fassent.
-
esj a rédigé
-
esj a rédigé
Le '0' rajouté d'office dans le critère doublon était inutile depuis déjà longtemps (optimisation de la construction IN) et même faux si on utilise ce critère dans une table externe dont la clé primaire peut être nulle. Par ailleurs, la détection des {{{0=0}}} n'était pas systématique. Cela fait, ceci: {{{ <BOUCLE_syndiczone(SYNDIC_ARTICLES){id_mot=233}{doublons zone}> ... </BOUCLE_syndiczone> }}} se compile en: {{{ SELECT syndic_articles.id_syndic_article, syndic_articles.id_syndic FROM Essai_syndic_articles AS `syndic_articles` INNER JOIN Essai_mots_syndic AS L1 ON syndic_articles.id_syndic=L1.id_syndic INNER JOIN Essai_syndic AS L2 ON syndic_articles.id_syndic=L2.id_syndic WHERE (L1.id_mot = '233') AND (syndic_articles.statut = 'publie') AND (L2.statut = 'publie') GROUP BY syndic_articles.id_syndic_article,syndic_articles.id_syndic }}} avec des warnings supeflus en moins.
-
esj a rédigé
-
esj a rédigé
Ajout d'une déclaration de jointure pour pouvoir utiliser le critère id_mot dans une boucle syndic_articles. En particulier, le squelette de SpipContrib contenant: {{{ <BOUCLE_motsiteszone(MOTS){id_mot=233}> <BOUCLE_siteszone(SITES){id_mot}> <BOUCLE_syndiczone(SYNDIC_ARTICLES){id_syndic}{doublons zone}> .... </BOUCLE_syndiczone> </BOUCLE_siteszone> </BOUCLE_motsiteszone> }}} dont la première boucle était déjà superflue ({{{id_mot=233}}} pouvait se mettre comme critère de la 2e boucle), peut maintenant s'écrire avec une seule: {{{ <BOUCLE_syndiczone(SYNDIC_ARTICLES){id_mot=233}{doublons zone}> ... </BOUCLE_syndiczone> }}} et se compile en: {{{ SELECT syndic_articles.id_syndic_article, syndic_articles.id_syndic FROM Essai_syndic_articles AS `syndic_articles` INNER JOIN Essai_mots_syndic AS L1 ON syndic_articles.id_syndic=L1.id_syndic INNER JOIN Essai_syndic AS L2 ON syndic_articles.id_syndic=L2.id_syndic WHERE (L1.id_mot = '233') AND ((syndic_articles.id_syndic_article NOT IN (0))) AND (syndic_articles.statut = 'publie') AND (L2.statut = 'publie') GROUP BY syndic_articles.id_syndic_article,syndic_articles.id_syndic }}} Le {{{IN (0)}}} correspond au cas d'un {{{doublons zone}}} vide, ce qui est le cas du squelette de SpipContrib. Le gain est donc dans l'évacuation d'une boucle enchassant une boucle avec un IN qui grossissait à chaque itération de la boucle englobante.
-
- déc. 22, 2007
-
-
esj a rédigé
Nouvelle numérotation pour $spip_version et introduction des types de documents ''sty'' et ''cls'' lié à LaTeX. La numérotation de $spip_version sous forme d'un nombre réel déduit de $spip_version_code allant atteindre ses limites, on prend à présent comme valeur le numéro de dépot SVN introduisant un changement dans la base. A nouveau, adaptation rétrospective du code de mise à jour à partir de la 1.9.2: en multipliant par 1000 ces valeurs de $spip_versions, on obtient des valeurs entières inférieures au numéro SVN actuel, et ça devient compatible avec le nouveau schéma général de mise à jour. Ça evite un quasi doublon de code et ça permet un test en vraie grandeur. A noter que SVN ne donne pas accès automatiquement au dernier numéro de version d'un fichier, il faut toujours affecter $spip_version manuellement; du coup il y aura peut-etre parfois des dépots simultanés qui feront que le numéro affecté vaudra 1 de moins que celui qu'il faudrait. Pas dramatique.
-
- déc. 21, 2007
-
-
Fil a rédigé
-
Fil a rédigé
-
Fil a rédigé
-
esj a rédigé
Atterrir directement sur le formulaire permettant d'effacer une signature, aprèes l'avoir recherchée. Cet atterrissage à partir de l'espace public étant malcommode (autorisation préalable pas toujours faite) on se contente à ce niveau de mettre l'id_signature dans le source HTML. Pour l'espace privé, cette recherche autorisée incidemment par [10866] avait en fait un bug d'affichage. Il est corrigé, et c'est donc à partir du script ''recherche'' qu'on va pouvoir atterrir sur l'endroit désiré.
-
esj a rédigé
Anti-anti-spam: le contenu (ou l'absence) de certains en-têtes SMTP est de plus en plus analysé par les outils anti-spam, aussi l'envoi de mail par SPIP fournit à présent un Message-Id; et évite que les en-tetes obligatoires aient un contenu suspect aux yeux des RegExp utilisées par ces outils. Cf les références dans le code, d'autant que le contenu du message lui-même est à présent lui aussi examiné, mais là c'est à chacun de lire les RegExp en question et de ne pas s'y conformer.
-
- déc. 20, 2007
-
-
ARNO* a rédigé
-
marcimat a rédigé
- Ne pas afficher le formulaire de selection d'un serveur de base de donnée si l'on a renseigné _INSTALL_SERVER_DB - Cacher les paramètres de connexion (adresse, user, pass) au serveur si SQLite est prédéfini dans _INSTALL_SERVEUR_DB - Utiliser la constante _ECRIRE_INSTALL dans sqlite plutot que _request('exec')=='install' afin de pouvoir faire des installations automatiques avec le plugin 'mutualisation'.
-