No description
Find a file
tofulm 60483a2f84 Apres pas mal de tests, l'utilisation de regex pour récupérer un
data-search="toto" n'est pas jouable, gros pb de performance sur un gros
tableau. les regex OUI mais si pas beaucoup ;-)
Il semble indispensable de pouvoir gerer finemement les elements que
l'on veut rechercher, dans etre polué par les balises html.
Notre json, pour la partie corps du tableau, on ajoute un subdivision :
"html" : { mes champs}, comme cela, on peut ajouter une nouvelle cle :
"search" : {la valeur des champs qui seront recherchés et filtrés}. Cela
alourdit un peu le html, et seulement son poids. La partie html/js est
toujours aussi rapide, et meme plus si on utilise cette nouvelle cle.
ATTENTION : cela casse la compatibilité
2020-05-08 14:46:07 +02:00
css pas 2 fois le meme nom de class pour 2 css differetntes 2020-03-13 11:33:37 +01: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
inclure On décale l'appel des crayons 2020-03-12 23:22:04 +01:00
js Apres pas mal de tests, l'utilisation de regex pour récupérer un 2020-05-08 14:46:07 +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
.gitignore la recherche devient insensible à la casse 2020-05-06 23:37:47 +02:00
gamutable_autorisations.php sorti de la fabrique 2020-03-10 16:11:01 +01:00
gamutable_fonctions.php sorti de la fabrique 2020-03-10 16:11:01 +01:00
gamutable_options.php sorti de la fabrique 2020-03-10 16:11:01 +01:00
gamutable_pipelines.php sorti de la fabrique 2020-03-10 16:11:01 +01:00
gulpfile.js recup des fichiers gamutable de souscriptions 2020-03-10 16:59:10 +01:00
json_gamutable.json.html Apres pas mal de tests, l'utilisation de regex pour récupérer un 2020-05-08 14:46:07 +02:00
package.json recup des fichiers gamutable de souscriptions 2020-03-10 16:59:10 +01:00
paquet.xml Apres pas mal de tests, l'utilisation de regex pour récupérer un 2020-05-08 14:46:07 +02:00
README.md on peut aussi passer dans l'env url de api json 2020-03-12 23:18:15 +01:00
yarn.lock recup des fichiers gamutable de souscriptions 2020-03-10 16:59:10 +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 (2 args possibles)
<INCLURE{fond=inclure/gamutable,env}>
 Ou
<INCLURE{fond=inclure/gamutable,env,tparpage=[15,25,50,'Tous']}>
 Et / Ou
<INCLURE{fond=inclure/gamutable,env,apiuri=spip.php?page=json_gamutable.json}>
  1. Surcharcher 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

  1. Pour utliser les actions :

    1. dans json_gamutable.json.html
    [(#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-id="" si on veut recharger que cette ligne

  2. 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

  1. Pour utiliser une mediabox ou modalbox,
    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. Il faut appeler le formulaire en ajax
    2. Dans le traiter du formulaire => supprimer la redirection et ajouter :
    if ($retour === 'gamutable') {
    	$res['redirect'] = "";
    	$res['message_ok'] = "gamutable";
    }
    
    1. Dans le html du formulaire, ajouter :
    [(#ENV**{message_ok}|=={gamutable}|oui)
    	<script type="text/javascript">
    		app.rechargerJson();
    		$.modalboxclose();
    	</script>
    ]
    

Attention

les Crayons utilise 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;
}