Knoppen definiëren

Om knoppen aan het privé gedeelte toe te voegen, volstaat het om een attribuut bouton toe te voegen aan het bestand plugin.xml:

<bouton id="identificatie" parent="naam van de bovenliggende identificatie">
	<icone>pad naar het icoon</icone>
	<titre>taalstring van de titel</titre>	
	<url>naam van de exec</url>	
	<args>door te geven argumenten</args>	
</bouton>

Omschrijving:

  • id bevat de unieke identificatie van de knop, die ondermeer als verwijzing dient voor een eventueel submenu. Vaak wordt de naam van het bestand exec (wat de pagina weergeeft) gebruikt als indentificatie;
  • parent: optioneel en geeft aan dat de knop een submenu is van de bovenliggende knop. Je vermeldt dus de identificatie van de bovenliggende knop. Wordt deze niet aangegeven, dan wordt het een element van het eerste niveau (zoals "Home", "Items", "Publicaties", ...);
  • icone: ook optioneel, om aan te geven waar het icoon te vinden is;
  • titre: de tekst van de knop en dit mag een taalstring "plugin:string" zijn;
  • url geeft de naam van het exec bestand dat wordt geladen wanneer op de knop wordt gedrukt. Is deze niet aangegeven, dan wordt de identificatie gebruikt;
  • args: optioneel, wanneer argumenten moeten worden meegegeven aan de url (bijvoorbeeld: <args>critere=debut</args>).

Autorisaties

De knoppen worden standaard getoond aan iedereen die in het privé gedeelte komt. Om dit te wijzigen, moeten specifieke autorisaties voor de knoppen worden aangegeven (en moet dus de autorisatie pipeline worden gebruikt):

function autoriser_identifiant_bouton_dist($faire, $type, $id, $qui, $opt) {
	return true; // ou false
}

Voorbeeld

Een voorbeeld:

 
<pipeline>
	<nom>autoriser</nom>
	<inclure>stats_autoriser.php</inclure>
</pipeline>
<bouton id="statistiques_visites">
	<icone>images/statistiques-48.png</icone>
	<titre>icone_statistiques_visites</titre>		
</bouton>
<bouton id='statistiques_repartition' parent='statistiques_visites'>
	<icone>images/rubrique-24.gif</icone>
	<titre>icone_repartition_visites</titre>
</bouton>
<bouton id='statistiques_lang' parent='statistiques_visites'>
	<icone>images/langues-24.gif</icone>
	<titre>onglet_repartition_lang</titre>
</bouton>	
<bouton id='statistiques_referers' parent='statistiques_visites'>
	<icone>images/referers-24.gif</icone>
	<titre>titre_liens_entrants</titre>
</bouton>

De autorisaties zijn in een specifiek bestand gedefinieerd:

<?php
function stats_autoriser(){}
 
// Statistieken lezen ? = alle admins
function autoriser_voirstats_dist($faire, $type, $id, $qui, $opt) {
	return (($GLOBALS['meta']["activer_statistiques"] != 'non')
			AND ($qui['statut'] == '0minirezo'));
}
 
// Autorisatie voor de knoppen
function autoriser_statistiques_visites_bouton_dist($faire, $type, $id, $qui, $opt) {
	return autoriser('voirstats', $type, $id, $qui, $opt);
}
 
function autoriser_statistiques_repartition_bouton_dist($faire, $type, $id, $qui, $opt) {
	return autoriser('voirstats', $type, $id, $qui, $opt);
}
 
function autoriser_statistiques_lang_bouton_dist($faire, $type, $id, $qui, $opt) {
	return ($GLOBALS['meta']['multi_articles'] == 'oui' 
			OR $GLOBALS['meta']['multi_rubriques'] == 'oui')
		AND autoriser('voirstats', $type, $id, $qui, $opt);
}
 
function autoriser_statistiques_referers_bouton_dist($faire, $type, $id, $qui, $opt) {
	return autoriser('voirstats', $type, $id, $qui, $opt);
}
 
?>

Auteur hanjo Gepubliceerd op:

Vertalingen: English, français, Nederlands