You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.2 KiB
104 lines
3.2 KiB
<?php |
|
/** |
|
* Fichier gérant l'installation et désinstallation du plugin Livraison |
|
* |
|
* @plugin Livraison |
|
* @copyright 2015 |
|
* @author Cédric |
|
* @licence GNU/GPL |
|
* @package SPIP\Livraison\Installation |
|
*/ |
|
|
|
if (!defined('_ECRIRE_INC_VERSION')) return; |
|
|
|
|
|
/** |
|
* Fonction d'installation et de mise à jour du plugin Livraison. |
|
* |
|
* @param string $nom_meta_base_version |
|
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP |
|
* @param string $version_cible |
|
* Version du schéma de données dans ce plugin (déclaré dans paquet.xml) |
|
* @return void |
|
**/ |
|
function livraison_upgrade($nom_meta_base_version, $version_cible) { |
|
$maj = array(); |
|
|
|
$maj['create'] = array( |
|
array('maj_tables', array('spip_livraisonmodes','spip_livraisonmodes_liens','spip_commandes')), |
|
array('livraison_installer_modes'), |
|
); |
|
|
|
$maj['1.0.1'] = array( |
|
array('maj_tables', array('spip_livraisonmodes')), |
|
); |
|
$maj['1.1.1'] = array( |
|
array('maj_tables', array('spip_commandes')), |
|
); |
|
$maj['1.2.0'] = array( |
|
array('maj_tables', array('spip_commandes')), |
|
); |
|
$maj['1.3.0'] = array( |
|
array('maj_tables', array('spip_commandes')), |
|
); |
|
// ajout champ facturation_no_tva_intra |
|
$maj['1.3.1'] = array( |
|
array('maj_tables', array('spip_commandes')), |
|
); |
|
|
|
// ajout table des liens pour limiter certains modes a certains produits |
|
$maj['1.4.0'] = array( |
|
array('maj_tables', array('spip_livraisonmodes_liens')), |
|
); |
|
|
|
include_spip('base/upgrade'); |
|
maj_plugin($nom_meta_base_version, $version_cible, $maj); |
|
} |
|
|
|
|
|
/** |
|
* Fonction de désinstallation du plugin Livraison. |
|
* |
|
* @param string $nom_meta_base_version |
|
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP |
|
* @return void |
|
**/ |
|
function livraison_vider_tables($nom_meta_base_version) { |
|
livraison_generer_csv_installation(); |
|
|
|
sql_drop_table("spip_livraisonmodes"); |
|
|
|
# Nettoyer les versionnages et forums |
|
sql_delete("spip_versions", sql_in("objet", array('livraisonmode'))); |
|
sql_delete("spip_versions_fragments", sql_in("objet", array('livraisonmode'))); |
|
sql_delete("spip_forum", sql_in("objet", array('livraisonmode'))); |
|
|
|
effacer_meta($nom_meta_base_version); |
|
} |
|
|
|
function livraison_installer_modes(){ |
|
include_spip("action/editer_objet"); |
|
if ($importer_csv = charger_fonction("importer_csv","inc",true) |
|
AND $f = find_in_path("base/livraisonmodes.csv")){ |
|
$modes = $importer_csv($f,true); |
|
|
|
foreach($modes as $mode){ |
|
$id = objet_inserer("livraisonmode"); |
|
$set = $mode; |
|
$set['prix_poids_ht'] = preg_replace(",\s+,","\n",$set['prix_poids_ht']); |
|
$set['prix_volume_ht'] = preg_replace(",\s+,","\n",$set['prix_volume_ht']); |
|
$set['statut'] = 'prop'; |
|
objet_modifier("livraisonmode",$id,$set); |
|
} |
|
} |
|
} |
|
|
|
function livraison_generer_csv_installation(){ |
|
if ($exporter_csv = charger_fonction("exporter_csv","inc",true)){ |
|
$champs = array( |
|
"titre","descriptif","zone_pays","zone_cp","zone_cp_exclus","taxe","prix_forfait_ht","prix_unit_ht","prix_poids_ht","prix_volume_ht" |
|
); |
|
$modes = sql_allfetsel(implode(",",$champs),"spip_livraisonmodes","statut='publie'"); |
|
$exporter_csv("livraisonmodes",$modes,",",$champs,false); |
|
} |
|
}
|
|
|