Changeset 31693 in spip-zone


Ignore:
Timestamp:
Sep 21, 2009, 11:01:46 AM (10 years ago)
Author:
cedric@…
Message:

utiliser job_queue si il est present : le microblog sera lance 60s apres l'evenement, ce qui laisse le temps de l'annuler si l'admin a fait une erreur ou ne veut pas faire de bruit.
utiliser un modele pour generer le microblog pour permettre la personalisation selon les usages

Location:
_plugins_/microblog
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/microblog/genie/microblog.php

    r31533 r31693  
    3535                while($row = sql_fetch($res)){
    3636                        $status = Microblog_annonce_article($row['id_article'],$row['statut']);
    37                         microblog($status);
     37                        envoyer_microblog($status,array('objet'=>'article','id_objet'=>$row['id_article']));
    3838                }
    3939                // raz des annonces deja faites
  • _plugins_/microblog/inc/micro_notifications.php

    r31533 r31693  
    3131                                        120 - strlen('#forum  ') - strlen($url));
    3232                                $status = "$titre #forum $url";
     33                                envoyer_microblog($status,array('objet'=>'forum','id_objet'=>$id));
    3334                        }
    3435                        break;
     
    6465                        }
    6566                        $status = Microblog_annonce_article($id,$x['args']['options']['statut']);
     67                        envoyer_microblog($status,array('objet'=>'article','id_objet'=>$id));
    6668                }
    6769                break;
    68         }
    69 
    70         if (!is_null($status)) {
    71                 include_spip('inc/microblog');
    72                 microblog($status);
    7370        }
    7471
     
    7774
    7875function Microblog_annonce_article($id,$statut){
    79   include_spip('inc/filtres_mini');
    80   include_spip('inc/texte');
    81        
    82         $espace_lien = ($statut == 'publie' ? true : false);  // lien notifie vers public | prive
    83                 $url = str_replace('amp;','',url_absolue(generer_url_entite($id, 'article', '', '', $espace_lien)));
    84         $t = sql_fetsel('titre,descriptif,texte', 'spip_articles', 'id_article='.$id);
    85         $etat = str_replace(array('prop','publie'),
    86                 array(_T('microblog:propose'),_T('microblog:publie')),
    87                 $statut
    88         );
    89         $titre = couper(typo($t['titre']
    90                 .' | '.$etat
    91                 .' | '.($t['descriptif'] != '' ? $t['descriptif'].' | ' : '')
    92                 .$t['texte']),
    93                 120 - strlen($url));
    94         return "$titre $url";
     76        return trim(recuperer_fond('modeles/microblog_instituerarticle',array('id_article'=>$id)));
    9577}
     78
     79function envoyer_microblog($status,$liens=array()){
     80        if (!is_null($status)) {
     81                if (!function_exists('job_queue_add')){
     82                        include_spip('inc/microblog');
     83                        microblog($status);
     84                }
     85                else{
     86                        $id_job = job_queue_add('microblog',"microblog : $status",array($status),'inc/microblog',true,time()+60);
     87                        if ($liens)
     88                                job_queue_link($id_job,$liens);
     89                }
     90        }
     91}
     92
     93?>
Note: See TracChangeset for help on using the changeset viewer.