API van de logo’s

In SPIP is het beheer van logo’s gescheiden van dat van andere documenten: ze hebben hun eigen opslagplaats en hun eigen API.

Een logo kent twee statuswaardes, die bij het gebruik van de API moeten worden aangegeven:

  • de normale status : 'on'
  • en die van een mouse-over: 'off'.

De verschillende logo’s zijn opgeslagen in de hoofdmap met afbeeldingen en hebben de volgende nomenclatuur: {object}{object_id}{status}.{extensie}.
Voorbeelden:

  • artikel nr 10 / normaal: arton10.png
  • artikel nr 10 / mouse-over: artoff10.png
  • rubriek nr 15 / normaal: rubon15.png
  • rubriek nr 15 / mouse-over: ruboff15.png

chercher_logo()

De functie chercher_logo maakt het mogelijk om het "echte" logo van een bepaalde inhoud terug te vinden, diegene die expliciet werd toegewezen.
Een tabel wordt teruggegeven waarin het volledige pad naar het bestand, de map met logo’s, de naam van met logo, de extensie en de datum van aanpassing.

$chercher_logo = charger_fonction('chercher_logo', 'inc');
$logo = $chercher_logo($id_objet, $id_table_objet, $etat);

De 3 argumenten:

  • $objet: identificatie van het object
  • $id_table_objet: primaire sleutel van het object
  • $etat: 'on' of 'off'

pipeline quete_logo_objet

De pipeline quete_logo_objet wordt gebruikt voor de weergave van het logo van bepaalde inhoud door middel van de #LOGO_* bakens.

Er kunnen alternatieven mee worden gezocht wanneer geen logo werd geladen: bijvoorbeeld van gekoppelde documenten of een specifieke afbeelding.

Iedere plugin kan zijn eigen alternatieve zoekmethode toevoegen, wanneer geen logo gevonden werd.

Voorbeeld:

function mijnplugin_quete_logo_objet($flux) {
	// Wanneer geen logo gevonden werd
	if (empty($flux['data'])
		and $chemin_image = find_in_path('images/mijn_afbeelding.png')
	) {
		$flux['data'] = array(
			'chemin' => $chemin_image,
			'timestamp' => @filemtime($chemin_image),
		);
	}
	return $flux;
}

logo_modifier()

Het logo van een bepaalde inhoud maken of aanpassen.

logo_modifier($objet, $id_objet, $etat, $source);

De 4 argumenten:

  • $objet: type object
  • $id_objet: identificatie van het object
  • $etat : 'on' of 'off'
  • $source: volledige pad (string) of subtabel van $_FILE (array)

logo_supprimer()

Het logo van een object verwijderen.

logo_supprimer($objet, $id_objet, $etat);

De 3 argumenten:

  • $objet: type object
  • $id_objet: identificatie van het object
  • $etat: 'on' of 'off'

Auteur hanjo Gepubliceerd op: Aangepast: 12/03/23

Vertalingen: français, Nederlands