import initial
@ -0,0 +1,44 @@
|
||||
* text=auto !eol
|
||||
base/declinaisons.php -text
|
||||
/declinaisons_administrations.php -text
|
||||
/declinaisons_autorisations.php -text
|
||||
/declinaisons_pipelines.php -text
|
||||
formulaires/editer_declinaison.html -text
|
||||
formulaires/editer_declinaison.php -text
|
||||
formulaires/inc-prix_affichage.html -text
|
||||
formulaires/inc-prix_champ.html -text
|
||||
formulaires/panier_declinaison.html -text
|
||||
formulaires/panier_declinaison.php -text
|
||||
formulaires/prix_declinaison.html -text
|
||||
formulaires/prix_declinaison.php -text
|
||||
inclure/les_objets_precieux.html -text
|
||||
inclure/les_objets_precieux_article.html -text
|
||||
lang/declinaison_fr.php -text
|
||||
lang/paquet-shop_declinaisons_fr.php -text
|
||||
/paquet.xml -text
|
||||
prive/objets/contenu/declinaison.html -text
|
||||
prive/objets/infos/declinaison.html -text
|
||||
prive/objets/liste/declinaisons.html -text
|
||||
prive/squelettes/contenu/declinaison.html -text
|
||||
prive/squelettes/contenu/declinaisons.html -text
|
||||
prive/themes/spip/images/declinaison-16.png -text
|
||||
prive/themes/spip/images/declinaison-24.png -text
|
||||
prive/themes/spip/images/declinaison-32.png -text
|
||||
prive/themes/spip/images/declinaison-add-16.png -text
|
||||
prive/themes/spip/images/declinaison-add-24.png -text
|
||||
prive/themes/spip/images/declinaison-add-32.png -text
|
||||
prive/themes/spip/images/declinaison-del-16.png -text
|
||||
prive/themes/spip/images/declinaison-del-24.png -text
|
||||
prive/themes/spip/images/declinaison-del-32.png -text
|
||||
prive/themes/spip/images/declinaison-edit-16.png -text
|
||||
prive/themes/spip/images/declinaison-edit-24.png -text
|
||||
prive/themes/spip/images/declinaison-edit-32.png -text
|
||||
prive/themes/spip/images/declinaison-new-16.png -text
|
||||
prive/themes/spip/images/declinaison-new-24.png -text
|
||||
prive/themes/spip/images/declinaison-new-32.png -text
|
||||
prive/themes/spip/images/declinaisons-128.png -text
|
||||
prive/themes/spip/images/declinaisons-32.png -text
|
||||
prive/themes/spip/images/declinaisons-64.png -text
|
||||
saisies-vues/declinaisons.html -text
|
||||
saisies/_declinaisons_recurs.html -text
|
||||
saisies/declinaisons.html -text
|
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Déclinaisons Produit
|
||||
* (c) 2012 Rainer Müller
|
||||
* Licence GNU/GPL
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
|
||||
/**
|
||||
* Déclaration des alias de tables et filtres automatiques de champs
|
||||
*/
|
||||
function declinaisons_declarer_tables_interfaces($interfaces) {
|
||||
|
||||
$interfaces['table_des_tables']['declinaisons'] = 'declinaisons';
|
||||
|
||||
return $interfaces;
|
||||
}
|
||||
|
||||
|
||||
function declinaisons_declarer_tables_principales($tables_principales){
|
||||
|
||||
$tables_principales['spip_prix_objets']['field']['id_declinaison']= "bigint(21) NOT NULL";
|
||||
|
||||
return $tables_principales;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Déclaration des objets éditoriaux
|
||||
*/
|
||||
function declinaisons_declarer_tables_objets_sql($tables) {
|
||||
|
||||
$tables['spip_declinaisons'] = array(
|
||||
'type' => 'declinaison',
|
||||
'principale' => "oui",
|
||||
'field'=> array(
|
||||
"id_declinaison" => "bigint(21) NOT NULL",
|
||||
"titre" => "varchar(255) DEFAULT '' NOT NULL",
|
||||
"descriptif" => "text NOT NULL",
|
||||
"id_parent" => "bigint(21) NOT NULL",
|
||||
"statut" => "varchar(20) DEFAULT '0' NOT NULL",
|
||||
"maj" => "TIMESTAMP"
|
||||
),
|
||||
'key' => array(
|
||||
"PRIMARY KEY" => "id_declinaison",
|
||||
"KEY statut" => "statut",
|
||||
),
|
||||
'titre' => "titre AS titre, '' AS lang",
|
||||
#'date' => "",
|
||||
'champs_editables' => array('titre', 'descriptif', 'id_parent'),
|
||||
'champs_versionnes' => array('titre', 'descriptif', 'id_parent'),
|
||||
'rechercher_champs' => array('titre' => 8, 'descriptif' => 2),
|
||||
'tables_jointures' => array(),
|
||||
'statut_textes_instituer' => array(
|
||||
'prepa' => 'texte_statut_en_cours_redaction',
|
||||
'prop' => 'texte_statut_propose_evaluation',
|
||||
'publie' => 'texte_statut_publie',
|
||||
'refuse' => 'texte_statut_refuse',
|
||||
'poubelle' => 'texte_statut_poubelle',
|
||||
),
|
||||
'statut'=> array(
|
||||
array(
|
||||
'champ' => 'statut',
|
||||
'publie' => 'publie',
|
||||
'previsu' => 'publie,prop,prepa',
|
||||
'post_date' => 'date',
|
||||
'exception' => array('statut','tout')
|
||||
)
|
||||
),
|
||||
'texte_changer_statut' => 'declinaison:texte_changer_statut_declinaison',
|
||||
|
||||
|
||||
);
|
||||
|
||||
return $tables;
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Déclinaisons Produit
|
||||
* (c) 2012 Rainer Müller
|
||||
* Licence GNU/GPL
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
|
||||
/**
|
||||
* Fonction d'installation du plugin et de mise à jour.
|
||||
* Vous pouvez :
|
||||
* - créer la structure SQL,
|
||||
* - insérer du pre-contenu,
|
||||
* - installer des valeurs de configuration,
|
||||
* - mettre à jour la structure SQL
|
||||
**/
|
||||
function declinaisons_upgrade($nom_meta_base_version, $version_cible) {
|
||||
$maj = array();
|
||||
|
||||
$maj['create'] = array(array('maj_tables', array('spip_declinaisons','spip_prix_objets')));
|
||||
$maj['1.0.2'] = array(array('maj_tables', array('spip_prix_objets')));
|
||||
|
||||
include_spip('base/upgrade');
|
||||
maj_plugin($nom_meta_base_version, $version_cible, $maj);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fonction de désinstallation du plugin.
|
||||
* Vous devez :
|
||||
* - nettoyer toutes les données ajoutées par le plugin et son utilisation
|
||||
* - supprimer les tables et les champs créés par le plugin.
|
||||
**/
|
||||
function declinaisons_vider_tables($nom_meta_base_version) {
|
||||
|
||||
sql_drop_table("spip_declinaisons");
|
||||
|
||||
# Nettoyer les versionnages et forums
|
||||
sql_delete("spip_versions", sql_in("objet", array('declinaison')));
|
||||
sql_delete("spip_versions_fragments", sql_in("objet", array('declinaison')));
|
||||
sql_delete("spip_forum", sql_in("objet", array('declinaison')));
|
||||
|
||||
effacer_meta($nom_meta_base_version);
|
||||
}
|
||||
|
||||
?>
|
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Déclinaisons Produit
|
||||
* (c) 2012 Rainer Müller
|
||||
* Licence GNU/GPL
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
/*
|
||||
* Un fichier d'autorisations permet de regrouper
|
||||
* les fonctions d'autorisations de votre plugin
|
||||
*/
|
||||
|
||||
// declaration vide pour ce pipeline.
|
||||
function declinaisons_autoriser(){}
|
||||
|
||||
|
||||
/* Exemple
|
||||
function autoriser_configurer_declinaisons_dist($faire, $type, $id, $qui, $opt) {
|
||||
// type est un objet (la plupart du temps) ou une chose.
|
||||
// autoriser('configurer', '_declinaisons') => $type = 'declinaisons'
|
||||
// au choix
|
||||
return autoriser('webmestre', $type, $id, $qui, $opt); // seulement les webmestres
|
||||
return autoriser('configurer', '', $id, $qui, $opt); // seulement les administrateurs complets
|
||||
return $qui['statut'] == '0minirezo'; // seulement les administrateurs (même les restreints)
|
||||
// ...
|
||||
}
|
||||
*/
|
||||
|
||||
// -----------------
|
||||
// Objet declinaisons
|
||||
|
||||
|
||||
// bouton de menu
|
||||
function autoriser_declinaisons_menu_dist($faire, $type, $id, $qui, $opts){
|
||||
return true;
|
||||
}
|
||||
|
||||
// bouton d'outils rapides
|
||||
function autoriser_declinaisoncreer_menu_dist($faire, $type, $id, $qui, $opts){
|
||||
return autoriser('creer', 'declinaison', '', $qui, $opts);
|
||||
}
|
||||
|
||||
// creer
|
||||
function autoriser_declinaison_creer_dist($faire, $type, $id, $qui, $opt) {
|
||||
return in_array($qui['statut'], array('0minirezo', '1comite'));
|
||||
}
|
||||
|
||||
// voir les fiches completes
|
||||
function autoriser_declinaison_voir_dist($faire, $type, $id, $qui, $opt) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// modifier
|
||||
function autoriser_declinaison_modifier_dist($faire, $type, $id, $qui, $opt) {
|
||||
return in_array($qui['statut'], array('0minirezo', '1comite'));
|
||||
}
|
||||
|
||||
// supprimer
|
||||
function autoriser_declinaison_supprimer_dist($faire, $type, $id, $qui, $opt) {
|
||||
return $qui['statut'] == '0minirezo' AND !$qui['restreint'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Déclinaisons Produit
|
||||
* (c) 2012 Rainer Müller
|
||||
* Licence GNU/GPL
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
|
||||
function declinaisons_recuperer_fond($flux){
|
||||
$fond=$flux['args']['fond'];
|
||||
$contexte=$flux['args']['contexte'];
|
||||
|
||||
// inclure le champ déclinaison
|
||||
if ($fond == 'formulaires/prix'){
|
||||
include_spip('inc/config');
|
||||
$afficher_prix =recuperer_fond('formulaires/inc-prix_affichage',$contexte);
|
||||
$declinaison_champs=recuperer_fond('formulaires/inc-prix_champ',$contexte);
|
||||
|
||||
$patterns = array('/<!--fini champs!-->/','/<div class="liste prix">(.*?)<\/div>/ims');
|
||||
$replacements = array('<!--fini champs!-->'.$declinaison_champs,$afficher_prix);
|
||||
$rep= preg_replace($patterns,$replacements,$flux['data']['texte'],1);
|
||||
|
||||
$flux['data']['texte'] = $rep;
|
||||
}
|
||||
|
||||
|
||||
return $flux;
|
||||
}
|
||||
|
||||
function declinaisons_formulaire_charger($flux){
|
||||
$form=$flux['args']['form'];
|
||||
|
||||
// cré un contact si pas encore existant
|
||||
if($form == 'prix'){
|
||||
$flux['data']['_hidden'].='<input type="hidden" name="objet_titre" value="declinaison">';
|
||||
}
|
||||
return($flux);
|
||||
}
|
||||
?>
|
@ -0,0 +1,27 @@
|
||||
<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_declinaison,nouveau}'>
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
|
||||
[(#ENV{editable})
|
||||
<form method='post' action='#ENV{action}'><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<input type='hidden' name='id_declinaison' value='#ENV{id_declinaison}' />
|
||||
<ul>
|
||||
|
||||
[(#SAISIE{input, titre, obligatoire=oui,
|
||||
label=<:declinaison:label_titre:>})]
|
||||
|
||||
[(#SAISIE{textarea, descriptif,
|
||||
label=<:declinaison:label_descriptif:>,
|
||||
li_class=haut, class=inserer_barre_edition, rows=4})]
|
||||
|
||||
[(#SAISIE{declinaisons, id_parent,
|
||||
label=<:declinaison:label_id_parent:>})]
|
||||
|
||||
</ul>
|
||||
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
|
||||
<!--extra-->
|
||||
<p class="boutons"><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
|
||||
</div></form>
|
||||
]
|
||||
</div>
|
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Déclinaisons Produit
|
||||
* (c) 2012 Rainer Müller
|
||||
* Licence GNU/GPL
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
include_spip('inc/actions');
|
||||
include_spip('inc/editer');
|
||||
|
||||
/**
|
||||
* Identifier le formulaire en faisant abstraction des parametres qui ne representent pas l'objet edite
|
||||
*/
|
||||
function formulaires_editer_declinaison_identifier_dist($id_declinaison='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
|
||||
return serialize(array(intval($id_declinaison)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Declarer les champs postes et y integrer les valeurs par defaut
|
||||
*/
|
||||
function formulaires_editer_declinaison_charger_dist($id_declinaison='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
|
||||
$valeurs = formulaires_editer_objet_charger('declinaison',$id_declinaison,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
|
||||
$valeurs['_hidden']='<input type="hidden" value="publie" name="statut"/>';
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifier les champs postes et signaler d'eventuelles erreurs
|
||||
*/
|
||||
function formulaires_editer_declinaison_verifier_dist($id_declinaison='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
|
||||
return formulaires_editer_objet_verifier('declinaison',$id_declinaison, array('titre'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Traiter les champs postes
|
||||
*/
|
||||
function formulaires_editer_declinaison_traiter_dist($id_declinaison='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
|
||||
return formulaires_editer_objet_traiter('declinaison',$id_declinaison,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
|
||||
}
|
||||
|
||||
|
||||
?>
|
@ -0,0 +1,41 @@
|
||||
<B_prix>
|
||||
|
||||
<table class='spip liste'>
|
||||
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{declinaison:info_1_prix,declinaison:info_nb_prix}})</strong></caption>]
|
||||
<thead>
|
||||
<tr class='first_row'>
|
||||
<th class='prix' scope='col'><:prix_objets:info_prix:></th>
|
||||
<th class='statut' scope='col'><:prix_objets:devises_choisis:></th>
|
||||
<th class='taxes' scope='col'><:prix_objets:taxes:></th>
|
||||
<th class='titre' scope='col'><:declinaison:label_titre:></th>
|
||||
<th class='titre' scope='col'><:prix_objets:supprimer:></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<BOUCLE_prix(POUR){tableau #ENV{prix_choisis}}>
|
||||
[(#VALEUR|table_valeur{prix_ht}|!={0.00}|?{
|
||||
#SET{prix,#VALEUR|table_valeur{prix_ht}}
|
||||
#SET{taxes,<:prix_objets:prix_ht:>}
|
||||
,
|
||||
#SET{prix,#VALEUR|table_valeur{prix}}
|
||||
#SET{taxes,<:prix_objets:prix_ttc:>}
|
||||
})]
|
||||
<tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
|
||||
<td>#GET{prix}</td>
|
||||
<td>[(#VALEUR|table_valeur{code_devise}|traduire_devise)]</td>
|
||||
<td>#GET{taxes}</td>
|
||||
<td>
|
||||
|
||||
#VALEUR{titre}
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<a class="ajax" href="[(#URL_ACTION_AUTEUR{eliminer_prix,[(#VALEUR|table_valeur{id_prix_objet})],[(#SELF|parametre_url{retour_action,oui})]})]#edition_prix" title="<:prix_objets:supprimer:>"> <img src="#CHEMIN_IMAGE{supprimer-12.png}" /></a>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
</BOUCLE_prix>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</B_prix>
|
@ -0,0 +1,13 @@
|
||||
<li>
|
||||
<label><:declinaison:choisir_declinaison:></label>
|
||||
|
||||
<select name="id_objet_titre" id="id_objet_titre" class="id_objet_titre" size="1">
|
||||
<option value="0"><:declinaison:info_aucun_declinaison:></option>
|
||||
<BOUCLE_declinaisons(DECLINAISONS){par num titre, titre}{id_declinaison !IN #ENV{declinaisons_choisis}}>
|
||||
<option value="#ID_DECLINAISON"[(#ID_DECLINAISON|=={#ENV{id_objet_titre}}|oui) selected="selected"]>#TITRE</option>
|
||||
</BOUCLE_declinaisons>
|
||||
</select>
|
||||
[(#SET{redirect,#SELF|parametre_url{retour_action,oui}})]
|
||||
[(#AUTORISER{creer,declinaison})[(#URL_ECRIRE{declinaison_edit,new=oui}|parametre_url{redirect,#GET{redirect}#edition_prix}|icone_verticale{<:declinaison:icone_creer_declinaison:>,declinaison,new,right})]
|
||||
]
|
||||
</li>
|
@ -0,0 +1,45 @@
|
||||
<B_selection>
|
||||
<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire'>
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
|
||||
|
||||
<form method='post' action='#ENV{action}' id="editer_#FORM_#OBJET_PRODUIT_#ID_OBJET_PRODUIT"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<input type="hidden" name="retour" value="#SELF"/>
|
||||
<ul>
|
||||
<li>
|
||||
[(#TOTAL_BOUCLE|>{1}|oui)
|
||||
<select name="id_prix_objet">#SET{plusieurs,oui}
|
||||
<option value=""><:shop:choix_produit:></option>
|
||||
]
|
||||
<BOUCLE_selection(POUR){tableau #ENV{declinaisons}}>
|
||||
[(#TOTAL_BOUCLE|>{1}|?{
|
||||
<option value="[(#VALEUR{id_prix_objet})]">
|
||||
[(#VALEUR{titre}) ][(#VALEUR{prix}|filtres_prix_formater)][ ((#VALEUR{taxe}))]
|
||||
</option>
|
||||
,
|
||||
<input type="hidden" name="id_prix_objet" value="[(#VALEUR{id_prix_objet})]"/>
|
||||
[(#VALEUR{prix}|filtres_prix_formater)][ ((#VALEUR{taxe}))]
|
||||
})]
|
||||
</BOUCLE_selection>
|
||||
[(#TOTAL_BOUCLE|>{1}|oui)</select>]
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<p><input type="submit" class="submit" value="<:paniers:action_ajouter:>" /></p></div>
|
||||
</form>
|
||||
<br class="nettoyeur"/>
|
||||
|
||||
|
||||
</div>
|
||||
</B_selection>
|
||||
[(#ENV{message_ok}|oui)
|
||||
<script type="text/javascript">
|
||||
|
||||
$(function(){
|
||||
ajaxReload('mon_panier');
|
||||
});
|
||||
</script>
|
||||
]
|
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||
|
||||
|
||||
function formulaires_panier_declinaison_charger_dist($id_objet_produit,$objet_produit='article'){
|
||||
|
||||
if(is_array($id_objet_produit))$id_objet_produit=implode(',',$id_objet_produit);
|
||||
if($id_objet_produit)$sql=sql_select('*','spip_prix_objets','id_objet IN ('.$id_objet_produit.') AND objet='.sql_quote($objet_produit));
|
||||
|
||||
$declinaisons=array();
|
||||
|
||||
$id_panier = session_get('id_panier');
|
||||
// S'il n'y a pas de panier, on le crée
|
||||
if (!$id_panier){
|
||||
include_spip('inc/paniers');
|
||||
$id_panier = paniers_creer_panier();
|
||||
}
|
||||
|
||||
while($data=sql_fetch($sql)){
|
||||
if($data['prix_ht']!=0.00){
|
||||
$data['prix'] = $data['prix_ht'];
|
||||
$data['taxe'] = _T('shop:prix_ht');
|
||||
}
|
||||
else{
|
||||
$data['prix'] = $data['prix'];
|
||||
$data['taxe'] = _T('prix_objets:prix_ttc');
|
||||
}
|
||||
$declinaisons[]=$data;
|
||||
|
||||
}
|
||||
|
||||
$valeurs=array(
|
||||
'objet_produit'=>$objet_produit,
|
||||
'id_objet_produit'=>$id_objet_produit,
|
||||
'objet'=>'prix',
|
||||
'id_objet'=>'',
|
||||
'declinaisons'=>$declinaisons,
|
||||
'id_prix_objet'=>'',
|
||||
'retour'=>'');
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_panier_declinaison_traiter_dist($id_objet,$objet='article'){
|
||||
|
||||
$remplir_panier=charger_fonction('remplir_panier','action/');
|
||||
|
||||
$remplir_panier('prix_objet-'._request('id_prix_objet'));
|
||||
|
||||
include_spip('inc/invalideur');
|
||||
suivre_invalideur("id='id_panier/$id_panier'");
|
||||
|
||||
$valeurs['message_ok']=true;
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
?>
|
@ -0,0 +1,36 @@
|
||||
<div class="formulaire_spip liste ajax">
|
||||
|
||||
|
||||
<h3 class="titrem"><:shop:ajouter_prix:></h3>
|
||||
<form id="form_prix" name="form_prix" action="#ENV{action}#form_prix" method="post"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<div class="obligatoire[ (#ENV**{erreurs}|table_valeur{prix_ht}) erreur]">
|
||||
[<div class='erreur_message'>(#ENV**{erreurs}|table_valeur{prix_ht})</div>]
|
||||
<label><:shop:choix_prix:></label>
|
||||
<input type="text" name="prix_ht" value="#ENV{prix_ht}"/>
|
||||
|
||||
<BOUCLE_test(CONDITION){si #ENV{devises}|count|<{2}}>
|
||||
[(#ENV{devises}|table_valeur{0}|traduire_devise)]
|
||||
<input type="hidden" name="code_devise" value="[(#ENV{devises}|table_valeur{0})]"/>
|
||||
</BOUCLE_test>
|
||||
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{code_devise})</span>]
|
||||
<B_selection>
|
||||
<select name="code_devise">
|
||||
<option value=""><:shop:choix_devise:></option>
|
||||
<BOUCLE_selection(POUR){tableau #ENV{devises}}>
|
||||
<option value="#VALEUR">[(#VALEUR|traduire_devise)]</option>
|
||||
</BOUCLE_selection>
|
||||
</select>
|
||||
</B_selection>
|
||||
<//B_test>
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
|
||||
<p><input type="submit" class="submit" value="<:texte_ajouter:>" /></p></div>
|
||||
</form>
|
||||
<br class="nettoyeur"/>
|
||||
</div>
|
||||
|
||||
|
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||
|
||||
|
||||
function formulaires_prix_declinaison_charger_dist($id_objet,$objet='article'){
|
||||
include_spip('inc/config');
|
||||
|
||||
$devises_dispos =lire_config('shop/devises');
|
||||
|
||||
|
||||
// Devise par défaut si rien configuré
|
||||
if(!$devises_dispos)$devises_dispos=array('0'=>'EUR');
|
||||
$devises_choisis =array();
|
||||
$prix_choisis =array();
|
||||
$declinaisons_choisis =array();
|
||||
$d=sql_select('code_devise,objet,id_objet,prix_ht,id_prix_objet,id_declinaison','spip_prix_objets','id_objet='.$id_objet.' AND objet ='.sql_quote($objet));
|
||||
|
||||
//établit les devises diponible moins ceux déjà utilisés
|
||||
|
||||
while($row=sql_fetch($d)){
|
||||
//$devises_choisis[$row['code_devise']] = $row['code_devise'];
|
||||
$declinaisons_choisis[$row['id_declinaison']] = $row['id_declinaison'];
|
||||
$prix_choisis[]=$row;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
$devises = array_diff($devises_dispos,$devises_choisis);
|
||||
|
||||
$valeurs = array(
|
||||
'prix_choisis'=>$prix_choisis,
|
||||
'declinaisons_choisis'=>$declinaisons_choisis,
|
||||
'id_declinaison'=>'',
|
||||
'devises'=>$devises,
|
||||
'code_devise'=>'',
|
||||
'prix_ht'=>'',
|
||||
);
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
|
||||
function formulaires_prix_declinaison_verifier_dist($id_objet,$objet='article'){
|
||||
$valeurs=array();
|
||||
foreach(array('prix_ht','code_devise') as $obligatoire)
|
||||
|
||||
if (!_request($obligatoire)) $valeurs[$obligatoire] = _T('info_obligatoire');
|
||||
|
||||
return $valeurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis
|
||||
}
|
||||
|
||||
|
||||
function formulaires_prix_declinaison_traiter_dist($id_objet,$objet='article'){
|
||||
$valeurs=array(
|
||||
'id_objet'=>$id_objet,
|
||||
'objet'=>$objet,
|
||||
'prix_ht' => _request('prix'),
|
||||
'code_devise' => _request('code_devise'),
|
||||
'id_declinaison' => _request('id_objet_titre'),
|
||||
);
|
||||
|
||||
$id_prix_objet=sql_insertq('spip_prix_objets', $valeurs);
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
?>
|
@ -0,0 +1,27 @@
|
||||
|
||||
#SET{objets_precieux,#ARRAY}
|
||||
|
||||
|
||||
<BOUCLE_objets_precieux(PRIX)>
|
||||
#SET{objets_precieux,#GET{objets_precieux}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#OBJET-#ID_OBJET-#GET{prix}-#GE}}}
|
||||
</BOUCLE_objets_precieux>
|
||||
|
||||
<B_objets_precieux>
|
||||
<div class="vente liste_objets_precieux">
|
||||
#ANCRE_PAGINATION
|
||||
<h2><:shop:les_articles_precieux:></h2>
|
||||
<table class="spip">
|
||||
|
||||
[(#PRIX_HT|>{0}|?{
|
||||
#SET{prix,#PRIX_TTC}
|
||||
#SET{tax,ttc}
|
||||
,
|
||||
#SET{prix,#PRIX_HT}
|
||||
#SET{taxe,ht}
|
||||
})]
|
||||
<INCLURE{fond=inclure/les_objets_precieux_#OBJET,id_objet,prix=#GET{prix},ht=#GET{ht},id_declinaison}/>
|
||||
|
||||
</table>
|
||||
[<p class="pagination">(#PAGINATION)</p>]
|
||||
</div>
|
||||
</B_objets_precieux>
|
@ -0,0 +1,10 @@
|
||||
<BOUCLE_art(ARTICLES){id_article=#ID_OBJET}>
|
||||
<tr class="row_[(#COMPTEUR_BOUCLE|alterner{odd, even})]">
|
||||
<td>[(#LOGO_ARTICLE|image_reduire{100}|sinon{#ID_ARTICLE})]</td>
|
||||
<td><a href="#URL_ARTICLE">#TITRE</a></td>
|
||||
<td class="prix">#GET{prix}</td>
|
||||
<td class="ajouter_au_panier">
|
||||
[(#BOUTON_ACTION{<:ajouter_au_panier:>,#URL_ACTION_AUTEUR{remplir_panier,prix-#ID_PRIX,#SELF},ajax})]
|
||||
</td>
|
||||
</tr>
|
||||
</BOUCLE_art>
|
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
$GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||
|
||||
// S
|
||||
'declinaisons_description' => 'Gère les différentes déclinaisons d\'un produit',
|
||||
'declinaisons_nom' => 'Déclinaisons Produit',
|
||||
'declinaisons_slogan' => 'Gérer des déclinaisons d\'un produit',
|
||||
);
|
||||
|
||||
?>
|
@ -0,0 +1,33 @@
|
||||
<paquet
|
||||
prefix="declinaisons"
|
||||
categorie="communication"
|
||||
version="1.0.3"
|
||||
etat="dev"
|
||||
compatibilite="[3.0.5;3.0.*]"
|
||||
logo="prive/themes/spip/images/declinaisons-64.png"
|
||||
documentation=""
|
||||
schema="1.0.2"
|
||||
>
|
||||
|
||||
<nom>Déclinaisons Produit</nom>
|
||||
|
||||
<auteur lien='http://mychacra.net/'>Rainer Müller</auteur>
|
||||
|
||||
<licence>GNU/GPL</licence>
|
||||
|
||||
<necessite nom="saisies" compatibilite="[1.24.0;]" />
|
||||
<necessite nom="prix_objets" compatibilite="[1.3.0;]" />
|
||||
<utilise nom="shop" compatibilite="[1.1.0;]" />
|
||||
|
||||
|
||||
<pipeline nom="autoriser" inclure="declinaisons_autorisations.php" />
|
||||
|
||||
<pipeline nom="declarer_tables_objets_sql" inclure="base/declinaisons.php" />
|
||||
<pipeline nom="declarer_tables_interfaces" inclure="base/declinaisons.php" />
|
||||
<pipeline nom="declarer_tables_principales" inclure="base/declinaisons.php" />
|
||||
<pipeline nom="recuperer_fond" inclure="declinaisons_pipelines.php" />
|
||||
<pipeline nom="formulaire_charger" inclure="declinaisons_pipelines.php" />
|
||||
|
||||
<menu nom="declinaisons" titre="declinaison:titre_declinaisons" parent="menu_edition" icone="images/declinaison-16.png" action="declinaisons" />
|
||||
<menu nom="declinaison_creer" titre="declinaison:icone_creer_declinaison" parent="outils_rapides" icone="images/declinaison-new-16.png" action="declinaison_edit" parametres="new=oui" />
|
||||
</paquet>
|
@ -0,0 +1,18 @@
|
||||
<BOUCLE_declinaison(DECLINAISONS){id_declinaison}{statut?}>
|
||||
|
||||
[<div class="champ contenu_titre[ (#TITRE*|strlen|?{'',vide})]">
|
||||
<label><:declinaison:label_titre:> : </label>
|
||||
<span dir='#LANG_DIR' class='#EDIT{titre} titre'>(#TITRE)</span>
|
||||
</div>]
|
||||
|
||||
[<div class="champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]">
|
||||
<label><:declinaison:label_descriptif:> : </label>
|
||||
<span dir='#LANG_DIR' class='#EDIT{descriptif} descriptif'>(#DESCRIPTIF)</span>
|
||||
</div>]
|
||||
|
||||
[<div class="champ contenu_id_parent[ (#ID_PARENT*|strlen|?{'',vide})]">
|
||||
<label><:declinaison:label_id_parent:> : </label>
|
||||
<span dir='#LANG_DIR' class='#EDIT{id_parent} id_parent'>(#ID_PARENT)</span>
|
||||
</div>]
|
||||
|
||||
</BOUCLE_declinaison>
|
@ -0,0 +1,28 @@
|
||||
<BOUCLE_declinaison(DECLINAISONS){id_declinaison=#ENV{id}}{statut?}>
|
||||
<div class='infos'>
|
||||
[(#SET{texte_objet,<:declinaison:titre_declinaison:>})]
|
||||
<div class='numero'><:titre_cadre_numero_objet{objet=#GET{texte_objet}}:><p>#ID_DECLINAISON</p></div>
|
||||
|
||||
[(#FORMULAIRE_INSTITUER_OBJET{declinaisons,#ID_DECLINAISON})]
|
||||
|
||||
[(#REM)
|
||||
|
||||
Bouton voir en ligne
|
||||
|
||||
]
|
||||
<BOUCLE_publie(DECLINAISONS){id_declinaison}>
|
||||
[(#VAL{redirect}
|
||||
|generer_url_action{type=declinaisons&id=#ID_DECLINAISON}
|
||||
|parametre_url{var_mode,calcul}
|
||||
|icone_horizontale{<:icone_voir_en_ligne:>,racine})]
|
||||
</BOUCLE_publie>
|
||||
[(#AUTORISER{previsualiser,declinaisons,#ID_DECLINAISON,'',#ARRAY{statut,#STATUT}})
|
||||
[(#VAL{redirect}
|
||||
|generer_url_action{type=declinaisons&id=#ID_DECLINAISON}
|
||||
|parametre_url{var_mode,preview}
|
||||
|icone_horizontale{<:previsualiser:>,preview})]
|
||||
]
|
||||
<//B_publie>
|
||||
|
||||
</div>
|
||||
</BOUCLE_declinaison>
|
@ -0,0 +1,36 @@
|
||||
[(#SET{defaut_tri,#ARRAY{
|
||||
titre,1,
|
||||
id_declinaison,1,
|
||||
points,-1
|
||||
}})]<B_liste_declinaisons>
|
||||
#ANCRE_PAGINATION
|
||||
<div class="liste-objets declinaisons">
|
||||
<table class='spip liste'>
|
||||
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{declinaison:info_1_declinaison,declinaison:info_nb_declinaisons}})</strong></caption>]
|
||||
<thead>
|
||||
<tr class='first_row'>
|
||||
<th class='picto' scope='col'></th>
|
||||
<th class='statut' scope='col'>[(#TRI{statut,<span title="<:lien_trier_statut|attribut_html:>">#</span>,ajax})]</th>
|
||||
<th class='titre' scope='col'>[(#TRI{titre,<:declinaison:label_titre:>,ajax})]</th>
|
||||
<th class='id' scope='col'>[(#TRI{id_declinaison,<:info_numero_abbreviation:>,ajax})]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<BOUCLE_liste_declinaisons(DECLINAISONS){id_parent?}{id_mot?}{id_auteur?}{where?}{statut?}{recherche?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>
|
||||
<tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
|
||||
<td class='picto'>[(#CHEMIN_IMAGE{declinaison-16.png}|balise_img)]</td>
|
||||
<td class='statut'>[(#STATUT|puce_statut{declinaison,#ID_DECLINAISON})]</td>
|
||||
<td class='titre principale'>[(#LOGO_DECLINAISON|image_reduire{20,26})]<a href="[(#ID_DECLINAISON|generer_url_entite{declinaison})]" title="<:info_numero_abbreviation|attribut_html:> #ID_DECLINAISON">[(#RANG). ]#TITRE</a></td>
|
||||
<td class='id'>[(#AUTORISER{modifier,declinaison,#ID_DECLINAISON}|?{
|
||||
<a href="[(#URL_ECRIRE{declinaison_edit,id_declinaison=#ID_DECLINAISON})]">#ID_DECLINAISON</a>,
|
||||
#ID_DECLINAISON
|
||||
})]</td>
|
||||
</tr>
|
||||
</BOUCLE_liste_declinaisons>
|
||||
</tbody>
|
||||
</table>
|
||||
[<p class='pagination'>(#PAGINATION{prive})</p>]
|
||||
</div>
|
||||
</B_liste_declinaisons>[
|
||||
<div class="liste-objets declinaisons caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
|
||||
]<//B_liste_declinaisons>
|
@ -0,0 +1,46 @@
|
||||
[(#AUTORISER{voir,declinaison,#ID_DECLINAISON}|sinon_interdire_acces)]
|
||||
<BOUCLE_declinaison(DECLINAISONS){id_declinaison}{statut==.*}{si #ENV{exec}|=={declinaison}}>
|
||||
[(#BOITE_OUVRIR{[
|
||||
[(#AUTORISER{modifier,declinaison,#ID_DECLINAISON})
|
||||
[(#ID_DECLINAISON|afficher_qui_edite{declinaison}|non)
|
||||
[(#URL_ECRIRE{declinaison_edit,id_declinaison=#ID_DECLINAISON}|icone_verticale{<:declinaison:icone_modifier_declinaison:>,declinaison,edit,right ajax preload})]
|
||||
]
|
||||
[(#ID_DECLINAISON|afficher_qui_edite{declinaison}|oui)
|
||||
[(#URL_ECRIRE{declinaison_edit,id_declinaison=#ID_DECLINAISON}|icone_verticale{#ID_DECLINAISON|afficher_qui_edite{declinaison},warning-24,'',right edition_deja ajax preload})]
|
||||
]
|
||||
]
|
||||
|
||||
<h1>[(#RANG). ](#TITRE|sinon{<:info_sans_titre:>})[(#CHEMIN_IMAGE{declinaison-24.png}|balise_img{declinaison,cadre-icone})]</h1>
|
||||
|
||||
],simple fiche_objet})]
|
||||
|
||||
<div class="ajax">
|
||||
#FORMULAIRE_DATER{declinaison,#ID_DECLINAISON}
|
||||
</div>
|
||||
|
||||
<!--affiche_milieu-->
|
||||
|
||||
<div id="wysiwyg">
|
||||
<INCLURE{fond=prive/objets/contenu/declinaison,id=#ID_DECLINAISON,id_declinaison=#ID_DECLINAISON,virtuel=oui,ajax=wysiwyg,wysiwyg=1}>
|
||||
</div>
|
||||
|
||||
<div class="nettoyeur"></div>
|
||||
|
||||
[(#AUTORISER{modifier,declinaison,#ID_DECLINAISON})
|
||||
[(#ID_DECLINAISON|afficher_qui_edite{declinaison}|non)
|
||||
[(#URL_ECRIRE{declinaison_edit,id_declinaison=#ID_DECLINAISON}|icone_verticale{<:declinaison:icone_modifier_declinaison:>,declinaison,edit,right ajax preload})]
|
||||
]
|
||||
[(#ID_DECLINAISON|afficher_qui_edite{declinaison}|oui)
|
||||
[(#URL_ECRIRE{declinaison_edit,id_declinaison=#ID_DECLINAISON}|icone_verticale{#ID_DECLINAISON|afficher_qui_edite{declinaison},warning-24,'',right edition_deja ajax preload})]
|
||||
]
|
||||
]
|
||||
|
||||
#PIPELINE{afficher_complement_objet,#ARRAY{args,#ARRAY{type,declinaison,id,#ID_DECLINAISON},data,'<div class="nettoyeur"></div>'}}
|
||||
|
||||
#BOITE_FERMER
|
||||
[(#EVAL{_AJAX}|oui)
|
||||
<script type="text/javascript">/*<!\\[CDATA\\[*/reloadExecPage('#ENV{exec}','#navigation,#chemin');/*\\]\\]>*/</script>
|
||||
]
|
||||
</BOUCLE_declinaison>
|
||||
[(#ENV**{exec}|=={declinaison_edit}|?{#INCLURE{fond=prive/squelettes/contenu/declinaison_edit,redirect='',env,retourajax=oui},#REM|sinon_interdire_acces})]
|
||||
<//B_declinaison>
|
@ -0,0 +1,8 @@
|
||||
#FORMULAIRE_RECHERCHE_ECRIRE{#SELF,ajax}
|
||||
<div class="nettoyeur"></div>
|
||||
|
||||
<INCLURE{fond=prive/objets/liste/declinaisons, par=titre, env, ajax, sinon=<:declinaison:info_aucun_declinaison:>}>
|
||||
|
||||
[(#AUTORISER{creer,declinaison})
|
||||
[(#URL_ECRIRE{declinaison_edit,new=oui}|icone_verticale{<:declinaison:icone_creer_declinaison:>,declinaison,new,right})]
|
||||
]
|
After Width: | Height: | Size: 694 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 784 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 774 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 881 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 732 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 4.7 KiB |
@ -0,0 +1,20 @@
|
||||
<BOUCLE_test_multiple(CONDITION){si #ENV{multiple}|=={on}|oui}>
|
||||
[(#SET{valeur,[(#ENV*{valeur}|is_array|?{[(#ENV*{valeur})],[(#ENV*{valeur}|explode{','})]})]})]
|
||||
<B_declinaisons_selectionnes>
|
||||
<ul>
|
||||
<BOUCLE_declinaisons_selectionnes(DECLINAISONS){id_declinaison IN #GET*{valeur}}
|
||||
{par num titre, titre}{statut?}{tout}>
|
||||
<li class="choix">#TITRE (#ID_DECLINAISON)</li>
|
||||
</BOUCLE_declinaisons_selectionnes>
|
||||
</ul>
|
||||
</B_declinaisons_selectionnes>
|
||||
[(#ENV*{sans_reponse}|propre)]
|
||||
<//B_declinaisons_selectionnes>
|
||||
</BOUCLE_test_multiple>
|
||||
<BOUCLE_declinaison_selectionne(DECLINAISONS){id_declinaison=#ENV{valeur}}
|
||||
{par num titre, titre}{statut?}{tout}>
|
||||
<p>#TITRE (#ID_DECLINAISON)</p>
|
||||
</BOUCLE_declinaison_selectionne>
|
||||
[(#ENV*{sans_reponse}|propre)]
|
||||
<//B_declinaison_selectionne>
|
||||
<//B_test_multiple>
|
@ -0,0 +1,8 @@
|
||||
[(#SET{separateur,[(#ENV{separateur}|concat{ › })]})]
|
||||
<BOUCLE_declinaisons(DECLINAISONS){par num titre, titre}{id_parent}{tout}>
|
||||
[(#ENV{multiple}|oui)
|
||||
<option value="#ID_DECLINAISON"[(#ID_DECLINAISON|in_array{#ENV{valeur,#ENV{defaut,#ARRAY}}}|oui) selected="selected"]>#GET{separateur}#TITRE</option>]
|
||||
[(#ENV{multiple}|non)
|
||||
<option value="#ID_DECLINAISON"[(#ID_DECLINAISON|=={#ENV{valeur,#ENV{defaut}}}|oui) selected="selected"]>#GET{separateur}#TITRE</option>]
|
||||
<INCLURE{fond=saisies/_declinaisons_recurs,env,id_parent=#ID_DECLINAISON,separateur=#GET{separateur}} />
|
||||
</BOUCLE_declinaisons>
|
@ -0,0 +1,16 @@
|
||||
[(#ENV{multiple}|oui)
|
||||
[(#SET{valeur,[(#ENV*{valeur}|is_array|?{[(#ENV*{valeur})],[(#ENV*{valeur}|explode{','})]})]})]
|
||||
]
|
||||
<select name="#ENV{nom}[(#ENV{multiple}|?{\[\]})]" id="champ_[(#ENV{nom}|saisie_nom2classe)]"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple" size="#ENV{size,10}"][ disabled="(#ENV{disable})"]>
|
||||
[(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
|
||||
<option value="">[(#ENV{option_intro})]</option>]
|
||||
<BOUCLE_declinaisons(DECLINAISONS){par num titre, titre}{statut?}{racine}{id_parent?}{recherche?}{tout}>
|
||||
[(#ENV{multiple}|oui)
|
||||
<option value="#ID_DECLINAISON"[(#ID_DECLINAISON|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>#TITRE</option>]
|
||||
[(#ENV{multiple}|non)
|
||||
<option value="#ID_DECLINAISON"[(#ID_DECLINAISON|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>#TITRE</option>]
|
||||
|
||||
[(#ENV{recursif}|oui)
|
||||
<INCLURE{fond=saisies/_declinaisons_recurs,valeur=#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}},id_parent=#ID_DECLINAISON,multiple} />]
|
||||
</BOUCLE_declinaisons>
|
||||
</select>
|