libreavous/base/libreavous.php

294 lines
8.7 KiB
PHP

<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
// des champs extras sur les articles
function libreavous_declarer_champs_extras($champs = array()) {
// Table : spip_articles
if (isset($champs['spip_articles']) and !is_array($champs['spip_articles'])) {
$champs['spip_articles'] = array();
}
$champs['spip_articles']['podcast_sommaire'] = array(
'saisie' => 'textarea',
'options' => array(
'nom' => 'podcast_sommaire',
'label' => 'Sommaire',
'rows' => '10',
'cols' => '40',
'sql' => 'text DEFAULT \'\' NOT NULL',
'inserer_barre' => 'edition',
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_code'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'podcast_code',
'label' => 'Code',
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_duree'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'podcast_duree',
'label' => 'Durée',
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_mp3'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'podcast_mp3',
'label' => 'Taille mp3',
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_ogg'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'podcast_ogg',
'label' => 'Taille Ogg',
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_transcription'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'podcast_transcription',
'label' => 'Lien transcription',
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_personnes'] = array(
'saisie' => 'textarea',
'options' => array(
'nom' => 'podcast_personnes',
'label' => 'Personnes participantes',
'rows' => '10',
'cols' => '40',
'sql' => 'text DEFAULT \'\' NOT NULL',
'inserer_barre' => 'edition',
'rechercher' => 5,
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_references'] = array(
'saisie' => 'textarea',
'options' => array(
'nom' => 'podcast_references',
'label' => 'Références',
'rows' => '20',
'cols' => '40',
'sql' => 'text DEFAULT \'\' NOT NULL',
'inserer_barre' => 'edition',
'rechercher' => 5,
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_galeriephotos'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'podcast_galeriephotos',
'label' => 'Galerie Photos',
'type' => 'text',
'size' => '40',
'sql' => 'text DEFAULT \'\' NOT NULL',
),
'verifier' => array(
),
);
$champs['spip_articles']['podcast_musique'] = array(
'saisie' => 'textarea',
'options' => array(
'nom' => 'podcast_musique',
'label' => 'Musiques',
'rows' => '5',
'cols' => '40',
'sql' => 'text DEFAULT \'\' NOT NULL',
'inserer_barre' => 'edition',
'rechercher' => 5,
'defaut' => 'Les références pour les pauses musicales et autres séquences sonores (jingles…) :
-* [Notre pad pour proposer des musiques diffusées sous une licence libre->https://pad.april.org/p/libreavous-musiques]
-* [NOM_DU_TITRE par ARTISTE->URL_DE_LA_MUSIQUE] (NOM_DE_LA_LICENCE VERSION_DE_LA_LICENCE, X minutes YY)
-* [NOM_DU_TITRE par ARTISTE->URL_DE_LA_MUSIQUE] (NOM_DE_LA_LICENCE VERSION_DE_LA_LICENCE, X minutes YY)
-* [NOM_DU_TITRE par ARTISTE->URL_DE_LA_MUSIQUE] (NOM_DE_LA_LICENCE VERSION_DE_LA_LICENCE, X minutes YY)
-* [Wesh Tone par Realaze->https://play.dogmazic.net/song.php?action=show_song&song_id=758] (Licence Art Libre 1.3, 4 minutes 36, générique et virgule de transition)
-* [Sometimes par Jahzaar->https://jahzzar.bandcamp.com/track/sometimes] (Creative Commons CC-BY SA 3.0, 10 secondes utilisées comme jingle avant la partie « Quoi de Libre ? »)
-* [Waiting room par Jahzaar->http://betterwithmusic.com/Music/songs/Waiting_Room.mp3] (Creative Commons CC-BY SA 3.0, utilisée en cas de problème technique pour faire patienter)
-* [Dolling par CyberSDF->https://soundcloud.com/cybersdf/dolling] (Creative Common CC BY 3.0, 2 minutes 40, utilisée sur certains jingles)
-* La voix des [jingles->https://media.april.org/audio/radio-cause-commune/libre-a-vous/jingles] est celle de [Laure-Élise Déniel->https://www.instagram.com/laureelisedeniel/]
',
),
'verifier' => array(
),
);
$champs['spip_articles']['drupal_guid'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'drupal_guid',
'label' => 'GUID Drupal',
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
),
'verifier' => array(
),
);
$champs['spip_articles']['drupal_pubdate'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'drupal_pubdate',
'label' => 'PubDate Drupal',
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
),
'verifier' => array(
),
);
$champs['spip_articles']['chronique'] = array(
'saisie' => 'input',
'options' => array(
'nom' => 'chronique',
'label' => _T('libreavous:chronique_label'),
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
'explication' => _T('libreavous:chronique_explications'),
),
'verifier' => array(
),
);
$champs['spip_articles']['description_rss'] = array(
'saisie' => 'textarea',
'options' => array(
'nom' => 'description_rss',
'label' => _T('libreavous:description_rss_label'),
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
'explication' => _T('libreavous:description_rss_explications'),
),
'verifier' => array(
),
);
return $champs;
}
// un nouvel objet chapitre
/**
* Déclaration des alias de tables et filtres automatiques de champs
*
* @pipeline declarer_tables_interfaces
* @param array $interfaces
* Déclarations d'interface pour le compilateur
* @return array
* Déclarations d'interface pour le compilateur
*/
function libreavous_declarer_tables_interfaces($interfaces) {
$interfaces['table_des_tables']['chapitres'] = 'chapitres';
return $interfaces;
}
/**
* Déclaration des objets éditoriaux
*
* @pipeline declarer_tables_objets_sql
* @param array $tables
* Description des tables
* @return array
* Description complétée des tables
*/
function libreavous_declarer_tables_objets_sql($tables) {
$tables['spip_chapitres'] = array(
'type' => 'chapitre',
'principale' => 'oui',
'field'=> array(
'id_chapitre' => 'bigint(21) NOT NULL',
'id_article' => 'bigint(21) NOT NULL DEFAULT 0',
'titre' => 'tinytext NOT NULL DEFAULT ""',
'code' => 'tinytext NOT NULL DEFAULT ""',
'code_fichier' => 'tinytext NOT NULL DEFAULT ""',
'code_podcast' => 'varchar(255) NOT NULL DEFAULT ""',
'debut' => 'varchar(25) NOT NULL DEFAULT ""',
'fin' => 'varchar(25) NOT NULL DEFAULT ""',
'type_sujet' => 'varchar(25) NOT NULL DEFAULT ""',
'chronique' => 'varchar(255) NOT NULL DEFAULT ""',
'mp3' => 'varchar(255) NOT NULL DEFAULT ""',
'ogg' => 'varchar(255) NOT NULL DEFAULT ""',
'references_sujet' => 'text NOT NULL DEFAULT ""',
'drupal_guid' => 'text NOT NULL DEFAULT ""',
'drupal_pubdate' => 'varchar(255) NOT NULL DEFAULT ""',
'description_rss' => 'text NOT NULL DEFAULT ""',
'maj' => 'timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'
),
'key' => array(
'PRIMARY KEY' => 'id_chapitre',
'KEY id_article' => 'id_article',
),
'titre' => 'titre AS titre, "" AS lang',
#'date' => '',
'champs_editables' => array('titre', 'code', 'code_fichier', 'code_podcast', 'debut', 'fin', 'type_sujet', 'chronique', 'mp3', 'ogg', 'references_sujet', 'drupal_guid', 'drupal_pubdate', 'id_article', 'description_rss'),
'champs_versionnes' => array('titre', 'code', 'code_fichier', 'code_podcast', 'debut', 'fin', 'type_sujet', 'chronique', 'mp3', 'ogg', 'references_sujet', 'drupal_guid', 'drupal_pubdate', 'id_article', 'description_rss'),
'rechercher_champs' => array("titre" => 8, "references_sujet" => 5, "description_rss" => 5),
'tables_jointures' => array(),
);
return $tables;
}