Browse Source

Pouvoir exporter les articles à traduire dans un tableau Excel

svn/root
real3t@gmail.com 2 years ago
parent
commit
1cbac231c1
  1. 2
      .gitattributes
  2. 20
      comptetraduction.html
  3. 1
      comptetraduction_export.html
  4. 25
      comptetraduction_export_fonctions.php
  5. 4
      comptetraduction_fonctions.php

2
.gitattributes

@ -26,6 +26,8 @@ cfg_config/fusion/soyezcreateurs_mode_cognac.yaml -text
/clevermail_nouveautes_html.html -text
/clevermail_rm.html -text
/comptetraduction.html -text
/comptetraduction_export.html -text
/comptetraduction_export_fonctions.php -text
/comptetraduction_fonctions.php -text
/contact.html -text
contenu/corps_sommaire_modecognac.html -text

20
comptetraduction.html

@ -1,11 +1,17 @@
<!DOCTYPE HTML>
<html>
<head>
<style>
.champs { color: #888; }
</style>
</head>
<body>
[(#ENV{textes}|non)<ol>
<li><a href="[(#SELF|parametre_url{id_mot,113})]">Seulement les textes marqués à traduire</a> / <a href="[(#SELF|parametre_url{id_mot,''})]">Tous</a></li>
<li><a href="[(#SELF|parametre_url{textes,oui})]">Récupérer les textes</a></li>
<li><a href="[(#SELF|parametre_url{textes,spip})]">Récupérer les textes au format SPIP</a></li>
<li><a href="[(#URL_PAGE{comptetraduction_export}|parametre_url{id_mot,#ENV{id_mot,''}}|parametre_url{lang,#ENV{lang,#CONFIG{langue_site}}})]">Récupérer les textes au format SPIP sous Excel</a></li>
</ol>]
[(#ENV{textes}|=={oui}|oui)
<h1>#NOM_SITE_SPIP</h1>
@ -27,7 +33,7 @@
)]})]
[(#SET{totalmots,[(#GET{totalmots}|plus{#GET{comptemot}})]})]
[(#ENV{textes}|non)<p>==> Hors rubriques : #GET{comptemot}</p>]
<BOUCLE_ListeSecteurs(RUBRIQUES){id_parent}{par num titre}>
<BOUCLE_ListeSecteurs(RUBRIQUES){id_parent}{par id_rubrique}>
[(#SET{comptemot,
[(#TITRE|textebrut|str_word_count_utf8
|plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
@ -45,11 +51,10 @@
<h[(#PROFONDEUR|plus{1})]><a href="#URL_RUBRIQUE"><i class="champs">\[Rubrique \(#ID_RUBRIQUE\) Titre\]</i> [(#TITRE*|extraire_multi|echapper_tags)]</a></h[(#PROFONDEUR|plus{1})]>
[<i class="champs">\[Descriptif\]</i> <pre>(#DESCRIPTIF*|extraire_multi|echapper_tags)</pre>]
[<i class="champs">\[Texte\]</i> <pre>(#TEXTE*|extraire_multi|echapper_tags)</pre>]
[<i class="champs">\[Notes\]</i> <pre>(#NOTES*|extraire_multi|echapper_tags)</pre>]
]
<B_ArticlesRacine>
<ul>
<BOUCLE_ArticlesRacine(ARTICLES){id_rubrique}{!par date}{lang?}{id_mot?}>
<BOUCLE_ArticlesRacine(ARTICLES){id_rubrique}{!par id_article}{lang?}{id_mot?}>
<li><a href="#URL_ARTICLE">[(#ENV{textes}|=={spip}|oui)<i class="champs">\[Article \(#ID_ARTICLE\) Titre\]</i> ]#TITRE</a> [(#SET{comptemot,
[(#TITRE|textebrut|str_word_count_utf8
|plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
@ -76,7 +81,7 @@
]
<B_Documents>
<ul>
<BOUCLE_Documents(DOCUMENTS){id_article}{par rang_lien, num titre, titre}>
<BOUCLE_Documents(DOCUMENTS){id_article}{par id_document}>
<li><a href="#URL_DOCUMENT">[(#ENV{textes}|=={spip}|oui)<i class="champs">\[Document \(#ID_DOCUMENT\) Titre\]</i> ]#TITRE</a> [(#SET{comptemot,
[(#TITRE|textebrut|str_word_count_utf8
|plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
@ -98,7 +103,7 @@
</B_ArticlesRacine>
<B_SitesRacine>
<ul>
<BOUCLE_SitesRacine(SITES){id_rubrique}{!par date}{id_mot?}>
<BOUCLE_SitesRacine(SITES){id_rubrique}{par id_syndic}{id_mot?}>
<li><a href="[(#ID_SYNDIC|generer_url_entite{'site'})]">[(#ENV{textes}|=={spip}|oui)<i class="champs">\[Site \(#ID_SYNDIC\) Nom Site\]</i> ]#NOM_SITE</a> [(#SET{comptemot,
[(#NOM_SITE|textebrut|str_word_count_utf8
|plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
@ -118,4 +123,7 @@
<BOUCLE_RubriquesRecursion(BOUCLE_ListeSecteurs) />
</BOUCLE_ListeSecteurs>
[(#ENV{textes}|non)<p>==> Total tout compris : #GET{totalmots}</p>]
[(#ENV{textes}|non)<p>==> Total tout compris : #GET{totalmots}</p>]
</body>
</html>

1
comptetraduction_export.html

@ -0,0 +1 @@
#HTTP_HEADER{Content-Type: text/plain; charset=#CHARSET}#SET{exportcsv,#ARRAY}[(#SET{valeur,[(#NOM_SITE_SPIP*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{0,Nom Site SPIP,#URL_SITE_SPIP,#GET{valeur}}}})][(#SET{valeur,[(#DESCRIPTIF_SITE_SPIP*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Descriptif,'',#GET{valeur}}}})][(#SET{valeur,[(#CONFIG*{soyezcreateurs/bandeau_annonce}|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Bandeau Annonce,'',#GET{valeur}}}})][(#SET{valeur,[(#CONFIG*{soyezcreateurs/bandeau_contact}|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Bandeau Contact,'',#GET{valeur}}}})]<BOUCLE_ListeSecteurs(RUBRIQUES){id_parent}{par id_rubrique}>[(#SET{valeur,[(#TITRE*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{#ID_RUBRIQUE,Titre Rubrique,#URL_SITE_SPIP/#URL_RUBRIQUE,#GET{valeur}}}})][(#SET{valeur,[(#DESCRIPTIF*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Descriptif,'',#GET{valeur}}}})][(#SET{valeur,[(#TEXTE*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Texte,'',#GET{valeur}}}})]<B_ArticlesRacine><BOUCLE_ArticlesRacine(ARTICLES){id_rubrique}{!par id_article}{lang?}{id_mot?}>[(#SET{valeur,[(#TITRE*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{#ID_ARTICLE,Titre Article,#URL_SITE_SPIP/#URL_ARTICLE,#GET{valeur}}}})][(#SET{valeur,[(#DESCRIPTIF*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Descriptif,'',#GET{valeur}}}})][(#SET{valeur,[(#CHAPO*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Chapo,'',#GET{valeur}}}})][(#SET{valeur,[(#TEXTE*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Texte,'',#GET{valeur}}}})][(#SET{valeur,[(#PS*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',PS,'',#GET{valeur}}}})][(#SET{valeur,[(#NOM_SITE*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Nom site,'',#GET{valeur}}}})]<B_Documents><BOUCLE_Documents(DOCUMENTS){id_article}{par id_document}>[(#SET{valeur,[(#TITRE*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{#ID_DOCUMENT,Titre Doc,#URL_SITE_SPIP/#URL_ARTICLE,#GET{valeur}}}})][(#SET{valeur,[(#DESCRIPTIF*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Descriptif,'',#GET{valeur}}}})]</BOUCLE_Documents></BOUCLE_ArticlesRacine><BOUCLE_SitesRacine(SITES){id_rubrique}{par id_syndic}{id_mot?}>[(#SET{valeur,[(#NOM_SITE*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{#ID_SYNDIC,Nom Site,#URL_SITE_SPIP/?site#ID_SYNDIC,#GET{valeur}}}})][(#SET{valeur,[(#DESCRIPTIF*|extraire_multi)]})][(#SET{exportcsv,#GET{exportcsv}|push{#LISTE{'',Descriptif,'',#GET{valeur}}}})]</BOUCLE_SitesRacine><BOUCLE_RubriquesRecursion(BOUCLE_ListeSecteurs) /></BOUCLE_ListeSecteurs>[(#GET{exportcsv}|trad_export_csv)]

25
comptetraduction_export_fonctions.php

@ -0,0 +1,25 @@
<?php
require_once find_in_path('lib/Spout/Autoloader/autoload.php');
use Box\Spout\Writer\WriterFactory;
use Box\Spout\Common\Type;
function trad_export_csv($trads) {
$entetes = array(
'ID',
'Nom',
'URL',
'Contenu'
);
$writer = WriterFactory::create(Type::XLSX); // for XLSX files
$writer->openToBrowser('traduction'); // stream data directly to the browser
$writer->addRow($entetes); // add a row at a time
$writer->addRows($trads); // add multiple rows at a time
$writer->close();
}

4
comptetraduction_fonctions.php

@ -1,6 +1,4 @@
<?php
/***
* This simple utf-8 word count function (it only counts)
* is a bit faster then the one with preg_match_all
@ -13,7 +11,7 @@
**/
// Jonny 5's simple word splitter
function str_word_count_utf8($str) {
return count(preg_split('~[^\p{L}\p{N}\']+~u',$str));
}
?>
Loading…
Cancel
Save