source: spip-zone/_core_/plugins/mots/mots_pipelines.php

Last change on this file was 119513, checked in by spip.franck@…, 2 years ago

Bonne année "mots"

File size: 3.6 KB
RevLine 
[41050]1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
[119513]6 *  Copyright (c) 2001-2020                                                *
[41050]7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
[64995]13/**
[93617]14 * Utilisations de pipelines
[64995]15 *
16 * @package SPIP\Mots\Pipelines
[93617]17 **/
18if (!defined('_ECRIRE_INC_VERSION')) {
19        return;
20}
[41050]21
22/**
[65039]23 * Définir les meta de configuration liées aux mots
[41050]24 *
[65090]25 * @pipeline configurer_liste_metas
[41050]26 * @param array $metas
[64995]27 *     Couples nom de la méta => valeur par défaut
[41050]28 * @return array
[64995]29 *    Couples nom de la méta => valeur par défaut
[41050]30 */
[93617]31function mots_configurer_liste_metas($metas) {
32        $metas['articles_mots'] = 'non';
33        $metas['config_precise_groupes'] = 'non';
34
[41067]35        #$metas['mots_cles_forums'] =  'non';
[41050]36        return $metas;
37}
38
39/**
[64995]40 * Utilisation du pipeline affiche milieu
[93617]41 *
[64995]42 * - Ajoute le formulaire de configuration des mots sur la configuration des contenus
43 * - Ajoute le formulaire d'édition de mots sur les objets qui le peuvent
[41050]44 *
[64995]45 * @pipeline affiche_milieu
[93617]46 *
[41050]47 * @param array $flux
[64995]48 *     Données du pipeline
[41050]49 * @return array
[64995]50 *     Données du pipeline
[41050]51 */
[93617]52function mots_affiche_milieu($flux) {
[97857]53        if ($flux['args']['exec'] == 'configurer_contenu') {
54                $flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer', array('configurer' => 'configurer_mots'));
[41050]55        }
[41067]56
57        // si on est sur une page ou il faut inserer les mots cles...
[44815]58        if ($en_cours = trouver_objet_exec($flux['args']['exec'])
[93645]59                and $en_cours['edition'] !== true // page visu
60                and $type = $en_cours['type']
61                and $id_table_objet = $en_cours['id_table_objet']
62                and isset($flux['args'][$id_table_objet])
63                and ($id = intval($flux['args'][$id_table_objet]))
[93617]64        ) {
[44815]65                $texte = recuperer_fond(
[93617]66                        'prive/objets/editer/liens',
67                        array(
68                                'table_source' => 'mots',
69                                'objet' => $type,
70                                'id_objet' => $id,
71                        )
[44815]72                );
[97857]73                if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) {
[93617]74                        $flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
75                } else {
[44815]76                        $flux['data'] .= $texte;
[93617]77                }
[41067]78        }
[93617]79
[41050]80        return $flux;
81}
82
[41067]83/**
[64995]84 * Optimise la base de données en supprimant les liens orphelins
[41050]85 *
[64995]86 * @pipeline optimiser_base_disparus
[93617]87 *
[64995]88 * @param array $flux
89 *     Données du pipeline
90 * @return array
91 *     Données du pipeline
[41050]92 */
[93617]93function mots_optimiser_base_disparus($flux) {
[41050]94        $n = &$flux['data'];
[45814]95        $mydate = $flux['args']['date'];
[41050]96
[97857]97        $result = sql_delete('spip_mots', 'length(titre)=0 AND maj < ' . sql_quote($mydate));
[93617]98
[43452]99        include_spip('action/editer_liens');
100        // optimiser les liens morts :
101        // entre mots vers des objets effaces
102        // depuis des mots effaces
[93617]103        $n += objet_optimiser_liens(array('mot' => '*'), '*');
[41050]104
105        return $flux;
106
107}
108
109
110/**
[41097]111 * Copier le type des groupes sur la table spip_mots
[64995]112 * à chaque changement d'un groupe.
[41097]113 *
[64995]114 * @pipeline post_edition
[93617]115 *
[41097]116 * @param array $flux
[64995]117 *     Données du pipeline
[41097]118 * @return array
[64995]119 *     Données du pipeline
[41097]120 */
[93617]121function mots_post_edition($flux) {
[77974]122        if (isset($flux['args']['table'])
123                and ($flux['args']['table'] == 'spip_groupes_mots')
[93617]124                and isset($flux['data']['titre'])
125        ) {
[97857]126                sql_updateq('spip_mots', array('type' => $flux['data']['titre']), 'id_groupe=' . $flux['args']['id_objet']);
[41097]127        }
128
129        return $flux;
130}
Note: See TracBrowser for help on using the repository browser.