Changeset 112839 in spip-zone


Ignore:
Timestamp:
Dec 16, 2018, 3:51:59 PM (3 months ago)
Author:
arnaud.berard@…
Message:

Associer les produits a un auteur

  • ajout du formulaire d'association
  • force la jointure et autorise l'utilisation de id_auteur dans les boucle PRODUITS
  • ajoute la liste des produits sur la vue d'un auteur
  • associe l'auteur en cours lors de la création d'un nouveau produit
  • + au passage … correction d'un warning non_numeric value quand le champ taxe est vide (j'ai mis la taxe definie par defaut dans la saisie si elle n'est pas remplie, c'est ptet pas le mieux … j'ai fait au plus simple )

+z

Location:
_plugins_/produits/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/produits/trunk/base/produits.php

    r109941 r112839  
    3232        // Déclaration du titre
    3333        $interfaces['table_titre']['produits'] = 'titre, "" as lang';
     34        // autoriser l'id_auteur dans les boucles produit
     35        $interfaces['jointures']['spip_produits'][] = 'spip_auteurs_liens';
    3436
    3537        // pour pouvoir faire une boucle par id_groupe de mot clé
    3638        $interfaces['exceptions_des_jointures']['spip_produits']['id_groupe'] = array('spip_mots', 'id_groupe');
    37        
     39
    3840        return $interfaces;
    3941}
     
    111113                ),
    112114                'tables_jointures' => array(
    113                         'profondeur' => 'rubriques',
    114                         #'id_auteur' => 'auteurs_liens' // declaration generique plus bas
     115                        'profondeur' => 'rubriques'
    115116                ),
    116117        );
  • _plugins_/produits/trunk/formulaires/editer_produit.php

    r112703 r112839  
    7070                                        array('taxe' => $taxe_defaut.' %')
    7171                                ),
     72                                'defaut' => $taxe_defaut,
    7273                                'inserer_fin' => '<span class="pourcent">&nbsp;&#37;</span>'
    7374                        ),
     
    286287        $retours = formulaires_editer_objet_traiter('produit', $id_produit, $id_rubrique, $lier_trad, $retour);
    287288
     289        // Dans le cas d'une création on lie l'auteur au produit
     290        if(!is_numeric($id_produit)){
     291                include_spip('action/editer_liens');
     292                $id_auteur = session_get('id_auteur');
     293                objet_associer(array("auteur"=>$id_auteur), array("produit"=>$retours['id_produit']));
     294        }
     295
    288296        // cas d’erreur conserver la valeur de taxe saisie.
    289297        if (!empty($retours['message_erreur'])) {
  • _plugins_/produits/trunk/paquet.xml

    r112703 r112839  
    22        prefix="produits"
    33        categorie="outil"
    4         version="1.2.12"
     4        version="1.2.13"
    55        etat="test"
    66        compatibilite="[3.0.13;3.2.*]"
     
    2727        <pipeline nom="grappes_objets_lies" inclure="produits_pipelines.php" />
    2828        <pipeline nom="affiche_enfants" inclure="produits_pipelines.php" />
     29        <pipeline nom="affiche_milieu" inclure="produits_pipelines.php" />
     30        <pipeline nom="post_insertion" inclure="produits_pipelines.php" />
    2931        <pipeline nom="calculer_rubriques" inclure="produits_pipelines.php" />
    3032        <pipeline nom="boite_infos" inclure="produits_pipelines.php" />
  • _plugins_/produits/trunk/prive/objets/liste/produits.html

    r109782 r112839  
    2222        </thead>
    2323        <tbody>
    24         <BOUCLE_liste_produits(PRODUITS){id_produit?}{id_secteur?}{id_rubrique?}{id_mot?}{where?}{recherche?}{statut?}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
     24        <BOUCLE_liste_produits(PRODUITS){id_produit?}{id_secteur?}{id_rubrique?}{id_auteur?}{id_mot?}{where?}{recherche?}{statut?}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
    2525                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    2626                        <td class='statut'>[(#ID_PRODUIT|puce_changement_statut{#STATUT,#ID_RUBRIQUE,produit})]</td>
  • _plugins_/produits/trunk/produits_administrations.php

    r108169 r112839  
    6666        sql_delete('spip_versions', sql_in('objet', array('produit')));
    6767        sql_delete('spip_versions_fragments', sql_in('objet', array('produit')));
     68        # Enlever les liens des auteurs
     69        sql_delete('spip_auteurs_liens', sql_in('objet', array('produit')));
    6870
    6971        effacer_meta($nom_meta_base_version);
  • _plugins_/produits/trunk/produits_pipelines.php

    r110570 r112839  
    66}
    77
    8 // Export de la config 
     8// Export de la config
    99function produits_ieconfig_metas($table) {
    10        
    1110        $table['produits']['titre'] = _T('produit:titre_produit');
    1211        $table['produits']['icone'] = 'prive/themes/spip/images/produit-16.png';
    1312        $table['produits']['metas_serialize'] = 'produits,produits_*';
    14        
     13
    1514        return $table;
    1615}
     
    5150
    5251
    53 // Insérer les listes de produits et le bouton de création dans les pages rubriques
     52// Insérer les listes de produits et le bouton de création
     53// dans les pages rubriques et la liste des produits de l'auteur
    5454function produits_affiche_enfants($flux) {
    55         if (isset($flux['args']['id_rubrique']) and $flux['args']['id_rubrique'] > 0) {
     55        if (isset($flux['args']['id_rubrique'])
     56                AND $flux['args']['id_rubrique'] > 0) {
    5657                $flux['data'] .= recuperer_fond(
    5758                        'prive/objets/liste/produits',
     
    6162                        )
    6263                );
    63        
     64
    6465                if (autoriser('creerproduitdans', 'rubrique', $flux['args']['id_rubrique'])) {
    6566                        $flux['data'] .= icone_verticale(_T('produit:icone_creer_produit'), generer_url_ecrire('produit_edit', 'id_rubrique='.$flux['args']['id_rubrique']), find_in_path('prive/themes/spip/images/produits-24.png'), 'new', 'right'). "<br class='nettoyeur' />";
    6667                }
    6768        }
    68        
     69        // Afficher les produits sur la page d'un auteur
     70        if ($e = trouver_objet_exec($flux['args']['exec'])
     71          AND $e['type'] == 'auteur'
     72          AND $e['edition'] == false) {
     73                        $id_auteur = $flux['args']['id_objet'];
     74                        $lister_objets = charger_fonction('lister_objets','inc');
     75                        $flux['data'] .= $lister_objets('produits', array('titre'=>_L('Produits de cet auteur') , 'id_auteur'=>$id_auteur, 'par'=>'date'));
     76                        $flux['data'] .= "<br class='nettoyeur' />";
     77        }
     78
    6979        return $flux;
    7080}
     
    140150}
    141151
     152
     153// Lier les auteurs aux produits
     154// inssérer le formulaire de liaison d'auteur sur la vue d'un produit
     155function produits_affiche_milieu($flux) {
     156        if ($e = trouver_objet_exec($flux['args']['exec'])
     157                        AND $e['edition'] == false
     158                  AND $e['type'] == 'produit'
     159                        AND $id_table_objet = $e['id_table_objet']) {
     160
     161                        $texte = recuperer_fond('prive/objets/editer/liens', array(
     162                                'table_source' => 'auteurs',
     163                                'objet' => $e['type'],
     164                                'id_objet' => $flux['args'][$id_table_objet],
     165                                #'editable'=>autoriser('associerauteurs', $e['type'], $e['id_objet']) ? 'oui' : 'non'
     166                        ));
     167                if ($p=strpos($flux['data'],"<!--affiche_milieu-->"))
     168                        $flux['data'] = substr_replace($flux['data'],$texte,$p,0);
     169                else
     170                        $flux['data'] .= $texte;
     171        }
     172
     173        return $flux;
     174}
    142175/**
    143176 * Optimiser la base de données
     
    174207/**
    175208 * Déclarer l'héritage pour compositions
    176  * 
     209 *
    177210 * @param $heritages
    178211 *
Note: See TracChangeset for help on using the changeset viewer.