You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mediaspip_init/mediaspip_init_administrati...

578 lines
21 KiB
PHP

<?php
/**
* Plugin MediaSPIP Init
* © 2010-2012 kent1 (kent1@arscenic.info)
* Distribué sous licence GNU/GPL v3
*
* Fichier d'installation du plugin
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Installation du plugin MediaSPIP Initialisation
*/
include_spip('inc/meta');
function mediaspip_init_upgrade($nom_meta_base_version,$version_cible){
$current_version = 0.0;
if ((!isset($GLOBALS['meta'][$nom_meta_base_version]) )
|| (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
if (version_compare($current_version,'0.0','<=')){
include_spip('inc/config');
/**
* Activer tous les champs sur les articles
*/
ecrire_meta("articles_surtitre", "oui");
ecrire_meta("articles_soustitre", "oui");
ecrire_meta("articles_descriptif", "oui");
ecrire_meta("articles_chapeau", "oui");
ecrire_meta("articles_ps", "oui");
ecrire_meta("articles_urlref", "oui");
ecrire_meta("articles_redac", "oui");
ecrire_meta("rubriques_descriptif", "oui");
/**
* Configuration du réducteur d'images
*/
$image_process_install = charger_fonction('image_process_install','inc');
$image_process_install();
/**
* Activation des documents sur les articles
*/
ecrire_meta("documents_article", "oui");
/**
* Ne pas activer les inscriptions de rédacteurs
*/
ecrire_meta("accepter_inscriptions","non");
/**
* Activation des statistiques
* et de leurs captures
*/
ecrire_meta("activer_statistiques", "oui");
ecrire_meta("activer_captures_referers", "oui");
/**
* Désactivation de fontionnalités du privé:
* -* la messagerie
* -* les forums
*/
ecrire_meta("messagerie_agenda", "non");
ecrire_meta("forum_prive_admin","non");
ecrire_meta("forum_prive_objets","non");
ecrire_meta("forum_prive","non");
/**
* Activer la gestion des sites
* et la possibilité d'en ajouter pour tout le monde
*/
ecrire_meta("activer_sites","oui");
ecrire_meta("proposer_sites","2");
/**
* Activer le suivi des révisions
*/
ecrire_meta("articles_versions","oui");
/**
* Activer les notifications des auteurs sous tous les types de forums
*/
ecrire_meta("prevenir_auteurs",",pos,pri,abo,");
/**
* Activer les urls arbos par défaut
*/
ecrire_meta("type_urls","arbo");
/**
* On active la barre typo dans les crayons
*/
$config_crayons = lire_config('crayons',array());
$config_crayons['barretypo'] = 'on';
ecrire_meta("crayons",serialize($config_crayons));
/**
* Activer le multilinguisme
* - Les articles sont traduisibles
* - Ne proposer que les langues réellement possibles
* - Créer une configuration du plugin multilang dans le cas de son utilisation
*/
ecrire_meta("multi_articles", "oui");
ecrire_meta("gerer_trad", "oui");
ecrire_meta("langues_proposees","fr,en");
$config_multilang = lire_config('multilang',array(
'siteconfig' => 'on',
'article' => '',
'breve' => '',
'rubrique' => 'on',
'auteur' => 'on',
'document' => 'on',
'motcle' => '',
'site' => 'on',
'multilang_public' => 'on',
'multilang_crayons' => 'on')
);
$config_multilang['multilang_public'] = 'on';
$config_multilang['multilang_crayons'] = 'on';
ecrire_meta("multilang",serialize($config_multilang));
/**
* Insertion d'une configuration de SocialTags qui pourra servir
*/
$config_socialtags = lire_config('socialtags',array(
'tags' => array('delicious','digg','facebook','google','myspace','twitter'),
'jsselector' => '.infos_statistiques > div:last')
);
ecrire_meta("socialtags",serialize($config_socialtags));
/**
* Insertion d'une configuration de Google +1 qui pourra servir
*/
$config_googleplus1 = lire_config('googleplus1',array(
'googleplus1_taille' => 'small',
'jsselector' => '.infos_statistiques > div:last')
);
ecrire_meta("googleplus1",serialize($config_googleplus1));
/**
* Insertion d'une configuration de doc2img qui pourra servir
* Dans le cas de l'activation future du plugin
*/
$formats = lire_config('doc2img_imagick_extensions',false);
if(!is_array($formats) OR (count($formats) == 0) && class_exists('Imagick')){
include_spip('inc/metas');
$imagick = new Imagick();
$formats = $imagick->queryFormats();
ecrire_meta('doc2img_imagick_extensions',serialize($formats));
}
$config_doc2img = lire_config('doc2img',array());
if(is_array($formats) && (count($formats) > 1)){
$extensions = array();
foreach(array('PDF','TIFF','BMP','AI','SVG','PSD','EPS','PS') as $extension){
if(in_array($extension,$formats)){
$extensions[] = $extension;
}
}
$extensions = array_map('strtolower',$extensions);
$config_doc2img['format_document'] = implode(',',$extensions);
}else{
$config_doc2img['format_document'] = 'pdf,tiff,bmp,ai,svg,psd,eps,ps';
}
$config_doc2img['resolution'] = '150';
$config_doc2img['conversion_auto'] = 'on';
$config_doc2img['logo_auto'] = 'on';
$config_doc2img['format_cible'] = 'png';
ecrire_meta("doc2img",serialize($config_doc2img));
/**
* Insertion d'une configuration pour le plugin notation
*/
$config_notation = lire_config('notation',array());
$config_notation['ponderation'] = 30;
$config_notation['acces'] = 'ide';
ecrire_meta("notation",serialize($config_notation));
/**
* Préconfigurer le plugin de notifications
*/
$config_notifications = lire_config('notifications',array());
$config_notifications['prevenir_auteurs_articles'] = 'on';
$config_notifications['prevenir_admins_restreints'] = 'on';
$config_notifications['prevenir_auteurs'] = 'on';
$config_notifications['thread_forum'] = 'on';
$email_auteur_1 = sql_getfetsel('email','spip_auteurs','id_auteur=1');
$config_notifications['moderateurs_forum'] = $email_auteur_1;
$config_notifications['inscription'] = 'webmestres';
ecrire_meta("notifications",serialize($config_notifications));
/**
* Insertion d'une configuration pour le plugin palette
*/
$config_palette = array('palette_ecrire' => 'on','palette_public' => 'on');
ecrire_meta("palette",serialize($config_palette));
/**
* Si compresseur et version finale
*/
ecrire_meta("auto_compress_js", "oui");
ecrire_meta("auto_compress_css", "oui");
/**
* Création du menu
* Nécessite le plugin Menu
*/
if(defined('_DIR_PLUGIN_MENUS')){
$menu_install = charger_fonction('menu_install','inc');
$menu_install();
}
/**
* Création des templates pour spipmotion
* Nécessite le plugin SPIPmotion
*/
$spipmotion_install = charger_fonction('spipmotion_install','inc');
$spipmotion_install();
/**
* Création des cinq rubriques principales de mediaspip
* puis création de la configuration en conséquence
*/
include_spip('action/editer_rubrique');
$rubs_mediaspip = lire_config('mediaspip');
if(!isset($rubs_mediaspip['rubriques']['editos']) OR
($rubs_mediaspip['rubriques']['editos'] != sql_getfetsel('id_rubrique','spip_rubriques','id_parent=0 AND id_rubrique='.$rubs_mediaspip['rubriques']['editos']))){
$rubs_mediaspip['rubriques']['editos'] = insert_rubrique(0);
revisions_rubriques($rubs_mediaspip['rubriques']['editos'], array('titre' =>_T('mediaspip_init:titre_rubrique_editos')));
}
if(!isset($rubs_mediaspip['rubriques']['mag']) OR
($rubs_mediaspip['rubriques']['mag'] != sql_getfetsel('id_rubrique','spip_rubriques','id_parent=0 AND id_rubrique='.$rubs_mediaspip['rubriques']['mag']))){
$rubs_mediaspip['rubriques']['mag'] = insert_rubrique(0);
revisions_rubriques($rubs_mediaspip['rubriques']['mag'], array('titre' =>_T('mediaspip_init:titre_rubrique_mag')));
}
if(!isset($rubs_mediaspip['rubriques']['medias']) OR
($rubs_mediaspip['rubriques']['medias'] != sql_getfetsel('id_rubrique','spip_rubriques','id_parent=0 AND id_rubrique='.$rubs_mediaspip['rubriques']['medias']))){
$rubs_mediaspip['rubriques']['medias'] = sql_getfetsel('id_rubrique','spip_rubriques','titre='.sql_quote('Medias'));
if(!intval($rubs_mediaspip['rubriques']['medias'])){
$rubs_mediaspip['rubriques']['medias'] = insert_rubrique(0);
}
revisions_rubriques($rubs_mediaspip['rubriques']['medias'], array('titre' =>_T('mediaspip_init:titre_rubrique_medias')));
}
if(!isset($rubs_mediaspip['rubriques']['actus']) OR
($rubs_mediaspip['rubriques']['actus'] != sql_getfetsel('id_rubrique','spip_rubriques','id_parent=0 AND id_rubrique='.$rubs_mediaspip['rubriques']['actus']))){
$rubs_mediaspip['rubriques']['actus'] = insert_rubrique(0);
revisions_rubriques($rubs_mediaspip['rubriques']['actus'], array('titre' =>_T('mediaspip_init:titre_rubrique_actus')));
}
if(!isset($rubs_mediaspip['rubriques']['sites']) OR
($rubs_mediaspip['rubriques']['sites'] != sql_getfetsel('id_rubrique','spip_rubriques','id_parent=0 AND id_rubrique='.$rubs_mediaspip['rubriques']['sites']))){
$rubs_mediaspip['rubriques']['sites'] = insert_rubrique(0);
revisions_rubriques($rubs_mediaspip['rubriques']['sites'], array('titre' =>_T('mediaspip_init:titre_rubrique_sites')));
}
ecrire_meta('mediaspip',serialize($rubs_mediaspip));
/**
* Création des templates pour spipmotion
* Nécessite le plugin SPIPmotion
*/
if(defined('_DIR_PLUGIN_DIOGENE')){
$diogene_install = charger_fonction('diogene_install','inc');
$diogene_install($rubs_mediaspip['rubriques']);
}
/**
* Modification de la config d'emballe medias
*/
$mutu_install = charger_fonction('mutu_install','inc');
$mutu_install();
/**
* Modification de la config d'emballe medias
*/
$emballe_media_install = charger_fonction('emballe_medias_install','inc');
$emballe_media_install();
/**
* On installe le sélecteur pour sparkstats
* Même s'il n'est pas installé, au moins elle sera bonne
*/
ecrire_meta('sparkstats',serialize(array('sparkstats_cible' => '.info-visites:eq(0)')));
/**
* On active les tags de spip.icio.us pour tout le monde par défaut
*/
$config_spipicious = lire_config('spipicious',array());
$config_spipicious['people'] = array('0minirezo','1comite','6forum');
ecrire_meta('spipicious',serialize($config_spipicious),'oui');
/**
* Préconfigurer Gis 4
*/
$config_gis = lire_config('gis',array());
if(!$config_gis['lat'] OR !$config_gis['lon']){
$config_gis['lat'] = '49';
$config_gis['lon'] = '15';
}
$config_gis['geocoder'] = 'on';
$config_gis['adresse'] = 'on';
$config_gis['zoom'] = '1';
$config_gis['gis_objets'] = array('spip_articles','spip_rubriques','spip_auteurs');
$config_gis['layer_defaut'] = 'openstreetmap_blackandwhite';
$config_gis['layers'] = array(
'openstreetmap_mapnik',
'openstreetmap_blackandwhite',
'mapbox_streets',
'mapbox_light',
'mapbox_lacquer',
'stamen_watercolor');
ecrire_meta('gis',serialize($config_gis),'oui');
include_spip('inc/invalideur');
suivre_invalideur('meta');
ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
}if (version_compare($current_version,'0.1.1','<')){
/**
* Insertion d'une configuration pour le plugin palette
*/
$config_palette = array('palette_ecrire' => 'on','palette_public' => 'on');
ecrire_meta("palette",serialize($config_palette));
ecrire_meta($nom_meta_base_version,$current_version='0.1.1','non');
}if (version_compare($current_version,'0.1.2','<')){
/**
* On ajoute la gestion des forums dans les diogènes d'articles
*/
$diogenes_articles = sql_select('*','spip_diogenes','objet IN ('.sql_quote('article').','.sql_quote('emballe_media').')');
include_spip('action/editer_diogene');
while($diogene = sql_fetch($diogenes_articles)){
$champs_ajoutes = @unserialize($diogene['champs_ajoutes']);
$champs_ajoutes[] = 'forum';
$diogene['champs_ajoutes'] = $champs_ajoutes;
diogene_modifier($diogene['id_diogene'], $diogene);
}
ecrire_meta($nom_meta_base_version,$current_version='0.1.2','non');
}if (version_compare($current_version,'0.1.3','<')){
/**
* On ajoute la gestion des forums dans les diogènes d'articles
*/
$diogenes = sql_select('*','spip_diogenes');
include_spip('action/editer_diogene');
while($diogene = sql_fetch($diogenes)){
if($diogene['type'] != 'media'){
$options_complements = is_array(@unserialize($diogene['options_complements'])) ? unserialize($diogene['options_complements']) : array();
$options_complements['polyhier_desactiver'] = 'on';
$diogene['options_complements'] = $options_complements;
diogene_modifier($diogene['id_diogene'], $diogene);
}
}
ecrire_meta($nom_meta_base_version,$current_version='0.1.3','non');
}if (version_compare($current_version,'0.1.4','<')){
/**
* On remplace les éléments de menus autrefois emballe_medias par publier (dans diogene)
*/
sql_updateq('spip_menus_entrees',array('type_entree'=>'publier'),'type_entree='.sql_quote('emballe_medias'));
ecrire_meta($nom_meta_base_version,$current_version='0.1.4','non');
}if(version_compare($current_version,'0.1.5','<')){
/**
* On ajoute un élément dans le menu principal de type lien vers la page d'accueil
* (utile pour le blog)
*/
$barre_nav = sql_getfetsel('id_menu','spip_menus','identifiant="barrenav"');
$home_entree = sql_getfetsel('id_menus_entree','spip_menus_entrees','type_entree="accueil" AND id_menu='.intval($barre_nav));
if(!intval($home_entree)){
include_spip('action/editer_menu');
include_spip('action/editer_menus_entree');
$entree = insert_menus_entree($barre_nav);
$infos_entree = array(
'rang' => 5,
'type_entree' => 'accueil'
);
menus_entree_set($entree, $infos_entree);
}
ecrire_meta($nom_meta_base_version,$current_version='0.1.5','non');
}if(version_compare($current_version,'0.1.6','<')){
/**
* On ajoute multilang dans les crayons
*/
$config_multilang = lire_config('multilang',array(
'siteconfig' => 'on',
'article' => '',
'breve' => '',
'rubrique' => 'on',
'auteur' => 'on',
'document' => 'on',
'motcle' => '',
'site' => 'on',
'multilang_public' => 'on',
'multilang_crayons' => 'on')
);
$config_multilang['multilang_crayons'] = 'on';
ecrire_meta("multilang",serialize($config_multilang));
ecrire_meta($nom_meta_base_version,$current_version='0.1.6','non');
}if(version_compare($current_version,'0.1.7','<')){
/**
* On active la barre typo dans les crayons
*/
$config_crayons = lire_config('crayons',array());
$config_crayons['barretypo'] = 'on';
ecrire_meta("crayons",serialize($config_crayons));
/**
* On vérifie qu'on a toutes les entrées de menus
*/
$menu_install = charger_fonction('menu_install','inc');
$menu_install();
ecrire_meta($nom_meta_base_version,$current_version='0.1.7','non');
}if(version_compare($current_version,'0.1.8','<')){
/**
* Insertion d'une configuration de SocialTags qui pourra servir
*/
$config_socialtags = lire_config('socialtags',array(
'tags' => array('delicious','digg','facebook','google','myspace','twitter'),
'jsselector' => '.infos_statistiques > div:last')
);
ecrire_meta("socialtags",serialize($config_socialtags));
/**
* Insertion d'une configuration de doc2img qui pourra servir
* Dans le cas de l'activation future du plugin
*/
$formats = lire_config('doc2img_imagick_extensions',false);
if(!is_array($formats) OR (count($formats) == 0)){
include_spip('inc/metas');
$imagick = new Imagick();
$formats = $imagick->queryFormats();
ecrire_meta('doc2img_imagick_extensions',serialize($formats));
}
$config_doc2img = lire_config('doc2img',array());
if(is_array($formats) && (count($formats) > 1)){
$extensions = array();
foreach(array('PDF','TIFF','BMP','AI','SVG','PSD','EPS','PS') as $extension){
if(in_array($extension,$formats)){
$extensions[] = $extension;
}
}
$extensions = array_map('strtolower',$extensions);
$config_doc2img['format_document'] = implode(',',$extensions);
}else{
$config_doc2img['format_document'] = 'pdf,tiff,bmp,ai,svg,psd,eps,ps';
}
$config_doc2img['resolution'] = '150';
$config_doc2img['format_cible'] = 'png';
$config_doc2img['conversion_auto'] = 'on';
$config_doc2img['logo_auto'] = 'on';
ecrire_meta("doc2img",serialize($config_doc2img));
/**
* On installe le sélecteur pour sparkstats
* Même s'il n'est pas installé, au moins elle sera bonne
*/
ecrire_meta('sparkstats',serialize(array('sparkstats_cible' => '.info-visites:eq(0)')));
/**
* Insertion d'une configuration de Google +1 qui pourra servir
*/
$config_googleplus1 = lire_config('googleplus1',array(
'googleplus1_taille' => 'small',
'jsselector' => '.infos_statistiques > div:last')
);
ecrire_meta("googleplus1",serialize($config_googleplus1));
include_spip('inc/invalideur');
suivre_invalideur('meta');
ecrire_meta($nom_meta_base_version,$current_version='0.1.8','non');
}if(version_compare($current_version,'0.1.9','<')){
/**
* Préconfigurer le plugin de notifications
*/
$config_notifications = lire_config('notifications',array());
$config_notifications['prevenir_auteurs_articles'] = 'on';
$config_notifications['prevenir_admins_restreints'] = 'on';
$config_notifications['prevenir_auteurs'] = 'on';
$config_notifications['thread_forum'] = 'on';
$email_auteur_1 = sql_getfetsel('email','spip_auteurs','id_auteur=1');
$config_notifications['moderateurs_forum'] = $email_auteur_1;
$config_notifications['inscription'] = 'webmestres';
ecrire_meta("notifications",serialize($config_notifications));
include_spip('inc/invalideur');
suivre_invalideur('meta');
ecrire_meta($nom_meta_base_version,$current_version='0.1.9','non');
}if(version_compare($current_version,'0.2.0','<')){
/**
* Préconfigurer Gis 4
*/
$config_gis = lire_config('gis',array());
if(!$config_gis['lat'] OR !$config_gis['lon']){
$config_gis['lat'] = '49';
$config_gis['lon'] = '15';
}
$config_gis['geocoder'] = 'on';
$config_gis['adresse'] = 'on';
$config_gis['zoom'] = '1';
$config_gis['gis_objets'] = array('spip_articles','spip_rubriques','spip_auteurs');
$config_gis['layer_defaut'] = 'openstreetmap_blackandwhite';
$config_gis['layers'] = array(
'openstreetmap_mapnik',
'openstreetmap_blackandwhite',
'mapbox_streets',
'mapbox_light',
'mapbox_lacquer',
'stamen_watercolor');
ecrire_meta('gis',serialize($config_gis),'oui');
include_spip('inc/invalideur');
suivre_invalideur('meta');
ecrire_meta($nom_meta_base_version,$current_version='0.2.0','non');
}
if(version_compare($current_version,'0.2.1','<')){
/**
* Insertion d'une configuration de doc2img qui pourra servir
* Dans le cas de l'activation future du plugin
*/
$formats = lire_config('doc2img_imagick_extensions',false);
if(!is_array($formats) OR (count($formats) == 0)){
include_spip('inc/metas');
$imagick = new Imagick();
$formats = $imagick->queryFormats();
ecrire_meta('doc2img_imagick_extensions',serialize($formats));
}
$config_doc2img = lire_config('doc2img',array());
if(is_array($formats) && (count($formats) > 1)){
$extensions = array();
foreach(array('PDF','TIFF','BMP','AI','SVG','PSD','EPS','PS') as $extension){
if(in_array($extension,$formats)){
$extensions[] = $extension;
}
}
$extensions = array_map('strtolower',$extensions);
$config_doc2img['format_document'] = implode(',',$extensions);
}else{
$config_doc2img['format_document'] = 'pdf,tiff,bmp,ai,svg,psd,eps,ps';
}
$config_doc2img['resolution'] = '150';
$config_doc2img['format_cible'] = 'png';
$config_doc2img['conversion_auto'] = 'on';
$config_doc2img['logo_auto'] = 'on';
ecrire_meta("doc2img",serialize($config_doc2img));
ecrire_meta($nom_meta_base_version,$current_version='0.2.1','non');
}
if(version_compare($current_version,'0.2.2','<')){
/**
* On reconfigure Gis v4
*/
$config_gis = lire_config('gis',array());
if(!$config_gis['lat'] OR !$config_gis['lon']){
$config_gis['lat'] = '49';
$config_gis['lon'] = '15';
}
$config_gis['geocoder'] = 'on';
$config_gis['adresse'] = 'on';
$config_gis['zoom'] = '1';
$config_gis['gis_objets'] = array('spip_articles','spip_rubriques','spip_auteurs');
$config_gis['layer_defaut'] = 'openstreetmap_blackandwhite';
$config_gis['layers'] = array(
'openstreetmap_mapnik',
'openstreetmap_blackandwhite',
'mapbox_streets',
'mapbox_light',
'mapbox_lacquer',
'stamen_watercolor');
ecrire_meta('gis',serialize($config_gis),'oui');
ecrire_meta($nom_meta_base_version,$current_version='0.2.2','non');
}
}
}
/**
* Désinstallation du plugin
*/
function mediaspip_init_vider_tables($nom_meta_version_base){
// On efface la version enregistrée
effacer_meta($nom_meta_version_base);
}
?>