Changeset 53944 in spip-zone


Ignore:
Timestamp:
Nov 1, 2011, 5:06:57 PM (9 years ago)
Author:
cam.lafit@…
Message:

Gérer les liaisons entre stocks et produits

  • Déclaration des jointures de tables
  • SPIP perd parfois pied on l'aide dans de cas de figure

Le critere {quantite} est possible sur une boucle produit, il ira chercher la valeur de la table stocks

Location:
_plugins_/stocks
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/stocks/base/stocks.php

    r50691 r53944  
    77        // 'spip_' dans l'index de $tables_principales
    88        $interface['table_des_tables']['stocks'] = 'stocks';
    9        
     9    $interface['tables_jointures']['spip_produits'][] = 'stocks';
     10
    1011        return $interface;
    1112}
  • _plugins_/stocks/plugin.xml

    r50824 r53944  
    33        <auteur>[Webelys ->http://www.webelys.com]</auteur>
    44        <licence>GPL v3</licence>
    5         <version>0.0.4</version>
     5        <version>0.0.5</version>
    66        <version_base>0.0.1</version_base>
    77        <etat>dev</etat>
     
    2828                <inclure>stocks_pipelines.php</inclure>
    2929        </pipeline>
    30 
     30        <pipeline>
     31                <nom>pre_boucle</nom>
     32                <inclure>stocks_pipelines.php</inclure>
     33        </pipeline>
    3134        <pipeline>
    3235                <nom>formulaire_traiter</nom>
  • _plugins_/stocks/stocks_pipelines.php

    r52642 r53944  
    4343}
    4444
     45function stocks_pre_boucle($boucle) {
     46    //Connaitre la table en cours
     47    $id_table = $boucle->id_table;
     48
     49    //Savoir si on consulté la table organisations_liens
     50    if ($jointure = array_keys($boucle->from, 'spip_stocks')) {
     51        //Vérifier qu'on est bien dans le cas d'une jointure automatique
     52        if (isset($boucle->join[$jointure[0]])
     53        and isset($boucle->join[$jointure[0]][3])
     54              and $boucle->join[$jointure[0]]
     55              and $boucle->join[$jointure[0]][3]
     56        ) {
     57            //Le critere ON de la jointure (index 3 dans le tableau de jointure) est incompléte
     58            //on fait en sorte de retomber sur ses pattes, en indiquant l'objet à joindre
     59            $boucle->join[$jointure[0]][3] = "'L1.objet='.sql_quote('".objet_type($id_table)."')";
     60                }
     61    }
     62
     63    return $boucle;
     64}
    4565
    4666?>
Note: See TracChangeset for help on using the changeset viewer.