Recherche avancée

Médias (91)

Autres articles (59)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette 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.

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Possibilité de déploiement en ferme

    12 avril 2011, par

    MediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
    Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)

Sur d’autres sites (7799)

  • Anomalie #4701 (Fermé) : Jointures automatiques erronées ? (ex. : groupe au lieu de groupe_mots)

    23 mars 2021

    (J’hésitais à classer le ticket dans le plugin mots, mais ça semble concerner les jointures en général donc j’ai mis dans spip. À déplacer si c’est pas le cas).

    Graphie signalait une erreur sur contrib avec le plugin identifiants et une boucle sur les groupes de mots-clés.
    La jointure automatique se fait bien, mais dans le where ça ne met pas le bon type d’objet : groupe au lieu de groupe_mots.

    En essayant de tracer un peu le problème, j’obtiens à une erreur similaire avec la dist, pour reproduire :
    1. Ajouter un document à un groupe de mots-clé, lui donner « toto » comme titre.
    2. Et tester la boucle suivante :

    <span class="CodeRay"><span class="tag">span><span class="error">(</span><span class="attribute-name">GROUPES_MOTS</span><span class="error">)</span> <span class="error">{</span><span class="attribute-name">documents.titre</span>=<span class="attribute-value">toto</span><span class="error">}</span><span class="tag">></span>
    #ID_GROUPE
    <span class="tag"></span>
    </span></span>

    Dans spip_documents_liens on a le bon type d’objet groupe_mots, mais dans la requête même problème : groupe au lieu de groupe_mots

    1. <span class="CodeRay"><span class="class">SELECT</span> L1.id_objet, L1.id_objet <span class="keyword">AS</span> id_groupe
    2. <span class="keyword">FROM</span> spip_documents_liens <span class="keyword">AS</span> <span class="string"><span class="delimiter">'</span><span class="content">L1</span><span class="delimiter">'</span></span>  
    3. <span class="keyword">INNER</span> <span class="keyword">JOIN</span> spip_documents <span class="keyword">AS</span> L2 <span class="keyword">ON</span> ( L2.id_document = L1.id_document )
    4. <span class="keyword">WHERE</span> (L1.objet = <span class="string"><span class="delimiter">'</span><span class="content">groupe</span><span class="delimiter">'</span></span>)
    5.     <span class="keyword">AND</span> (L2.titre = <span class="string"><span class="delimiter">'</span><span class="content">toto</span><span class="delimiter">'</span></span>)
    6. <span class="keyword">GROUP</span> <span class="keyword">BY</span> L1.id_objet
    7. </span>

    Télécharger

    Graphie signale que ça fonctionnait dans une version précédente de spip 3.3-dev, quelque chose a dû changer entre temps.

    Je ne sais pas d’où sort ce "groupe", il est bien dans les alias de la table spip_groupes_mots mais c’est le dernier de la liste : https://git.spip.net/spip/mots/src/branch/master/base/mots.php#L152
    Doit y avoir autre chose qui entre en jeu.

    1. <span class="CodeRay"><span class="string"><span class="delimiter">'</span><span class="content">table_objet_surnoms</span><span class="delimiter">'</span></span> => <span class="predefined">array</span>(
    2.     <span class="string"><span class="delimiter">'</span><span class="content">groupemot</span><span class="delimiter">'</span></span>,
    3.     <span class="string"><span class="delimiter">'</span><span class="content">groupe_mots</span><span class="delimiter">'</span></span>
    4.     <span class="comment">/*hum*/</span>,
    5.     <span class="string"><span class="delimiter">'</span><span class="content">groupe_mot</span><span class="delimiter">'</span></span>
    6.     <span class="comment">/* hum*/</span>,
    7.     <span class="string"><span class="delimiter">'</span><span class="content">groupe</span><span class="delimiter">'</span></span>
    8.     <span class="comment">/*hum (EXPOSE)*/</span>
    9. ),
    10. </span>

    Télécharger

  • Anomalie #3332 (Fermé) : Message d’erreur erroné : le nombre d’erreur n’est pas le bon

    10 mai 2015, par cedric -

    Appliqué par commit r22128.

  • Anomalie #4717 : Erreurs nombre d’argument des filtres

    10 avril 2021, par jluc -

    La PR récupère l’erreur PHP, évite le crash blank et délivre le message d’erreur PHP dans la jolie box d’erreur SPIP. Le pire est évité, et donc il faut intégrer cette PR qui fait du bien.

    Mais l’internaute SPIPien se retrouve avec un message d’erreur en anglais et portant sur le code compilé PHP. Ce code compilé, même le commun des devs PHP ne le connait pas, car à part XRay qui le rend accessible et les core-développeurs qui débuguent le code d’une nouvelle structure SPIP, personne ne va scruter et n’a connaissance du code php généré par le compilateur.

    Pour faire mieux, il y a la piste de la déclaration des arités des filtres. $arite_des_filtres = [[’implode’, 2, 2], [’affdate’, 1, 2]...]. Cette déclaration peut probablement être utilisée au moment de la compilation d’un appel de filtre lorsque le compilateur convertit la structure SPIP #XXX|filtre... en appel PHP.
    Ça permet de détecter une erreur d’argumentcount AVANT l’appel PHP et de fournir un joli message d’erreur SPIP qui fait référence au source SPIP.

    Dans ce cas, la détection d’erreur peut se faire à la compilation.

    Mais il se peut que d’autres erreurs PHP doivent être gérées, avec la strictisation croissante de PHP. Il faudra donc de nouvelles déclarations permettant la détection préventive des erreurs.

    Peut être sur d’autres structures de données que les filtres aussi ?

    Il faut donc développer la capacité d’introspection de SPIP.

    Mais parfois l’erreur n’est pas détectable au moment de la compilation. J’ai évoqué plus haut l’erreur relative au typage des arguments. S’il se confirme que le pb se pose aussi, et vu qu’on peut passer à un filtre un argument calculé dynamiquement, c’est pas lors de la compilation que ça pourra être détecté, mais lors de l’exécution du code compilé.

    Il faut alors prendre chaque erreur PHP possible et voir si/comment le compilateur peut la prévenir.

    Une alternative serait de "traduire" cette erreur PHP de manière à aiguiller le webmestre SPIP.

    Par exemple le message d’erreur de https://www.mail-archive.com/spip@rezo.net/msg81110.html , qui fait référence au source compilé, peut être traduit, par reconnaissance (regexp), analyse du message d’erreur, et calcul du message d’erreur SPIP en « Erreur : dans votre source SPIP, il y un appel au filtre |implode qui n’a pas le bon nombre d’arguments. Ça se passe dans la boucle ’BOUCLE_contenu_article’ : veuillez examiner le code et corriger. » Là en plus, ce serait bien de pouvoir associer le nom du fichier source à la boucle dont on connait le nom. Une capacité d’introspection déjà présente ? ou à développer ?