
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (48)
-
Gestion générale des documents
13 mai 2011, parMédiaSPIP ne modifie jamais le document original mis en ligne.
Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...) -
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (4929)
-
Anomalie #3894 : Jointures (erronées ?) avec les boucles documents et leurs critères
26 janvier 2017, par tcharlss (*´_ゝ`)J’ai testé avec divers objets que j’avais sous la main pour voir, on reprenant le même procédé :
- un document attaché à 2 objets, vu=oui pour le N°1, et vu=non pour le N°2
id_patate=1
dans l’URL{id_patate?}{vu=non}
dans la boucle
Ça n’a fait la bonne jointure que pour 1 seul objet, donc c’est plutôt une exception on dirait.
Rigolo : le nom de la jointure superflue s’incrémente entre chaque test, j’ai fini à L8 ! (L5 je l’ai enlevé, c’était sur les auteurs, donc même ambiguïté que pour les mots clés)Album [OK] :¶
SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.taille > 0 OR documents.distant=’oui’) AND (L1.id_objet = 1) AND (L1.objet = ’album’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Brève [PAS OK] :¶
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.taille > 0 OR documents.distant=’oui’) AND (L2.id_objet = 1) AND (L2.objet = ’breve’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Forum [PAS OK] :¶
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.taille > 0 OR documents.distant=’oui’) AND (L3.id_objet = 1) AND (L3.objet = ’forum’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Mot [PAS OK] (là c’est un peu spécial car il y a une ambiguïté avec mots_liens) :¶
SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_mots_liens AS L4 ON ( L4.id_objet = documents.id_document AND L4.objet=’document’) INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.taille > 0 OR documents.distant=’oui’) AND (L4.id_mot = 1) AND (L1.vu = ’non’) GROUP BY documents.id_document
Abonnement [PAS OK] :¶
SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_documents_liens AS L6 ON ( L6.id_document = documents.id_document ) INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.taille > 0 OR documents.distant=’oui’) AND (L6.id_objet = 1) AND (L6.objet = ’abonnement’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Ticket [PAS OK] :¶
SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_documents_liens AS L7 ON ( L7.id_document = documents.id_document ) INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.taille > 0 OR documents.distant=’oui’) AND (L7.id_objet = 1) AND (L7.objet = ’ticket’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Adresse [PAS OK] :¶
SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_documents_liens AS L8 ON ( L8.id_document = documents.id_document ) INNER JOIN spip_documents_liens AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.taille > 0 OR documents.distant=’oui’) AND (L8.id_objet = 1) AND (L8.objet = ’adresse’) AND (L1.vu = ’non’) GROUP BY documents.id_document
-
Anomalie #4012 : pipeline post_insertion n’affiche pas toutes les valeurs insérées
9 octobre 2017, par Peet duok ok !
Donc lors de la création d’une nouvelle instance d’un objet, SPIP fait les choses en deux temps.
1er temps¶
objet_inserer() va ’préparer’ la nouvelle instance et tenter, si les champs existent dans l’objet, d’enregistrer les valeurs de :
[’id_rubrique’] [’id_secteur’] [’lang’] [’langue_choisie’] [’statut’] [’date’]
Donc au mieux le pipeline post_insertion renvoi un tableau contenant l’id de l’objet + le tableau des champs ci-dessus et leurs valeurs.
2e temps¶
si objet_inserer() renvoie bien un id_objet, objet_modifier() va lui enregistrer le reste, c’est à dire les valeurs correspondants aux champs déclarés comme editables dans plugins/base/mon_objet.php
Il faut donc utiliser le pipeline post_edition si on veut pouvoir lire une des valeurs dites "editables".
Donc pas d’anomalie, juste une incompréhension de la doc.
On peut fermer le ticket
ps : merci marcimat et jluc -
Anomalie #3894 (Nouveau) : Jointures (erronées ?) avec les boucles documents et leurs critères
26 janvier 2017, par marcimat ☺☮☯♫Soit le cas suivant :
- une document A, attaché à une rubrique R1 et R2
-<doca></doca>
mis dans le texte de R1 (il est donc "vu" dans R1, mais pas dans R2)
- une boucle documents simplifiée (issue de squelettes-dist/inclure/documents.html) dans le squelette test.html :Test
- #FICHIER
Constats¶
Paramètre id_rubrique :¶
Si on appelle
?page=test&id_rubrique=1
le document A sera retourné, malgré le critère{vu=non}
.
Effectivement la boucle effectue 2 jointures différentes sur spip_documents_liens, une pour lier le champ "vu" et l’autre pour lier objet/id_objet.
Du coup, la requête SQL trouve effectivement un document A non vu (dans la rubrique 2) et le retourne (vu qu’il est lié aussi à la rubrique 1).On obtient la requête suivante :
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 = ’rubrique’) AND (L1.vu = ’non’) GROUP BY documents.id_document
Paramètres objet / id_objet :¶
Si on appelle
page=test&objet=rubrique&id_objet=1
, soit logiquement la même chose, on obtient 3 jointures sur spip_documents_liens.
Là, les documents retournés ne soient pas forcément ceux de l’objet demandé ! La jointure cherche des documents liés à objet=rubrique, id_objet=1, mais pas forcément dans la même liaison !
Les documents retournés ici sont parfois un peu farfelus donc là.SELECT documents.fichier FROM spip_documents AS `documents` INNER JOIN spip_documents_liens AS L4 ON ( L4.id_document = documents.id_document ) 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.objet = ’rubrique’) AND (L4.id_objet = 1) AND (L1.vu = ’non’) GROUP BY documents.id_document
Paramètre id_article¶
Si on appelle
page=test&id_article=1
, on obtient, ô magie, une seule jointure. La boucle est correcte cette fois-ci donc. Je n’ai pas encore cherché pourquoi ça marche avec id_article, et pas id_rubrique…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 = ’article’) AND (L1.vu = ’non’) GROUP BY documents.id_document