Recherche avancée

Médias (16)

Mot : - Tags -/mp3

Autres articles (40)

  • Submit enhancements and plugins

    13 avril 2011

    If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
    You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone.

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Other interesting software

    13 avril 2011, par

    We don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
    The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
    We don’t know them, we didn’t try them, but you can take a peek.
    Videopress
    Website : http://videopress.com/
    License : GNU/GPL v2
    Source code : (...)

Sur d’autres sites (5093)

  • Evolution #4802 (Nouveau) : Styles des onglets simples du privé

    29 mai 2021

    Un ticket pour réfléchir aux styles des onglets simples du privé : .onglets_simple + .onglets_simple.second.
    C’est ceux que l’on voit dans la médiathèque et dans la page des plugins.

    Je traite séparément les onglets de 1er niveau et ceux de 2ème niveau, ce sont quasiment des composants différents.

    Onglets 1er niveau

    Visuellement je pense qu’on n’est pas obligé de reprendre pile poil la métaphore des onglets.
    Pour le moment j’ai une préférence pour une vue à la sauce material, simple et sobre : https://material.io/components/tabs
    L’avantage c’est qu’il fonctionnent aussi très bien à la verticale, si jamais on veut ajouter ça plus tard.
    C’est la piste choisie pour les onglets du plugin Saisies par exemple.

    Onglets 2ème niveau

    Là il s’agit plutôt de filtres. Et il peut y avoir plusieurs groupes de filtres sur une même ligne (cf. médiathèque et plugins).
    Je ne me suis pas encore trop appesanti sur le sujet, mais dans l’idée ça semble quand même assez proche d’un truc qui existe par ailleurs avec les groupe de boutons, qui contiennent des boutons actifs/inactifs : .groupe-btns_menu (exemple visible sur la page des stats.)
    Donc ça pourrait être assez proche. Mais au risque d’apporter de la confusion entre les 2 ?
    Bref, si vous avez des idées...

  • Anomalie #4777 (Nouveau) : Les labels et chaines de langue avec ou sans deux points.

    8 mai 2021

    Des labels avec ou sans deux points...

    Les chaines de langues des labels, historiques de SPIP, ont parfois des deux points, parfois pas.

    Donc dès fois 'truc' => 'Truc', dès fois 'truc' => 'Truc :'
    C’est embêtant quand on veut quelque chose d’homogène.

    On se propose ici de réfléchir à une transition vers des chaines "sans deux points".

    uniformiser_label

    J’ai déjà introduit (dans SPIP 4.0-alpha) une fonction / filtre dans inc/utils.php et utilisée dans le plugin ’statistiques’ : uniformiser_label.
    Ce filtre, dans un squelette avec un idiome tel que <:module:chaine|uniformiser_label:> enlève les espaces divers et : qui pourraient être présents.

    uniformiser_label_inline ?

    Il faudrait trouver un autre filtre pour faire l’inverse : mettre systématiquement les deux points. Notamment pour des couples ou énumérations sur la même ligne "label : texte".
    Trouver un nom du filtre pour ça n’est pas évident ; par contre on pense avoir trouvé à peu près la méthode

    1. <span class="CodeRay"><span class="keyword">function</span> <span class="function">uniformiser_label_inline</span>(<span class="predefined-type">string</span> <span class="local-variable">$label</span>) : <span class="predefined-type">string</span> {
    2.     <span class="local-variable">$label</span> = uniformiser_label(<span class="local-variable">$label</span>);
    3.     <span class="keyword">return</span> _T(<span class="string"><span class="delimiter">'</span><span class="content">uniformiser_label_inline</span><span class="delimiter">'</span></span>, [<span class="string"><span class="delimiter">'</span><span class="content">label</span><span class="delimiter">'</span></span> => <span class="local-variable">$label</span>]);
    4. }
    5. <span class="comment">// avec la chaine de langue (pareil nom à trouver)</span>
    6. [
    7.     <span class="comment">// ...</span>
    8.     <span class="string"><span class="delimiter">'</span><span class="content">uniformiser_label_inline</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">@label@ :</span><span class="delimiter">'</span></span>
    9. ]
    10. </span>

    Télécharger

    ou… uniformiser_label_enumeration

    Une autre solution pour la même chose, est de proposer de s’occuper directement des textes de couples "nom : texte" ou "nom : texte, texte, texte."
    Mais c’est peut être plus difficile pour gérer les traductions

    Exemple

    1. <span class="CodeRay"><span class="keyword">function</span> <span class="function">uniformiser_label_enumeration</span>(<span class="predefined-type">string</span> <span class="local-variable">$label</span>, ...<span class="local-variable">$enums</span> = []) : <span class="predefined-type">string</span> {
    2.     <span class="local-variable">$label</span> = uniformiser_label(<span class="local-variable">$label</span>);
    3.     <span class="comment">// la première entrée peut être un déjà un tableau ?</span>
    4.     <span class="keyword">if</span> (<span class="local-variable">$enums</span> <span class="keyword">and</span> <span class="predefined">is_array</span>(<span class="local-variable">$enums</span>[<span class="integer">0</span>])) {
    5.         <span class="local-variable">$enums</span>[<span class="integer">0</span>] = <span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content">, </span><span class="delimiter">'</span></span>, <span class="local-variable">$enums</span>[<span class="integer">0</span>]);
    6.     }
    7.     <span class="local-variable">$enums</span> = <span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content">, </span><span class="delimiter">'</span></span>, <span class="local-variable">$enums</span>);
    8.     <span class="keyword">return</span> <span class="predefined">trim</span>(_T(<span class="string"><span class="delimiter">'</span><span class="content">label_enumeration</span><span class="delimiter">'</span></span>, [<span class="string"><span class="delimiter">'</span><span class="content">label</span><span class="delimiter">'</span></span> => <span class="local-variable">$label</span>, <span class="string"><span class="delimiter">'</span><span class="content">enums</span><span class="delimiter">'</span></span> => <span class="local-variable">$enums</span>]));
    9. }
    10. <span class="comment">// avec la chaine de langue (pareil nom à trouver)</span>
    11. [
    12.     <span class="comment">// ...</span>
    13.     <span class="string"><span class="delimiter">'</span><span class="content">label_enumeration</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">@label@ : @enums@.</span><span class="delimiter">'</span></span>
    14. ]
    15. </span>

    Télécharger

    Ça veut dire ici que toutes les langues ont "virgule" en séparateur…

    Quelques notes sur les deux points

    Je suppose qu’ulitiser le terme "deux_points" dans les chaines de langue ne marche pas car ce n’est pas très sémantique. Mais pas facile de trouver un super terme.

    https://www.noslangues-ourlanguages.gc.ca/fr/cles-de-la-redaction/deux-points

    « On utilise le deux-points pour annoncer ce qui s’en vient dans le texte, que ce soit un exemple, une énumération, une explication, une citation, un discours direct, une analyse ou un récit. Le deux-points sert aussi à annoncer un jugement, une synthèse, une conclusion, une cause, une conséquence, etc. »

  • Anomalie #4831 (Nouveau) : URLs arbo non mise à jour au changement de rubrique

    23 juin 2021, par Julien Tessier

    Etapes 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 :

    1. <span class="CodeRay"><span class="keyword">function</span> <span class="function">plugin_post_edition</span>(<span class="local-variable">$e</span>) {
    2.     <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>])) {
    3.         <span class="keyword">case</span> <span class="string"><span class="delimiter">'</span><span class="content">article</span><span class="delimiter">'</span></span>;
    4.             <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>])) {
    5.                 <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>]);
    6.                 <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>]);
    7.                 <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>)) {
    8.                     <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>];
    9.                     <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>)) {
    10.                         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>));
    11.                     }
    12.                 }
    13.             }
    14.             <span class="keyword">break</span>;
    15.         <span class="keyword">default</span>:
    16.             <span class="keyword">break</span>;
    17.     }
    18.     <span class="keyword">return</span> <span class="local-variable">$e</span>;
    19. }
    20. </span>

    Télécharger

    Ce n’est peut être pas élégant mais ça marche en attendant un fix :)