
Recherche avancée
Autres articles (69)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Les formats acceptés
28 janvier 2010, parLes commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
ffmpeg -codecs ffmpeg -formats
Les format videos acceptés en entrée
Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
Les formats vidéos de sortie possibles
Dans un premier temps on (...) -
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)
Sur d’autres sites (5586)
-
Révision 105450 : correction coquille et correction des liens de forum interne
25 juillet 2017, par gouz@root-me.org -
Anomalie #4831 (Nouveau) : URLs arbo non mise à jour au changement de rubrique
23 juin 2021, par Julien TessierEtapes pour reproduire :¶
- Utiliser les URL arbos
- Créer un article "Lorem ipsum" dans la rubrique 1
- Publier l’article, son URL est /rubrique-1/lorem-ipsum
- Créer un article "Lorem ipsum" dans la rubrique 2
- Proposer l’article à la publication, son URL est /rubrique-2/lorem-ipsum
- Déplacer l’article dans la rubrique 1
- SPIP génère une erreur dans les logs :
2021-06-23 11:32:54 127.0.0.1 (pid 498) :Pri:ERREUR : Erreur 1062 de mysql : Duplicate entry ’1-lorem-ipsum’ for key ’PRIMARY’ in .../plugins-dist/urls_etendues/action/editer_url.php L155 [sql_insertq(),url_insert(),declarer_url_arbo(),_generer_url_arbo(),urls_arbo_dist(),generer_url_entite(),html_af5c93b1e9d12543df40c819344ffc73(),public_parametrer_dist(),public_produire_page_dist(),inclure_page(),evaluer_fond(),recuperer_fond(),urls_afficher_fiche_objet(),minipipe(),execute_pipeline_afficher_fiche_objet(),pipeline(),f_afficher_blocs_ecrire(),f_recuperer_fond(),minipipe(),execute_pipeline_recuperer_fond(),pipeline(),recuperer_fond(),traiter_appels_inclusions_ajax()]
- Publier l’article
- L’URL du nouvel article est inchangée donc il est inaccessible (= son URL a déjà été "prise" par un autre)
Comportement attendu¶
Au changement de rubrique, URL arbos regénère une URL unique (avec l’ID donc).
Résolution temporaire¶
J’ai réglé ça de la manière suivante, via un plugin et la pipeline post_edition :
- <span class="CodeRay"><span class="keyword">function</span> <span class="function">plugin_post_edition</span>(<span class="local-variable">$e</span>) {
- <span class="keyword">switch</span> (objet_type(<span class="local-variable">$e</span>[<span class="string"><span class="delimiter">'</span><span class="content">args</span><span class="delimiter">'</span></span>][<span class="string"><span class="delimiter">'</span><span class="content">table</span><span class="delimiter">'</span></span>])) {
- <span class="keyword">case</span> <span class="string"><span class="delimiter">'</span><span class="content">article</span><span class="delimiter">'</span></span>;
- <span class="keyword">if</span> (!<span class="predefined">empty</span>(<span class="local-variable">$e</span>[<span class="string"><span class="delimiter">'</span><span class="content">data</span><span class="delimiter">'</span></span>][<span class="string"><span class="delimiter">'</span><span class="content">id_rubrique</span><span class="delimiter">'</span></span>])) {
- <span class="local-variable">$id_rubrique</span> = <span class="predefined">intval</span>(<span class="local-variable">$e</span>[<span class="string"><span class="delimiter">'</span><span class="content">data</span><span class="delimiter">'</span></span>][<span class="string"><span class="delimiter">'</span><span class="content">id_rubrique</span><span class="delimiter">'</span></span>]);
- <span class="local-variable">$id_article</span> = <span class="predefined">intval</span>(<span class="local-variable">$e</span>[<span class="string"><span class="delimiter">'</span><span class="content">args</span><span class="delimiter">'</span></span>][<span class="string"><span class="delimiter">'</span><span class="content">id_objet</span><span class="delimiter">'</span></span>]);
- <span class="keyword">if</span> (<span class="local-variable">$url</span> = sql_fetsel(<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">spip_urls</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">type = 'article' AND id_objet = </span><span class="local-variable">$id_article</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">perma DESC, date DESC</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">1</span><span class="delimiter">'</span></span>)) {
- <span class="local-variable">$url</span> = <span class="local-variable">$url</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>];
- <span class="keyword">if</span> (sql_countsel(<span class="string"><span class="delimiter">'</span><span class="content">spip_urls</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">url = </span><span class="delimiter">"</span></span>.sql_quote(<span class="local-variable">$url</span>).<span class="string"><span class="delimiter">"</span><span class="content"> AND type = 'article' AND id_parent = </span><span class="local-variable">$id_rubrique</span><span class="content"> AND id_objet != </span><span class="local-variable">$id_article</span><span class="delimiter">"</span></span>)) {
- sql_delete(<span class="string"><span class="delimiter">'</span><span class="content">spip_urls</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">type = 'article' AND id_objet = </span><span class="local-variable">$id_article</span><span class="content"> AND url = </span><span class="delimiter">"</span></span>.sql_quote(<span class="local-variable">$url</span>));
- }
- }
- }
- <span class="keyword">break</span>;
- <span class="keyword">default</span>:
- <span class="keyword">break</span>;
- }
- <span class="keyword">return</span> <span class="local-variable">$e</span>;
- }
- </span>
Ce n’est peut être pas élégant mais ça marche en attendant un fix :)
-
Anomalie #4245 (Fermé) : Petit bug de sous_repertoire()
11 décembre 2018Découvert hier, un enchaînement tueur :
- <span class="CodeRay"><span class="local-variable">$demo</span> = sous_repertoire(_DIR_TMP, <span class="string"><span class="delimiter">'</span><span class="content">demo_</span><span class="delimiter">'</span></span>);
- <span class="comment">// $demo = 'tmp/demo_'</span>
- <span class="local-variable">$bug</span> = sous_repertoire(<span class="local-variable">$demo</span>, <span class="string"><span class="delimiter">'</span><span class="content">potiron</span><span class="delimiter">'</span></span>);
- </span>
Le système a rencontré une erreur lors de l’écriture du fichier tmp/demo/potiron/.plat.
En fait, lors de l’appel de
sous_repertoire($base, $subdir)
, la fonction vire les / et _ finaux de $base (mais pas le _ final éventuel de $subdir).
Il se retrouve ici à vouloir créer le répertoiretmp/demo/potiron
au lieu detmp/demo_/potiron
et n’y arrive pas, vu que le répertoire parent (demo) n’existe pas.Histoire¶
Après quelques fouilles archéologiques, il se trouve que le problème survient probablement avec r8196 qui refactore différemment le code de r6395 :
-6395 fil@rezo.n if (!preg_match(',[/_]$,', $base)) $base .= '/';
-8196 esj@rezo.n if (preg_match(',[/_]$,', $base)) $base = substr($base,0,-1);
-16035 fil@rezo.n $base = rtrim($base, '/_');
Le tout devait être, je suppose, pour prendre en compte les excentriques répertoires "plats" (dépendants maintenant de la présence de la constante _CREER_DIR_PLAT).
Corrections¶
Plusieurs corrections possibles :
- A) virer la constante _CREER_DIR_PLAT et ses actions, et le rtrim de ce souligné (on est en 2018…).
- B) simplement appliquer le rtrim du souligné si _CREER_DIR_PLAT est présent (ça corrige pas le bug que $subdir n’aurait alors pas ce rtrim non plus !)
- C) B + corriger le rtrim pour $subdir de la même manière.Je suis partisan de A) sur le trunk, et B) ou C) sur 3.2 et 3.1.
Des avis ?