source: spip-zone/_plugins_/pages/trunk/pages_fonctions.php

Last change on this file was 113660, checked in by tcharlss@…, 2 years ago

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

File size: 1.6 KB
Line 
1<?php
2/**
3 * D�claration des filtres et balises
4 *
5 * @plugin     Pages
6 * @copyright  2013
7 * @author     RastaPopoulos
8 * @licence    GNU/GPL
9 * @package    SPIP\Pages\Pipelines
10 * @link       https://contrib.spip.net/Pages-uniques
11 */
12
13if (!defined('_ECRIRE_INC_VERSION')) {
14        return;
15}
16
17
18
19// https://code.spip.net/@balise_URL_ARTICLE_dist
20function balise_URL_PAGE_UNIQUE_dist($p) {
21
22        $_id = interprete_argument_balise(1, $p);
23        if (!$_id) {
24                $msg = array('zbug_balise_sans_argument', array('balise' => ' URL_PAGE_UNIQUE'));
25                erreur_squelette($msg, $p);
26                $p->interdire_scripts = false;
27                return $p;
28        }
29
30        if (!function_exists('generer_generer_url_arg')) {
31                include_spip('balise/url_');
32        }
33
34        $_id = "sql_getfetsel('id_article','spip_articles','page='.sql_quote($_id))";
35        $p->code = generer_generer_url_arg('article', $p, $_id);
36        if (!$p->etoile) {
37                $p->code = "vider_url($p->code)";
38        }
39        $p->interdire_scripts = false;
40        return $p;
41}
42
43
44/**
45 * Lister les pages uniques utiles qui ne sont pas encore créées
46 *
47 * Cette liste est complétée par les plugins tiers au moyen du pipeline pages_uniques_utiles.
48 *
49 * @uses pages_uniques_utiles()
50 * @return array
51 *     Tableau associatif : page => titre
52 */
53function pages_uniques_utiles() {
54
55        if (
56                $pages_utiles = pipeline('pages_uniques_utiles', array())
57                and is_array($pages_utiles)
58        ) {
59                include_spip('base/abstract_sql');
60                foreach ($pages_utiles as $page => $titre) {
61                        // Si la page existe déjà, on la vire
62                        if (sql_countsel('spip_articles', 'page = '.sql_quote($page))) {
63                                unset($pages_utiles[$page]);
64                        }
65                }
66        }
67
68        return $pages_utiles;
69}
Note: See TracBrowser for help on using the repository browser.