Browse Source

Ajout d'une balise similaire à #NOISETTE_COMPILER pour afficher une prévisualisation d'une noisette dont le contenu est donné par un squelette type_noisette-preview.html. Cette fonctionnalité du noiZetier est transférée dans N-Core car cela concerne les fichiers associés aux types de noisette.

Ajout d'une prévisualisation de la noisette conteneur.
svn/root/tags/v0.10.0
eric@smellup.net 4 years ago
parent
commit
d5e3922879
  1. 4
      lang/ncore_fr.php
  2. 1
      ncore_fonctions.php
  3. 2
      noisettes/conteneur-preview.html
  4. 2
      paquet.xml
  5. 11
      preview_erreur.html
  6. 61
      public/noisette_preview.php

4
lang/ncore_fr.php

@ -7,6 +7,9 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array(
// E
'erreur_type_noisette_inactif' => 'Le type de noisette @type_noisette@ est inactivé car au moins un plugin nécessaire à son utilisation est désactivé.',
// L
'label_conteneur_balise' => 'Balise matérialisant le conteneur',
'label_conteneur_css' => 'Style à affecter à la balise conteneur',
@ -14,4 +17,5 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// T
'type_noisette_conteneur_nom' => 'Bloc conteneur',
'type_noisette_conteneur_description' => 'Conteneur pouvant accueillir des noisettes',
'type_noisette_conteneur_preview' => 'Balise englobante : @balise@',
);

1
ncore_fonctions.php

@ -226,5 +226,6 @@ function noisette_contextualiser($plugin, $noisette, $type_noisette, $environnem
// Balises
include_spip('public/noisette_compiler');
include_spip('public/noisette_preview');
include_spip('public/noisette_repertorier');
include_spip('public/conteneur_identifier');

2
noisettes/conteneur-preview.html

@ -0,0 +1,2 @@
#SET{balise, #ENV{conteneur_balise, div}}
<:ncore:type_noisette_conteneur_preview{balise=#GET{balise}}:>

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="ncore"
categorie="outil"
version="0.3.4"
version="0.3.5"
etat="dev"
compatibilite="[3.2.0;3.2.*]"
logo="ncore_logo-32.png"

11
preview_erreur.html

@ -0,0 +1,11 @@
[(#REM) <!-- PREVIEW_NOTICE
Affiche un avertissement sur le fait que la noisette prévisualisée est d'un type qui n'est plus actif
car au moins un des plugins qu'elle nécessite n'est pas activé.
@param string type_noisette
Identifiant du type de noisette
-->]
<div class="notice">
<:ncore:erreur_type_noisette_inactif{type_noisette=#TYPE_NOISETTE}:>
</div>

61
public/noisette_preview.php

@ -0,0 +1,61 @@
<?php
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function balise_NOISETTE_PREVIEW_dist($p) {
// On passe dans le contexte toujours les deux identifiants d'une noisette, à savoir, l'id_noisette et le couple
// (id_conteneur, rang).
// -- L'id de la noisette qui est passé en argument.
$id_noisette = interprete_argument_balise(1, $p);
$id_noisette = isset($id_noisette) ? str_replace('\'', '"', $id_noisette) : '0';
// -- L'autre identifiant de la noisette, à savoir, le couple (id_conteneur, rang) qui est lu dans la pile.
$id_conteneur = champ_sql('id_conteneur', $p);
$rang_noisette = champ_sql('rang_noisette', $p);
// -- Le type et les paramètres qui sont lus dans la pile.
$type_noisette = champ_sql('type_noisette', $p);
$parametres = champ_sql('parametres', $p);
$noisette = "array(
'id_noisette' => $id_noisette,
'id_conteneur' => $id_conteneur,
'rang_noisette' => $rang_noisette,
'type_noisette' => $type_noisette,
)";
// On identifie si le type de noisette est actif ou pas afin de faire appel au bon fond.
$type_noisette_actif = interprete_argument_balise(2, $p);
$type_noisette_actif = isset($type_noisette_actif) ? str_replace('\'', '"', $type_noisette_actif) : '"oui"';
// On récupère aussi le plugin appelant qui fait partie du stocakge de la noisette.
$plugin = champ_sql('plugin', $p);
// On appelle la fonction de calcul de la prévisualisation.
$p->code = "calculer_preview_noisette($plugin, array_merge($noisette, unserialize($parametres)), $type_noisette_actif)";
$p->interdire_scripts = false;
return $p;
}
function calculer_preview_noisette($plugin, $noisette, $type_noisette_actif) {
// Initialisation de la sortie.
$preview = '';
if ($type_noisette_actif == 'oui') {
// On récupère le dossier de stockage des type de noisette afin de vérifier si un squelette de prévisualisation
// existe pour le type de noisette concerné.
include_spip('ncore/ncore');
include_spip('inc/utils');
$squelette_preview = ncore_type_noisette_initialiser_dossier($plugin) . $noisette['type_noisette'] . '-preview';
if (trouver_fond($squelette_preview)) {
$preview = recuperer_fond($squelette_preview, $noisette);
}
} else {
$preview = recuperer_fond('preview_erreur', $noisette);
}
return $preview;
}
Loading…
Cancel
Save