Changeset 66922 in spip-zone for _plugins_/facd


Ignore:
Timestamp:
Oct 19, 2012, 1:34:58 PM (8 years ago)
Author:
kent1@…
Message:

Grosses simplifications et améliorations sur la liste par date.

On fait un fusion {fusion DATE_FORMAT(maj, '%Y%m%d')} pour récupérer la liste de jours et une boucle à l'intérieur. On ne gère donc plus d'array sur l'ensemble des conversions, cela réduit énormément le temps de chargement quand on a beaucoup d'éléments dans la table (testé avec plus de 20000 conversions)

Petites améliorations de code sur la fonction de lancement de conversion

On met le champ #MAJ dans table_date pour servir de date au cas où

On passe en 0.2.0 et en stable

Location:
_plugins_/facd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/facd/action/facd_traiter_conversion.php

    r64882 r66922  
    3636                 */
    3737                $id_document = sql_getfetsel('id_document','spip_documents','id_document='.intval($doc_attente['id_document']));
    38                 if($id_document > 0){
     38                if(intval($id_document) > 0){
    3939                        spip_log("on convertit le doc $id_document","facd");
    4040                        $convertir = charger_fonction('facd_convertir','inc');
  • _plugins_/facd/base/facd.php

    r64882 r66922  
    6767function facd_declarer_tables_interfaces($interfaces){
    6868        $interfaces['table_des_tables']['facd_conversions'] = 'facd_conversions';
     69        $interfaces['table_date']['facd_conversions']='maj';
     70        $interfaces['exceptions_des_tables']['facd_conversions']['date']='maj';
    6971        return $interfaces;
    7072}
  • _plugins_/facd/inc/facd_convertir.php

    r66812 r66922  
    2929         * - indiquer si nécessaire le statut
    3030         */
    31         $infos = array();
    32         $infos['debut_conversion'] = time();
     31        $infos = array('debut_conversion' => time());
    3332        sql_updateq("spip_facd_conversions",array('statut'=>'en_cours','infos'=>serialize($info)),"id_facd_conversion=".intval($id_facd));
    3433
     
    3635        $sortie = $attente['extension'];
    3736       
    38         $options['format'] = $attente['extension'];
    39         $options['id_facd_conversion'] = $id_facd;
     37        $options = array('format' => $attente['extension'],'id_facd_conversion'=>$id_facd);
    4038        // chercher la fonction de conversion pour le format démandé
    4139        if(is_array(@unserialize($attente['options']))){
    42                 $options_table = @unserialize($attente['options']);
     40                $options_table = unserialize($attente['options']);
    4341                $options = array_merge($options,$options_table);
    4442        }else if(strlen($attente['options'])){
     
    6260        $infos['fin_conversion'] = time();
    6361        if(is_array($res)){
    64                 if(is_array($res['infos'])){
     62                if(is_array($res['infos']))
    6563                        $infos = array_merge($infos,$res['infos']);
    66                 }
    6764                if($res['success']){
    6865                        /**
  • _plugins_/facd/paquet.xml

    r66351 r66922  
    22        prefix="facd"
    33        categorie="outil"
    4         version="0.1.3"
    5         etat="dev"
     4        version="0.2.0"
     5        etat="stable"
    66        compatibilite="[3.0.0;3.0.99]"
    77        schema="0.0.1"
  • _plugins_/facd/prive/liste/facd_date.html

    r63094 r66922  
    1 #SET{dates, #ARRAY}
    2 #SET{nombre_date,#ARRAY}
    3 <BOUCLE_facd_total(FACD_CONVERSIONS){par id_facd_conversion}{inverse}{statut = oui}>
    4         [(#SET{date_new,[(#MAJ|affdate{Y-m-d})]})]
    5         #SET{
    6                 nombre_date,
    7                 #GET{nombre_date}|array_merge{
    8                         #ARRAY{
    9                                 #GET{date_new},
    10                                 #GET{nombre_date}|table_valeur{#GET{date_new},0}|plus{1}
    11                         }
    12                 }
    13         }
    14         #SET{dates,#GET{dates}|push{#GET{date_new}}}
    15 </BOUCLE_facd_total>
    16 #SET{dates,#GET{dates}|array_unique}
     1[(#REM)
    172
     3        Lister les conversions de documents par date
     4       
     5]
    186<B_facd_jours>
    19 #SET{total,#GRAND_TOTAL}
    207#ANCRE_PAGINATION
    218<div class="liste-elements conversions">
     
    2916        </thead>
    3017        <tbody class="ajax">
    31         <BOUCLE_facd_jours(POUR){tableau #GET{dates}}{pagination #ENV{nb,10}}{par valeur}{inverse}>
     18        <BOUCLE_facd_jours(FACD_CONVERSIONS){!par maj}{fusion DATE_FORMAT(maj, '%Y%m%d')}{pagination #ENV{nb,10}}>
    3219                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    3320                        <td class="date">
    34                                 <abbr title="#VALEUR">
    35                                         [(#VALEUR|affdate)]
     21                                <abbr title="[(#MAJ|affdate{Y-m-d})]">
     22                                        [(#MAJ|affdate{Y-m-d}|affdate)]
    3623                                </abbr>
    3724                        </td>
     25                        <BOUCLE_nb_jours(FACD_CONVERSIONS){maj == ^(#MAJ|affdate{Y-m-d})}>
     26                        </BOUCLE_nb_jours>
    3827                        [<td class="nombre">
    39                                 <abbr title="[(#GET{nombre_date}|table_valeur{#VALEUR})]">(#GET{nombre_date}|table_valeur{#VALEUR})</abbr>
     28                                <abbr title="#GRAND_TOTAL">(#GRAND_TOTAL)</abbr>
    4029                        </td>]
     30                        </B_nb_jours>
    4131                </tr>
    4232        </BOUCLE_facd_jours>
Note: See TracChangeset for help on using the changeset viewer.