Changeset 51569 in spip-zone


Ignore:
Timestamp:
Sep 17, 2011, 8:13:07 PM (9 years ago)
Author:
kent1@…
Message:

Grosse amélioration en espérant ne rien casser :

On ajoute un statut à la table spipicious

On n'affiche que les spipicious avec le statut "publie" sauf si critère "tout" ou "statut"

A l'institution d'un objet, on met le statut en non publié ou publié des spipicious liés à cet objet

Location:
_plugins_/spipicious_jquery
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spipicious_jquery/base/spipicious.php

    r43903 r51569  
    3232function spipicious_declarer_tables_principales($tables_principales){
    3333        $spip_spipicious = array(
    34                 "id_mot"            => "bigint(21) NOT NULL",
    35                 "id_auteur"     => "bigint(21) NOT NULL",
    36                 "id_objet"      => "bigint(21) NOT NULL",
    37                 "objet"         => "VARCHAR (25) DEFAULT '' NOT NULL",
    38                 "position"    => "int(10) NOT NULL",
    39                 "maj" => "TIMESTAMP");
     34                "id_mot"        => "bigint(21) NOT NULL",
     35                "id_auteur"     => "bigint(21) NOT NULL",
     36                "id_objet"      => "bigint(21) NOT NULL",
     37                "objet"         => "VARCHAR (25) DEFAULT '' NOT NULL",
     38                "position"      => "int(10) NOT NULL",
     39                "statut"        => "varchar(10) DEFAULT 'publie' NOT NULL",
     40                "maj"           => "TIMESTAMP");
    4041
    4142        $spip_spipicious_key = array(
     
    4344                "KEY id_auteur" => "id_auteur");
    4445
    45                 $tables_principales['spip_spipicious'] = array(
    46                 'field' => &$spip_spipicious,
    47                 'key' => &$spip_spipicious_key);
     46        $tables_principales['spip_spipicious'] = array(
     47                'field' => &$spip_spipicious,
     48                'key' => &$spip_spipicious_key);
    4849
    4950        return $tables_principales;
     
    5354
    5455        $spip_mots_documents = array(
    55                         "id_mot"        => "BIGINT (21) DEFAULT '0' NOT NULL",
    56                         "id_document"   => "BIGINT (21) DEFAULT '0' NOT NULL");
     56                "id_mot"                => "BIGINT (21) DEFAULT '0' NOT NULL",
     57                "id_document"   => "BIGINT (21) DEFAULT '0' NOT NULL");
    5758
    5859        $spip_mots_documents_key = array(
    59                         "PRIMARY KEY"   => "id_mot, id_document",
    60                         "KEY id_document"       => "id_document");
     60                "PRIMARY KEY"           => "id_mot, id_document",
     61                "KEY id_document"       => "id_document");
    6162
    6263        $tables_auxiliaires['spip_mots_documents'] = array(
  • _plugins_/spipicious_jquery/base/spipicious_upgrade.php

    r50480 r51569  
    101101                        ecrire_meta($nom_meta_base_version,$current_version='0.6.1','non');
    102102                }
     103                if(version_compare($current_version,'0.6.2','<')){
     104                        maj_tables(array('spip_spipicious'));
     105                        $spipicious = sql_select('*','spip_spipicious');
     106                        while($iter = sql_fetch($spipicious)){
     107                                $table = table_objet_sql($iter['objet']);
     108                                $id_table_objet = id_table_objet($iter['objet']);
     109                                $objet = sql_fetsel('*',$table,$id_table_objet.'='.intval($iter['id_objet']));
     110                                if(isset($objet['statut']) && $objet['statut'] != 'publie'){
     111                                        sql_updateq('spip_spipicious',array('statut'=>'prop'),'id_objet='.intval($iter['id_objet'].' AND objet='.sql_quote($iter['objet'])));
     112                                }else if(!is_array($objet)){
     113                                        sql_updateq('spip_spipicious',array('statut'=>'prop'),'id_objet='.intval($iter['id_objet'].' AND objet='.sql_quote($iter['objet'])));
     114                                }
     115                        }
     116                        ecrire_meta($nom_meta_base_version,$current_version='0.6.2','non');
     117                }
    103118                ecrire_metas();
    104119        }
  • _plugins_/spipicious_jquery/modeles/spipicious_nuage_auteur.html

    r50043 r51569  
    11[(#SET{id_groupe,#ENV{id_groupe,#CONFIG{spipicious/groupe_mot,1}}})]
    2 <BOUCLE_motsElement(SPIPICIOUS mots){id_auteur?}{mots.id_groupe=#GET{id_groupe}}{par #ENV{tri,titre}}>
     2[(#SET{mots,#ARRAY})]
     3<BOUCLE_motsElement(SPIPICIOUS mots){id_auteur?}{mots.id_groupe=#GET{id_groupe}}{fusion spipicious.id_mot}{par #ENV{tri,titre}}>
     4        [(#SET{mots,[(#GET{mots}|push{#ID_MOT})]})]
    35        [(#ID_MOT|nuage{#TITRE,[(#ENV{url}|?{[(#ENV{url}|parametre_url{id_mot,#ID_MOT})],#URL_MOT})]})]
    4         <BOUCLE_nb(SPIPICIOUS){id_mot}></BOUCLE_nb>[(#ID_MOT|nuage{'','',#TOTAL_BOUCLE})]<//B_nb>
     6        <BOUCLE_nb(SPIPICIOUS){id_mot}> </BOUCLE_nb>[(#ID_MOT|nuage{'','',#GRAND_TOTAL})]</B_nb><//B_nb>
    57</BOUCLE_motsElement>
    6 [(#NUAGE|nuage_tri{#ENV{tri,titre}}|nuage_affiche{#ENV{max, -1}})]
     8[(#GET{mots}|count|>{0}|oui)
     9[(#NUAGE|nuage_tri{#ENV{tri,titre}}|nuage_affiche{#ENV{max, -1}})]]
  • _plugins_/spipicious_jquery/plugin.xml

    r50772 r51569  
    77                &#169; 2007-2011 - GNU/GPL v2
    88        </licence>
    9         <version>0.7.2</version>
    10         <version_base>0.6.1</version_base>
     9        <version>0.7.3</version>
     10        <version_base>0.6.2</version_base>
    1111        <etat>stable</etat>
    1212        <description>
     
    4848                <inclure>spipicious_pipelines.php</inclure>
    4949        </pipeline>
     50        <pipeline>
     51                <nom>pre_boucle</nom>
     52                <inclure>spipicious_pipelines.php</inclure>
     53        </pipeline>
     54        <pipeline>
     55                <nom>post_edition</nom>
     56                <inclure>spipicious_pipelines.php</inclure>
     57        </pipeline>
    5058        <necessite id="SelecteurGenerique" version="[0.7;]" />
    5159        <necessite id='cfg' version='[1.10.1;]' />
    5260        <necessite id="SPIP" version='[2.0.9;]' />
    5361        <necessite id="saisies" version='[1.1;]' />
     62        <utilise id="nuage" version='[3.2.1;]' />
    5463        <chemin dir='' />
    5564        <categorie>communication</categorie>
  • _plugins_/spipicious_jquery/spipicious_pipelines.php

    r50480 r51569  
    223223        return $flux;
    224224}
     225
     226/**
     227 * Insertion dans le pipeline pre_boucle de SPIP
     228 * Si on ne passe pas le critère tout ni statut aux boucles spipicious, on n'affiche pas ceux pas publiés
     229 */
     230function spipicious_pre_boucle($boucle){
     231        if ($boucle->type_requete == 'spipicious') {
     232                $id_table = $boucle->id_table;
     233                $mstatut = $id_table .'.statut';
     234                if (!isset($boucle->modificateur['criteres']['tout'])
     235                        && !isset($boucle->modificateur['criteres']['statut'])) {
     236                        $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
     237                }
     238        }
     239        return $boucle;
     240}
     241
     242/**
     243 * Insertion dans le pipeline de post-edition
     244 * A l'institution d'un objet (changement de statut), si l'objet n'a pas le statut publié et qu'il a des liens spipicious, on passe ses liens en prop
     245 * sinon, on les publie
     246 */
     247function spipicious_post_edition($flux){
     248        if($flux['args']['action'] == 'instituer'){
     249                $objet = objet_type($flux['args']['table']);
     250                if($flux['data']['statut'] != 'publie'){
     251                        sql_updateq('spip_spipicious',array('statut'=>'prop'),'id_objet='.intval($flux['args']['id_objet']).' AND objet='.sql_quote($objet).' AND statut="publie"');
     252                }else{
     253                        sql_updateq('spip_spipicious',array('statut'=>'publie'),'id_objet='.intval($flux['args']['id_objet']).' AND objet='.sql_quote($objet).' AND statut="prop"');
     254                }
     255        }
     256        return $flux;
     257}
    225258?>
Note: See TracChangeset for help on using the changeset viewer.