Browse Source

PSR / Formatage

master
nicod_ 6 days ago
parent
commit
482d94c90e
  1. 23
      action/produit_panier.php
  2. 2
      action/supprimer_option.php
  3. 2
      action/supprimer_option_objet.php
  4. 89
      base/optionsproduits.php
  5. 8
      formulaires/configurer_optionsproduits.php
  6. 16
      formulaires/editer_option.php
  7. 16
      formulaires/editer_optionsgroupe.php
  8. 28
      formulaires/options_liees_objet.php
  9. 14
      formulaires/panier_options.php
  10. 24
      formulaires/panier_produit_options.php
  11. 16
      inc/prix_option.php
  12. 92
      lang/option_fr.php
  13. 16
      lang/options_fr.php
  14. 52
      lang/optionsgroupe_fr.php
  15. 4
      lang/paquet-options_fr.php
  16. 20
      optionsproduits_administrations.php
  17. 120
      optionsproduits_autorisations.php
  18. 22
      optionsproduits_fonctions.php
  19. 44
      optionsproduits_pipelines.php
  20. 7
      prix/produit.php
  21. 8
      prix_option/produit.php

23
action/produit_panier.php

@ -1,7 +1,9 @@
<?php
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Remplir un panier avec un objet quelconque
@ -9,9 +11,9 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
function action_produit_panier_dist() {
// On récupère les infos
$quantite= intval(_request('quantite'));
$negatif= intval(_request('negatif'));
$quantite = intval(_request('quantite'));
$negatif = intval(_request('negatif'));
// On reçoit des options en POST sous la forme id_option
// ou id_optionX où X est l'id du groupe d'options.
$options = array(_request('id_option'));
@ -22,18 +24,19 @@ function action_produit_panier_dist() {
}
}
// On concatène pour passer les options à l'action remplir_panier.
$options = join('|',array_filter($options));
$options = join('|', array_filter($options));
if($id_objet = _request('id_produit')) {
$id_objet= intval(_request('id_produit'));
if ($id_objet = _request('id_produit')) {
$id_objet = intval(_request('id_produit'));
$objet = 'produit';
} else {
$objet = _request('objet');
$id_objet= intval(_request('id_objet'));
$id_objet = intval(_request('id_objet'));
}
// On appelle l'action remplir_panier
$remplir_panier=charger_fonction('remplir_panier','action');
return $remplir_panier($objet.'-'.$id_objet.'-'.$quantite.'-'.$negatif.'-'.$options);
$remplir_panier = charger_fonction('remplir_panier', 'action');
return $remplir_panier($objet . '-' . $id_objet . '-' . $quantite . '-' . $negatif . '-' . $options);
}

2
action/supprimer_option.php

@ -25,7 +25,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function action_supprimer_option_dist($arg = null) {
if (is_null($arg)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
$arg = $securiser_action();
}
$arg = intval($arg);

2
action/supprimer_option_objet.php

@ -25,7 +25,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function action_supprimer_option_objet_dist($arg = null) {
if (is_null($arg)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
$arg = $securiser_action();
}
// On récupère les infos de l'argument
@list($objet, $id_objet, $id_option) = explode('-', $arg);

89
base/optionsproduits.php

@ -26,13 +26,13 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*/
function optionsproduits_declarer_tables_interfaces($interfaces) {
$interfaces['table_des_tables']['options'] = 'options';
$interfaces['table_des_tables']['options'] = 'options';
$interfaces['table_des_tables']['optionsgroupes'] = 'optionsgroupes';
$interfaces['table_des_traitements']['PRIX_OPTION'][] = 'prix_formater(%s)';
$interfaces['table_des_traitements']['PRIX_OPTION_HT'][] = 'prix_formater(%s)';
$interfaces['table_des_traitements']['PRIX_DEFAUT']['spip_options'] = 'prix_formater(%s)';
$interfaces['table_des_traitements']['TITRE_GROUPE']['spip_optionsgroupes'] = 'supprimer_numero(%s)';
$interfaces['table_des_traitements']['PRIX_OPTION'][] = 'prix_formater(%s)';
$interfaces['table_des_traitements']['PRIX_OPTION_HT'][] = 'prix_formater(%s)';
$interfaces['table_des_traitements']['PRIX_DEFAUT']['spip_options'] = 'prix_formater(%s)';
$interfaces['table_des_traitements']['TITRE_GROUPE']['spip_optionsgroupes'] = 'supprimer_numero(%s)';
$interfaces['table_des_traitements']['DESCRIPTIF']['spip_commandes_details'] = _TRAITEMENT_RACCOURCIS;
// $interfaces['tables_jointures']['spip_optionsgroupes'][] = 'options';
@ -55,55 +55,55 @@ function optionsproduits_declarer_tables_interfaces($interfaces) {
function optionsproduits_declarer_tables_objets_sql($tables) {
$tables['spip_options'] = array(
'type' => 'option',
'principale' => 'oui',
'field' => array(
'id_option' => 'bigint(21) NOT NULL',
'type' => 'option',
'principale' => 'oui',
'field' => array(
'id_option' => 'bigint(21) NOT NULL',
'id_optionsgroupe' => 'bigint(21) NOT NULL DEFAULT 0',
'titre' => 'text',
'description' => 'text',
'prix_defaut' => 'decimal(20,6)',
'poids_defaut' => 'mediumint(9) DEFAULT NULL',
'date' => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"',
'maj' => 'TIMESTAMP',
'titre' => 'text',
'description' => 'text',
'prix_defaut' => 'decimal(20,6)',
'poids_defaut' => 'mediumint(9) DEFAULT NULL',
'date' => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"',
'maj' => 'TIMESTAMP',
),
'key' => array(
'PRIMARY KEY' => 'id_option',
'key' => array(
'PRIMARY KEY' => 'id_option',
'KEY id_optionsgroupe' => 'id_optionsgroupe',
),
'titre' => 'titre AS titre, "" AS lang',
'date' => 'date',
'champs_editables' => array('titre', 'description', 'prix_defaut', 'poids_defaut', 'id_optionsgroupe'),
'titre' => 'titre AS titre, "" AS lang',
'date' => 'date',
'champs_editables' => array('titre', 'description', 'prix_defaut', 'poids_defaut', 'id_optionsgroupe'),
'champs_versionnes' => array('titre', 'description', 'prix_defaut', 'poids_defaut', 'id_optionsgroupe'),
'rechercher_champs' => array("titre" => 10, 'description' => 5),
'tables_jointures' => array('spip_options_liens'),
'join' => array(
'id_option' => 'id_option',
'tables_jointures' => array('spip_options_liens'),
'join' => array(
'id_option' => 'id_option',
'id_optionsgroupe' => 'id_optionsgroupe',
),
'parent' => array('type' => 'optionsgroupe', 'champ' => 'id_optionsgroupe'),
'parent' => array('type' => 'optionsgroupe', 'champ' => 'id_optionsgroupe'),
);
$tables['spip_optionsgroupes'] = array(
'type' => 'optionsgroupe',
'principale' => 'oui',
'field' => array(
'type' => 'optionsgroupe',
'principale' => 'oui',
'field' => array(
'id_optionsgroupe' => 'bigint(21) NOT NULL',
'titre_groupe' => 'text',
'obligatoire' => 'tinyint(1) DEFAULT 1',
'date' => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"',
'maj' => 'TIMESTAMP',
'titre_groupe' => 'text',
'obligatoire' => 'tinyint(1) DEFAULT 1',
'date' => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"',
'maj' => 'TIMESTAMP',
),
'key' => array(
'key' => array(
'PRIMARY KEY' => 'id_optionsgroupe',
),
'titre' => 'titre_groupe AS titre, "" AS lang',
'date' => 'date',
'champs_editables' => array('titre_groupe', 'obligatoire'),
'titre' => 'titre_groupe AS titre, "" AS lang',
'date' => 'date',
'champs_editables' => array('titre_groupe', 'obligatoire'),
'champs_versionnes' => array('titre_groupe', 'obligatoire'),
'rechercher_champs' => array("titre_groupe" => 10),
'tables_jointures' => array('spip_options'),
'join' => array(
'tables_jointures' => array('spip_options'),
'join' => array(
'id_optionsgroupe' => 'id_optionsgroupe',
),
@ -123,9 +123,10 @@ function optionsproduits_declarer_tables_objets_sql($tables) {
* @return array
* Description complétée des tables
*/
function optionsproduits_declarer_tables_principales($tables_principales){
function optionsproduits_declarer_tables_principales($tables_principales) {
$tables_principales['spip_paniers_liens']['field']['options'] = "varchar(255) NOT NULL DEFAULT ''";
$tables_principales['spip_commandes_details']['field']['options'] = "varchar(255) NOT NULL DEFAULT ''";
return $tables_principales;
}
@ -144,14 +145,14 @@ function optionsproduits_declarer_tables_auxiliaires($tables) {
$tables['spip_options_liens'] = array(
'field' => array(
'id_option' => 'bigint(21) DEFAULT "0" NOT NULL',
'id_objet' => 'bigint(21) DEFAULT "0" NOT NULL',
'objet' => 'varchar(25) DEFAULT "" NOT NULL',
'prix_option_objet' => 'decimal(20,6)',
'id_option' => 'bigint(21) DEFAULT "0" NOT NULL',
'id_objet' => 'bigint(21) DEFAULT "0" NOT NULL',
'objet' => 'varchar(25) DEFAULT "" NOT NULL',
'prix_option_objet' => 'decimal(20,6)',
'poids_option_objet' => 'mediumint(9) DEFAULT NULL',
),
'key' => array(
'PRIMARY KEY' => 'id_option,id_objet,objet',
'key' => array(
'PRIMARY KEY' => 'id_option,id_objet,objet',
'KEY id_option' => 'id_option',
),
);

8
formulaires/configurer_optionsproduits.php

@ -25,9 +25,9 @@ include_spip('inc/config');
function formulaires_configurer_optionsproduits_charger_dist() {
$valeurs = array(
'objets' => explode(',', lire_config('optionsproduits/objets')),
'editer_ttc' => lire_config('optionsproduits/editer_ttc'),
'gerer_poids' => lire_config('optionsproduits/gerer_poids'),
'objets' => explode(',', lire_config('optionsproduits/objets')),
'editer_ttc' => lire_config('optionsproduits/editer_ttc'),
'gerer_poids' => lire_config('optionsproduits/gerer_poids'),
);
return $valeurs;
@ -49,7 +49,7 @@ function formulaires_configurer_optionsproduits_traiter_dist() {
$res = array(
'message_ok' => _T('config_info_enregistree'),
'editable' => true,
'editable' => true,
);
return $res;

16
formulaires/editer_option.php

@ -58,8 +58,6 @@ function formulaires_editer_option_identifier_dist(
*
* Déclarer les champs postés et y intégrer les valeurs par défaut
*
* @uses formulaires_editer_objet_charger()
*
* @param int|string $id_option
* Identifiant du option. 'new' pour un nouveau option.
* @param int $id_optionsgroupe
@ -80,6 +78,8 @@ function formulaires_editer_option_identifier_dist(
*
* @return array
* Environnement du formulaire
* @uses formulaires_editer_objet_charger()
*
*/
function formulaires_editer_option_charger_dist(
$id_option = 'new',
@ -104,8 +104,6 @@ function formulaires_editer_option_charger_dist(
*
* Vérifier les champs postés et signaler d'éventuelles erreurs
*
* @uses formulaires_editer_objet_verifier()
*
* @param int|string $id_option
* Identifiant du option. 'new' pour un nouveau option.
* @param int $id_optionsgroupe
@ -126,6 +124,8 @@ function formulaires_editer_option_charger_dist(
*
* @return array
* Tableau des erreurs
* @uses formulaires_editer_objet_verifier()
*
*/
function formulaires_editer_option_verifier_dist(
$id_option = 'new',
@ -140,8 +140,8 @@ function formulaires_editer_option_verifier_dist(
$erreurs = array();
$erreurs = formulaires_editer_objet_verifier('option', $id_option, array('id_optionsgroupe', 'titre', 'id_optionsgroupe'));
if(_request('prix_defaut') && !is_numeric(_request('prix_defaut'))){
if (_request('prix_defaut') && !is_numeric(_request('prix_defaut'))) {
$erreurs['prix_defaut'] = 'Saisissez un nombre décimal avec un point';
}
@ -153,8 +153,6 @@ function formulaires_editer_option_verifier_dist(
*
* Traiter les champs postés
*
* @uses formulaires_editer_objet_traiter()
*
* @param int|string $id_option
* Identifiant du option. 'new' pour un nouveau option.
* @param int $id_optionsgroupe
@ -175,6 +173,8 @@ function formulaires_editer_option_verifier_dist(
*
* @return array
* Retours des traitements
* @uses formulaires_editer_objet_traiter()
*
*/
function formulaires_editer_option_traiter_dist(
$id_option = 'new',

16
formulaires/editer_optionsgroupe.php

@ -51,8 +51,6 @@ function formulaires_editer_optionsgroupe_identifier_dist(
*
* Déclarer les champs postés et y intégrer les valeurs par défaut
*
* @uses formulaires_editer_objet_charger()
*
* @param int|string $id_optionsgroupe
* Identifiant du optionsgroupe. 'new' pour un nouveau optionsgroupe.
* @param string $retour
@ -68,6 +66,8 @@ function formulaires_editer_optionsgroupe_identifier_dist(
*
* @return array
* Environnement du formulaire
* @uses formulaires_editer_objet_charger()
*
*/
function formulaires_editer_optionsgroupe_charger_dist(
$id_optionsgroupe = 'new',
@ -78,10 +78,10 @@ function formulaires_editer_optionsgroupe_charger_dist(
$hidden = ''
) {
$valeurs = formulaires_editer_objet_charger('optionsgroupe', $id_optionsgroupe, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
if(!intval($id_optionsgroupe)) {
if (!intval($id_optionsgroupe)) {
$valeurs['obligatoire'] = 1;
}
return $valeurs;
}
@ -90,8 +90,6 @@ function formulaires_editer_optionsgroupe_charger_dist(
*
* Vérifier les champs postés et signaler d'éventuelles erreurs
*
* @uses formulaires_editer_objet_verifier()
*
* @param int|string $id_optionsgroupe
* Identifiant du optionsgroupe. 'new' pour un nouveau optionsgroupe.
* @param string $retour
@ -107,6 +105,8 @@ function formulaires_editer_optionsgroupe_charger_dist(
*
* @return array
* Tableau des erreurs
* @uses formulaires_editer_objet_verifier()
*
*/
function formulaires_editer_optionsgroupe_verifier_dist(
$id_optionsgroupe = 'new',
@ -128,8 +128,6 @@ function formulaires_editer_optionsgroupe_verifier_dist(
*
* Traiter les champs postés
*
* @uses formulaires_editer_objet_traiter()
*
* @param int|string $id_optionsgroupe
* Identifiant du optionsgroupe. 'new' pour un nouveau optionsgroupe.
* @param string $retour
@ -145,6 +143,8 @@ function formulaires_editer_optionsgroupe_verifier_dist(
*
* @return array
* Retours des traitements
* @uses formulaires_editer_objet_traiter()
*
*/
function formulaires_editer_optionsgroupe_traiter_dist(
$id_optionsgroupe = 'new',

28
formulaires/options_liees_objet.php

@ -8,31 +8,31 @@ include_spip('action/editer_liens');
function formulaires_options_liees_objet_charger_dist($objet, $id_objet) {
$valeurs = array(
'objet' => $objet,
'id_objet' => $id_objet,
'id_option' => _request('id_option'),
'objet' => $objet,
'id_objet' => $id_objet,
'id_option' => _request('id_option'),
'modifier_option' => _request('modifier_option'),
'poids' => _request('poids'),
'poids' => _request('poids'),
);
if (_request('modifier_option') && _request('id_option') && lire_config('optionsproduits/editer_ttc')) {
$infos_option = sql_fetsel(
$infos_option = sql_fetsel(
'prix_option_objet, poids_option_objet',
'spip_options_liens',
'id_option = ' . _request('id_option') . ' and objet=' . sql_quote($objet) . ' and id_objet=' . $id_objet
);
$table = table_objet_sql($objet);
$desc = description_table($table);
$desc = description_table($table);
if (isset($desc['field']['taxe'])) {
$taxe = sql_getfetsel('taxe', $table, id_table_objet($table) . '=' . $id_objet);
$taxe = sql_getfetsel('taxe', $table, id_table_objet($table) . '=' . $id_objet);
$valeurs['prix'] = $infos_option['prix_option_objet'] * (1 + $taxe);
if(lire_config('optionsproduits/editer_ttc')){
$valeurs['prix'] = round($valeurs['prix'],2);
if (lire_config('optionsproduits/editer_ttc')) {
$valeurs['prix'] = round($valeurs['prix'], 2);
}
$valeurs['ttc'] = true;
$valeurs['ttc'] = true;
} else {
$valeurs['prix'] = $infos_option['prix_option_objet'];
$valeurs['ttc'] = false;
$valeurs['ttc'] = false;
}
$valeurs['poids'] = $infos_option['poids_option_objet'];
}
@ -56,12 +56,12 @@ function formulaires_options_liees_objet_traiter_dist($objet, $id_objet) {
$taxe = 0;
if (_request('ttc') || lire_config('optionsproduits/editer_ttc')) {
$table = table_objet_sql($objet);
$desc = description_table($table);
$desc = description_table($table);
if (isset($desc['field']['taxe'])) {
$taxe = sql_getfetsel('taxe', $table, id_table_objet($table) . '=' . $id_objet);
}
}
// modification
if (_request('modifier_option')) {
if ($id_option = _request('id_option')) {
@ -77,7 +77,7 @@ function formulaires_options_liees_objet_traiter_dist($objet, $id_objet) {
array('option' => $id_option),
array($objet => $id_objet),
array(
'prix_option_objet' => $prix / (1 + $taxe),
'prix_option_objet' => $prix / (1 + $taxe),
'poids_option_objet' => $poids,
)
)) {

14
formulaires/panier_options.php

@ -7,16 +7,16 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function formulaires_panier_options_charger_dist($objet, $id_objet) {
$valeurs = array(
'objet' => $objet,
'objet' => $objet,
'id_objet' => $id_objet,
);
// Calculer le prix de l'objet pour le passer au formulaire
$fonction_prix = charger_fonction('prix', 'inc/');
$fonction_prix_ht = charger_fonction('ht', 'inc/prix');
$valeurs['prix_ht'] = $fonction_prix_ht($objet, $id_objet, 6);
$valeurs['prix'] = $fonction_prix($objet, $id_objet, 6);
// On transmet les options reçues au formulaire sous forme concaténee
// pour qu'il les réaffiche comme cochées, mais on ne lui transmet pas les
// id_options reçues pour qu'il ne les remette pas dans #ACTION_FORMULAIRE
@ -37,7 +37,7 @@ function formulaires_panier_options_verifier_dist($id_objet) {
$groupes = sql_allfetsel('id_optionsgroupe, obligatoire', 'spip_optionsgroupes');
foreach ($groupes as $groupe) {
if ($groupe['obligatoire'] && !_request('id_option' . $groupe['id_optionsgroupe'])) {
$erreurs['id_groupe'.$groupe['id_optionsgroupe']] = _T('optionsgroupe:erreur_groupe_obligatoire');
$erreurs['id_groupe' . $groupe['id_optionsgroupe']] = _T('optionsgroupe:erreur_groupe_obligatoire');
}
}
@ -46,11 +46,11 @@ function formulaires_panier_options_verifier_dist($id_objet) {
function formulaires_panier_options_traiter_dist($id_objet) {
// On récupère les infos
$objet = _request('objet');
$objet = _request('objet');
$id_objet = intval(_request('id_objet'));
$quantite = intval(_request('quantite'));
$negatif = intval(_request('negatif'));
$options = array(_request('id_option'));
$negatif = intval(_request('negatif'));
$options = array(_request('id_option'));
// On reçoit des options en POST sous la forme id_option
// ou id_optionX où X est l'id du groupe d'options.

24
formulaires/panier_produit_options.php

@ -13,13 +13,13 @@ function formulaires_panier_produit_options_charger_dist($id_produit) {
// id_options reçues pour qu'il ne les remette pas dans #ACTION_FORMULAIRE
$options = array();
foreach ($_REQUEST as $key => $value) {
if($value && strpos($key,'id_option')!==false){
set_request($key,'');
if ($value && strpos($key, 'id_option') !== false) {
set_request($key, '');
$options[] = intval($value);
}
}
$valeurs['options'] = join('|',$options);
$valeurs['options'] = join('|', $options);
return $valeurs;
}
@ -28,7 +28,7 @@ function formulaires_panier_produit_options_verifier_dist($id_produit) {
$groupes = sql_allfetsel('id_optionsgroupe, obligatoire', 'spip_optionsgroupes');
foreach ($groupes as $groupe) {
if ($groupe['obligatoire'] && !_request('id_option' . $groupe['id_optionsgroupe'])) {
$erreurs['id_groupe'.$groupe['id_optionsgroupe']] = _T('optionsgroupe:erreur_groupe_obligatoire');
$erreurs['id_groupe' . $groupe['id_optionsgroupe']] = _T('optionsgroupe:erreur_groupe_obligatoire');
}
}
@ -37,8 +37,8 @@ function formulaires_panier_produit_options_verifier_dist($id_produit) {
function formulaires_panier_produit_options_traiter_dist($id_produit) {
// On récupère les infos
$quantite= intval(_request('quantite'));
$negatif= intval(_request('negatif'));
$quantite = intval(_request('quantite'));
$negatif = intval(_request('negatif'));
// On reçoit des options en POST sous la forme id_option
// ou id_optionX où X est l'id du groupe d'options.
@ -52,16 +52,16 @@ function formulaires_panier_produit_options_traiter_dist($id_produit) {
// On concatène pour passer les options à l'action remplir_panier.
$options = join('|', array_filter($options));
if($id_objet = _request('id_produit')) {
$id_objet= intval(_request('id_produit'));
if ($id_objet = _request('id_produit')) {
$id_objet = intval(_request('id_produit'));
$objet = 'produit';
} else {
$objet = _request('objet');
$id_objet= intval(_request('id_objet'));
$id_objet = intval(_request('id_objet'));
}
// On appelle l'action remplir_panier
$remplir_panier=charger_fonction('remplir_panier','action');
$remplir_panier($objet.'-'.$id_objet.'-'.$quantite.'-'.$negatif.'-'.$options);
$remplir_panier = charger_fonction('remplir_panier', 'action');
$remplir_panier($objet . '-' . $id_objet . '-' . $quantite . '-' . $negatif . '-' . $options);
}

16
inc/prix_option.php

@ -19,7 +19,7 @@ function inc_prix_option_ht_dist($type_objet, $id_objet, $id_option, $arrondi =
if (isset($cache[$hash])) {
return $cache[$hash];
}
$prix_ht = 0;
// Cherchons d'abord si l'objet existe bien
if ($type_objet
@ -52,7 +52,7 @@ function inc_prix_option_ht_dist($type_objet, $id_objet, $id_option, $arrondi =
'id_objet = ' . $id_objet,
)
);
$prix_ht += $prix_option_ht;
$prix_ht += $prix_option_ht;
}
}
}
@ -62,7 +62,7 @@ function inc_prix_option_ht_dist($type_objet, $id_objet, $id_option, $arrondi =
$prix_ht = round($prix_ht, $arrondi);
}
$cache[$hash] = $prix_ht;
return $prix_ht;
}
@ -78,8 +78,8 @@ function inc_prix_option_dist($type_objet, $id_objet, $id_option, $arrondi = 2,
// On va d'abord chercher le prix HT. On délègue le test de présence de l'objet dans cette fonction.
$fonction_prix_ht = charger_fonction('ht', 'inc/prix_option');
$type_objet = objet_type($type_objet);
$prix = $prix_ht = $fonction_prix_ht($type_objet, $id_objet, $id_option, 0, $serveur);
$type_objet = objet_type($type_objet);
$prix = $prix_ht = $fonction_prix_ht($type_objet, $id_objet, $id_option, 0, $serveur);
// On cherche maintenant s'il existe une personnalisation pour les taxes : prix_option_<objet>() dans prix_option/<objet>.php
if ($fonction_prix_objet = charger_fonction($type_objet, 'prix_option/', true)) {
@ -91,10 +91,10 @@ function inc_prix_option_dist($type_objet, $id_objet, $id_option, $arrondi = 2,
'prix_option',
array(
'args' => array(
'id_objet' => $id_objet,
'id_objet' => $id_objet,
'type_objet' => $type_objet,
'prix_ht' => $prix_ht,
'prix' => $prix,
'prix_ht' => $prix_ht,
'prix' => $prix,
),
'data' => $prix,
)

92
lang/option_fr.php

@ -8,69 +8,69 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array(
// A
'ajouter_lien_option' => 'Ajouter cette option',
'aucune' => 'Aucune',
'ajouter_lien_option' => 'Ajouter cette option',
'aucune' => 'Aucune',
// C
'champ_description_label' => 'Description',
'champ_id_optionsgroupe_label' => 'Groupe',
'champ_prix_defaut_explication' => '(peut être modifié pour chaque association avec un objet)',
'champ_poids_defaut_explication' => '(en grammes , peut être modifié pour chaque association avec un objet)',
'champ_poids_defaut_label' => 'Poids par défaut',
'champ_prix_defaut_label' => 'Prix HT par défaut',
'champ_prix_defaut_ttc_label' => 'Prix TTC par défaut',
'champ_titre_label' => 'Libellé',
'confirmer_supprimer_option' => 'Confirmez-vous la suppression de cette option ?',
'champ_description_label' => 'Description',
'champ_id_optionsgroupe_label' => 'Groupe',
'champ_prix_defaut_explication' => '(peut être modifié pour chaque association avec un objet)',
'champ_poids_defaut_explication' => '(en grammes , peut être modifié pour chaque association avec un objet)',
'champ_poids_defaut_label' => 'Poids par défaut',
'champ_prix_defaut_label' => 'Prix HT par défaut',
'champ_prix_defaut_ttc_label' => 'Prix TTC par défaut',
'champ_titre_label' => 'Libellé',
'confirmer_supprimer_option' => 'Confirmez-vous la suppression de cette option ?',
// E
'explication_laisser_prix_vide' => 'Laisser vide pour utiliser le prix par défaut',
'explication_laisser_poids_vide' => 'Laisser vide pour utiliser le poids par défaut',
'editer_ttc' => 'Prix des options sur les objets saisis en TTC',
'explication_laisser_prix_vide' => 'Laisser vide pour utiliser le prix par défaut',
'explication_laisser_poids_vide' => 'Laisser vide pour utiliser le poids par défaut',
'editer_ttc' => 'Prix des options sur les objets saisis en TTC',
// I
'icone_creer_option' => 'Créer une option',
'icone_modifier_option' => 'Modifier cette option',
'info_1_option' => 'Une option',
'info_1_objet' => 'Un objet lié',
'info_aucun_option' => 'Aucune option',
'info_options_auteur' => 'Les options de cet auteur',
'info_nb_options' => '@nb@ options',
'info_nb_objets' => '@nb@ objets liés',
'icone_creer_option' => 'Créer une option',
'icone_modifier_option' => 'Modifier cette option',
'info_1_option' => 'Une option',
'info_1_objet' => 'Un objet lié',
'info_aucun_option' => 'Aucune option',
'info_options_auteur' => 'Les options de cet auteur',
'info_nb_options' => '@nb@ options',
'info_nb_objets' => '@nb@ objets liés',
// M
'modifier' => 'Modifier',
'modifier' => 'Modifier',
// O
'option_ajoutee' => 'Cette option a été ajoutée.',
'option_ajoutee' => 'Cette option a été ajoutée.',
// P
'prix_option_ht' => 'Prix de l\'option HT',
'prix_option_ttc' => 'Prix de l\'option TTC',
'prix_objet_ttc' => 'Prix de l\' objet TTC',
'prix_final_ttc' => 'Prix final TTC',
'poids' => 'Poids',
'poids_option' => 'Poids de l\'option',
'poids_final' => 'Poids final',
'prix_option_ht' => 'Prix de l\'option HT',
'prix_option_ttc' => 'Prix de l\'option TTC',
'prix_objet_ttc' => 'Prix de l\' objet TTC',
'prix_final_ttc' => 'Prix final TTC',
'poids' => 'Poids',
'poids_option' => 'Poids de l\'option',
'poids_final' => 'Poids final',
// R
'retirer' => 'Retirer',
'retirer_lien_option' => 'Retirer cette option',
'retirer_tous_liens_options' => 'Retirer toutes les options',
'retirer' => 'Retirer',
'retirer_lien_option' => 'Retirer cette option',
'retirer_tous_liens_options' => 'Retirer toutes les options',
// S
'supprimer_option' => 'Supprimer cette option',
'supprimer_option' => 'Supprimer cette option',
// T
'texte_ajouter_option' => 'Ajouter une option',
'texte_changer_statut_option' => 'Cette option est :',
'texte_creer_associer_option' => 'Créer et associer une option',
'texte_ajouter_option' => 'Ajouter une option',
'texte_changer_statut_option' => 'Cette option est :',
'texte_creer_associer_option' => 'Créer et associer une option',
'texte_definir_comme_traduction_option' => 'Cette option est une traduction de la option numéro :',
'titre' => 'Option',
'titres' => 'Options de produits',
'titres_court' => 'Options',
'titre_options' => 'Options',
'titres_rubrique' => 'Options de la rubrique',
'titre_langue_option' => 'Langue de cette option',
'titre_logo_option' => 'Logo de cette option',
'titre_objets_lies_option' => 'Liés à cette option',
'titre' => 'Option',
'titres' => 'Options de produits',
'titres_court' => 'Options',
'titre_options' => 'Options',
'titres_rubrique' => 'Options de la rubrique',
'titre_langue_option' => 'Langue de cette option',
'titre_logo_option' => 'Logo de cette option',
'titre_objets_lies_option' => 'Liés à cette option',
);

16
lang/options_fr.php

@ -8,25 +8,25 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array(
// A
'ajouter_au_panier' => 'Ajouter au panier',
'ajouter_au_panier' => 'Ajouter au panier',
// C
'cfg_objets' => 'Choisir les objets',
'cfg_objets_explication' => 'Choisir les objets sur lesquels vous voulez activer des options.',
'cfg_titre_parametrages' => 'Paramétrages',
'cfg_objets' => 'Choisir les objets',
'cfg_objets_explication' => 'Choisir les objets sur lesquels vous voulez activer des options.',
'cfg_titre_parametrages' => 'Paramétrages',
// G
'gerer_options' => 'Gérer les options',
'gerer_options' => 'Gérer les options',
// O
'options_titre' => 'Options',
'options_titre' => 'Options',
// Q
'quantite' => 'Quantité',
'quantite' => 'Quantité',
// T
'titre_page_configurer_options' => 'Configuration des options',
// U
'gerer_poids' => 'Gérer le poids des options',
'gerer_poids' => 'Gérer le poids des options',
);

52
lang/optionsgroupe_fr.php

@ -8,44 +8,44 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array(
// A
'ajouter_lien_optionsgroupe' => 'Ajouter ce groupe d\'options',
'ajouter_lien_optionsgroupe' => 'Ajouter ce groupe d\'options',
// C
'champ_titre_label' => 'Libellé',
'champ_obligatoire_label' => 'Rendre le choix d\'une option de ce groupe obligatoire',
'confirmer_supprimer_optionsgroupe' => 'Confirmez-vous la suppression de cet groupe d\'options ?',
'champ_titre_label' => 'Libellé',
'champ_obligatoire_label' => 'Rendre le choix d\'une option de ce groupe obligatoire',
'confirmer_supprimer_optionsgroupe' => 'Confirmez-vous la suppression de cet groupe d\'options ?',
// E
'erreur_groupe_obligatoire' => 'Le choix d\'une option est nécessaire pour continuer'
,
'erreur_groupe_obligatoire' => 'Le choix d\'une option est nécessaire pour continuer'
,
// G
'gerer_groupes' => 'Gérer les groupes d\'options',
'gerer_groupes' => 'Gérer les groupes d\'options',
// I
'icone_creer_optionsgroupe' => 'Créer un groupe d\'options',
'icone_modifier_optionsgroupe' => 'Modifier ce groupe d\'options',
'info_1_optionsgroupe' => 'Un groupe d\'options',
'info_aucun_optionsgroupe' => 'Aucun groupe d\'options',
'info_nb_optionsgroupes' => '@nb@ groupes d\'options',
'info_optionsgroupes_auteur' => 'Les groupes d\'options de cet auteur',
'icone_creer_optionsgroupe' => 'Créer un groupe d\'options',
'icone_modifier_optionsgroupe' => 'Modifier ce groupe d\'options',
'info_1_optionsgroupe' => 'Un groupe d\'options',
'info_aucun_optionsgroupe' => 'Aucun groupe d\'options',
'info_nb_optionsgroupes' => '@nb@ groupes d\'options',
'info_optionsgroupes_auteur' => 'Les groupes d\'options de cet auteur',
// R
'retirer_lien_optionsgroupe' => 'Retirer ce groupe d\'options',
'retirer_tous_liens_optionsgroupes' => 'Retirer tous les groupes d\'options',
'retirer_lien_optionsgroupe' => 'Retirer ce groupe d\'options',
'retirer_tous_liens_optionsgroupes' => 'Retirer tous les groupes d\'options',
// S
'supprimer_optionsgroupe' => 'Supprimer cet groupe d\'options',
'supprimer_optionsgroupe' => 'Supprimer cet groupe d\'options',
// T
'texte_ajouter_optionsgroupe' => 'Ajouter un groupe d\'options',
'texte_changer_statut_optionsgroupe' => 'Ce groupe d\'options est :',
'texte_creer_associer_optionsgroupe' => 'Créer et associer un groupe d\'options',
'texte_ajouter_optionsgroupe' => 'Ajouter un groupe d\'options',
'texte_changer_statut_optionsgroupe' => 'Ce groupe d\'options est :',
'texte_creer_associer_optionsgroupe' => 'Créer et associer un groupe d\'options',
'texte_definir_comme_traduction_optionsgroupe' => 'Ce groupe d\'options est une traduction du groupe d\'options numéro :',
'titre_langue_optionsgroupe' => 'Langue de ce groupe d\'options',
'titre_logo_optionsgroupe' => 'Logo de ce groupe d\'options',
'titre_objets_lies_optionsgroupe' => 'Liés à ce groupe d\'options',
'titre_optionsgroupe' => 'Groupe d\'options',
'titre_optionsgroupe_court' => 'Groupe',
'titre_optionsgroupes' => 'Groupes d\'options',
'titre_optionsgroupes_rubrique' => 'Groupes d\'options de la rubrique',
'titre_langue_optionsgroupe' => 'Langue de ce groupe d\'options',
'titre_logo_optionsgroupe' => 'Logo de ce groupe d\'options',
'titre_objets_lies_optionsgroupe' => 'Liés à ce groupe d\'options',
'titre_optionsgroupe' => 'Groupe d\'options',
'titre_optionsgroupe_court' => 'Groupe',
'titre_optionsgroupes' => 'Groupes d\'options',
'titre_optionsgroupes_rubrique' => 'Groupes d\'options de la rubrique',
);

4
lang/paquet-options_fr.php

@ -9,6 +9,6 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// O
'options_description' => '',
'options_nom' => 'Options avec prix',
'options_slogan' => 'Des options sur des objets vendus, avec un prix par option',
'options_nom' => 'Options avec prix',
'options_slogan' => 'Des options sur des objets vendus, avec un prix par option',
);

20
optionsproduits_administrations.php

@ -40,7 +40,7 @@ function optionsproduits_upgrade($nom_meta_base_version, $version_cible) {
// ajouter le champ options dans les tables des plugins Panier et Commande
array('optionsproduits_alter_paniers_commandes'),
// ajouter les options et groupes à la config des objets géré par Rang
array('optionsproduits_configure_rang'),
);
@ -124,16 +124,16 @@ function optionsproduits_alter_paniers_commandes() {
// les champs ne seront pas créés ni la clé réécrite...
// faudrait pouvoir checker ça avec un pipeline post installation de plugin
// je sais pas comment faire pour l'instant sans faire le gros bourrin
if(test_plugin_actif('paniers')) {
if (test_plugin_actif('paniers')) {
// ajouter un champ pour les options dans les lignes du panier
sql_alter('TABLE spip_paniers_liens ADD options VARCHAR(100) NOT NULL DEFAULT ""');
// recréer la clé du panier avec les options
sql_alter('TABLE spip_paniers_liens DROP PRIMARY KEY');
sql_alter('TABLE spip_paniers_liens ADD PRIMARY KEY (id_panier, id_objet, objet, options)');
}
if(test_plugin_actif('commandes')) {
sql_alter('TABLE spip_paniers_liens ADD PRIMARY KEY (id_panier, id_objet, objet, options)');
}
if (test_plugin_actif('commandes')) {
// ajouter un champ pour les options dans les lignes des commandes
sql_alter('TABLE spip_commandes_details ADD options VARCHAR(100) NOT NULL DEFAULT ""');
}
@ -142,12 +142,12 @@ function optionsproduits_alter_paniers_commandes() {
/**
* Déclare les options sur les produits à l'installation
*
*
* @return void
*/
function optionsproduits_defaut_produits() {
$objets = explode(',', lire_config('optionsproduits/objets'));
$objets = explode(',', lire_config('optionsproduits/objets'));
$objets[] = 'spip_produits';
$objets = array_filter(array_unique($objets));
$objets = array_filter(array_unique($objets));
ecrire_config('optionsproduits/objets', implode(',', $objets));
}

120
optionsproduits_autorisations.php

@ -27,11 +27,11 @@ function optionsproduits_autoriser() {
/**
* Autorisation de voir un élément de menu (options)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -42,11 +42,11 @@ function autoriser_options_menu_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de créer (option)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -57,11 +57,11 @@ function autoriser_option_creer_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de voir (option)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -72,11 +72,11 @@ function autoriser_option_voir_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de modifier (option)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -87,11 +87,11 @@ function autoriser_option_modifier_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de supprimer (option)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -102,11 +102,11 @@ function autoriser_option_supprimer_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de créer l'élément (option) dans un optionsgroupes
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -117,11 +117,11 @@ function autoriser_optionsgroupe_creeroptiondans_dist($faire, $type, $id, $qui,
/**
* Autorisation de lier/délier l'élément (options)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -135,11 +135,11 @@ function autoriser_associeroptions_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de voir un élément de menu (optionsgroupes)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -150,11 +150,11 @@ function autoriser_optionsgroupes_menu_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de créer (optionsgroupe)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -165,11 +165,11 @@ function autoriser_optionsgroupe_creer_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de voir (optionsgroupe)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -180,11 +180,11 @@ function autoriser_optionsgroupe_voir_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de modifier (optionsgroupe)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/
@ -195,11 +195,11 @@ function autoriser_optionsgroupe_modifier_dist($faire, $type, $id, $qui, $opt) {
/**
* Autorisation de supprimer (optionsgroupe)
*
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
* @param string $faire Action demandée
* @param string $type Type d'objet sur lequel appliquer l'action
* @param int $id Identifiant de l'objet
* @param array $qui Description de l'auteur demandant l'autorisation
* @param array $opt Options de cette autorisation
*
* @return bool true s'il a le droit, false sinon
**/

22
optionsproduits_fonctions.php

@ -27,13 +27,13 @@ function balise_PRIX_OPTION_HT_dist($p) {
$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
if (!$_type = interprete_argument_balise(1, $p)) {
$_type = sql_quote($p->boucles[$b]->type_requete);
$_id = champ_sql($p->boucles[$b]->primary, $p);
$_id = champ_sql($p->boucles[$b]->primary, $p);
} else {
$_id = interprete_argument_balise(2, $p);
$_id = interprete_argument_balise(2, $p);
$_options = interprete_argument_balise(3, $p);
}
$connect = $p->boucles[$b]->sql_serveur;
$p->code = "prix_option_ht_objet(intval(" . $_id . ")," . $_type . "," . $_options . "," . sql_quote($connect) . ")";
$connect = $p->boucles[$b]->sql_serveur;
$p->code = "prix_option_ht_objet(intval(" . $_id . ")," . $_type . "," . $_options . "," . sql_quote($connect) . ")";
$p->interdire_scripts = false;
return $p;
@ -51,13 +51,13 @@ function balise_PRIX_OPTION_dist($p) {
$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
if (!$_type = interprete_argument_balise(1, $p)) {
$_type = sql_quote($p->boucles[$b]->type_requete);
$_id = champ_sql($p->boucles[$b]->primary, $p);
$_id = champ_sql($p->boucles[$b]->primary, $p);
} else {
$_id = interprete_argument_balise(2, $p);
$_id = interprete_argument_balise(2, $p);
$_options = interprete_argument_balise(3, $p);
}
$connect = $p->boucles[$b]->sql_serveur;
$p->code = "prix_option_objet(intval(" . $_id . ")," . $_type . "," . $_options . "," . sql_quote($connect) . ")";
$connect = $p->boucles[$b]->sql_serveur;
$p->code = "prix_option_objet(intval(" . $_id . ")," . $_type . "," . $_options . "," . sql_quote($connect) . ")";
$p->interdire_scripts = false;
return $p;
@ -97,12 +97,12 @@ function balise_POIDS_FINAL_OBJET_dist($p) {
$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
if (!$_type = interprete_argument_balise(1, $p)) {
$_type = sql_quote($p->boucles[$b]->type_requete);
$_id = champ_sql($p->boucles[$b]->primary, $p);
$_id = champ_sql($p->boucles[$b]->primary, $p);
} else {
$_id = interprete_argument_balise(2, $p);
$_id = interprete_argument_balise(2, $p);
$_options = interprete_argument_balise(3, $p);
}
$p->code = "poids_final_objet(intval(" . $_id . ")," . $_type . "," . $_options . ")";
$p->code = "poids_final_objet(intval(" . $_id . ")," . $_type . "," . $_options . ")";
$p->interdire_scripts = false;
return $p;

44
optionsproduits_pipelines.php

@ -17,10 +17,12 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Insertion dans le pipeline insert_head (SPIP)
*
* @param string $flux
*
* @return string
*/
function optionsproduits_insert_head($flux) {
$flux .= "<script type='text/javascript' src='".timestamp(find_in_path('javascript/optionsproduits.js'))."'></script>";
$flux .= "<script type='text/javascript' src='" . timestamp(find_in_path('javascript/optionsproduits.js')) . "'></script>";
return $flux;
}
@ -28,9 +30,11 @@ function optionsproduits_insert_head($flux) {
* Ajouter les objets sur les vues des parents directs
*
* @pipeline affiche_enfants
* @param array $flux Données du pipeline
*
* @param array $flux Données du pipeline
*
* @return array Données du pipeline
**/
**/
function optionsproduits_affiche_enfants($flux) {
if ($e = trouver_objet_exec($flux['args']['exec']) and $e['edition'] == false) {
$id_objet = $flux['args']['id_objet'];
@ -40,49 +44,49 @@ function optionsproduits_affiche_enfants($flux) {
'prive/objets/liste/options',
array(
'titre' => _T('option:titre_options'),
'id_optionsgroupe' => $id_objet
'id_optionsgroupe' => $id_objet,
)
);
if (autoriser('creeroptiondans', 'optionsgroupes', $id_objet)) {
include_spip('inc/presentation');
$flux['data'] .= icone_verticale(
_T('option:icone_creer_option'),
generer_url_ecrire('option_edit', "id_optionsgroupe=$id_objet"),
'option-24.png',
'new',
'right'
) . "<br class='nettoyeur' />";
_T('option:icone_creer_option'),
generer_url_ecrire('option_edit', "id_optionsgroupe=$id_objet"),
'option-24.png',
'new',
'right'
) . "<br class='nettoyeur' />";
}
}
}
return $flux;
}
/**
* Ajout de contenu sur certaines pages,
* notamment des formulaires de liaisons entre objets
*
* @pipeline affiche_milieu
*
* @param array $flux Données du pipeline
* @param array $flux Données du pipeline
*
* @return array Données du pipeline
*/
function optionsproduits_affiche_milieu($flux) {
$texte = '';
$e = trouver_objet_exec($flux['args']['exec']);
$e = trouver_objet_exec($flux['args']['exec']);
// options produits
$objets = array_filter(explode(',',trim(lire_config('optionsproduits/objets'),',')));
if (count($objets) && !$e['edition'] && in_array(table_objet_sql($e['type']), $objets)) {
$texte .= recuperer_fond('prive/objets/liste/options_liees_objet', array(
'objet' => $e['type'],
'objet' => $e['type'],
'id_objet' => $flux['args'][$e['id_table_objet']],
));
}
if ($texte) {
if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) {
$flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
@ -106,14 +110,15 @@ function optionsproduits_afficher_complement_objet($flux) {
return $flux;
}
/**
* Compter les enfants d'un objet
*
* @pipeline objets_compte_enfants
* @param array $flux Données du pipeline
*
* @param array $flux Données du pipeline
*
* @return array Données du pipeline
**/
**/
function optionsproduits_objet_compte_enfants($flux) {
if ($flux['args']['objet'] == 'optionsgroupe' and $id_optionsgroupe = intval($flux['args']['id_objet'])) {
$flux['data']['options'] = sql_countsel('spip_options', 'id_optionsgroupe= ' . intval($id_optionsgroupe));
@ -122,7 +127,6 @@ function optionsproduits_objet_compte_enfants($flux) {
return $flux;
}
/**
* Optimiser la base de données
*
@ -130,7 +134,7 @@ function optionsproduits_objet_compte_enfants($flux) {
*
* @pipeline optimiser_base_disparus
*
* @param array $flux Données du pipeline
* @param array $flux Données du pipeline
*
* @return array Données du pipeline
*/

7
prix/produit.php

@ -1,12 +1,15 @@
<?php
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function prix_produit_ht($id_produit, $ligne, $options) {
$prix_ht = $ligne['prix_ht'];
if($fonction_ht = charger_fonction('ht', "prix_option/produit", true)) {
if ($fonction_ht = charger_fonction('ht', "prix_option/produit", true)) {
$prix_ht = $fonction_ht('produit', intval($id_produit), $options['options'], $ligne);
}
return $prix_ht;
}

8
prix_option/produit.php

@ -19,10 +19,10 @@ function prix_option_produit_ht($objet, $id_objet, $options, $ligne) {
if(isset($options['options'])) {
$options = $options['options'];
}
if(is_string($options)) {
if (is_string($options)) {
$options = explode('|', trim($options, '|'));
}
static $cache;
$hash = md5(json_encode(array($objet, $id_objet, $options, $ligne)));
if (isset($cache[$hash])) {
@ -41,9 +41,9 @@ function prix_option_produit_ht($objet, $id_objet, $options, $ligne) {
)
);
}
$cache[$hash] = $prix_ht;
$cache[$hash] = $prix_ht;
return $cache[$hash];
return $prix_ht;
}
/**

Loading…
Cancel
Save