From 6791f184e86dbba9df8ee3b7a2d57ff8ed5ff329 Mon Sep 17 00:00:00 2001 From: tofulm Date: Mon, 30 Mar 2020 14:10:01 +0200 Subject: [PATCH] sortie de la fabrique --- GamuForm_administrations.php | 58 +++++ GamuForm_autorisations.php | 100 ++++++++ GamuForm_fonctions.php | 14 ++ GamuForm_options.php | 14 ++ GamuForm_pipelines.php | 38 ++++ action/supprimer_gamuform.php | 41 ++++ base/GamuForm.php | 116 ++++++++++ fabrique_GamuForm.php | 214 ++++++++++++++++++ fabrique_diff.diff | 20 ++ formulaires/configurer_GamuForm.html | 16 ++ formulaires/editer_gamuform.html | 24 ++ formulaires/editer_gamuform.php | 139 ++++++++++++ lang/GamuForm_fr.php | 20 ++ lang/gamuform_fr.php | 45 ++++ lang/paquet-GamuForm_fr.php | 14 ++ paquet.xml | 31 +++ prive/objets/contenu/gamuform.html | 12 + prive/objets/liste/gamuforms.html | 39 ++++ .../contenu/configurer_GamuForm.html | 7 + prive/themes/spip/images/GamuForm-xx.svg | 152 +++++++++++++ prive/themes/spip/images/gamuform-16.svg | 134 +++++++++++ prive/themes/spip/images/gamuform-xx.svg | 134 +++++++++++ 22 files changed, 1382 insertions(+) create mode 100644 GamuForm_administrations.php create mode 100644 GamuForm_autorisations.php create mode 100644 GamuForm_fonctions.php create mode 100644 GamuForm_options.php create mode 100644 GamuForm_pipelines.php create mode 100644 action/supprimer_gamuform.php create mode 100644 base/GamuForm.php create mode 100644 fabrique_GamuForm.php create mode 100644 fabrique_diff.diff create mode 100644 formulaires/configurer_GamuForm.html create mode 100644 formulaires/editer_gamuform.html create mode 100644 formulaires/editer_gamuform.php create mode 100644 lang/GamuForm_fr.php create mode 100644 lang/gamuform_fr.php create mode 100644 lang/paquet-GamuForm_fr.php create mode 100644 paquet.xml create mode 100644 prive/objets/contenu/gamuform.html create mode 100644 prive/objets/liste/gamuforms.html create mode 100644 prive/squelettes/contenu/configurer_GamuForm.html create mode 100644 prive/themes/spip/images/GamuForm-xx.svg create mode 100644 prive/themes/spip/images/gamuform-16.svg create mode 100644 prive/themes/spip/images/gamuform-xx.svg diff --git a/GamuForm_administrations.php b/GamuForm_administrations.php new file mode 100644 index 0000000..b485ec1 --- /dev/null +++ b/GamuForm_administrations.php @@ -0,0 +1,58 @@ +'*'), '*'); + + sql_delete('spip_gamuforms', "statut='poubelle' AND maj < " . $flux['args']['date']); + + return $flux; +} diff --git a/action/supprimer_gamuform.php b/action/supprimer_gamuform.php new file mode 100644 index 0000000..5ae2e48 --- /dev/null +++ b/action/supprimer_gamuform.php @@ -0,0 +1,41 @@ + 'gamuform', + 'principale' => 'oui', + 'field'=> array( + 'id_gamuform' => 'bigint(21) NOT NULL', + 'titre' => 'varchar(255) NOT NULL DEFAULT ""', + 'date' => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"', + 'date' => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"', + 'statut' => 'varchar(20) DEFAULT "0" NOT NULL', + 'maj' => 'TIMESTAMP' + ), + 'key' => array( + 'PRIMARY KEY' => 'id_gamuform', + 'KEY statut' => 'statut', + ), + 'titre' => 'titre AS titre, "" AS lang', + 'date' => 'date', + 'champs_editables' => array('titre', 'date'), + 'champs_versionnes' => array('titre', 'date'), + 'rechercher_champs' => array(), + 'tables_jointures' => array('spip_gamuforms_liens'), + 'statut_textes_instituer' => array( + 'prepa' => 'texte_statut_en_cours_redaction', + 'prop' => 'texte_statut_propose_evaluation', + 'publie' => 'texte_statut_publie', + 'refuse' => 'texte_statut_refuse', + 'poubelle' => 'texte_statut_poubelle', + ), + 'statut'=> array( + array( + 'champ' => 'statut', + 'publie' => 'publie', + 'previsu' => 'publie,prop,prepa', + 'post_date' => 'date', + 'exception' => array('statut','tout') + ) + ), + 'texte_changer_statut' => 'gamuform:texte_changer_statut_gamuform', + + + ); + + return $tables; +} + + +/** + * Déclaration des tables secondaires (liaisons) + * + * @pipeline declarer_tables_auxiliaires + * @param array $tables + * Description des tables + * @return array + * Description complétée des tables + */ +function GamuForm_declarer_tables_auxiliaires($tables) { + + $tables['spip_gamuforms_liens'] = array( + 'field' => array( + 'id_gamuform' => 'bigint(21) DEFAULT "0" NOT NULL', + 'id_objet' => 'bigint(21) DEFAULT "0" NOT NULL', + 'objet' => 'VARCHAR(25) DEFAULT "" NOT NULL', + 'vu' => 'VARCHAR(6) DEFAULT "non" NOT NULL', + ), + 'key' => array( + 'PRIMARY KEY' => 'id_gamuform,id_objet,objet', + 'KEY id_gamuform' => 'id_gamuform', + ) + ); + + return $tables; +} diff --git a/fabrique_GamuForm.php b/fabrique_GamuForm.php new file mode 100644 index 0000000..54206c6 --- /dev/null +++ b/fabrique_GamuForm.php @@ -0,0 +1,214 @@ + + array ( + 'version' => 7, + ), + 'paquet' => + array ( + 'prefixe' => 'GamuForm', + 'nom' => 'GamuForm', + 'slogan' => '', + 'description' => '', + 'logo' => + array ( + 0 => '', + ), + 'credits' => + array ( + 'logo' => + array ( + 'texte' => 'https://gamuza.fr', + 'url' => 'https://gamuza.fr', + ), + ), + 'version' => 'https://gamuza.fr', + 'auteur' => 'tofulm', + 'auteur_lien' => 'https://gamuza.fr', + 'licence' => 'GNU/GPL', + 'categorie' => 'outil', + 'etat' => 'dev', + 'compatibilite' => '[3.3.0-dev;3.3.*]', + 'documentation' => '', + 'administrations' => '', + 'schema' => '1.0.0', + 'formulaire_config' => 'on', + 'formulaire_config_titre' => '', + 'fichiers' => + array ( + 0 => 'autorisations', + 1 => 'fonctions', + 2 => 'options', + 3 => 'pipelines', + ), + 'inserer' => + array ( + 'paquet' => '', + 'administrations' => + array ( + 'maj' => '', + 'desinstallation' => '', + 'fin' => '', + ), + 'base' => + array ( + 'tables' => + array ( + 'fin' => '', + ), + ), + ), + 'scripts' => + array ( + 'pre_copie' => '', + 'post_creation' => '', + ), + 'exemples' => '', + ), + 'objets' => + array ( + 0 => + array ( + 'nom' => 'Gamuforms', + 'nom_singulier' => 'Gamuform', + 'genre' => 'masculin', + 'logo' => + array ( + 0 => '', + 32 => '', + 24 => '', + 16 => '', + 12 => '', + ), + 'table' => 'spip_gamuforms', + 'cle_primaire' => 'id_gamuform', + 'cle_primaire_sql' => 'bigint(21) NOT NULL', + 'table_type' => 'gamuform', + 'champs' => + array ( + 0 => + array ( + 'nom' => 'titre', + 'champ' => 'titre', + 'sql' => 'varchar(255) NOT NULL DEFAULT \'\'', + 'caracteristiques' => + array ( + 0 => 'editable', + 1 => 'versionne', + 2 => 'obligatoire', + ), + 'recherche' => '', + 'saisie' => 'checkbox', + 'explication' => '', + 'saisie_options' => 'conteneur_class=pleine_largeur,class=toto,datas=[(#ARRAY{cle1,valeur1,cle2,valeur2})]', + ), + 1 => + array ( + 'nom' => 'Date', + 'champ' => 'date', + 'sql' => 'datetime NOT NULL DEFAULT \'0000-00-00 00:00:00\'', + 'caracteristiques' => + array ( + 0 => 'editable', + 1 => 'versionne', + 2 => 'obligatoire', + ), + 'recherche' => '', + 'saisie' => 'date', + 'explication' => '', + 'saisie_options' => '', + ), + ), + 'champ_titre' => 'titre', + 'champ_date' => 'date', + 'statut' => 'on', + 'chaines' => + array ( + 'titre_objets' => 'Gamuforms', + 'titre_objet' => 'Gamuform', + 'info_aucun_objet' => 'Aucun gamuform', + 'info_1_objet' => 'Un gamuform', + 'info_nb_objets' => '@nb@ gamuforms', + 'icone_creer_objet' => 'Créer un gamuform', + 'icone_modifier_objet' => 'Modifier ce gamuform', + 'titre_logo_objet' => 'Logo de ce gamuform', + 'titre_langue_objet' => 'Langue de ce gamuform', + 'texte_definir_comme_traduction_objet' => 'Ce gamuform est une traduction du gamuform numéro :', + 'titre_\\objets_lies_objet' => 'Liés à ce gamuform', + 'titre_objets_rubrique' => 'Gamuforms de la rubrique', + 'info_objets_auteur' => 'Les gamuforms de cet auteur', + 'retirer_lien_objet' => 'Retirer ce gamuform', + 'retirer_tous_liens_objets' => 'Retirer tous les gamuforms', + 'ajouter_lien_objet' => 'Ajouter ce gamuform', + 'texte_ajouter_objet' => 'Ajouter un gamuform', + 'texte_creer_associer_objet' => 'Créer et associer un gamuform', + 'texte_changer_statut_objet' => 'Ce gamuform est :', + 'supprimer_objet' => 'Supprimer cet gamuform', + 'confirmer_supprimer_objet' => 'Confirmez-vous la suppression de cet gamuform ?', + ), + 'liaison_directe' => '', + 'table_liens' => 'on', + 'afficher_liens' => '', + 'roles' => '', + 'auteurs_liens' => '', + 'vue_auteurs_liens' => '', + 'fichiers' => + array ( + 'explicites' => + array ( + 0 => 'action/supprimer_objet.php', + ), + ), + 'autorisations' => + array ( + 'objet_creer' => '', + 'objet_voir' => '', + 'objet_modifier' => '', + 'objet_supprimer' => '', + 'associerobjet' => '', + ), + ), + ), + 'images' => + array ( + 'paquet' => + array ( + 'logo' => + array ( + 0 => + array ( + 'extension' => 'svg', + 'contenu' => 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICB4PSIwcHgiCiAgIHk9IjBweCIKICAgdmlld0JveD0iMCAwIDc2Ljg3OTE1OCA2NCIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgODAgODAiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlkPSJzdmc5NDUiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImdhbXVmb3JtLnN2ZyIKICAgd2lkdGg9Ijc2Ljg3OTE1OCIKICAgaGVpZ2h0PSI2NCIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40IDVkYTY4OWMzMTMsIDIwMTktMDEtMTQiPjxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTk1MSI+PHJkZjpSREY+PGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48ZGM6dGl0bGU+PC9kYzp0aXRsZT48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgICBpZD0iZGVmczk0OSIgLz48c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NTYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTQxNiIKICAgICBpZD0ibmFtZWR2aWV3OTQ3IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp6b29tPSI0LjM3MzQ1NTQiCiAgICAgaW5rc2NhcGU6Y3g9Ijk5LjgzMzYzMyIKICAgICBpbmtzY2FwZTpjeT0iLTkuNTg0Njg5MyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMjAiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc5NDUiIC8+PHBvbHlnb24KICAgICBzdHlsZT0iZmlsbDpub25lIgogICAgIHBvaW50cz0iMjQxNC44NTksNzA3LjQ4OCAyNDI1Ljk2MSw3MDcuNDg4IDIzOTguNzk5LDQ5NC4wNzkgIgogICAgIGlkPSJwb2x5Z29uMjUzMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMwMS42NjczLC0zODQuMjM0NjEpIiAvPjxwYXRoCiAgICAgc3R5bGU9ImZpbGw6bm9uZSIKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIGQ9Im0gMTQxLjc3OTY2LDMxNi4zOTIzOSBjIDEuOTM4LC0zLjM5NyA3LjM2NCwtMy4zMDkgMTEuNDM4LC00LjU3MiAtMTMuOTM4LC02NC43NzUgMy43MjIsLTEzOC4zMTYgLTIuMjg3LC0yMTAuNDE1IC0xMC43MTQsMS40MjQgLTIyLjQ3NiwtMC4yNjYgLTM0LjMwOCw0LjU3NCAtMC40MTIsNTUuNTYxIDEyLjI3LDExNy44NTIgMTMuNzIzLDE2OS4yNDcgMC40MjQsMTUuMDAyIC03LjQxOSwzNC43NjkgMTEuNDM0LDQxLjE2NiB6IgogICAgIGlkPSJwYXRoMjUzMyIgLz48cGF0aAogICAgIHN0eWxlPSJmaWxsOm5vbmUiCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBkPSJtIDE4MC42NTk2NiwzMjMuMjUzMzkgYyAxMC41OTUsLTE4LjY4NiAtMi41MiwtMzguNzE4IC00LjU3MywtNjEuNzUzIC00LjUwMiwtNTAuNDggNy40NzIsLTEwOS45MjMgMCwtMTYwLjA5NyAtMC4xMzEsLTEuMzk2IC0wLjM0MywtMi43MDggLTIuMjg5LC0yLjI4NyAtMjYuMDg2LDQ5LjY2NyAyLjQ4NCwxNDMuODc5IC0xMy43MjIsMjA1Ljg0IDcuNDE2LDUuNTQ0IDcuODgyLDE4LjA0IDIwLjU4NCwxOC4yOTcgeiIKICAgICBpZD0icGF0aDI1MzUiIC8+PGcKICAgICBpZD0iZzI2NTAiPjxwb2x5Z29uCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMi44NzkxNTYsLTgpIgogICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICAgICAgcG9pbnRzPSIxNyw5IDYzLDkgNjMsNTkgNTEsNzEgMTcsNzEgIgogICAgICAgaWQ9InBvbHlnb245MTUiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMCIgLz48cG9seWdvbgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIuODc5MTU2LC04KSIKICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIKICAgICAgIHBvaW50cz0iNTAuOTk5OTU4LDU4Ljk5OTk1OCA1MSw3MSA2Myw1OSAiCiAgICAgICBpZD0icG9seWdvbjkxNyIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwIiAvPjxyZWN0CiAgICAgICB4PSIzNC44NzkxNjkiCiAgICAgICB5PSI3LjAwMDA4MiIKICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIKICAgICAgIHdpZHRoPSIzNS45OTk5NjkiCiAgICAgICBoZWlnaHQ9IjYiCiAgICAgICBpZD0icmVjdDkxOSIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwIiAvPjxyZWN0CiAgICAgICB4PSIzOC44NzkxMzkiCiAgICAgICB5PSIxOS4wMDAwODIiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICB3aWR0aD0iOCIKICAgICAgIGhlaWdodD0iOCIKICAgICAgIGlkPSJyZWN0OTIxIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTAiIC8+PGxpbmUKICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIKICAgICAgIHgxPSI1MC44NzkxMzkiCiAgICAgICB5MT0iMjEuMDAwMDgyIgogICAgICAgeDI9IjY2Ljg3OTE0MyIKICAgICAgIHkyPSIyMS4wMDAwODIiCiAgICAgICBpZD0ibGluZTkyNyIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwIiAvPjxsaW5lCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICB4MT0iNTAuNzQ1NDkxIgogICAgICAgeTE9IjI1LjAwMDA4IgogICAgICAgeDI9IjcxLjU4MzAwOCIKICAgICAgIHkyPSIyNS4wMDAwOCIKICAgICAgIGlkPSJsaW5lOTI5IgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS44NjM1NzY4OTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTAiIC8+PGxpbmUKICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIKICAgICAgIHgxPSI0Ni44NzkxMzkiCiAgICAgICB5MT0iNDkuMDAwMDgiCiAgICAgICB4Mj0iNTkuODc5MTM5IgogICAgICAgeTI9IjQ5LjAwMDA4IgogICAgICAgaWQ9ImxpbmU5MzUiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMCIgLz48bGluZQogICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICAgICAgeDE9IjQ2Ljg3OTEzOSIKICAgICAgIHkxPSI1My4wMDAwOCIKICAgICAgIHgyPSI2My44NzkxMTIiCiAgICAgICB5Mj0iNTMuMDAwMDgiCiAgICAgICBpZD0ibGluZTkzNyIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwIiAvPjxyZWN0CiAgICAgICB4PSIzOC42MjgxMDEiCiAgICAgICB5PSIzMC41NDc2MTUiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICB3aWR0aD0iOCIKICAgICAgIGhlaWdodD0iOCIKICAgICAgIGlkPSJyZWN0OTIxLTgiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMCIgLz48bGluZQogICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICAgICAgeDE9IjUwLjYyODEwMSIKICAgICAgIHkxPSIzMi41NDc2MTUiCiAgICAgICB4Mj0iNjYuNjI4MTA1IgogICAgICAgeTI9IjMyLjU0NzYxNSIKICAgICAgIGlkPSJsaW5lOTI3LTkiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMCIgLz48bGluZQogICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICAgICAgeDE9IjUwLjQ5NDQ1MyIKICAgICAgIHkxPSIzNi41NDc2MTUiCiAgICAgICB4Mj0iNzEuMzMxOTciCiAgICAgICB5Mj0iMzYuNTQ3NjE1IgogICAgICAgaWQ9ImxpbmU5MjktMiIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEuODYzNTc2ODk7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwIiAvPjxwYXRoCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjY3NjY2Njc2NzY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY3Njc2NjY3Njc2NzY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Njc2NzY2NjY2Njc3NjY3NjY3NjY2NjY2Njc2NzY2NjY2NjIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlkPSJwYXRoMTA2MSIKICAgICAgIGQ9Ik0gMzAuOTM1Njc3LDMxLjk4NzY2OSBWIDIuMDM0MjM3IEggNTIuODg2Mjg0IDc0LjgzNjg5IFYgMjUuOTg1NTUgNDkuOTM2ODYzIEggNjkuMTY4OTU1IDYzLjUwMTAyIGwgLTAuMzM0MTg0LDAuMzM0MTg0IGMgLTAuMjk2MDM4LDAuMjk2MDM5IC0wLjMzNDE4NCwwLjQxMzQ4NyAtMC4zMzQxODQsMS4wMjg5MzUgdiAwLjY5NDc1IGggLTguMjExNTQ5IC04LjIxMTU0OCBsIC0wLjI0MDEwNywwLjI1NzIzNCBjIC0wLjEzMjA1OCwwLjE0MTQ3OSAtMC4yNzM4MjksMC4zOTMxNzEgLTAuMzE1MDQ3LDAuNTU5MzE4IC0wLjA4Nzk2LDAuMzU0NTYgMC4xODA4NTUsMC45NDgwMDQgMC41MDg5NjQsMS4xMjM2MDMgMC4xNDQ5MzgsMC4wNzc1NyAyLjk5MDg2MSwwLjExNzcxNSA4LjM0NDYyLDAuMTE3NzE1IGggOC4xMjQ2NjcgdiAzLjk0NDI0OSAzLjk0NDI1IEggNDYuODg0MTY1IDMwLjkzNTY3NyBaIG0gMTIuNjU5MTU4LDIzLjc0ODc2NyAwLjMxNjg1MiwtMC4zMTY4NyAwLjAzNTM0LC00LjE0MTg0NyBjIDAuMDM4ODEsLTQuNTQ5MDcgMC4wMDMyLC00Ljg4NDgxMyAtMC41NDg1MTgsLTUuMTcwMTE0IC0wLjQ4NTU5NSwtMC4yNTExMSAtOC41MzgyODYsLTAuMjU2NTE3IC05LjAyMjYyMiwtMC4wMDYxIC0wLjU3MzUxNCwwLjI5NjU3NSAtMC41OTI4ODQsMC40NzIzNjEgLTAuNTU3NTY3LDUuMDYwMjEyIGwgMC4wMzI2Nyw0LjI0NDU4OSAwLjI3MTMwNCwwLjI4ODY2MyBjIDAuMjMyMTYsMi42NzAwNTEgMC45MTE4NTIsNi41NDgwNzkgNC44OTk0OTYsMi42MzA4OTggMi45NzAxMjYsNS4yNzI5NTUgMy42MTk1NDIsLTAuNjc1MDA2IDQuNTczMDQ1LC0yLjU4OTQzMSB6IG0gMTYuNzU4NzQxLC01LjgxODI0NyBjIDAuMzg0Mjc0LC0wLjIwNDY2NSAwLjUyNzkyNiwtMC40NTU3NTcgMC41MzE4OTcsLTAuOTI5NzEyIDAuMDAyNiwtMC4zMTE0OTYgLTAuMDc1NTQsLTAuNTEzMDkyIC0wLjI3Njk4MywtMC43MTQ1MzggTCA2MC4zMjc4NzIsNDcuOTkzMzIgaCAtNi45NTkxNTkgLTYuOTU5MTU4IGwgLTAuMjQwMTA3LDAuMjU3MjMzIGMgLTAuMzQ4MTY1LDAuMzczMDAzIC0wLjQyMTg4LDAuNzk5NzI3IC0wLjIwOTE5OCwxLjIxMTAxIDAuMDk5NDMsMC4xOTIyODUgMC4yNzA4MjMsMC40MDIwNDkgMC4zODA4NjMsMC40NjYxNDEgMC4yOTk5NTIsMC4xNzQ3MDcgMTMuNjgzNjM4LDAuMTY1NjE4IDE0LjAxMjQ2MywtMC4wMDk1IHogTSA0Ny4zMzI0MDEsMzkuMzEzMTkxIDQ3LjYyNzI4NCwzOS4wMzYwMjggViAzNC41NTAyNCAzMC4wNjQ0NTIgbCAtMC4zNTYzMjYsLTAuMjk5ODI5IC0wLjM1NjMyNywtMC4yOTk4MjkgLTQuMzg1MTQxLDAuMDMyNDMgLTQuMzg1MTQyLDAuMDMyNDMgLTAuMjYwMjk4LDAuMjYwMjkzIC0wLjI2MDI5OCwwLjI2MDI5MyAtMC4wMzI2Myw0LjMwNzg5IGMgLTAuMDI0LDMuMTY4MzYzIDAuMDAzOSw0LjM5NTk3NCAwLjEwNTMwOCw0LjY0MDg5MSAwLjI1OTQxNiwwLjYyNjI4NSAwLjQzNTE0MSwwLjY0NzYyIDUuMDkxNTA1LDAuNjE4MTg4IGwgNC4yNDk1NzgsLTAuMDI2ODYgeiBNIDcxLjU0NjY0NSwzNy40NzAyNCBjIDAuNzcyNDksLTAuMjE0NTQxIDEuMDEyMjMxLC0wLjk2NDAyIDAuNDk5MTc2LC0xLjU2MDUyOCBMIDcxLjc2OTkyNywzNS41ODg5NDEgNjEuMDk5MSwzNS41NTg0ODEgYyAtNy44NjIyMzksLTAuMDIyNDUgLTEwLjc1NDcyOCwwLjAwNDMgLTEwLjk4OTU5MywwLjEwMTQyNSAtMC44MjU1MDUsMC4zNDE1NDkgLTAuNjg4MjA4LDEuNjc4NTk5IDAuMTkwMDY2LDEuODUwOTIzIDAuNTY5MTA3LDAuMTExNjYzIDIwLjgzODI4NiwwLjA3Mjk1IDIxLjI0NzA3MiwtMC4wNDA1OSB6IG0gLTQuMjE0ODA3LC00LjE2MjM2MiBjIDAuNDEzMzgzLC0wLjM4MzExIDAuNDIzNzkzLC0xLjA5NDk5MiAwLjAyMTg5LC0xLjQ5Njg5NCBMIDY3LjA3MzExLDMxLjUzMDM2NSBoIC04LjQ1NTE2MyAtOC40NTUxNjMgbCAtMC4yOTU5NzksMC4zNTE3NSBjIC0wLjQwMDkwMiwwLjQ3NjQ0NSAtMC4zODc4MjgsMC45NDU5MDEgMC4wMzgyMSwxLjM3MTkzNSBsIDAuMzM0MTgzLDAuMzM0MTg0IGggOC4zOTUwNjYgOC4zOTUwNjcgeiBtIC0xOS43MzU2MTcsLTUuNTgxMzMgMC4zMTY4NzgsLTAuMzE2ODcxIDAuMDM1MzQsLTQuMTQxODQ2IGMgMC4wMzg4MSwtNC41NDkwNyAwLjAwMzIsLTQuODg0ODE0IC0wLjU0ODUxOCwtNS4xNzAxMTUgLTAuNDg1NTk0LC0wLjI1MTExIC04LjUzODI4NSwtMC4yNTY1MTcgLTkuMDIyNjIxLC0wLjAwNjEgLTAuNTczNDgyLDAuMjk2NTYgLTAuNTkyODg0LDAuNDcyNTQ5IC0wLjU1NzU2Nyw1LjA1NzQyNSAwLjAzMTI1LDQuMDU2MzMyIDAuMDQyNjcsNC4yNTI5MDYgMC4yNjEzMjYsNC40OTU4MTYgMC4xMjU3NTgsMC4xMzk3MSAwLjMzMTU0NSwwLjI5NzA2NCAwLjQ1NzMwNCwwLjM0OTY3NiAwLjEyNTc1OSwwLjA1MjYxIDIuMTQzOTI2LDAuMDg1MTIgNC40ODQ4MTYsMC4wNzIyNSBsIDQuMjU2MTY1LC0wLjAyMzQxIDAuMzE2ODc5LC0wLjMxNjg3MiB6IG0gMjQuNzE3MTk4LC0yLjA5OTM5NCBjIDAuMzM5OTM2LC0wLjQzMjE2IDAuMzA0NywtMC45MDYxOTEgLTAuMDk3MjQsLTEuMzA4MTI2IEwgNzEuODgyMDAxLDIzLjk4NDg0NCBIIDYxLjIzMzM2NSBjIC0xMC45NzM0MjcsMCAtMTAuOTQyOTEzLC0wLjAwMTIgLTExLjI4NzM0MiwwLjQ0NzM5NyAtMC4yMjgxMjgsMC4yOTcxMjcgLTAuMTc1MTU1LDAuOTM2NDg3IDAuMTAyMDM3LDEuMjMxNTQ0IGwgMC4yNDg1ODEsMC4yNjQ2MDIgSCA2MS4xODY1NTQgNzIuMDc2NDY5IFogTSA2Ny40MjI4OSwyMS45MTc3NzIgYyAwLjMwMzU3MiwtMC4xNjI0NjcgMC41NDkxMjUsLTAuNzY3MzE2IDAuNDczMDU3LC0xLjE2NTI0MiAtMC4wMzMzMiwtMC4xNzQzMTYgLTAuMTg5OTIzLC0wLjQxODY3NiAtMC4zNDgsLTAuNTQzMDE5IC0wLjI4MDM4NywtMC4yMjA1NTIgLTAuNDkyMzE3LC0wLjIyNjA4IC04LjY2ODU4NiwtMC4yMjYwOCBoIC04LjM4MTE3NCBsIC0wLjMxODE3NCwwLjI3MzY4MiBjIC0wLjI1NDM0MywwLjIxODc3NSAtMC4zMTgxNzQsMC4zNzAyOTMgLTAuMzE4MTc0LDAuNzU1MjUzIDAsMC4zODQ5NiAwLjA2MzgzLDAuNTM2NDc3IDAuMzE4MTc0LDAuNzU1MjUzIGwgMC4zMTgxNzQsMC4yNzM2ODIgaCA4LjM0Njk0NCBjIDUuNzYwNTM3LDAgOC40MTg0NjUsLTAuMDM4MjggOC41Nzc3NTksLTAuMTIzNTI5IHogbSA0LjE1MzMyNywtOC4xNTIzMzggYyAwLjE1MDE3MywtMC4xNTAxNzMgMC4zMDUwNTgsLTAuNDQ1OTkyIDAuMzQ0MTksLTAuNjU3Mzc2IDAuMDM5MTMsLTAuMjExMzgzIDAuMDU1NCwtMS43NjQ4MjkgMC4wMzYxNiwtMy40NTIxMDMgTCA3MS45MjE1NzcsNi41ODgxODQgNzEuNTQ4MjEzLDYuMjU0NzU0IDcxLjE3NDg1MSw1LjkyMTMyNCBIIDUyLjkzNTk2NSBjIC0yMC4yODY5NjMsMCAtMTguNzg1MzcsLTAuMDYwOTQgLTE5LjAzMDc1NSwwLjc3MjM2NyAtMC4wODI3MSwwLjI4MDg4IC0wLjExMzcwMSwxLjUyMjMxNyAtMC4wOTAxMywzLjYxMDY2MSBsIDAuMDM1OTIsMy4xODI2MDQgMC4zMjA3NzIsMC4yNzU3NiAwLjMyMDc3MiwwLjI3NTc1OSBoIDE4LjQwNTMxMiAxOC40MDUzMTkgeiIKICAgICAgIHN0eWxlPSJmaWxsOiM4OTZiM2M7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMjAwOTI1ODMiIC8+PHJlY3QKICAgICAgIHg9IjMzLjk2NTkxNiIKICAgICAgIHk9IjQ3LjIyMjU1MyIKICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIKICAgICAgIHdpZHRoPSI4LjkxOTQwNTkiCiAgICAgICBoZWlnaHQ9IjEyLjE4NTI2NSIKICAgICAgIGlkPSJyZWN0OTI1IgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6Mi42MDYzMDY1NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTAiIC8+PGcKICAgICAgIHN0eWxlPSJmaWxsOiM4MDAwMDAiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDcuMTA1OTU2KSIKICAgICAgIGlkPSJnMTAwMiI+PHBhdGgKICAgICAgICAgaWQ9InBhdGgxMDAwIgogICAgICAgICBkPSJtIDIwLjI4NCwzNy41NTQgYyAwLC0xLjc5NSAxLjQ0NywtMy4yNDEgMy4yNDIsLTMuMjQxIDEuNzk1LDAgMy4yNDEsMS40NDcgMy4yNDEsMy4yNDEgMCwxLjc5NSAtMS40NDcsMy4yNDEgLTMuMjQxLDMuMjQxIC0xLjc5NSwxMGUtNCAtMy4yNDIsLTEuNDQ1IC0zLjI0MiwtMy4yNDEgbSA1LjM0MSwtMTIuNzc5IGggLTguODcgViAxNS40MDkgSCAyMS43NyBaIE0gOC45ODksMzQuMzEzIGMgMS43OTUsMCAzLjI0MSwxLjQ0NyAzLjI0MSwzLjI0MSAwLDEuNzk1IC0xLjQ0NywzLjI0MSAtMy4yNDEsMy4yNDEgLTEuNzk1LDAgLTMuMjQyLC0xLjQ0NiAtMy4yNDIsLTMuMjQxIDAsLTEuNzk0IDEuNDQ3LC0zLjI0MSAzLjI0MiwtMy4yNDEgeiBNIDMzLjg1MSw2LjM4MSB2IDMyLjUxNSBoIDIuODM3IFYgMzcuNTgyIEggNTAgViAzNC43NDQgSCAzNi42ODkgViA2LjM4MSBaIE0gMCwyNC43NzUgdiAxNC4xOTkgaCAzLjA5MiBjIDAuNjM3LDIuNjY2IDMuMDMyLDQuNjQ0IDUuODk3LDQuNjQ0IDIuODY0LDAgNS4yNTksLTEuOTc4IDUuODk3LC00LjY0NCBoIDIuNzQzIGMgMC42MzcsMi42NjYgMy4wMzIsNC42NDQgNS44OTcsNC42NDQgMi44NjQsMCA1LjI1OSwtMS45NzggNS44OTYsLTQuNjQ0IGggMy4wOTMgViAyNC43NzUgSCAyOC42OTEgTCAyMy42NywxMi41NzEgSCAxMy45MTcgViAyNC43NzUgSCAxMS4wNzkgViAyMi41OSBIIDMuMTUxIHYgMi4xODYgSCAwIFoiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiM4MDAwMDA7ZmlsbC1ydWxlOmV2ZW5vZGQiIC8+PC9nPjxwYXRoCiAgICAgICBzdHlsZT0ic3Ryb2tlLXdpZHRoOjAuMDEyNzgyNDUiCiAgICAgICBpZD0icGF0aDI1MzciCiAgICAgICBkPSJtIDM5LjgwODk2Nyw1NS4zNjA1ODQgYyAtMC4wODkyNywtMC4wODU0NCAtMC4yNjc3OTIsLTAuMTQ4ODY0IC0wLjMyMTU3OSwtMC4yNjMxMTQgLTAuMDg2MzIsLTAuMTgzMzEzIC0wLjExNDIzOSwtMC42MzQ1NTkgLTAuMTE2OTIyLC0wLjkwNjI3NSAtMC4wMDY3LC0wLjY3NTA4IDAuMDM1MzIsLTEuMDg1MTQxIDAuMDg3NzEsLTEuNjk1NTkyIDAuMDExLC0wLjEyODc1OCAtMC4wMjgyMywtMC4yNTcyMDggMCwtMC4zNTA4MTQgMC4wNjUzOCwtMC4yMTY5OTUgMC4zNDMwOTQsLTAuMzM1MDI4IDAuNDY3NzYyLC0wLjQ2Nzc2MSAwLjM2NTA2NiwtMC4zODg3NTIgMC42MzY3ODEsLTAuODU0NTgzIDAuNjcyMzgyLC0xLjU0OTQ3NiAwLjI0MDg2LC0wLjEzNDgyOSAwLjY3MTYsLTAuMjE3NTgyIDAuNTU1NDcxLC0wLjYxMzkxNSAtMC4yMDk2NTcsLTAuMDM0MjYgLTAuMjY3OTk0LDAuMDgyODIgLTAuNDM4NTM4LDAuMDg3NyAtMC43MDEyNDQsLTAuNjQ5Nzk1IC0xLjkzMDI3OSwtMC4xMTg1MDYgLTEuOTU4NzMyLDAuNzg5MzQyIDAuMTQ1MzM4LC0wLjA4NDQxIDAuMTA2NTMsLTAuMjc0OTEyIDAuMTc1NDQxLC0wLjQwOTI4MSAwLjE3NjM4NSwtMC4zNDQwNjUgMC42MDkwMjksLTAuNjQ4MDQ0IDEuMTQwMTU1LC0wLjQzODU0IC0wLjU3MjM5OSwwLjEzMjY5NCAtMS4zMDY3NzYsMC43NTc2NjcgLTAuODQ3ODMzLDEuMzc0MDIzIC0wLjE2MjQ5MSwtMC43MDk4NzMgMC41MjY4NjcsLTEuNDAwOTU2IDEuMTY5NDAxLC0wLjkzNTUwOSAtMC4wNTc1NSwwLjU4ODk1MiAtMC4zNTk3LDEuMDk3MzEgLTAuODc3MDQzLDEuMTk4NjIzIC0wLjQ1ODMsMC4wODk3NSAtMC45NjA3MDMsLTAuMTk5NjIzIC0xLjQ5MDk3LC0wLjA1ODQ3IC0wLjE0MzI1MiwtMC4wODA4NyAtMC4yNTU3MzksLTAuMTkyNTQyIC0wLjM1MDgyOSwtMC4zMjE1OCAwLjAxNDEzLDAuMDgzNyAtMC4wNTQ3NywwLjMwMDQzOCAtMC4wMjkyNiwwLjM4MDA0NyAwLjU4NTU0LDAuOTc0NTU5IDAuNjEwNjQ2LDIuMzQ1ODQ4IDAuNzAxNjU0LDMuODI5NzYyIC0wLjMzMTAxMiwwLjA3ODI3IC0wLjQ2Mjk2NSwwLjM1NTYwOCAtMC44NDc3OTMsMC4zODAwNDggLTAuNjk3NzQyLDAuNzU0MjkyIC0xLjQ0MDEyNCwxLjQ2Mzg3MSAtMS45Mjk1LDIuNDI2NDkyIC0wLjE1NDA5MiwwLjA1MDU0IC0wLjE2NTIyNiwwLjI0NDA2OCAtMC4yNjMxMTMsMC4zNTA4MDIgMi4wODU0MDQsLTAuMDE5NDYgNC4yNDg3OTcsMC4wMzg5OSA2LjI4NTQ5OSwtMC4wMjkyNCAtMC41NzU3MzIsLTAuNzkxNzA2IC0xLjAzMjY4MSwtMi4wNTg5OTYgLTEuNzgzMzgsLTIuNzc3MjggeiBNIDM5LjIyNDI2MSw1Mi4xMTU1MyBjIDAuMDI0ODcsLTAuMDA1NCAwLjAyNzU3LDAuMDExNDEgMC4wMjkyNiwwLjAyOTIzIDAuMDk1NTEsMC42NDEzNDcgLTAuMDU3NTUsMS40MDExNDggMCwyLjA0NjQzMiAwLjAyNjI4LDAuMjk0NDQ0IDAuMTkzODk2LDAuNTUwNTAyIDAuMDU4NDcsMC43ODkzNTQgLTAuMTYyMzc2LC0wLjAwMzMgLTAuMTY4MzIyLC0wLjE2MzAxNCAtMC4yNjMxMTYsLTAuMjMzODggMC4yMDcxNCwtMC43OTIwMjYgLTAuMTU4MDU1LC0xLjk5NjI3MyAwLjE3NTQwMywtMi42MzExMzkgeiBtIC0wLjczMDg2NCwwLjA4NzcxIGMgMC4xNTEyNDMsLTAuMDYxODUgMC4zMDE1ODgsLTAuMDQwMjYgMC40Mzg1NDIsLTAuMDU4NDcgMC4wNzY4MSwwLjkyMTYwMiAtMC4xNDg5MjksMS44NjE2MzYgMC4wMjkyMywyLjY4OTYxOSAtMC4wNTIwNSwwLjAxNjE3IC0wLjEyMTQwNiwwLjAxNTAyIC0wLjE0NjIwNiwwLjA1ODQ0IC0wLjI0MDk5OSwtMC4wODE3NiAtMC4xNDA3NDcsLTAuMzM0NDQgLTAuMTQ2MTc5LC0wLjUyNjIwMiAtMC4wMTg1NiwtMC42NTY5OCAtMC4xODA2NTUsLTEuNDUzMjExIC0wLjE3NTM4OSwtMi4xNjMzOTEgeiBtIC0wLjI0OTEzLDAuMDQ5NCAwLjM0NzE5OCwyLjcyNzg5IGggLTAuMTQxOTI0IHogbSAxLjM2NzczNCw1LjM2MDQ4NiBjIC0wLjE5NDMwNiwwLjExOTgzNSAtMC40MzMzMjQsMC4xNzk2OTUgLTAuNzE3MTA2LDAuMTc5Njk1IC0wLjIwMTk4OSwwIC0wLjM5MzcyNiwtMC4wMzE5MiAtMC41NzUyMTEsLTAuMDk1ODcgLTAuMjE5ODk1LC0wLjA3NDEyIC0wLjM3NDU1MSwtMC4xODI3NSAtMC40NjQwMDIsLTAuMzI1OTUyIC0wLjAwMjYsLTAuMDA1MSAtMC4wMjU1NywtMC4wNTc1MiAtMC4wNjkwMSwtMC4xNTcyMjQgLTAuMDE3OSwtMC4wMzMxOSAtMC4wNDA5MywtMC4wODQzOCAtMC4wNjkwMiwtMC4xNTMzOSAtMC4wNTExNywtMC4xNDgyMzggLTAuMDc2NjksLTAuMzExODUzIC0wLjA3NjY5LC0wLjQ5MDgzMyAwLC0wLjA5OTcyIDAuMDAzOCwtMC4xNzEyMzQgMC4wMTE1MSwtMC4yMTQ3NTggMC4wMDc3LC0wLjAyMzAxIDAuMDE5MTksLTAuMDU4NzkgMC4wMzQ1MSwtMC4xMDczNiAwLjA2Mzg3LC0wLjE5NjgyNCAwLjE0ODI1LC0wLjMzNjE0IDAuMjUzMTA1LC0wLjQxNzk3MyAwLjMzOTk3NSwtMC4yNjU4NjIgMC42NTU3MzgsLTAuMzk4ODEyIDAuOTQ3MTc4LC0wLjM5ODgxMiAwLjA3OTIxLDAgMC4xODAyMzQsMC4wMTY2NyAwLjMwMjk0MywwLjA0OTg0IDAuMTE1MDQ0LDAuMDMwNjYgMC4yNDAyNzMsMC4wOTg0NSAwLjM3NTc5NCwwLjIwMzIyOSAwLjAyNTU0LDAuMDIwNSAwLjA2NTIsMC4wNDk4NSAwLjExODg4OSwwLjA4ODIgMC4wMjI5OSwwLjAxMjgyIDAuMDQ2NiwwLjAyNjg0IDAuMDcwOTQsMC4wNDIxOCAwLjAyNDI1LDAuMDE1MzQgMC4wNDI3OCwwLjAzNTg0IDAuMDU1NjEsMC4wNjEzNSAtMC4wMzU4MywwLjA3NDE5IC0wLjA1MzY5LDAuMTEyNTM3IC0wLjA1MzY5LDAuMTE1MDQyIC0wLjAyMjk5LDAuMDM4MzUgLTAuMDQ5ODQsMC4wNjkwMiAtMC4wODA1MywwLjA5MjAzIC0wLjA5OTcsLTAuMDcxNTQgLTAuMjAwNzA4LC0wLjE0MzEyNSAtMC4zMDI5NDMsLTAuMjE0NzQ1IC0wLjEzMDM2NiwtMC4wNzkyMSAtMC4yNDQxNywtMC4xMTg4OSAtMC4zNDEyNzgsLTAuMTE4ODkgbCAtMC4wNDIyLDAuMDAzOCBjIC0wLjQwMzk3NCwwIC0wLjcxNDU2MywwLjEyMDE4MSAtMC45MzE4MjYsMC4zNjA0NTIgLTAuMDk0NiwwLjEwNDg1NSAtMC4xNDE4OTksMC4yNDU0MjMgLTAuMTQxODk5LDAuNDIxODIxIDAsMC4yMjQ5OTcgMC4wNDcyNywwLjQxMTYzMyAwLjE0MTg5OSwwLjU1OTg4NCAwLjA1NjIsMC4wODk1MiAwLjEzMjg5NywwLjE3MDA0NSAwLjIzMDA4MywwLjI0MTU3NiAwLjA5NzE0LDAuMDcxNjEgMC4xOTU1NzIsMC4xMTg4NzcgMC4yOTUyODksMC4xNDE4OTggMC4wMjI5OSwwLjAwNTEgMC4wMzcwMiwwLjAwNzcgMC4wNDIxOCwwLjAwNzcgMC4zOTExNDMsMCAwLjY1Njk3OSwtMC4wMzcwMiAwLjc5NzYxMiwtMC4xMTExOTQgMC4wODE3OCwtMC4wNDM0NCAwLjEzNTQ3LC0wLjEzMjg4NyAwLjE2MTA3MywtMC4yNjg0MzIgMC4wMDc3LC0wLjA0MzQ0IDAuMDE1MzUsLTAuMTUyMDYgMC4wMjI5OSwtMC4zMjU5NTIgLTAuMTA5OTU0LC0wLjAyMDQ1IC0wLjIzMzkxOCwtMC4wMzA2NyAtMC4zNzE5NjcsLTAuMDMwNjcgLTAuMDAyNiwwIC0wLjEzMDM4MSwwLjAwMzggLTAuMzgzNDc0LDAuMDExNDkgLTAuMDI1NTcsLTAuMDIwNDUgLTAuMDM4MzUsLTAuMDQ5ODQgLTAuMDM4MzUsLTAuMDg4MTkgdiAtMC4xMjI3MjQgbCAwLjAzODM1LC0wLjAxOTE3IGMgMC4wMjgwOCwtMC4wMDUxIDAuMDcwMjgsLTAuMDA3NyAwLjEyNjUzMiwtMC4wMDc3IDAuMDUzNjksMCAwLjEzNjEyMywwLjAwNTIgMC4yNDczNTQsMC4wMTUzNCAwLjExMTE5NSwwLjAxMDI0IDAuMTk0OTA3LDAuMDE1MzMgMC4yNTExNjMsMC4wMTUzMyAwLjA4Njg4LDAgMC4xNjk5OTQsLTAuMDEwMTkgMC4yNDkyNTYsLTAuMDMwNjYgMC4wMTAxOCwwLjAwNzcgMC4wMjY4NiwwLjAxMTQ1IDAuMDQ5ODQsMC4wMTE0NSAwLjA3OTIxLDAgMC4xMjUyNCwwLjAxMDI0IDAuMTM4MDYsMC4wMzA2MSAtMC4wMTAyNiwwLjE5MTEzNiAtMC4wMjA1MiwwLjM4MjMzNiAtMC4wMzA2NywwLjU3MzQ3MiAtMC4wMjU1NywwLjIxOTE5MyAtMC4xMTYzODMsMC4zNzcyMzUgLTAuMjcyMjc5LDAuNDc0MDYyIHoiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPjwvZz48L3N2Zz4=', + ), + ), + ), + 'objets' => + array ( + 0 => + array ( + ), + ), + ), +); diff --git a/fabrique_diff.diff b/fabrique_diff.diff new file mode 100644 index 0000000..a4157e4 --- /dev/null +++ b/fabrique_diff.diff @@ -0,0 +1,20 @@ +Seulement dans ../tmp/cache/fabrique/GamuForm/: action +diff -r -x . -x .. -x fabrique_diff.diff -x fabrique_GamuForm.php ../tmp/cache/fabrique/.backup/GamuForm/base/GamuForm.php ../tmp/cache/fabrique/GamuForm/base/GamuForm.php +51a52 +> 'date' => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"', +60c61 +< #'date' => '', +--- +> 'date' => 'date', +diff -r -x . -x .. -x fabrique_diff.diff -x fabrique_GamuForm.php ../tmp/cache/fabrique/.backup/GamuForm/paquet.xml ../tmp/cache/fabrique/GamuForm/paquet.xml +11c11 +< Paquet généré le 2020-03-30 13:58:10 +--- +> Paquet généré le 2020-03-30 13:59:47 +diff -r -x . -x .. -x fabrique_diff.diff -x fabrique_GamuForm.php ../tmp/cache/fabrique/.backup/GamuForm/prive/objets/liste/gamuforms.html ../tmp/cache/fabrique/GamuForm/prive/objets/liste/gamuforms.html +2a3 +> date,-1, +14a16 +> [(#TRI{date,<:date:>,ajax})] +23a26 +> [(#DATE|affdate_jourcourt)] \ No newline at end of file diff --git a/formulaires/configurer_GamuForm.html b/formulaires/configurer_GamuForm.html new file mode 100644 index 0000000..f238810 --- /dev/null +++ b/formulaires/configurer_GamuForm.html @@ -0,0 +1,16 @@ +
+ +

<:GamuForm:cfg_titre_parametrages:>

+ + [

(#ENV*{message_ok})

] + [

(#ENV*{message_erreur})

] + +
+
+ #ACTION_FORMULAIRE + + +

 

+
+
+
diff --git a/formulaires/editer_gamuform.html b/formulaires/editer_gamuform.html new file mode 100644 index 0000000..be5becc --- /dev/null +++ b/formulaires/editer_gamuform.html @@ -0,0 +1,24 @@ +
+ [

(#ENV**{message_ok})

] + [

(#ENV*{message_erreur})

] + + [(#ENV{editable}) +
+ #ACTION_FORMULAIRE + +
+ + [(#SAISIE{checkbox, titre, obligatoire=oui, + label=<:gamuform:champ_titre_label:>, + conteneur_class=pleine_largeur,class=toto,datas=[(#ARRAY{cle1,valeur1,cle2,valeur2})]})] + + [(#SAISIE{date, date, obligatoire=oui, + label=<:gamuform:champ_date_label:>})] + +
+ [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] + +

+
+ ] +
diff --git a/formulaires/editer_gamuform.php b/formulaires/editer_gamuform.php new file mode 100644 index 0000000..e0ad055 --- /dev/null +++ b/formulaires/editer_gamuform.php @@ -0,0 +1,139 @@ +'datetime'), $normaliser)) { + $erreurs[$champ] = $erreur; + // si une valeur de normalisation a ete transmis, la prendre. + } elseif (!is_null($normaliser)) { + set_request($champ, $normaliser); + // si pas de normalisation ET pas de date soumise, il ne faut pas tenter d'enregistrer '' + } else { + set_request($champ, null); + } + } + + $erreurs += formulaires_editer_objet_verifier('gamuform', $id_gamuform, array('titre', 'date')); + + return $erreurs; +} + +/** + * Traitement du formulaire d'édition de gamuform + * + * Traiter les champs postés + * + * @uses formulaires_editer_objet_traiter() + * + * @param int|string $id_gamuform + * Identifiant du gamuform. 'new' pour un nouveau gamuform. + * @param string $retour + * URL de redirection après le traitement + * @param int $lier_trad + * Identifiant éventuel d'un gamuform source d'une traduction + * @param string $config_fonc + * Nom de la fonction ajoutant des configurations particulières au formulaire + * @param array $row + * Valeurs de la ligne SQL du gamuform, si connu + * @param string $hidden + * Contenu HTML ajouté en même temps que les champs cachés du formulaire. + * @return array + * Retours des traitements + */ +function formulaires_editer_gamuform_traiter_dist($id_gamuform = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') { + $retours = formulaires_editer_objet_traiter('gamuform', $id_gamuform, '', $lier_trad, $retour, $config_fonc, $row, $hidden); + return $retours; +} diff --git a/lang/GamuForm_fr.php b/lang/GamuForm_fr.php new file mode 100644 index 0000000..840e3ce --- /dev/null +++ b/lang/GamuForm_fr.php @@ -0,0 +1,20 @@ + 'GamuForm', + + // C + 'cfg_exemple' => 'Exemple', + 'cfg_exemple_explication' => 'Explication de cet exemple', + 'cfg_titre_parametrages' => 'Paramétrages', + + // T + 'titre_page_configurer_GamuForm' => 'GamuForm', +); diff --git a/lang/gamuform_fr.php b/lang/gamuform_fr.php new file mode 100644 index 0000000..471700a --- /dev/null +++ b/lang/gamuform_fr.php @@ -0,0 +1,45 @@ + 'Ajouter ce gamuform', + + // C + 'champ_date_label' => 'Date', + 'champ_titre_label' => 'titre', + 'confirmer_supprimer_gamuform' => 'Confirmez-vous la suppression de cet gamuform ?', + + // I + 'icone_creer_gamuform' => 'Créer un gamuform', + 'icone_modifier_gamuform' => 'Modifier ce gamuform', + 'info_1_gamuform' => 'Un gamuform', + 'info_aucun_gamuform' => 'Aucun gamuform', + 'info_gamuforms_auteur' => 'Les gamuforms de cet auteur', + 'info_nb_gamuforms' => '@nb@ gamuforms', + + // R + 'retirer_lien_gamuform' => 'Retirer ce gamuform', + 'retirer_tous_liens_gamuforms' => 'Retirer tous les gamuforms', + + // S + 'supprimer_gamuform' => 'Supprimer cet gamuform', + + // T + 'texte_ajouter_gamuform' => 'Ajouter un gamuform', + 'texte_changer_statut_gamuform' => 'Ce gamuform est :', + 'texte_creer_associer_gamuform' => 'Créer et associer un gamuform', + 'texte_definir_comme_traduction_gamuform' => 'Ce gamuform est une traduction du gamuform numéro :', + 'titre_gamuform' => 'Gamuform', + 'titre_gamuforms' => 'Gamuforms', + 'titre_gamuforms_rubrique' => 'Gamuforms de la rubrique', + 'titre_langue_gamuform' => 'Langue de ce gamuform', + 'titre_logo_gamuform' => 'Logo de ce gamuform', + 'titre_objets_lies_gamuform' => 'Liés à ce gamuform', +); diff --git a/lang/paquet-GamuForm_fr.php b/lang/paquet-GamuForm_fr.php new file mode 100644 index 0000000..707606c --- /dev/null +++ b/lang/paquet-GamuForm_fr.php @@ -0,0 +1,14 @@ + '', + 'GamuForm_nom' => 'GamuForm', + 'GamuForm_slogan' => '', +); diff --git a/paquet.xml b/paquet.xml new file mode 100644 index 0000000..c97d467 --- /dev/null +++ b/paquet.xml @@ -0,0 +1,31 @@ + + + + GamuForm + + + tofulm + Logo : https://gamuza.fr + + GNU/GPL + + + + + + + + + + + diff --git a/prive/objets/contenu/gamuform.html b/prive/objets/contenu/gamuform.html new file mode 100644 index 0000000..685ab70 --- /dev/null +++ b/prive/objets/contenu/gamuform.html @@ -0,0 +1,12 @@ + +[
+
<:gamuform:champ_titre_label:> :
+ (#TITRE) +
] + +[
+
<:gamuform:champ_date_label:> :
+ (#DATE|=={0000-00-00 00:00:00}|?{'',[(#DATE|affdate)]}) +
] + + diff --git a/prive/objets/liste/gamuforms.html b/prive/objets/liste/gamuforms.html new file mode 100644 index 0000000..d242f5b --- /dev/null +++ b/prive/objets/liste/gamuforms.html @@ -0,0 +1,39 @@ +[(#SET{defaut_tri,#ARRAY{ + titre,1, + date,-1, + id_gamuform,1, + points,-1 +}})] +#ANCRE_PAGINATION +
+ + [] + + + + + + + + + + + + + + + + + + + + +
(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{gamuform:info_1_gamuform,gamuform:info_nb_gamuforms}})
[(#TRI{statut,#,ajax})][(#TRI{titre,<:gamuform:champ_titre_label:>,ajax})][(#TRI{date,<:date:>,ajax})][(#TRI{id_gamuform,<:info_numero_abbreviation:>,ajax})]
[(#CHEMIN_IMAGE{gamuform-16.png}|balise_img)][(#STATUT|puce_statut{gamuform,#ID_GAMUFORM})][(#LOGO_GAMUFORM|image_reduire{20,26})][(#RANG). ]#TITRE[(#DATE|affdate_jourcourt)][(#AUTORISER{modifier,gamuform,#ID_GAMUFORM}|?{ + #ID_GAMUFORM, + #ID_GAMUFORM + })]
+[

(#PAGINATION{prive})

] +
+
[ +
(#ENV*{sinon,''})
+] diff --git a/prive/squelettes/contenu/configurer_GamuForm.html b/prive/squelettes/contenu/configurer_GamuForm.html new file mode 100644 index 0000000..cae4225 --- /dev/null +++ b/prive/squelettes/contenu/configurer_GamuForm.html @@ -0,0 +1,7 @@ +[(#AUTORISER{configurer,_GamuForm}|sinon_interdire_acces)] + +

<:GamuForm:titre_page_configurer_GamuForm:>

+ +
+ #FORMULAIRE_CONFIGURER_GAMUFORM +
diff --git a/prive/themes/spip/images/GamuForm-xx.svg b/prive/themes/spip/images/GamuForm-xx.svg new file mode 100644 index 0000000..1f345b7 --- /dev/null +++ b/prive/themes/spip/images/GamuForm-xx.svg @@ -0,0 +1,152 @@ + +image/svg+xml \ No newline at end of file diff --git a/prive/themes/spip/images/gamuform-16.svg b/prive/themes/spip/images/gamuform-16.svg new file mode 100644 index 0000000..7f4bf1c --- /dev/null +++ b/prive/themes/spip/images/gamuform-16.svg @@ -0,0 +1,134 @@ + +image/svg+xml \ No newline at end of file diff --git a/prive/themes/spip/images/gamuform-xx.svg b/prive/themes/spip/images/gamuform-xx.svg new file mode 100644 index 0000000..6c6964e --- /dev/null +++ b/prive/themes/spip/images/gamuform-xx.svg @@ -0,0 +1,134 @@ + +image/svg+xml \ No newline at end of file