Ah ça oui forcément, ya pu de register_global par defaut en php ^^
(le truc qui transformait automatiquement GET [ ‘pwet’ ]” en $pwet, source de probleme de sécurité).
( j’comprends rien au truc textile, impossible d’écrire correctement la superglobale GET )
_________________
Petites questions pour Tchyo sur Django (ça faisait longtemps ^^).
D’abord, concernant l’utilisation de textile. En gros il y a deux écoles on dirait. La première serait d’avoir un attribut
text = TextField('Text')
que l’on rempli avec du textile, puis dans le template, faire un coup de
{{ o.text|textile }}
pour faire le rendu. C’est simple, ça marche bien, et avec le cache de django (bien que je ne sais pas si celui-ci est actif automatiquement ou pas, j’ai pas encore regardé) ça ne doit pas poser de problème d’un point de vue performance ?
La deuxième façon de faire, c’est celle que j’utilisais lorsque j’ai commencé à faire du django mais que je ne parviens pas à refaire maintenant (:D) c’est d’utiliser 2 attributs dans le model:
text = TextField('Text') text_html = TextField(editable=False)
et on surcharge la methode save:
def save(self): self.text_html = textile(self.text) #osef de l'utf-8 dans l'exemple
et dans la template du coup :
{{ o.text_html }}
Mais ça, ça ne marche pas, le textile est bien transformé en html, mais les codes html eux mêmes sont transformé en entité-caractère (les ’<' et '>’ sont transformés).
Du coup je ne sais pas trop vers quelle solution me tourner, la 1ère est la plus simple (peut-être la plus pérenne aussi ?), je peux m’en contenter ?
--
Ma deuxième question concerne la gestion des membres. Est-ce qu’il est préférable de faire hériter mon modèle de auth.User ou il vaut mieux créer son propre modèle sans s’occuper de ça ? Car j’ai fait rapidement ma propre classe Membre qui hérite de User en y ajoutant quelques bricole (pseudo, avatar, profil je crois), mais du coup dans l’admin j’ai une redondance de l’information (un Membre est aussi un User). Comment c’est gérer sur LE ?
PS : pourquoi j’veux mettre du textile alors que j’arrive même pas à m’en servir ?
_________________
Petites questions pour Tchyo sur Django (ça faisait longtemps ^^).
D’abord, concernant l’utilisation de textile. En gros il y a deux écoles on dirait. snap
Alors déjà, le problème du HTML, c’est qu’il faut déclarer ta variable comme safe sinon le moteur de template va te l’échapper par défaut.
{{ o.contenu_html|safe }}
Ensuite, non le moteur de template n’utilise pas de cache, il est suffisament rapide pour que ça le ralentisse plus qu’autre chose d’après les développeurs. Donc la première solution a bien un impact de performance. Qui peut devenir particulièrement problématique si tu utilises la sanitisation et la validation/correction HTML avec uTidyLib. C’est au point où j’ai été obligé de forker les commentaires de django.contrib.comments juste pour ajouter ce nouveau champ dans le modèle.
Ma deuxième question concerne la gestion des membres. Est-ce qu’il est préférable de faire hériter mon modèle de auth.User ou il vaut mieux créer son propre modèle sans s’occuper de ça ? Car j’ai fait rapidement ma propre classe Membre qui hérite de User en y ajoutant quelques bricole (pseudo, avatar, profil je crois), mais du coup dans l’admin j’ai une redondance de l’information (un Membre est aussi un User). Comment c’est gérer sur LE ?
Il y a un mécanisme en interne pour complémenter le modèle d’utilisateur de base avec un autre, qui lui sera lié par une relation OneToOne. Tous les détails dans la doc comme d’hab.
PS : pourquoi j’veux mettre du textile alors que j’arrive même pas à m’en servir ?
Ca veut dire que le lavage de cerveau a été efficace >D
_________________
Hadō Sonzai
Question SQL :
J’aurais besoin de combiner deux sets de données en un seul. Le problème est que chacun de ces set est différent de l’autre. Je ne peux donc pas utiliser d’UNION dessus. QUelqu’un aurait une idée ?
_________________
Tu peux pas être plus précis ?
_________________
Hadō Sonzai
En fait j’ai résolu le problème mais voilà ce face à quoi je me trouvais (je suis preneur de toute solution car je trouve la mienne assez crade)
Table a - champ id_a - champ y - champ z Table b - champ id_b - champ d - champ k table a_b (intégrité référentielle sur les tables a et b) - champ id_a - champ id_b table c - champ id_c - champ g - champ l table a_c (intégrité référentielle sur les tables a et c) - champ id_a - champ id_c
Le problème ici est de sélectionner tous les champ des tables a, b et c en ayant une double liaison sur la table a. Vu que la liaison via un NATURAL JOIN est impossible (et que les INNER JOIN ou autres n’acceptent pas de double référence sur a) et que la possibilité de faire un UNION entre les deux ensembles ([a, b] et [a, c]) m’est coupée par les champs de nom et de type différents j’ai du passer par la création de “faux champs” ayant les mêmes types que ceux de l’autre ensemble. Cela m’a permis de créer deux ensembles identiques (avec beaucoup de valeurs NULL) et de faire une UNION.
Au final ça ressemble à ça :
PREMIER ENSEMBLE :
Table a - champ id_a - champ y - champ z Table b - champ id_b - champ d - champ k - faux champ id_c - faux champ g - faux champ l table a_b (intégrité référentielle sur les tables a et b) - champ id_a - champ id_b
SECOND ENSEMBLE
Table a - champ id_a - champ y - champ z table c - champ id_c - champ g - champ l - faux champ id_b - faux champ d - faux champ k table a_c (intégrité référentielle sur les tables a et c) - champ id_a - champ id_c
_________________
Dédicace Echzechiel, PHP invente les fonctions undeprecated :x
_________________
Hadō Sonzai
Dédicace Echzechiel, PHP invente les fonctions undeprecated :x
‘Feraient mieux de bosser sur utf-8.
_________________
Salut.
Je suis sous Wampserver parce que j’essaie d’utiliser un truc qui s’appelle dokuwiki. Mais je ne peux pas installer de plugin. J’ai un message d’erreur :
Warning: chmod() [function.chmod]: No such file or directory in C:\wamp\www\brouillon\inc\io.php on line 506
Voici la ligne 506 :
if(!conf[‘fperm’]) chmod(conf[‘fperm’]);
if (name;
Quelqu’un saurait-il comment changer le chmod ? Je pense qu’il faut changer le chmod en 777, mais je ne sais pas le faire sous Windows 7.
Merci d’avance.
_________________
\[T]/
Euh chmod c’est un truc unix ça, ça n’existe pas sous Windows :x
Je ne comprends pas du tout ton histoire de 777, mais sous Windows 7 “l’équivalent” c’est les droits d’accès NTFS. Je n’y connais rien à wamp, mais si c’est bel et bien un problème de droits d’accès, regarde dans les propriétés de ton dossier C:\wamp\www\brouillon\inc\ et, dans l’onglet “sécurité”, vérifie que ton compte (ou le compte administrateur) a des droits en écriture et modification.
_________________
Hadō Sonzai
Salut.
Je suis sous Wampserver parce que j’essaie d’utiliser un truc qui s’appelle dokuwiki. Mais je ne peux pas installer de plugin. J’ai un message d’erreur :
Warning: chmod() [function.chmod]: No such file or directory in C:\wamp\www\brouillon\inc\io.php on line 506
Voici la ligne 506 :
if(!conf[‘fperm’]) chmod(conf[‘fperm’]);
if (name;Quelqu’un saurait-il comment changer le chmod ? Je pense qu’il faut changer le chmod en 777, mais je ne sais pas le faire sous Windows 7.
Merci d’avance.
Il n’y a pas de CHMOD sous windows. En fait le script tente d’éxécuter un chmod et… ne le peux pas (logique). Ceci dit il s’agit juste d’un avertissement (warning) et ce n’est donc pas trop grave, il suffit de ne plus afficher ce niveau d’erreur.
Pour ce faire :
Clic gauche sur l’icone de wamp lorsqu’il est démarré > php > php.ini
Trouve la ligne ou il y a “error_reporting =” (vers la ligne 510) et remplace le coté droit de l’égalité par “E_ALL & ~E_DEPRECATED”. Relance wamp et tu ne devrais plus voir l’erreur (tant qu’à faire poste la partie droite).
_________________
Merci à vous deux. ^^
_________________
\[T]/