
Recherche avancée
Médias (91)
-
Head down (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Echoplex (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Discipline (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Letting you (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
1 000 000 (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
999 999 (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
Autres articles (76)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...) -
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users.
Sur d’autres sites (11304)
-
Evolution #3897 (Nouveau) : Traduction des configurations (yaml, xml, json) et certains formulaire...
6 février 2017, par marcimat ☺☮☯♫Je remets le texte d’un mail envoyé sur spip-devel (comme il n’y a plus de liens gmane pour les voir), sur le sujet parlant de la fonction
_T_ou_typo()
qui permet de pouvoir traiter des chaînes contenant- soit
"du texte"
- soit une
"<:chaine_de_langue:>"
- soit des
"<multi>...</multi>"
La fonction
_T_ou_typo()
a comme usage principal d’appliquer la fonctiontypo()
sur le texte qui lui est envoyé, ou récursivement sur chaque valeur si un tableau lui est donné.
Et, si un des textes est de la forme<:cle_de_langue:>
ou<:module:cle_de_langue:>
(une forme simple de l’écriture de chaîne de langue dans les squelettes donc), alors c’est la valeur de traduction de cette chaîne de langue qui est retourné.Autrement dit :
_T_ou_typo("Coucou") == "Coucou" _T_ou_typo("<:module:bonjour :>") == "Coucou" (avec le fichier de langue qui va bien quand même) _T_ou_typo("Coucou") == "Coucou" _T_ou_typo(["Coucou", "<:module:bonjour :>", "Coucou"]) == ["Coucou", "Coucou", "Coucou"]
Cette intégration pose plusieurs questions sur l’usage / le besoin d’origine et sur la réponse apportée.
L’usage et solution actuelle¶
Le besoin est de permettre dans des fichiers de configuration (yaml, xml, json) de certains plugins, ou dans des options de configuration de certains plugins directement dans l’interface privée de SPIP (Menus, Formidable, Champs Extras, ...), de pouvoir indiquer soit un texte quelconque, soit de se référer à une chaîne de langue quelque part.
Par exemple, dans une déclaration
.yaml
d’une saisie, on peut trouver :label: '<:saisies:option_groupe_description:>'
. On pourrait utiliser pour des saisies spécifiques à un sitelabel: 'Description'
si on sait que le site n’est pas multilingue par exemple.La difficulté d’utiliser directement le code de langue (ie :
label: 'saisies:option_groupe_description'"
qui paraît pourtant plus simple) est qu’il est impossible de discriminer les cas où on écrirait un code de langue, des cas où c’est réellement le texte voulu, par exemple avec"label: 'todo'"
, qui si on utilise le code de langue retournerait ’à venir’ (dans spip_fr.php), alors que ce n’était pas forcément ce qui serait souhaité.D’où donc l’apparition de cette écriture
<:truc:muche:>
pour les textes de configuration, écriture connue déjà dans les squelettes SPIP, avec les nuances qu’on parle bien ici d’une syntaxe simplifiée.
On ne peut pas écrirelabel: '<:module:nb_elephants{nb=5}:>'
par exemple.Proposition¶
Il me semble qu’on pourrait voir la chose autrement, en considérant que toute présence d’un
idiome
doit être transformé par la fonctiontypo()
.
La fonctiontypo()
traite déjà en fait le cas des polyglottes<multi>...</multi>
que l’on peut écrire à la fois dans les squelettes SPIP et à la fois dans le texte d’un article.
Il suffirait d’ajouter la gestion de l’idiome<:module:cle:>
également. Ainsitypo("<:module:bonjour:>")
retournerait "Coucou" en allant piocher la chaîne de langue correspondante.La conséquence est que ça permettrait plus de possibilités que le besoin d’origine (on pourrait mettre des chaines de langue dans les textes d’articles par exemple)
(je ne dis pas que ça serait recommandé non plus, mais dans certains cas ça serait pratique !), tout en répondant au problème avec les configurations de type .yaml ou d’autres déclarations multilingues : il leur suffirait d’appliquer typo() sans autre question, du moins en théorie. - soit
-
Anomalie #4129 (En cours) : Echec de la première connexion des utilisateurs LDAP et non création d...
11 avril 2018, par Franck Rversion de SPIP : 3.2.1 [23954]
version de PHP : 5.6.33
version de MySQL : 14.14Jusqu’à il n’y a pas si longtemps (désolé pour l’imprécision, on ajoute pas des utilisateurs si fréquemment), les utilisateurs LDAP pouvaient s’authentifier sur SPIP et l’utilisateur SPIP était créé dans la base de donnée. J’ai remarqué récemment que les nouveaux arrivants ne pouvaient plus s’authentifier, et donc créer leur compte, de cette manière.
Problème¶
Ce problème a été remarqué sur le site en production mis à jour en 3.2.1, ainsi que sur une installation de test 3.2.1 propre (attention au bug de config LDAP ).
- Le site SPIP est configuré pour utiliser l’authentification LDAP ;
- Un nouvel utilisateur est créé dans le LDAP ;
- Il se connecte au site SPIP avec ses identifiants LDAP ;
- La connexion échoue systématiquement.
La demande #3824 offre une solution avec
_AUTORISER_AUTH_FAIBLE
mais elle ne me semble pas satisfaisante sachant que LDAP est configurable à l’installation de SPIP, le mode par défaut devrait assurer que l’on puisse se connecter.Workaround¶
Il y a au moins deux solutions qui fonctionnent :
- La création de l’utilisateur à la main dans la base de donnée permet à l’utilisateur de se connecter (
insert into spip_auteurs ...
) - Mettre
define ('_AUTORISER_AUTH_FAIBLE', true);
Analyse¶
Lors de la toute première authentification d’un utilisateur inconnu de SPIP, le mot de passe est envoyé sécurisé par défaut (hachage réalisé par le javascript avec les aleas actuel/futur). Seulement l’authentification LDAP requiert le mot de passe en clair. Lorsque l’utilisateur existe déjà et que la source est
ldap
, alors la sécurisation du mot de passe est désactivée (login.js
,login-sha-min.js
, le cadenas à côté du champ mot de passe disparait), d’où le fonctionnement du workaround 1. Si on désactive la sécurisation du mot de passe, workaround 2, alors cela fonctionne lors de la première authentification, et l’utilisateur est bien créé dans SPIP.Remarque¶
L’envoi en clair n’est pas un gros problème dans notre cas, le site est forcé en HTTPS.
-
Anomalie #3894 : Jointures (erronées ?) avec les boucles documents et leurs critères
27 janvier 2017, par marcimat ☺☮☯♫Jointure avec Documents / id_mot¶
Par ailleurs pour les mots la jointure que montre tcharles est correcte justement. Cependant, là il cherche les mots clés présents sur les documents, ce qui contredit ce que je disais en 2012 là http://marcimat.magraine.net/SPIP-3-Documents-Mots :
Ce que SPIP va décider lorsqu’il y a ambiguïté, c’est à dire comme ici
(DOCUMENTS){id_mot}
alors qu’il existe les 2 tables spip_documents_liens et spip_mots_liens, c’est qu’il va préférer interpréter cela comme une liaison sur la table de lien de la boucle en cours, c’est à dire sur spip_documents_liens, ce qui signifie donc que ça va retourner « les documents attachés à un mot clé »Donc, pour ce point, quelque part à un moment donné il y a eu un changement.
Autres test.¶
Je viens de remarquer que le problème survient dès lors qu’il y a plusieurs critères optionnels sur la boucle. De telle sorte les boucles suivantes ont une seule jointure sur spip_documents_liens :
-
-
-(+ 1 jointure sur spip_mots_liens)
C’est dès lors qu’on utilise plusieurs critères optionnels que les problèmes surviennent :
-Si on appelle
page=test&id_breve=1
(1er critère) on aura 1 seule jointure :SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.statut = ’publie’) AND (documents.mode IN (’image’,’document’)) AND (documents.taille > 0 OR documents.distant=’oui’) AND (L1.id_objet = 1) AND (L1.objet = ’breve’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Si on appelle
page=test&id_article=1
(2è critère) on aura 2 jointures :SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_documents_liens AS L2 ON ( L2.id_document = documents.id_document ) INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.statut = ’publie’) AND (documents.mode IN (’image’,’document’)) AND (documents.taille > 0 OR documents.distant=’oui’) AND (L2.id_objet = 1) AND (L2.objet = ’article’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Si on appelle
page=test&id_rubrique=1
(3è critère) on aura 2 jointures (le L s’incrémente à L3) :SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_documents_liens AS L3 ON ( L3.id_document = documents.id_document ) INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.statut = ’publie’) AND (documents.mode IN (’image’,’document’)) AND (documents.taille > 0 OR documents.distant=’oui’) AND (L3.id_objet = 1) AND (L3.objet = ’rubrique’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Autrement dit, je pense que SPIP crée une jointure pour la possibilité d’avoir id_breve dans l’URL (L1), pareil pour id_article (L2), etc pour les suivantes.
Le champ "vu" utilise la première jointure possible (toujours L1 du coup ici). Ensuite SPIP nettoie les jointures inutiles en fonction des paramètres d’environnement reçus, mais il ne peut enlever L1 car le champ "vu" l’utilise (alors qu’il faudrait qu’il utilise une autre jointure, L3 par exemple si id_rubrique dans l’env, et enlever L1).