Changeset 95846 in spip-zone


Ignore:
Timestamp:
Mar 8, 2016, 9:41:43 AM (4 years ago)
Author:
rastapopoulos@…
Message:

Et voilà une autre super version, où on ajoute des vrais champs objet/id_objet sur les contenus ! Ils sont remplis automatiquement si on détecte que l'URL est un raccourci interne. Et c'est bien peuplé pour tous les anciens contenus déjà existants. :)

Location:
_plugins_/selections_editoriales/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/selections_editoriales/trunk/base/selections_editoriales.php

    r95835 r95846  
    7979                        "descriptif"         => "text NOT NULL DEFAULT ''",
    8080                        "css"                => "varchar(255) not null default ''",
     81                        "id_objet"           => "bigint(21) DEFAULT '0' NOT NULL",
     82                        "objet"              => "VARCHAR(25) DEFAULT '' NOT NULL",
    8183                        "maj"                => "TIMESTAMP"
    8284                ),
     
    8688                'titre' => "titre AS titre, '' AS lang",
    8789                 #'date' => "",
    88                 'champs_editables'  => array('rang', 'titre', 'url', 'descriptif', 'id_selection', 'css',),
    89                 'champs_versionnes' => array('titre', 'url', 'descriptif', 'css',),
     90                'champs_editables'  => array('rang', 'objet', 'id_objet', 'titre', 'url', 'descriptif', 'id_selection', 'css',),
     91                'champs_versionnes' => array('objet', 'id_objet', 'titre', 'url', 'descriptif', 'css',),
    9092                'rechercher_champs' => array("titre" => 8, "descriptif" => 4),
    9193                'tables_jointures'  => array(),
     
    108110 */
    109111function selections_editoriales_declarer_tables_auxiliaires($tables) {
    110 
    111112        $tables['spip_selections_liens'] = array(
    112113                'field' => array(
  • _plugins_/selections_editoriales/trunk/formulaires/editer_selections_contenu.php

    r95836 r95846  
    153153                $dernier_rang = sql_getfetsel('rang', 'spip_selections_contenus', 'id_selection = '.$id_selection, '', 'rang desc', '0,1');
    154154                set_request('rang', $dernier_rang + 1);
     155        }
     156       
     157        // On défini l'objet et id_objet
     158        if ($url = _request('url') and $trouve = typer_raccourci($url)) {
     159                include_spip('inc/lien');
     160                include_spip('base/objets');
     161               
     162                @list($objet, , $id_objet, , $args, , $ancre) = $trouve;
     163                $objet = objet_type(table_objet($objet));
     164               
     165                if ($objet and $id_objet) {
     166                        set_request('objet', $objet);
     167                        set_request('id_objet', $id_objet);
     168                }
     169        }
     170        // Sinon il faut être sûr de les vider !
     171        else {
     172                set_request('objet', '');
     173                set_request('id_objet', '');
    155174        }
    156175       
  • _plugins_/selections_editoriales/trunk/paquet.xml

    r95837 r95846  
    22        prefix="selections_editoriales"
    33        categorie="navigation"
    4         version="1.4.2"
     4        version="1.5.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
    77        logo="prive/themes/spip/images/selections_editoriales-64.png"
    88        documentation="http://contrib.spip.net/4647"
    9         schema="1.4.0"
     9        schema="1.5.0"
    1010>
    1111        <nom>Sélections éditoriales</nom>
  • _plugins_/selections_editoriales/trunk/selections_editoriales_administrations.php

    r95835 r95846  
    4040        );
    4141       
     42        // Ajouter les champs objet/id_objet et les peupler
     43        $maj['1.5.0'] = array(
     44                array('maj_tables', array('spip_selections_contenus')),
     45                array('selections_editoriales_maj_1_5_0'),
     46        );
     47       
    4248        include_spip('base/upgrade');
    4349        maj_plugin($nom_meta_base_version, $version_cible, $maj);
     
    4854        // On cherche toutes les sélections
    4955        if ($selections = sql_allfetsel('id_selection', 'spip_selections')) {
     56                include_spip('inc/filtres');
     57               
    5058                foreach ($selections as $selection) {
    5159                        $id_selection = intval($selection['id_selection']);
     
    5967                                'num,titre'
    6068                        )) {
    61                                 include_spip('inc/filtres');
    62                                
    6369                                $rang = 1;
    6470                                foreach ($contenus as $contenu) {
     
    7783                                        $rang++;
    7884                                }
     85                        }
     86                }
     87        }
     88}
     89
     90// Peupler les objet/id_objet pour les contenus déjà là
     91function selections_editoriales_maj_1_5_0() {
     92        // On cherche tous les contenus, peu importe la sélection
     93        if ($contenus = sql_allfetsel('id_selections_contenu, url', 'spip_selections_contenus')) {
     94                include_spip('inc/lien');
     95                include_spip('base/objets');
     96               
     97                foreach ($contenus as $contenu) {
     98                        $trouve = typer_raccourci($contenu['url']);
     99                        @list($objet, , $id_objet, , $args, , $ancre) = $trouve;
     100                       
     101                        if ($objet and $id_objet and $objet = objet_type(table_objet($objet))) {
     102                                sql_updateq(
     103                                        'spip_selections_contenus',
     104                                        array(
     105                                                'objet' => $objet,
     106                                                'id_objet' => $id_objet,
     107                                        ),
     108                                        'id_selections_contenu = '.$contenu['id_selections_contenu']
     109                                );
    79110                        }
    80111                }
Note: See TracChangeset for help on using the changeset viewer.