Recherche avancée

Médias (1)

Mot : - Tags -/biographie

Autres articles (51)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (3665)

  • Evolution #4742 (Nouveau) : sous_repertoire() devrait savoir faire en cascade

    20 avril 2021, par RastaPopoulos ♥

    au lieu de 1 par 1, et donc être obligé de l’appeler 5 fois si ya 5 sous répertoires, cette fonction devrait savoir faire en cascade : sous_repertoire(’machin/bidule/chouette/truc/final’)

  • Anomalie #4770 : ENV et second argument

    5 mai 2021, par Maïeul Rouquette

    Ainsi que je l’avais dit, j’hésitais sur le lieu de correction : squelette mal écrit, ou core qui applique le filtre indifférement à tout ce qui provient de #ENV, sans savoir où #ENV a été cherché l’info. Après tout, pourquoi ce ne serait pas #ENV qui appliquerait le filtre si nécessaire ?

    Mais du coup ok pour corriger dans le plugin du coup.

  • Evolution #4427 (En cours) : Permettre (via une constante) de passer de 65 536 à 4096 le nombre ma...

    24 janvier 2020, par - Equipement

    Bonjour,
    Concernant le cache de second niveau de SPIP, c’est-à-dire celui qui contient le résultat du calcul des squelettes :

    Jusqu’à la branche 3.0 de SPIP la taille maximum du cache était par défaut de 10 Mo.

    A partir de la branche 3.1 de SPIP, le nombre maximal de fichier dans le cache est de 65 536 (et il n’y a plus de limite sur la taille du cache).
    Sur un cas réel, le cache a atteint 2 Go (soit une moyenne de 31 Ko par fichier).
    Certains hébergeurs ont un quota sur la taille, mais également sur le nombre d’inodes.
    Dans un cas réel, des sites ont ainsi atteint le quota d’inodes, ce qui empêchait l’accès à l’espace privé des sites (cf. contrib.spip.net/Plugins-Giseh#comment502510).

    Remarque : L’expérience montre que le passage d’un robot, qui n’est pas identifié par SPIP, peut suffit à garnir le cache. Or la liste des robots détectés par SPIP ne sera jamais exhaustive. Par ailleurs, pour certains robots (aspirateurs de sites ou autre) il est possible de modifier leur user-agent.

    Aussi, je propose que, via l’ajout d’une constante dans le fichier mes_options, il soit possible de fixer le nombre maximal de fichier dans le cache à 4096 (au lieu de 65 536). Cette approche, par constante optionnelle, évite d’impacter les sites qui veulent conserver la limite de 65 536 fichiers.

    En pratique, il s’agit d’offrir la possibilité de mettre dans le fichier mes_options la constante suivante :

    1. <span class="CodeRay"><span class="predefined">define</span>(<span class="string"><span class="delimiter">'</span><span class="content">_CACHE_MAX_4096_FILES</span><span class="delimiter">'</span></span>,<span class="predefined-constant">true</span>) ;
    2. </span>

    Télécharger

    et de prendre en compte cette constante dans le fichier ecrire/public/cacher.php de la manière suivante :

    1. <span class="CodeRay"><span class="keyword">function</span> <span class="function">ecrire_cache</span>(<span class="local-variable">$nom_cache</span>, <span class="local-variable">$valeur</span>) {
    2. <span class="comment">//    $d = substr($nom_cache, 0, 2);</span>
    3. <span class="comment">//    $u = substr($nom_cache, 2, 2);</span>
    4.   <span class="local-variable">$longueur_d</span> = <span class="integer">2</span>;
    5.   <span class="keyword">if</span> (<span class="predefined">defined</span>(<span class="string"><span class="delimiter">'</span><span class="content">_CACHE_MAX_4096_FILES</span><span class="delimiter">'</span></span>) <span class="keyword">AND</span> _CACHE_MAX_4096_FILES){
    6.     <span class="local-variable">$longueur_d</span> = <span class="integer">1</span>;
    7.   }
    8.     <span class="local-variable">$d</span> = <span class="predefined">substr</span>(<span class="local-variable">$nom_cache</span>, <span class="integer">0</span>, <span class="local-variable">$longueur_d</span>);
    9.     <span class="local-variable">$u</span> = <span class="predefined">substr</span>(<span class="local-variable">$nom_cache</span>, <span class="local-variable">$longueur_d</span>, <span class="integer">2</span>);
    10.  
    11.     <span class="local-variable">$rep</span> = _DIR_CACHE;
    12.     <span class="local-variable">$rep</span> = sous_repertoire(<span class="local-variable">$rep</span>, <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>, <span class="predefined-constant">false</span>, <span class="predefined-constant">true</span>);
    13.     <span class="local-variable">$rep</span> = sous_repertoire(<span class="local-variable">$rep</span>, <span class="local-variable">$d</span>, <span class="predefined-constant">false</span>, <span class="predefined-constant">true</span>);
    14.  
    15.     <span class="keyword">return</span> ecrire_fichier(<span class="local-variable">$rep</span> . <span class="local-variable">$u</span> . <span class="string"><span class="delimiter">"</span><span class="content">.cache</span><span class="delimiter">"</span></span>, <span class="predefined">serialize</span>(<span class="predefined">array</span>(<span class="string"><span class="delimiter">"</span><span class="content">nom_cache</span><span class="delimiter">"</span></span> => <span class="local-variable">$nom_cache</span>, <span class="string"><span class="delimiter">"</span><span class="content">valeur</span><span class="delimiter">"</span></span> => <span class="local-variable">$valeur</span>)));
    16. }
    17.  
    18. <span class="keyword">function</span> <span class="function">lire_cache</span>(<span class="local-variable">$nom_cache</span>) {
    19. <span class="comment">//    $d = substr($nom_cache, 0, 2);</span>
    20. <span class="comment">//    $u = substr($nom_cache, 2, 2);</span>
    21.   <span class="local-variable">$longueur_d</span> = <span class="integer">2</span>;
    22.   <span class="keyword">if</span> (<span class="predefined">defined</span>(<span class="string"><span class="delimiter">'</span><span class="content">_CACHE_MAX_4096_FILES</span><span class="delimiter">'</span></span>) <span class="keyword">AND</span> _CACHE_MAX_4096_FILES){
    23.     <span class="local-variable">$longueur_d</span> = <span class="integer">1</span>;
    24.   }
    25.     <span class="local-variable">$d</span> = <span class="predefined">substr</span>(<span class="local-variable">$nom_cache</span>, <span class="integer">0</span>, <span class="local-variable">$longueur_d</span>);
    26.     <span class="local-variable">$u</span> = <span class="predefined">substr</span>(<span class="local-variable">$nom_cache</span>, <span class="local-variable">$longueur_d</span>, <span class="integer">2</span>);
    27.  
    28.     <span class="keyword">if</span> (<span class="predefined">file_exists</span>(<span class="local-variable">$f</span> = _DIR_CACHE . <span class="string"><span class="delimiter">"</span><span class="local-variable">$d</span><span class="content">/</span><span class="local-variable">$u</span><span class="content">.cache</span><span class="delimiter">"</span></span>)
    29.         <span class="keyword">and</span> lire_fichier(<span class="local-variable">$f</span>, <span class="local-variable">$tmp</span>)
    30.         <span class="keyword">and</span> <span class="local-variable">$tmp</span> = <span class="predefined">unserialize</span>(<span class="local-variable">$tmp</span>)
    31.         <span class="keyword">and</span> <span class="local-variable">$tmp</span>[<span class="string"><span class="delimiter">'</span><span class="content">nom_cache</span><span class="delimiter">'</span></span>] == <span class="local-variable">$nom_cache</span>
    32.         <span class="keyword">and</span> <span class="predefined">isset</span>(<span class="local-variable">$tmp</span>[<span class="string"><span class="delimiter">'</span><span class="content">valeur</span><span class="delimiter">'</span></span>])
    33.     ) {
    34.         <span class="keyword">return</span> <span class="local-variable">$tmp</span>[<span class="string"><span class="delimiter">'</span><span class="content">valeur</span><span class="delimiter">'</span></span>];
    35.     }
    36.  
    37.     <span class="keyword">return</span> <span class="predefined-constant">false</span>;
    38. }
    39. </span>

    Télécharger

    Cordialement
    Equipement