
Recherche avancée
Médias (2)
-
Granite de l’Aber Ildut
9 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
-
Géodiversité
9 septembre 2011, par ,
Mis à jour : Août 2018
Langue : français
Type : Texte
Autres articles (16)
-
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...) -
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
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 (3369)
-
Evolution #3638 (Nouveau) : Utiliser la rechercher Fulltext par défaut pour le critère {recherche}
7 janvier 2016, par Gilles VINCENTSuite à la discussion entammée sur spip-dev, je suggère d’utiliser la recherche Fulltext par défaut, au lieu des REGEXP actuelles
http://thread.gmane.org/gmane.comp.web.spip.devel/66780Par défaut, recherche génère des requêtes des type REGEXP, ce qui n’est utile que si des utilisateurs font des recherches avec des expressions régulières, ce qui n’est pas le cas. Depuis le commit r21697 les tables ont installées par défaut au format MyISAM (demande #2727). SPIP gagnerait donc à utiliser les recherches en Fulltext.
Analyse détaillée du problème faite par Remi (root@lautre.net) :
Le problème c’est que ce type de requête est généré dès lors qu’il y a un
espace dans la recherche et les requêtes REGEXP n’utilisent pas les index.Donc ça ne concerne pas que les utilisateurs qui recherchent des
expressions régulières.Pour une recherche aussi bête que "chercher un mot" ça recherche
REGEXP sur chaque colonne de la table
spip_articles. Evidemment ça renvoie tous les articles contenant "un".Un exemple particulièrement inefficace : 51s pour faire une recherche sur 2
mots sans avoir la certitude que les 2 mots ne s’y trouvent.- Query_time : 51.073814 Lock_time : 0.018906 Rows_sent : 16363 Rows_examined : 36816
SELECT t.id_article, t.surtitre, t.titre, t.soustitre, t.chapo, t.texte,
t.ps, t.nom_site, t.url_site, t.descriptif FROM `xxxxxx`.spip_articles AS t
WHERE t.surtitre REGEXP ’Etats unis|Etats|unis’ OR t.titre REGEXP ’Etats
unis|Etats|unis’ OR t.soustitre REGEXP ’Etats unis|Etats|unis’ OR t.chapo
REGEXP ’Etats unis|Etats|unis’ OR t.texte REGEXP ’Etats unis|Etats|unis’
OR t.ps REGEXP ’Etats unis|Etats|unis’ OR t.nom_site REGEXP ’Etats
unis|Etats|unis’ OR t.url_site REGEXP ’Etats unis|Etats|unis’ OR
t.descriptif REGEXP ’Etats unis|Etats|unis’ ;Ici, ça me renvoie les articles qui contiennent "punissons",
"réunis".A ce niveau, un bête like me met "que" 5s :
SELECT * from (select *, concat( t.surtitre, t.titre, t.soustitre,
t.chapo, t.texte, t.ps, t.nom_site, t.url_site, t.descriptif) search from
spip_articles t) s WHERE s.search like ’%unis%’ or s.search like
’%Etats%’ ;Mais honnêtement 5s, ce n’est pas non plus acceptable.
Mais s’il vous faut mettre un truc par défaut autre que du fulltext,
utilisez LIKE sur la chaine à rechercher. Ca ira plus vite et ça vous
renverra des résultats plus cohérents.Remi
-
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 -
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.
- <span class="CodeRay"><span class="line head"><span class="head">--- </span><span class="filename">/ecrire/inc/plugin.php</span></span>
- <span class="line head"><span class="head">+++ </span><span class="filename">/ecrire/inc/plugin.php</span></span>
- <span class="line change"><span class="change">@@</span> -817,7 +817,7 <span class="change">@@</span></span>
- }
- <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>) {
- <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>
- <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>
- <span class="local-variable">$boutons</span> = <span class="predefined">array</span>();
- <span class="local-variable">$onglets</span> = <span class="predefined">array</span>();
- <span class="local-variable">$sign</span> = <span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span>;
- <span class="line change"><span class="change">@@</span> -861,7 +861,7 <span class="change">@@</span></span>
- <span class="predefined">unset</span>(<span class="local-variable">$info</span>[<span class="local-variable">$charge</span>][<span class="local-variable">$k</span>]);
- }
- <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>;
- <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>
- <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>
- }
- }
- }
- <span class="line change"><span class="change">@@</span> -870,12 +870,12 <span class="change">@@</span></span>
- }
- }
- <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>
- <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>
- <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>
- <span class="line delete"><span class="delete">-</span></span>
- <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>
- <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>
- <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>
- <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>
- <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>
- <span class="line insert"><span class="insert">+</span></span>
- <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>
- <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>
- }
- <span class="comment">/**</span>
- </span>