Valider 142854fb rédigé par tcharlss@bravecassine.com's avatar tcharlss@bravecassine.com
Parcourir les fichiers

Ajout d'un pipeline qui permet aux plugins de déclarer des pages uniques...

Ajout d'un pipeline qui permet aux plugins de déclarer des pages uniques utiles, qu'on peut ensuite générer en un clic (même principe que le plugin menus). Le pipeline est tout simple, il s'agit de compléter un tableau associatif 'page => titre'. Incrémentation de y
parent b310d12e
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
* text=auto !eol
action/generer_pages_uniques_utiles.php -text
base/pages_tables.php -text
content/articles-resume.html -text
formulaires/editer_identifiant_page.html -text
+45 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php
/**
 * Action : générer des pages uniques utiles
 *
 * Ne génère QUE les pages déclarées via le pipeline pages_uniques_utiles.
 *
 * @plugin     Pages
 * @copyright  2013-2019
 * @author     RastaPopoulos
 * @licence    GNU/GPL
 * @package    SPIP\Pages\Pipelines
 * @link       https://contrib.spip.net/Pages-uniques
 */

// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
	return;
}

function action_generer_pages_uniques_utiles_dist($arg = null) {
	include_spip('pages_fonctions');
	include_spip('action/editer_objet');

	if (is_null($arg)) {
		$securiser_action = charger_fonction('securiser_action', 'inc');
		$arg = $securiser_action();
	}

	$page = trim($arg);
	$pages_utiles = pages_uniques_utiles();

	// S'il y a un identifiant précis on ne garde que celui-là
	if ($page) {
		$pages_utiles = array_intersect_key($pages_utiles, array($page => 'oui'));
	}

	// On génère chaque page qui reste
	foreach ($pages_utiles as $page => $titre) {
		$set = array(
			'page'  => $page,
			'titre' => $titre,
		);
		objet_inserer('article', -1, $set);
	}
}
+6 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -10,6 +10,10 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
	// A
	'aucune_page' => 'Il n’y a aucune page pour l’instant.',

	// B
	'bouton_generer_page_utile' => 'Créer la page <strong>@titre@ (<em>@page@</em>)</strong>',
	'bouton_generer_pages_utiles' => 'Créer <em>toutes</em> les pages utiles',

	// C
	'convertir_article' => 'Convertir en article',
	'convertir_page' => 'Convertir en page',
@@ -19,6 +23,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
	'erreur_champ_page_doublon' => 'Cet identifiant existe déjà',
	'erreur_champ_page_format' => 'Charactères alphanumériques en minuscules ou "_" uniquement',
	'erreur_champ_page_taille' => '255 charactères maximum',
	'explication_pages_utiles' => 'Les squelettes actuels du site peuvent utiliser les pages suivantes.',

	// L
	'label_champ_page' => 'Page :',
@@ -31,5 +36,6 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(

	// T
	'titre_page' => 'Page',
	'titre_pages_utiles' => 'Pages utiles',
	'toutes_les_pages' => 'Toutes les pages'
);
+28 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -39,3 +39,31 @@ function balise_URL_PAGE_UNIQUE_dist($p) {
	$p->interdire_scripts = false;
	return $p;
}


/**
 * Lister les pages uniques utiles qui ne sont pas encore créées
 *
 * Cette liste est complétée par les plugins tiers au moyen du pipeline pages_uniques_utiles.
 *
 * @uses pages_uniques_utiles()
 * @return array
 *     Tableau associatif : page => titre
 */
function pages_uniques_utiles() {

	if (
		$pages_utiles = pipeline('pages_uniques_utiles', array())
		and is_array($pages_utiles)
	) {
		include_spip('base/abstract_sql');
		foreach ($pages_utiles as $page => $titre) {
			// Si la page existe déjà, on la vire
			if (sql_countsel('spip_articles', 'page = '.sql_quote($page))) {
				unset($pages_utiles[$page]);
			}
		}
	}

	return $pages_utiles;
}
 No newline at end of file
+4 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="pages"
	categorie="divers"
	version="1.3.10"
	version="1.4.0"
	etat="stable"
	compatibilite="[3.0.0;3.2.*]"
	logo="prive/themes/spip/images/page-32.png"
@@ -29,6 +29,9 @@
	<pipeline nom="autoriser" inclure="pages_autorisations.php" />
	<pipeline nom="pre_boucle" inclure="pages_pipelines.php" />

	<!-- Déclaration des pipelines du plugin -->
	<pipeline nom="pages_uniques_utiles" action="" />

	<utilise nom="polyhier" compatibilite="[2.0.1;]" /> 

	<menu nom="pages" titre="pages:pages_uniques" parent="menu_edition" icone="images/page-16.png" />
Chargement en cours