Recherche avancée

Médias (91)

Autres articles (59)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • XMP PHP

    13 mai 2011, par

    Dixit 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 (...)

Sur d’autres sites (2492)

  • Anomalie #4097 (En cours) : bug HTTPS dans la fonction url_de_base() sur certains serveurs mal con...

    14 février 2018, par Pierre-Aurélien Georges

    Bonjour,

    voici le contexte : le serveur web de mon hébergeur est mal configuré (et je n’ai malheureusement pas réussi à leur faire corriger le problème). Le site web [1] est accessible aussi bien en HTTP qu’en HTTPS, mais en allant sur /ecrire/ ?exec=info je vois que le serveur ne renseigne ni la variable $_SERVER[’HTTPS’] ni la variable $_SERVER["SCRIPT_URI"], et à vrai dire lorsque je compare sur ce serveur un phpinfo() en HTTP et un phpinfo() en HTTPS je vois qu’il y n’a strictement AUCUNE différence entre les deux, et qu’il est donc totalement impossible de savoir (côté serveur) si la requête a été faite en HTTP ou en HTTPS.

    Dans ce contexte bien précis, le code de la fonction url_de_base() situé dans /ecrire/inc/utils.php pose problème, car il se base sur le contenu de ces deux variables $_SERVER[’HTTPS’] et $_SERVER["SCRIPT_URI"] pour choisir entre HTTP et HTTPS et il ne tient absolument pas compte du contenu du champ META, ce qui dans mon cas est bien dommage car j’y ai mis l’url en https:...

    La conséquence de tout ceci est qu’en HTTPS cela entraîne des problèmes d’affichage d’images et de CSS qui ne sont pas bien appliqués, cf. [2]. Sur ce forum, vous verrez que je ne suis pas le seul à avoir affaire à un serveur mal configuré de la sorte, et que nous sommes plusieurs à avoir ce même problème. La solution de bricolage donnée par un des participants du forum est de rajouter dans /config/mes_options.php les deux lignes suivantes :

    $_SERVER[’HTTPS’] = "on" ;
    $_SERVER[’SERVER_PORT’]=’443’ ;
    


    Ca fonctionne, certes, et c’est donc ce que j’ai fait pour mon site, mais c’est vraiment du bricolage et c’était pas évident de trouver cette astuce !

    Pour faire plus propre et plus simple, serait-il possible à l’avenir de modifier le code de url_de_base() pour qu’en l’absence de ces deux variables $_SERVER[’HTTPS’] et $_SERVER["SCRIPT_URI"], la fonction aille regarder dans META si c’est du http ou du https qui y est renseigné (au lieu de mettre forcément du http) ? En effet, lorsque META commence par "https://" ça veut dire que le serveur gère le HTTPS, et donc s’il ne renseigne pas les variables HTTPS et SCRIPT_URI et bien dans le doute mieux vaut générer des url de base en "https://" plutôt qu’en "http://" car si cette url de base se retrouve mentionnée au sein d’un fichier html ou css, et que le fichier en question est demandé en HTTP, ce n’est pas grave s’il contient des ressources en HTTPS, alors que le contraire pose problème (ne pas mettre de ressources en HTTP au sein d’une page en HTTPS !)

  • Evolution #4102 : Ordre des inclures dans cache/charger_plugins_options.php

    8 juillet 2019, par cam.lafit -

    On pourrait avoir ce patch, au lieu d’écrire ligne à ligne on passe par un tableau. Ce qui permet de gérer l’ordre des lignes.

    1. <span class="CodeRay"><span class="line head"><span class="head">--- </span><span class="filename">/ecrire/inc/plugin.php</span></span>
    2. <span class="line head"><span class="head">+++ </span><span class="filename">/ecrire/inc/plugin.php</span></span>
    3. <span class="line change"><span class="change">@@</span> -817,7 +817,7 <span class="change">@@</span></span>
    4.  }
    5.  
    6.  <span class="keyword">function</span> <span class="function">plugins_precompile_xxxtions</span>(<span class="local-variable">$plugin_valides</span>, <span class="local-variable">$ordre</span>) {
    7. <span class="line delete"><span class="delete">-</span>    <span class="local-variable">$contenu</span> = <span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">options</span><span class="delimiter">'</span></span> => <span class="string"></span><span class="eyecatcher"><span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">fonctions</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span></span>);</span>
    8. <span class="line insert"><span class="insert">+</span>    <span class="local-variable">$contenu</span> = <span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">options</span><span class="delimiter">'</span></span> => <span class="eyecatcher"><span class="predefined">array</span>(), <span class="string"><span class="delimiter">'</span><span class="content">fonctions</span><span class="delimiter">'</span></span> => <span class="predefined">array</span>()</span>);</span>
    9.      <span class="local-variable">$boutons</span> = <span class="predefined">array</span>();
    10.      <span class="local-variable">$onglets</span> = <span class="predefined">array</span>();
    11.      <span class="local-variable">$sign</span> = <span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span>;
    12. <span class="line change"><span class="change">@@</span> -861,7 +861,7 <span class="change">@@</span></span>
    13.                              <span class="predefined">unset</span>(<span class="local-variable">$info</span>[<span class="local-variable">$charge</span>][<span class="local-variable">$k</span>]);
    14.                          }
    15.                              <span class="local-variable">$_file</span> = <span class="local-variable">$root_dir_type</span> . <span class="string"><span class="delimiter">"</span><span class="content">.'</span><span class="local-variable">$plug</span><span class="content">/</span><span class="local-variable">$file</span><span class="content">'</span><span class="delimiter">"</span></span>;
    16. <span class="line delete"><span class="delete">-</span>                            <span class="local-variable">$contenu</span>[<span class="local-variable">$charge</span>]<span class="eyecatcher"> .= <span class="string"><span class="delimiter">"</span><span class="content">include_once_check(</span><span class="local-variable">$_file</span><span class="content">);</span><span class="char">\n</span></span></span><span class="string"><span class="delimiter">"</span></span>;</span>
    17. <span class="line insert"><span class="insert">+</span>                            <span class="local-variable">$contenu</span>[<span class="local-variable">$charge</span>]<span class="eyecatcher">[] = <span class="string"><span class="delimiter">"</span><span class="content">include_once_check(</span><span class="local-variable">$_file</span><span class="content">);</span></span></span><span class="string"><span class="delimiter">"</span></span>;</span>
    18.                          }
    19.                      }
    20.                  }
    21. <span class="line change"><span class="change">@@</span> -870,12 +870,12 <span class="change">@@</span></span>
    22.          }
    23.      }
    24.  
    25. <span class="line delete"><span class="delete">-</span>    <span class="local-variable">$</span><span class="eyecatcher"><span class="local-variable">contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">options</span><span class="delimiter">'</span></span>] = <span class="string"><span class="delimiter">"</span><span class="content">define('_PLUGINS_HASH','</span><span class="delimiter">"</span></span> . <span class="predefined">md5</span>(<span class="local-variable">$sign</span>) . <span class="string"><span class="delimiter">"</span><span class="content">');</span><span class="char">\n</span><span class="delimiter">"</span></span> . <span class="local-variable">$contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">options</span><span class="delimiter">'</span></span>]</span>;</span>
    26. <span class="line delete"><span class="delete">-</span>    <span class="local-variable">$contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">fonctions</span><span class="delimiter">'</span></span>]<span class="eyecatcher"> .= plugin_ongletbouton(<span class="string"><span class="delimiter">"</span><span class="content">boutons_plugins</span><span class="delimiter">"</span></span>, <span class="local-variable">$boutons</span>)</span></span>
    27. <span class="line delete"><span class="delete">-</span>    <span class="eyecatcher">    .</span> plugin_ongletbouton(<span class="string"><span class="delimiter">"</span><span class="content">onglets_plugins</span><span class="delimiter">"</span></span>, <span class="local-variable">$onglets</span>);</span>
    28. <span class="line delete"><span class="delete">-</span></span>
    29. <span class="line delete"><span class="delete">-</span>    ecrire_fichier_php(_CACHE_PLUGINS_OPT, <span class="local-variable">$</span><span class="eyecatcher"><span class="local-variable">contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">options</span><span class="delimiter">'</span></span>]</span>);</span>
    30. <span class="line delete"><span class="delete">-</span>    ecrire_fichier_php(_CACHE_PLUGINS_FCT, <span class="eyecatcher"><span class="local-variable">$contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">fonctions</span><span class="delimiter">'</span></span>]</span>);</span>
    31. <span class="line insert"><span class="insert">+</span>    <span class="local-variable">$</span><span class="eyecatcher"><span class="local-variable">hash_opt</span> = <span class="string"><span class="delimiter">"</span><span class="content">define('_PLUGINS_HASH','</span><span class="delimiter">"</span></span> . <span class="predefined">md5</span>(<span class="local-variable">$sign</span>) . <span class="string"><span class="delimiter">"</span><span class="content">');</span><span class="char">\n</span><span class="delimiter">"</span></span></span>;</span>
    32. <span class="line insert"><span class="insert">+</span>    <span class="local-variable">$contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">fonctions</span><span class="delimiter">'</span></span>]<span class="eyecatcher">[] = plugin_ongletbouton(<span class="string"><span class="delimiter">"</span><span class="content">boutons_plugins</span><span class="delimiter">"</span></span>, <span class="local-variable">$boutons</span>);</span></span>
    33. <span class="line insert"><span class="insert">+</span>    <span class="eyecatcher"><span class="local-variable">$contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">fonctions</span><span class="delimiter">'</span></span>][] =</span> plugin_ongletbouton(<span class="string"><span class="delimiter">"</span><span class="content">onglets_plugins</span><span class="delimiter">"</span></span>, <span class="local-variable">$onglets</span>);</span>
    34. <span class="line insert"><span class="insert">+</span></span>
    35. <span class="line insert"><span class="insert">+</span>    ecrire_fichier_php(_CACHE_PLUGINS_OPT, <span class="local-variable">$</span><span class="eyecatcher"><span class="local-variable">hash_opt</span>.<span class="predefined">implode</span>(<span class="string"><span class="delimiter">"</span><span class="char">\n</span><span class="delimiter">"</span></span>,<span class="predefined">array_reverse</span>(<span class="local-variable">$contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">options</span><span class="delimiter">'</span></span>]))</span>);</span>
    36. <span class="line insert"><span class="insert">+</span>    ecrire_fichier_php(_CACHE_PLUGINS_FCT, <span class="eyecatcher"><span class="predefined">implode</span>(<span class="string"><span class="delimiter">"</span><span class="char">\n</span><span class="delimiter">"</span></span>,<span class="local-variable">$contenu</span>[<span class="string"><span class="delimiter">'</span><span class="content">fonctions</span><span class="delimiter">'</span></span>])</span>);</span>
    37.  }
    38.  
    39.  <span class="comment">/**</span>
    40.  
    41. </span>

    Télécharger

  • Révision 22075 : Intégration dans SPIP de la possibilité de gérer des liens entre objets

    8 mai 2015, par marcimat ☺☮☯♫

    avec des rôles.

    On intègre l’API présente actuellement dans le plugin Rôles, en modifiant
    un peu les fonctions d’édition de liens.

    Celles-ci permettent maintenant d’éditer des liens ayant donc des rôles.
    Ces différents rôles et le nom de la colonne SQL qui les reçoit,
    s’ils sont utilisés, doivent être déclarés avec la déclaration
    de l’objet éditorial correspondant.

    Un exemple est donné avec le plugin « Roles auteurs » qui définit
    quelques rôles. Les champs décrivant les rôles : `roles_colonne`, `roles_titres` et `roles_objets`
    doivent être déclarés (via le pipeline declarer_tables_objets_sql).

    ```
    "roles_colonne" => "role",
    "roles_titres" => array(
    ’redacteur’ => ’info_statut_redacteur’,
    ’traducteur’ => ’roles_auteurs:traducteur’,
    ’correcteur’ => ’roles_auteurs:correcteur’,
    ’relecteur’ => ’roles_auteurs:relecteur’,
    ),
    "roles_objets" => array(
    ’articles’ => array(
    ’choix’ => array(’redacteur’, ’traducteur’, ’correcteur’, ’relecteur’),
    ’defaut’ => ’redacteur’
    )
    #’*’ => array()
    )
    ```

    Une fois déclaré, on peut appeler les fonctions d’édition de lien
    en transmettant des valeurs de rôles, tel que :

    ```
    objet_associer(
    array(’auteur’ => 3),
    array(’article’ => 11),
    array(’role’ => ’correcteur’)
    ) ;

    // utilisera le rôle par défaut
    objet_associer(
    array(’auteur’ => 3),
    array(’article’ => 11)
    ) ;
    ```

    Si aucun rôle n’est indiqué, le rôle par défaut est appliqué.

    Dans le cas d’une dissociation également, si aucun rôle n’est indiqué,
    seuls les liaisons avec le rôle par défaut seront supprimés ; pour
    supprimer tous les rôles, il faut à ce moment là indiquer ’*’ :

    ```
    objet_dissocier(
    array(’auteur’ => 3),
    array(’article’ => 11),
    array(’role’ => ’correcteur’)
    ) ;

    // utilisera le rôle par défaut
    objet_dissocier(
    array(’auteur’ => 3),
    array(’article’ => 11)
    ) ;

    // enlèvera tous les rôles
    objet_dissocier(
    array(’auteur’ => 3),
    array(’article’ => 11),
    array(’role’ => ’*’)
    ) ;
    ```

    Le formulaire d’édition de liens n’utilisera pas les mêmes squelettes
    de liaison lorsqu’une colonne de rôle est déclarée.

    Ainsi dans cet exemple, au lieu de `prive/objets/liste/auteurs_lies.html`
    et `auteurs_associer.html`, cela utiliserait `prive/objets/liste/auteurs_roles_lies.html`
    et `auteurs_roles_associer.html`. Il faut donc créer ces squelettes.

    Ces squelettes peuvent poster les valeurs au formulaire pour insérer
    de nouveaux liens, de la forme `qualifier_lien[auteur-3-article-11][role]`
    en postant `redacteur` par exemple.

    Il est possible au passage de poster en plus d’autres valeurs, qui seront
    intégrées dans l’enregistrement du lien.
    Ainsi, poster en même temps `qualifier_lien[auteur-3-article-11][valeur]` = `50`
    enregistrera la valeur 50 dans la colonne `valeur` de la table de lien (qui doit
    exister !).

    D’autres informations sont présentes dans http://contrib.spip.net/Des-roles-sur-des-liens,
    http://zone.spip.org/trac/spip-zone/browser/_plugins_/roles_auteurs ou encore
    http://zone.spip.org/trac/spip-zone/browser/_plugins_/roles