SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

289 Plugins, 197 contribs sur SPIP-Zone, 69 visiteurs en ce moment

Accueil > Améliorations de l’espace privé > Champs extra > Champ Extra sur les articles d’une rubrique et de ses sous-rubriques.

Champ Extra sur les articles d’une rubrique et de ses sous-rubriques.

26 octobre 2004 – par Ara – commentaire

Toutes les versions de cet article : [français] [français]

2 votes

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Les champs extra proposés par Spip pour les articles ne peuvent être appliqué que sur tous les articles ou sur un secteur en particulier, c’est à dire une rubrique de 1er niveau. Cette contrib, basée sur la contrib « Interface graphique pour les extras », permet de définir des extras aux articles de n’importe quelle rubrique et des sous-rubriques (secteur ou pas).

Cette contrib porte sur les extras des articles et est basée sur la contrib : Interface graphique pour les extras.

Pour les rubriques, je verrai ça après les tests. Ces modifications ont été testé avec Spip 1.7.1

Les modifications principales :

ecrire/article_edit.php3 :
extra_saisie($extra, ’articles’, $id_rubrique) ;
au lieu de :
extra_saisie($extra, ’articles’, $id_secteur) ;

ecrire/inc_extra.php3 :

// recherche rubrique parente éventuelle sur lequel s'applique des extras
function rub_extra($id_rub='') {
        if($id_rub) {
                $query="SELECT id_parent FROM spip_rubriques WHERE id_rubrique='$id_rub'";
                $result=spip_query($query) or die($query);
                list($id_rubparent)=spip_fetch_array($result);
                if( $id_rubparent && isset($GLOBALS['champs_extra_proposes']['articles'][$id_rubparent]) ) {
                        return $id_rubparent;                       
                } else {
                        return rub_extra($id_rubparent);
                }
        } else return 0;
}

// a partir de la liste des champs, generer la liste des input
function extra_saisie($extra, $type, $ensemble='') {
        $extra = unserialize($extra);

        // quels sont les extras de ce type d'objet
        if (!$champs = $GLOBALS['champs_extra'][$type])
                $champs = Array();

        // prendre en compte, eventuellement, les champs presents dans la base
        // mais oublies dans mes_options.
        if (is_array($extra))
                while (list($key,) = each($extra))
                        if (!$champs[$key])
                                $champs[$key] = "masque||($key?)";
                               
       
        // quels sont les extras proposes...
       
        // pas d'extra pour cette ensemble, on va chercher un extra en remontant les niveaux
        if ( $ensemble && $type=='articles' && !isset($GLOBALS['champs_extra_proposes'][$type][$ensemble]) ) {
                $ensemble = rub_extra($ensemble); // on recherche si pour une rubrique de plus haut niveau, existe des extras       
        }
       
        // ... si l'ensemble est connu
        if ( $ensemble && isset($GLOBALS['champs_extra_proposes'][$type][$ensemble]) ) {
                $champs_proposes = explode('|', $GLOBALS['champs_extra_proposes'][$type][$ensemble]);

        // ... sinon, les champs proposes par defaut
        } else if ( isset($GLOBALS['champs_extra_proposes'][$type]['tous']) ) {
                $champs_proposes = explode('|', $GLOBALS['champs_extra_proposes'][$type]['tous']);
       

        // sinon tous les champs extra du type
        } else {
                $champs_proposes =  Array();
                reset($champs);
                while (list($ch, ) = each($champs)) $champs_proposes[] = $ch;
        }
........

ecrire/mes_options.php3 :
ça ne change pas beaucoup par rapport à ce qu’il y avait :

$GLOBALS['champs_extra_proposes'] = Array(
        'articles'=>Array(
                // nous aurons le champ source et lignes_art sur tous les articles de la rubrique 121 et de ses sous-rubriques
                '121'=>'source|lignes_art',
                // nous aurons le champ liens et ligne_art sur tous les articles de la rubrique 2 et de ses sous-rubriques
                '2'=>'liens|lignes_art',
                'tous'=>'lignes_art',
        ),
........

interface_mes_options.php3 :
Le script n’est pas complètement prêt, j’ai juste rajouter le menu déroulant avec l’arborescence du site, pour la rubrique à restreindre . Celà fonctionne en écriture, mais pas en lecture de la rubrique restreinte.

A installer d’abord : Interface graphique pour les extras

Script expérimental, à vous de tester ! J’attends vos remarques pour améliorer tout ça et continuer, parce que ce n’est pas fini...

Dernière modification de cette page le 26 octobre 2004

Retour en haut de la page

Vos commentaires

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Plugin Modèles media

    25 avril 2011 – 183 commentaires

    Les modèles , et produisent chacun un résultat différent et ce résultat, pour les images, dépend du fait qu’elle soit dans le portfolio ou non. Ce plugin propose une nouvelle série de modèles ayant un comportement unifié et indépendant du mode des (...)

  • Escal-V3 et Escal-V4

    16 février 2012 – 306 commentaires

    Un jeu de squelettes proposant un affichage en 2 ou 3 colonnes avec un large choix de noisettes à insérer ou pas, fortement paramétrable depuis l’espace privé. Présentation A l’instar de sa petite soeur plugin Escal-V2 dont elle reprend toutes les (...)

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 50 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de feuilles (...)

  • GIS 4

    11 août 2012 – 1446 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Newsletters

    16 janvier 2013 – 442 commentaires

    Ce plugin permet de composer des Info-lettres. Par info-lettre, on désigne ici le contenu éditorial qui va être composé et envoyé par courriel à une liste d’inscrits. Le plugin permet de composer une info-lettre à partir d’un modèle pré-composé, (...)