No description
Find a file
2021-08-25 12:05:36 +02:00
action ajout une action pour forcer invalidatrion du cache 2020-05-18 16:29:27 +02:00
css affichage OK des liens de la pagination 2021-08-25 11:55:13 +02:00
formulaires ajout d'une option de config pour selectionner la version de vue, par defaut vue.min.js 2020-03-10 22:07:22 +01:00
img * image de tri des cols : on n'utilise plus fontawesome mais des icones 2020-08-19 10:11:18 +02:00
inclure revert 2021-05-17 16:29:10 +02:00
js ajout de la class on 2021-08-25 12:05:36 +02:00
lang recup des fichiers gamutable de souscriptions 2020-03-10 16:59:10 +01:00
prive sorti de la fabrique 2020-03-10 16:11:01 +01:00
svg * image de tri des cols : on n'utilise plus fontawesome mais des icones 2020-08-19 10:11:18 +02:00
.gitignore la recherche devient insensible à la casse 2020-05-06 23:37:47 +02:00
gamutable_autorisations.php merge à la mano car ne fonctionne pas sur vue3 avec filtre col 2020-12-17 14:55:06 +01:00
gamutable_fonctions.php Amélioration retour formulaire, 2 possibilités 2021-03-14 10:31:27 +01:00
gamutable_options.php Pour CYRILLE, var_mode=gamutable compatible minibando 2020-07-22 22:23:31 +02:00
gamutable_pipelines.php si c'est un json, pas d'insertion 2020-07-23 11:44:28 +02:00
gulpfile.js maj gulp 2021-06-18 11:26:45 +02:00
json_gamutable.json.html un json de demo sur les articles 2021-04-22 11:27:02 +02:00
package-lock.json maj gulp 2021-06-18 11:26:45 +02:00
package.json maj gulp 2021-06-18 11:26:45 +02:00
paquet.xml maj vue en 3.2.4 2021-08-17 21:55:10 +02:00
README.md ajout code d'autorisation des metas 2021-03-19 11:40:40 +01:00

gamutable

Configuration

Choisir entre la version minifiée de vuejs (sans le debug) ou la version de dev

Utilisation

  1. Charger l'inclure (5 args possibles et facultatifs)
<INCLURE{fond=inclure/gamutable,env}>

 Ou avec tous les arguments facultatifs

<INCLURE{fond=inclure/gamutable,
	apiuri="spip.php?page=json_souscripteurs.json",
	tparpage=[15,25,50,'Tous'],
	champcsv="search",
	delimitercsv=";",
	urlvuebloc=spip.php?page=mon_bloc_type_html,
	vueblocdefaut='bloc ou tableau', // par defaut tableau
	namecsv="souscripteurs.csv",
	url_sort_asc="#CHEMIN{...}"
	url_sort_desc="#CHEMIN{...}"
	env
}>

url_sort_asc et url_sort_desc => surcharge possible des icones de tri de colonnes

  1. Surcharger json_gamutable.json.html en suivant son modele
  • pour le header c'est de la forme : "champ":"label"
  • IMPORTANT pour le content du json, il que le cle de la KEY de la table soit "id" et non pas "id_souscription"
  • pour les champs date, pour avoir l'ordre de la col, il faut le format : dd/mm/yyyy ou dd/mm/yy
  • on peut ajouter une clé classes pour ajouter des classes spécifiques à certaines colonnes
"classes":{
	"nom": "toto",
	"email":"toto"
}
  • On peut ajouter des tris par colonne soit avec un select soit avec un input
"filtreCol" : {
	"statut" : "select",
	"nom": "select",
	"prenom": "input"
}
  1. Pour utiliser les actions :
[(#SET{statut,
	#SET{args,#ID_SOUSCRIPTION|concat{-}|concat{#STATUT}}
	<a class="url_action" data-id="#ID_SOUSCRIPTION" href="[(#URL_ACTION_AUTEUR{changer_statut_souscription,#GET{args}})]">
		[(#STATUT|!={publie}|oui)
			<i title="Souscription en attente" class="fa fa-check fa-2x orange" aria-hidden="true"></i>
		]
		[(#STATUT|=={publie}|oui)
			<i title="Souscription validée" class="fa fa-check fa-2x verte" aria-hidden="true"></i>
		]
	</a>
})]
"statut" : [(#GET{statut}|json_encode)],
  • il faut ajouter data-confirm="Confirmez vous ..." si on veut ajouter un popin de confirmation
  • il faut ajouter data-id="" si on veut recharger que cette ligne
  • si une variable du nom de nomBlocAjaxReload est définie, alors, un ajaxReload de ce bloc sera joué dans la fonctione de callback de l'action
  1. Pour utiliser les crayons, il faut utiliser le pipeline crayons_vue_affichage_final
/**
 * injection du reload de vuejs pour les crayons de l'objet souscription
 *
 */
function prefixPlugin_crayons_vue_affichage_final($flux){
	if ($flux['args']['type'] === 'souscription') {
		$id = $flux['args']['id'];
		if ($id = intval($id)) {
			$flux['data'] .= ' <script type="text/javascript"> app.rechargerJson('.$id.'); </script>';
		} else {
			$flux['data'] .= ' <script type="text/javascript"> app.rechargerJson(); </script>';
		}
	}
	return $flux;
}

** Attention ** Pour les crayons, l'invalidation du cache ne se fait que pour les objets publiés Les Crayons utilisent l'api modifier_objet de SPIP qui invalide le cache que si objet est publie, il faut donc forcer l'invalidation du cache en passant pour le pipeline post_edition

/**
 * invalider le cache pour l'objet souscription
 *
 */
function prefixPlugin_post_edition($flux){
	if ($flux['args']['table'] === "spip_souscriptions") {
		include_spip('inc/invalideur');
		suivre_invalideur("id='id_souscription/1'");
	}
	return $flux;
}

pour les crayons, il faut surcharger cette autorisation pour l'instant

function autoriser_meta_modifier($faire, $type, $id, $qui, $opt) {
	if (autoriser('webmestre') or autoriser('prof')) {
		return true;
	}
	return false;
}

  1. Pour utiliser une mediabox ou modalbox et rechargement total/partiel de la page: on peut demander à vuejs de recharger tout le json ou simplement une ligne dans le cas d'une modification
    1. Dans le json : ajouter un lien avec la classe mediabox ou modalbox (cf ex de json)
    "modif" : [(#VAL{<a class="modalbox" href="[(#URL_PAGE{souscrire}|parametre_url{id_souscription,#ID_SOUSCRIPTION}|parametre_url{redirect,gamutable})]"><i class="fa fa-pencil"></i></a>}|json_encode)],
    
    1. On charge en ajax le formulaire en l'englobant d'une div avec la classe ajax (du pur spip)
    2. Dans le traiter du formulaire => supprimer la redirection et on ajoute :
    if ($retour === 'gamutable') {
    	$res['redirect'] = "";
    	// pour recharger que la ligne $id_patate du tableau
    	$res['message_ok'] = gamutable_fermer_modalbox($id_patate);
    	// ou si on veut recharger tout le tableau
    	$res['message_ok'] = gamutable_fermer_modalbox();
    }
    
    il faut ajouter data-confirm="Confirmez vous ..." si on veut ajouter une popin de confirmation