Changeset 112447 in spip-zone


Ignore:
Timestamp:
Nov 15, 2018, 10:11:00 PM (5 weeks ago)
Author:
real3t@…
Message:

Pouvoir exporter les articles à traduire dans un tableau Excel

Location:
_squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs
Files:
2 edited
2 copied

Legend:

Unmodified
Added
Removed
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/comptetraduction.html

    r112439 r112447  
     1<!DOCTYPE HTML>
     2<html>
     3<head>
    14<style>
    25        .champs { color: #888; }
    36</style>
     7</head>
     8<body>
    49
    510[(#ENV{textes}|non)<ol>
     
    712<li><a href="[(#SELF|parametre_url{textes,oui})]">Récupérer les textes</a></li>
    813<li><a href="[(#SELF|parametre_url{textes,spip})]">Récupérer les textes au format SPIP</a></li>
     14<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>
    915</ol>]
    1016[(#ENV{textes}|=={oui}|oui)
     
    2834[(#SET{totalmots,[(#GET{totalmots}|plus{#GET{comptemot}})]})]
    2935[(#ENV{textes}|non)<p>==> Hors rubriques :  #GET{comptemot}</p>]
    30 <BOUCLE_ListeSecteurs(RUBRIQUES){id_parent}{par num titre}>
     36<BOUCLE_ListeSecteurs(RUBRIQUES){id_parent}{par id_rubrique}>
    3137[(#SET{comptemot,
    3238        [(#TITRE|textebrut|str_word_count_utf8
     
    4652[<i class="champs">\[Descriptif\]</i> <pre>(#DESCRIPTIF*|extraire_multi|echapper_tags)</pre>]
    4753[<i class="champs">\[Texte\]</i> <pre>(#TEXTE*|extraire_multi|echapper_tags)</pre>]
    48 [<i class="champs">\[Notes\]</i> <pre>(#NOTES*|extraire_multi|echapper_tags)</pre>]
    4954]
    5055<B_ArticlesRacine>
    5156<ul>
    52 <BOUCLE_ArticlesRacine(ARTICLES){id_rubrique}{!par date}{lang?}{id_mot?}>
     57<BOUCLE_ArticlesRacine(ARTICLES){id_rubrique}{!par id_article}{lang?}{id_mot?}>
    5358<li><a href="#URL_ARTICLE">[(#ENV{textes}|=={spip}|oui)<i class="champs">\[Article \(#ID_ARTICLE\) Titre\]</i> ]#TITRE</a> [(#SET{comptemot,
    5459        [(#TITRE|textebrut|str_word_count_utf8
     
    7782<B_Documents>
    7883<ul>
    79 <BOUCLE_Documents(DOCUMENTS){id_article}{par rang_lien, num titre, titre}>
     84<BOUCLE_Documents(DOCUMENTS){id_article}{par id_document}>
    8085<li><a href="#URL_DOCUMENT">[(#ENV{textes}|=={spip}|oui)<i class="champs">\[Document \(#ID_DOCUMENT\) Titre\]</i> ]#TITRE</a> [(#SET{comptemot,
    8186        [(#TITRE|textebrut|str_word_count_utf8
     
    99104<B_SitesRacine>
    100105<ul>
    101 <BOUCLE_SitesRacine(SITES){id_rubrique}{!par date}{id_mot?}>
     106<BOUCLE_SitesRacine(SITES){id_rubrique}{par id_syndic}{id_mot?}>
    102107<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,
    103108        [(#NOM_SITE|textebrut|str_word_count_utf8
     
    120125
    121126[(#ENV{textes}|non)<p>==> Total tout compris : #GET{totalmots}</p>]
     127
     128</body>
     129</html>
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/comptetraduction_export.html

    r112439 r112447  
    1 <style>
    2         .champs { color: #888; }
    3 </style>
    4 
    5 [(#ENV{textes}|non)<ol>
    6 <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>
    7 <li><a href="[(#SELF|parametre_url{textes,oui})]">Récupérer les textes</a></li>
    8 <li><a href="[(#SELF|parametre_url{textes,spip})]">Récupérer les textes au format SPIP</a></li>
    9 </ol>]
    10 [(#ENV{textes}|=={oui}|oui)
    11 <h1>#NOM_SITE_SPIP</h1>
    12 <p>#DESCRIPTIF_SITE_SPIP</p>
    13 [<p>(#CONFIG{soyezcreateurs/bandeau_annonce})</p>]
    14 [<p>(#CONFIG{soyezcreateurs/bandeau_contact})</p>]
    15 ]
    16 [(#ENV{textes}|=={spip}|oui)
    17 <h1><i class="champs">\[Nom Site SPIP\]</i> [(#NOM_SITE_SPIP*|extraire_multi|echapper_tags)]</h1>
    18 [<i class="champs">\[Descriptif\]</i> <pre>(#DESCRIPTIF_SITE_SPIP*|extraire_multi|echapper_tags)</pre>]
    19 [<i class="champs">\[Bandeau Annonce\]</i> <pre>(#CONFIG*{soyezcreateurs/bandeau_annonce}|extraire_multi|echapper_tags)</pre>]
    20 [<i class="champs">\[Bandeau Contact\]</i> <pre>(#CONFIG*{soyezcreateurs/bandeau_contact}|extraire_multi|echapper_tags)</pre>]
    21 ]
    22 [(#SET{comptemot,
    23         [(#NOM_SITE_SPIP|textebrut|str_word_count_utf8
    24         |plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
    25         |plus{[(#CONFIG{soyezcreateurs/bandeau_annonce}|textebrut|str_word_count_utf8)]}
    26         |plus{[(#CONFIG{soyezcreateurs/bandeau_contact}|textebrut|str_word_count_utf8)]}
    27 )]})]
    28 [(#SET{totalmots,[(#GET{totalmots}|plus{#GET{comptemot}})]})]
    29 [(#ENV{textes}|non)<p>==> Hors rubriques :  #GET{comptemot}</p>]
    30 <BOUCLE_ListeSecteurs(RUBRIQUES){id_parent}{par num titre}>
    31 [(#SET{comptemot,
    32         [(#TITRE|textebrut|str_word_count_utf8
    33                 |plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
    34                 |plus{[(#TEXTE|textebrut|str_word_count_utf8)]}
    35                 |plus{[(#NOTES|textebrut|str_word_count_utf8)]}
    36         )]})]
    37 [(#ENV{textes}|non)\(#GET{comptemot}\)][(#SET{totalmots,[(#GET{totalmots}|plus{#GET{comptemot}})]})]
    38 [(#ENV{textes}|=={oui}|oui)
    39 <h[(#PROFONDEUR|plus{1})]><a href="#URL_RUBRIQUE">#TITRE</a></h[(#PROFONDEUR|plus{1})]>
    40 [<p>(#DESCRIPTIF)</p>]
    41 [<p>(#TEXTE)</p>]
    42 [<p>(#NOTES)</p>]
    43 ]
    44 [(#ENV{textes}|=={spip}|oui)
    45 <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})]>
    46 [<i class="champs">\[Descriptif\]</i> <pre>(#DESCRIPTIF*|extraire_multi|echapper_tags)</pre>]
    47 [<i class="champs">\[Texte\]</i> <pre>(#TEXTE*|extraire_multi|echapper_tags)</pre>]
    48 [<i class="champs">\[Notes\]</i> <pre>(#NOTES*|extraire_multi|echapper_tags)</pre>]
    49 ]
    50 <B_ArticlesRacine>
    51 <ul>
    52 <BOUCLE_ArticlesRacine(ARTICLES){id_rubrique}{!par date}{lang?}{id_mot?}>
    53 <li><a href="#URL_ARTICLE">[(#ENV{textes}|=={spip}|oui)<i class="champs">\[Article \(#ID_ARTICLE\) Titre\]</i> ]#TITRE</a> [(#SET{comptemot,
    54         [(#TITRE|textebrut|str_word_count_utf8
    55                 |plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
    56                 |plus{[(#CHAPO|textebrut|str_word_count_utf8)]}
    57                 |plus{[(#TEXTE|textebrut|str_word_count_utf8)]}
    58                 |plus{[(#PS|textebrut|str_word_count_utf8)]}
    59                 |plus{[(#NOM_SITE|textebrut|str_word_count_utf8)]}
    60                 |plus{[(#NOTES|textebrut|str_word_count_utf8)]}
    61         )]})] [(#ENV{textes}|non)\(#GET{comptemot}\)][(#SET{totalmots,[(#GET{totalmots}|plus{#GET{comptemot}})]})]
    62 [(#ENV{textes}|=={oui}|oui)
    63 [<p>(#DESCRIPTIF)</p>]
    64 [<p>(#CHAPO)</p>]
    65 [<p>(#TEXTE)</p>]
    66 [<p>(#PS)</p>]
    67 [<p>(#NOTES)</p>]       
    68 [<p>(#NOM_SITE)</p>]   
    69 ]
    70 [(#ENV{textes}|=={spip}|oui)
    71 [<i class="champs">\[Descriptif\]</i> <pre>(#DESCRIPTIF*|echapper_tags)</pre>]
    72 [<i class="champs">\[chapo\]</i> <pre>(#CHAPO*|echapper_tags)</pre>]
    73 [<i class="champs">\[Texte\]</i> <pre>(#TEXTE*|echapper_tags)</pre>]
    74 [<i class="champs">\[PS\]</i> <pre>(#PS*|echapper_tags)</pre>]
    75 [<i class="champs">\[Nom site\]</i> <pre>(#NOM_SITE*|echapper_tags)</pre>]
    76 ]
    77 <B_Documents>
    78 <ul>
    79 <BOUCLE_Documents(DOCUMENTS){id_article}{par rang_lien, num titre, titre}>
    80 <li><a href="#URL_DOCUMENT">[(#ENV{textes}|=={spip}|oui)<i class="champs">\[Document \(#ID_DOCUMENT\) Titre\]</i> ]#TITRE</a> [(#SET{comptemot,
    81         [(#TITRE|textebrut|str_word_count_utf8
    82                 |plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
    83                 |plus{[(#NOTES|textebrut|str_word_count_utf8)]}
    84         )]})] [(#ENV{textes}|non)\(#GET{comptemot}\)][(#SET{totalmots,[(#GET{totalmots}|plus{#GET{comptemot}})]})]
    85 [(#ENV{textes}|=={oui}|oui)
    86 [<p>(#DESCRIPTIF)</p>]
    87 [<p>(#NOTES)</p>]       
    88 ]
    89 [(#ENV{textes}|=={spip}|oui)
    90 [<i class="champs">\[Descriptif\]</i> <pre>(#DESCRIPTIF*|extraire_multi|echapper_tags)</pre>]
    91 ]
    92 </BOUCLE_Documents>
    93 </ul>
    94 </B_Documents>
    95 </li>
    96 </BOUCLE_ArticlesRacine>
    97 </ul>
    98 </B_ArticlesRacine>
    99 <B_SitesRacine>
    100 <ul>
    101 <BOUCLE_SitesRacine(SITES){id_rubrique}{!par date}{id_mot?}>
    102 <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,
    103         [(#NOM_SITE|textebrut|str_word_count_utf8
    104                 |plus{[(#DESCRIPTIF|textebrut|str_word_count_utf8)]}
    105                 |plus{[(#NOTES|textebrut|str_word_count_utf8)]}
    106         )]})] [(#ENV{textes}|non)\(#GET{comptemot}\)][(#SET{totalmots,[(#GET{totalmots}|plus{#GET{comptemot}})]})]
    107 [(#ENV{textes}|=={oui}|oui)
    108 [<p>(#DESCRIPTIF)</p>]
    109 [<p>(#NOTES)</p>]       
    110 ]
    111 [(#ENV{textes}|=={spip}|oui)
    112 [<i class="champs">\[Descriptif\]</i> <pre>(#DESCRIPTIF*|extraire_multi|echapper_tags)</pre>]
    113 ]
    114 </li>
    115 </BOUCLE_SitesRacine>
    116 </ul>
    117 </B_SitesRacine>
    118 <BOUCLE_RubriquesRecursion(BOUCLE_ListeSecteurs) />
    119 </BOUCLE_ListeSecteurs>
    120 
    121 [(#ENV{textes}|non)<p>==> Total tout compris : #GET{totalmots}</p>]
     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)]
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/comptetraduction_export_fonctions.php

    r112416 r112447  
    1 
    21<?php
    32
    4 /***
    5 * This simple utf-8 word count function (it only counts)
    6 * is a bit faster then the one with preg_match_all
    7 * about 10x slower then the built-in str_word_count
    8 *
    9 * If you need the hyphen or other code points as word-characters
    10 * just put them into the [brackets] like [^\p{L}\p{N}\'\-]
    11 * If the pattern contains utf-8, utf8_encode() the pattern,
    12 * as it is expected to be valid utf-8 (using the u modifier).
    13 **/
     3require_once find_in_path('lib/Spout/Autoloader/autoload.php');
     4       
     5use Box\Spout\Writer\WriterFactory;
     6use Box\Spout\Common\Type;
    147
    15 // Jonny 5's simple word splitter
    16 function str_word_count_utf8($str) {
    17   return count(preg_split('~[^\p{L}\p{N}\']+~u',$str));
     8function trad_export_csv($trads) {
     9
     10        $entetes = array(
     11                'ID',
     12                'Nom',
     13                'URL',
     14                'Contenu'
     15        );
     16       
     17        $writer = WriterFactory::create(Type::XLSX); // for XLSX files
     18
     19        $writer->openToBrowser('traduction'); // stream data directly to the browser
     20
     21        $writer->addRow($entetes); // add a row at a time
     22        $writer->addRows($trads); // add multiple rows at a time
     23
     24        $writer->close();
    1825}
    19 ?>
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/comptetraduction_fonctions.php

    r105698 r112447  
    1 
    21<?php
    3 
    42/***
    53* This simple utf-8 word count function (it only counts)
     
    1412
    1513// Jonny 5's simple word splitter
     14
    1615function str_word_count_utf8($str) {
    1716  return count(preg_split('~[^\p{L}\p{N}\']+~u',$str));
    1817}
    19 ?>
Note: See TracChangeset for help on using the changeset viewer.