- jan. 25, 2008
-
-
esj a rédigé
Le clonage de la présentation des statistiques en celui des signatures ayant inclus le lien CSV par erreur, autant aller justqu'au bout. Les productions de fichiers CSV sont à présent assurées par des squelettes accessibles seulement depuis l'espace privé, et rangé dans {{{prive/transmettre}}}. Il y en a un pour les statistiques générales des visites, un pour celles pour d'un article précis (résultats identiques à ce qu'il y avait avant), mais aussi un pour les signatures d'une petition. Pour ce dernier squelette, utilisation de la jointure explicite pour obtenir les signatures sur toutes les traduction de l'article.
-
- jan. 24, 2008
-
-
Fil a rédigé
pouvoir dire qu'un squelette ne doit pas etre invalide des qu'on touche a la base de donnees (sur une idee et une piste de code donnees par Renaud, ml@ascii-fr.com) : #CACHE{3600, statique}
-
Fil a rédigé
-
esj a rédigé
Optimiser [11114]: recopie dans modeles/image de l'extrait de modeles/img qui est finalement inclus, ça évite de refaire une boucle SQL et une inclusion PHP.
-
Fil a rédigé
rand() avec deux parametres pour faire plaisir a certains, mais le manuel dit qu'un seul doit suffire - http://news.gmane.org/find-root.php?message_id=%3c47986767.9030602%40hoizey.com%3e
-
esj a rédigé
Retour des images en taille pleine lorsqu'appellées par le modèle Emb ou Image. Fallait comprendre que passer {mode=image} dans l'environnement ne servait à rien puisque masqué par le champ 'mode' de la boucle Documents.
-
esj a rédigé
Le changement de stratégie sur la protection des documents rebondit encore. Si un modèle a besoin d'incruster un document dont il ne connait que l'URL, le site exécutant la fonction copie_locale va échouer sur son propre appel car un serveur n'est pas son propre client. On repère donc la situation suffisamment en amont pour pouvoir faire sauter la auto-protection. Par ailleurs, le filtre d'incrustation d'un CSV admet aussi la tabulation comme séparateur de colonne, et le {{{^M}}} comme unique séparateur de ligne (j'espère que le nombre de tableurs qui réinventent le RFC de CSV est strictement inférieur à mon nombre de collègues, je commence à en douter). Précision sur [11111]: le raccourci pour Caption est {{{||}}} qu'il faut écrire entre triple accolade sur le Wiki de Trac.
-
ARNO* a rédigé
-
- jan. 23, 2008
-
-
esj a rédigé
* le format CSV utilisé par OpenOffice est très différent de celui d'un autre tableur dont j'ai oublié le nom, mais respecte, lui, le RFC officiel (http://www.rfc-editor.org/rfc/rfc4180.txt) où s'est bien une virgule qui sépare les valeurs (Coma Separated Value on a dit), et l'usage des sauts lignes ou du dit séparateur est possible en utilisant des guillemets (à doubler quand on en veut un). La fonction '''filtre_text_csv''' accepte à présent aussi toutes ces spécifications. Elle analyse plus finement le début de fichier, et produit une balise Caption lorsqu'il commence par une ligne où seule la première colonne n'est pas vide. * le raccourci || en début de tableau pour produire une balise Caption n'était plus reconnu depuis une éternité; * petit blindage du script des signatures au cas où un article à pétition aurait disparu mais pas elle.
-
- jan. 22, 2008
- jan. 20, 2008
- jan. 19, 2008
-
-
esj a rédigé
-
- jan. 18, 2008
-
-
Christian Lefebvre a rédigé
-
esj a rédigé
Nuls, ces serveurs SQL: {{{ T1 JOIN T2 USING x JOIN T3 USING x }}} leur fait dire qu'il y a une ambiguité sur x alors qu'ils ont bien vu que les colonnes nommées x étaient égales... Retour au ON.
-
esj a rédigé
Utiliser systématiquement http_script() pour éviter l'erreur de validation signalée par #1134, et alléger l'écriture. Il en reste peut-être encore quelques unes.
-
esj a rédigé
Elimination de la table principale de la boucle de [11091]: traitement particulier de la boucle Document dont la "table principale" a une jointure d'office. Toujours le même fichier à contrôler pour SQLite. Scorie de [11089] qui empêchait contenu_document de fonctionner dans un cas.
-
esj a rédigé
Il incruste le corps d'une page Html après retrait des scripts (sécurité) en mettant devant une balise Style dont le contenu est celui des balises Style trouvées dans l'en-tête ainsi que le contenu des feuilles de styles reférencées. Evidememnt ces références doivent être en URL absolues dans le document pour pouvoir être trouvées. En conséquence, pour donner l'exemple, les pages de l'espace privé de SPIP ont leur balise Link en URL absolue. A noter que SafeHtml traite différemment les balises Script dans l'en-tête et celles dans le corps.
-
esj a rédigé
-
- jan. 17, 2008
-
-
Christian Lefebvre a rédigé
-
esj a rédigé
-
Christian Lefebvre a rédigé
-
esj a rédigé
Compilation d'une boucle sans que sa table n'aparaisse dans la requête SQL. Trop beau pour être vrai ? Soit la boucle donnée dans [11087]: {{{ <BOUCLE3(MOTS){id_article}{id_mot}> class='on'</BOUCLE3> }}} dont la compilation montre que finalement c'est seulement le contenu de la table de jointure spip_mots_articles. Il suffit de regarder si la table principale a des occurrences dans les clauses de la requête, compte non tenu des champs dont la fabrication de la jointure dit justement qu'ils sont égaux à celle de l'autre table. Si oui, on remplace les synonymes et on élimine complètement le début de la clause FROM. Ainsi, la boucle ci-dessus ne se compile plus en {{{ SELECT 1 FROM spipnet_mots AS `mots` INNER JOIN spipnet_mots_articles AS L1 ON mots.id_mot=L1.id_mot WHERE (L1.id_article = 898) AND (mots.id_mot = 409) }}} mais en {{{ SELECT 1 FROM spipnet_mots_articles AS L1 WHERE (L1.id_article = 898) AND (L1.id_mot = 409) }}} L'optmisation se retrouve aussi dans par exemple: {{{ <BOUCLE2(MOTS){id_article} />#TOTAL_BOUCLE<//B2> <BOUCLE1(ARTICLES){id_mot} />#TOTAL_BOUCLE<//B1> <BOUCLE4(ARTICLES){id_mot}{id_article} />#TOTAL_BOUCLE<//B4> }}} Il manquait qqch pour traiter ce cas dans la version MySQL, mais pour PG c'était prévu prémonitoirement. Il faut vérifier pour SQLite.
-
esj a rédigé
Utilisation du filtre ''contenu_document'' revu dans le modele Text (aurait du faire partie de [11089]. Ajout de Camille: révision de ''filtre text_csv'' qui considère qu'un fichier CSV commence toujours par une ligne nommant les colonnes, et donc la typographie différement (mais c'est plutôt des TH qu'il faudrait faire produire au raccourci de tableau là).
-
esj a rédigé
Le filtre 'contenu_document' accepte comme argument non seulement un entier (produit notamment par #ID_DOCUMENT) mais aussi un chemin ou une URL (produit notamment par #URL_DOCUMENT). Dans les deux cas il ramène le contenu du document ainsi désigné. La forme {{{ [(#URL_DOCUMENT|contenu_document)] }}} est à préférer car elle garantit l'exécution du squelette sur une base externe, contrairement à ID_DOCUMENT qui ne communique pas sa base de référence. Cette forme reste toutefois nécessaire en cas d'accès protégé aux documents: il faudrait continuer le ménage autour de la fonction ''copie_locale'' pour qu'une copie de soi à soi ne soit pas bloquée dans ce cas. Et correction d'une scorie de [11088].
-
esj a rédigé
Accès au documents. [11072] avait réintroduit maladroitement l'appel à autoriser_voir disparu avec [10998]: il est inutilement couteux de produire une clé s'il n'y a pas de .htaccess, on améliore. Mais [10998] pose un autre problème: le code compilé des balises #URL_* sur base externe ne permet plus d'accéder à un document du site distant puisque ce script refuse à présent toute demande non émise par son espace privé. Du coup, on introduit _DIR_IMG comme nouvelle meta, permettant de demander à un site distant le répertoire de ses documents. Le code compilé des balises #URL_* l'utilise pour produire la bonne URL. Evidemment si un .htaccess est présent, cette URL conduira à un 403. A moyen terme, cette meta devrait permettre de résoudre le problème de l'accès aux vignettes et logos du site distant.
-
esj a rédigé
Amélioration de la détection des boucles dont le corps est constant, afin de transformer le While-Fetch en For sans requête (le Numrows initial suffit). Le manque se situait dans la non prise en compte des {{{\'}}} dans l'analyse du texte. Application au plugin Nuage qui veut mettre en exergue les mots clés d'un article: {{{ <BOUCLE2(MOTS)><br /> <span<BOUCLE3(MOTS){id_article}{id_mot}> class='on'</BOUCLE3>>#TITRE</span> </BOUCLE2> }}} qui fournit: {{{ $result = calculer_select( array("1"), # SELECT array('mots' => 'spip_mots','L1' => 'spip_mots_articles'), # FROM array(), # FROM type jointure array( array('=', 'L1.id_article', intval(@$Pile[0]['id_article'])), array('=', 'mots.id_mot', intval($Pile[$SP]['id_mot']))), # WHERE array(1 => array('mots', 'id_mot')), # WHERE pour jointure array(), # GROUP array(), # ORDER '', # LIMIT array(), # HAVING 'mots', # table '3', # boucle ''); # serveur $Numrows['3']['total'] = @sql_count($result,''); $t0 = ""; for($x=$Numrows["3"]["total"];$x>0;$x--) $t0 .= // 15 signes ' class=\'arial1\''; @sql_free($result,''); return $t0; }}}
-
- jan. 16, 2008
-
-
esj a rédigé
Harmonisation de la structure de données de 'recuperer_infos_distantes' et 'inc_ajouter_document' pour éviter de faire et défaire 2 fois la même chose et gagner une requete SQL.
-
esj a rédigé
Ne pas trop abuser des TimeStamp dans MySQL2PG ça crée des besoins de doubles précisions ingérables. Par ailleurs, produire des constantes numériques plutot que des chaines pour les critères de date relatifs, bien que pour une fois PG semble s'en accomoder (jusqu'à quand ?)
-
esj a rédigé
-
esj a rédigé
Eviter de produire des vignettes de taille nulle et redonner alors l'URL initiale avec un width/height comme pour les images incomprises par GD etc. Le cas se produit lorsque l'image est protégée par un https sur un serveur distant auquel le serveur voulant produire la vignette n'a pas accès, tandis que sont client l'a (suis-je clair?). Coté proxy, autoriser un proxy en Https et pour la phase de test prévenir si on teste une URL n'ayant pas besoin du proxy.
-
esj a rédigé
* Ne pas appliquer deux fois le traducteur MySQL2PG sur la clause From; * uniqid veut un argument (corrige #1222); * la statistiques des signatures avait un mauvais libellé au survol; * un message d'erreur de balise avait un mauvais libellé.
-
esj a rédigé
Dénoncer l'argument manquant dans la balise CHEMIN au moment de la compilation, sinon ça provoque une erreur incompréhensible; voir http://forum.spip.org/fr_199549.html Tant qu'à faire, même contrôle pour la balise INCLURE bien que l'oubli semble très peu probable.
-
esj a rédigé
Il n'était plus possible d'associer une vignette personnalisée à un document qui en avait eu une auparavant. Et petite réécriture de la fonction produisant le formulaire de téléchargement en Ajax, pour qu'il soit facile de rajouter des balises de saisies dans le formulaire.
-
- jan. 15, 2008
-
-
esj a rédigé
* [11072] faisant retourner lpus fréquemment {{{''}}} à generer_url_document en cas d'accès interdit, ne pas produire alors la balise A qui l'employait (le Span introduit après "(" ici est indispensable: le {{{(#TYPE_DOCUMENT...)}}} précédent était équivoque et produit une erreur avec cette modif); * [10955] testait s'il n'y avait qu'un seul document en faisant un tri inutile (merci var_profile); * [10878] avait permis un flux supplémentaire sur les mots et un autre sur les auteurs mais produisait la balise Link même quand il n'y avait pas de telles informations.
-
marcimat a rédigé
Et quelques remodelages de code sur l'analyse des requetes SQLite.
-
marcimat a rédigé
Permettre a sqlite de tracer correctement les requetes aussi; et petit nettoyage pour le comptage des requetes select en sqlite3.
-