
Recherche avancée
Médias (1)
-
Somos millones 1
21 juillet 2014, par
Mis à jour : Juin 2015
Langue : français
Type : Video
Autres articles (109)
-
L’agrémenter visuellement
10 avril 2011MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté. -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (11787)
-
http: fix potentially dangerous whitespace skipping code
8 mars 2018, par wm4http: fix potentially dangerous whitespace skipping code
If the string consists entirely of whitespace, this could in theory
continue to write '\0' before the start of the memory allocation. In
practice, it didn't really happen : the generic HTTP header parsing code
already skips leading whitespaces, so the string is either empty, or
consists a non-whitespace. (The generic code and the cookie code
actually have different ideas about what bytes are whitespace : the
former uses av_isspace(), the latter uses WHITESPACES. Fortunately,
av_isspace() is a super set of the http.c specific WHITESPACES, so
there's probably no case where the above assumption could have been
broken.) -
Evolution #4105 : Constante ou config ?
28 février 2018, par RastaPopoulos ♥Du coup maintenant on a trois discussions ouvertes sur les config, le ticket de Placido, le fil sur la liste emails, et ce ticket…
b_b attention, dans l’idée de Maieul la constante est inversement prioritaire, et non pas à chercher en dernier recours.
Mais mon avis c’est que les deux sont un peu de la merde. :D
Déjà il ne faut pas comparer constantes et form de config, mais constante et meta (= une config gardée en mémoire en base). On a une API lire_config() et ecrire_config(), ça ne vient pas forcément que d’un formulaire avec interface humaine.
L’avantage des constantes, c’est le déploiement, c’est défini et activé à chaque hit et donc pour l’exécution complète de tout ce qui suit. Ce qui est un énorme avantage pour vraiment activer des choses depuis un plugin (ou le mes_options général).
L’inconvénient c’est que c’est un peu de la merde, vu que ça ne peut se surcharger qu’une seule fois et c’est super compliqué si plusieurs plugins chercher à faire des choix.L’avantage des config en base, c’est que c’est une API à nous, et qui peut être réécrite à tout moment. C’est beaucoup plus souple, et ça permet aussi des valeurs plus complexes.
L’inconvénient c’est que c’est un peu de la merde : ça ne concerne qu’un enregistrement fixé en base. Et donc pas à chaque hit ! Du coup si un plugin personnalise une valeur lors de son installation, bah un form de config peut l’avoir réenregistré autrement ensuite, ou n’importe quel autre plugin en PHP avec ecrire_config(). Du coup c’est vraiment de la merde pour le déploiement contrôlé de variables de config !Mon idée est donc qu’il manque clairement quelque chose pour avoir une API complète de gestion des configurations.
1) on doit pouvoir le garder en mémoire (chez nous en BDD)
2) mais on doit AUSSI pouvoir le définir à chaque hit !Or il se trouve que le tableau des metas (donc des configs !) est de toute façon déjà chargé au démarrage de SPIP et trimballé entier durant tout le hit PHP !
Du coup pour moi la solution la plus propre c’est qu’il y ait un nouveau pipeline "lire_config" qui permettent de modifier le tableau des configs après qu’il ait été initialisé depuis la base. Du coup on aurait bien les valeurs venant de la base (form de config ou autre), MAIS AUSSI n’importe qui pourrait forcer la valeur d’une config à chaque hit, exactement comme on le fait pour les constantes. Et du coup vu que pipeline, bah on pourrait le surcharger plusieurs fois, suivant le path, etc, easy et simple à comprendre pour tout le monde.
monplugin_lire_config($metas) // Je force une config $metas[’albums’][’activer_trucmuche’] = true ;
return $metas ;
-
Evolution #4102 : Ordre des inclures dans cache/charger_plugins_options.php
26 février 2018, par RastaPopoulos ♥TL ;DR : problème résolu, c’est le plugin Albums qui ne fait pas bien les choses + mais un pipeline à l’initialisation est forcément utile et j’en ai déjà eu besoin.
@azerttyu Mais non, on ne doit surtout pas changer l’ordre des fichiers, il y a des milliers (et peut-être même des milliards :p) de cas dans la nature qui se basent tous sur le fait que l’ordre logique est le même que partout ailleurs, celui de l’ordre des pipelines et celui de l’ordre de toutes les surcharges de fichiers dans SPIP, càd l’ordre du PATH. D’une ce serait incohérent mais surtout c’est pas un nouveau truc ajouté, là on parle des options.php déjà utilisé partout, donc non on ne doit rien changer à l’ordre actuel.
Si ya un truc qui doit changer c’est sur un ajout, pas sur un truc méga utilisé partout.
Dans tous les cas, comme dit marcimat, faire de la config avec des define() c’est vraiment pas super, et encore plus définir des define() dans le options.php du plugin qui en a besoin ! Après le problème c’est quand le define() est justement utilisé directement dans ce options.php… Mais s’il ne l’est pas, le define() doit être défini dans le inc/truc, action/truc, etc, ce qui permet bien à d’autres de le définir en amont dans leur options.php.
D’ailleurs placido a donné des exemples précis, en parlant du plugin Album. Est-ce que celui-ci utilise ces deux define() dans le code de son options.php ? Si ce n’est pas le cas c’est lui qui doit être modifié pour définir ces variables ailleurs.
La réponse est là :
https://zone.spip.org/trac/spip-zone/browser/_plugins_/albums/trunk/albums_options.phpComme vous le voyez, AUCUNE de ces variables n’est utilisée à cette endroit là. Donc c’est le plugin Albums qui ne fait pas bien les choses. Il faut absolument déplacer l’ensemble de ces variables dans les fichiers où elles sont vraiment utilisés.
Et du coup c’est fini, problème résolu, c’est le plugin source qui était en problème, et une fois corrigé placido n’a plus de problème à définir ces valeurs avant.
Les cas où des define() sont définis ET utilisés directement dans le options.php sont méga méga rares, et je crois même qu’il n’y a que Bonux qui fait ça, pour la prévisu temporaire :
https://zone.spip.org/trac/spip-zone/browser/_plugins_/spip-bonux-3/spip_bonux_options.php#L25
(et ça m’avait bien saoulé pour le surcharger, j’avais fini par le définir dans les mes_options.php du projet alors que je ne l’utilise jamais et que je voulais le faire dans le plugin de mon projet)(Par ailleurs, dans tous les cas ce serait bien qu’il y ait un pipeline/trigger au tout début de SPIP, j’avais déjà eu le besoin pour faire des choses avant la connexion/cookie etc, pour connecter les gens par Facebook ou autre truc extérieur au tout démarrage, et pour le moment j’avais dû le faire dans mon action PHP à moi, au lieu de pouvoir le faire dans un truc générique qui aurait valu pour n’importe quel hit PHP, et du coup j’ai jamais pu en faire un plugin générique. Mais faudrait peut-être faire un ticket dédié pour demander cet ajout.)