Changeset 57480 in spip-zone


Ignore:
Timestamp:
Jan 21, 2012, 7:49:20 PM (8 years ago)
Author:
julienlfy@…
Message:

Poursuite ré-ecriture pour SPIP 3 :

  • Mise en conformité du bloc de changement de statut
  • Correction enregistrement
  • Portlet pour le texte par référence
  • correction des references à l'ancienne table spip_auteurs_evenement
Location:
_plugins_/simple_calendrier/trunk
Files:
1 added
5 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/simple_calendrier/trunk/action/editer_evenement.php

    r53019 r57480  
    5757        $champs = array(
    5858                'id_rubrique' => $id_rubrique,
    59                 'statut' => 'prop',
     59                'statut' => 'prepa',
    6060                'date' => date('Y-m-d H:i:s'),
    6161                'lang' => $lang,
     
    100100        $c = collecter_requests(
    101101                // white list
    102                 array('titre', 'date_debut', 'date_fin', 'lieu', 'descriptif', 'texte'),
     102                array('titre', 'date_debut', 'date_fin', 'lieu', 'descriptif', 'texte', 'type', 'id_objet'),
    103103                // black list
    104104                array('id_parent', 'statut'),
  • _plugins_/simple_calendrier/trunk/base/simplecal_base.php

    r53019 r57480  
    1010
    1111function simplecal_declarer_tables_interfaces($interfaces) {
    12         $interfaces['table_des_tables']['evenements'] = 'evenements';
    13        
    14         // Titre pour URL propres
     12    $interfaces['table_des_tables']['evenements'] = 'evenements';
     13   
     14    // Titre pour URL propres
    1515    //$interface['table_titre']['evenements'] = "titre, '' AS lang";
    1616   
     
    1919   
    2020    // ---------------------------------------------------------------------------
    21         // Champs de type 'date' pour la gestion des critères age, age_relatif, etc.
     21    // Champs de type 'date' pour la gestion des critères age, age_relatif, etc.
    2222    // ---------------------------------------------------------------------------
    2323    // Note : provoque l'enregistrement de la date de publication (lors de sa modif) dans date
    2424    //$interface['table_date']['evenements'] = 'date';
    2525   
    26         return $interfaces;
     26    return $interfaces;
    2727}
    2828
    2929
    3030function simplecal_declarer_tables_objets_sql($tables){
    31        
     31   
    3232    // Champs de la table spip_evenements
    33         $fields = array(
     33    $fields = array(
    3434        "id_evenement"      => "bigint(21) NOT NULL auto_increment",
    3535        "id_secteur"        => "bigint(21) NOT NULL DEFAULT '0'",
     
    4848        "langue_choisie"    => "varchar(3) NULL DEFAULT 'non'",
    4949        "maj"               => "timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"
    50         );
     50    );
    5151   
    5252    // champs qui possedent les cles
    53         $key = array(
     53    $key = array(
    5454        "PRIMARY KEY"     => "id_evenement",
    5555        "KEY id_secteur"  => "id_secteur",
    5656        "KEY id_rubrique" => "id_rubrique"
    57         );
     57    );
    5858
    5959    // champs candidats à la jointure
    60         $join = array(
    61             "id_evenement" => "id_evenement",
     60    $join = array(
     61        "id_evenement" => "id_evenement",
    6262        "id_secteur"   => "id_secteur",
    6363        "id_rubrique"  => "id_rubrique"
    64         );
     64    );
    6565   
    6666    // champ 'statut'
     
    7878        'publie' => 'simplecal:titre_evenement_publie',
    7979        'refuse' => 'simplecal:titre_evenement_refuse',
    80                 'poubelle'=>'simplecal:titre_evenement_supprime'
     80        'poubelle'=>'simplecal:titre_evenement_supprime'
    8181    );
    8282   
     
    9191    // La Table
    9292    $tables['spip_evenements'] = array(
    93                 'texte_retour' => 'icone_retour',
    94                 'texte_objets' => 'simplecal:evenements',
    95                 'texte_objet' => 'simplecal:evenement',
    96                 'texte_modifier' => 'simplecal:icone_modifier_evenement',
    97                 'texte_creer' => 'simplecal:icone_nouvel_evenement',
    98                 'info_aucun_objet'=> 'simplecal:info_aucun_evenement',
    99                 'info_1_objet' => 'simplecal:info_1_evenement',
    100                 'info_nb_objets' => 'simplecal:info_nb_evenements',
    101                 'texte_logo_objet' => 'simplecal:logo_evenement',
    102                 'titre' => 'titre, lang',
    103                 'date' => 'date', // indique le nom du field pour le formulaires_dater_charger_dist
    104                 'principale' => 'oui',
    105                 'field'=> $fields,
    106                 'key' => $key,
    107                 'join' => $join,
    108                 'statut' =>  array($statut),
    109                 'statut_titres' => $statut_titres,
    110                 'statut_textes_instituer' => $statut_textes_instituer,
     93        'texte_retour' => 'icone_retour',
     94        'texte_objets' => 'simplecal:evenements',
     95        'texte_objet' => 'simplecal:evenement',
     96        'texte_modifier' => 'simplecal:icone_modifier_evenement',
     97        'texte_creer' => 'simplecal:icone_nouvel_evenement',
     98        'info_aucun_objet'=> 'simplecal:info_aucun_evenement',
     99        'info_1_objet' => 'simplecal:info_1_evenement',
     100        'info_nb_objets' => 'simplecal:info_nb_evenements',
     101        'texte_logo_objet' => 'simplecal:logo_evenement',
     102        'titre' => 'titre, lang',
     103        'date' => 'date', // indique le nom du field pour le formulaires_dater_charger_dist
     104        'principale' => 'oui',
     105        'field'=> $fields,
     106        'key' => $key,
     107        'join' => $join,
     108        'statut' =>  array($statut),
     109        'texte_changer_statut' => 'simplecal:entree_evenement_publie',
     110        'statut_titres' => $statut_titres,
     111        'statut_textes_instituer' => $statut_textes_instituer,
    111112       
    112113        'tables_jointures' => array('id_auteur' => 'auteurs_liens'),
    113114
    114                 'rechercher_champs' => array('titre'=>8, 'descriptif'=>4, 'texte'=>2),
     115        'rechercher_champs' => array('titre'=>8, 'descriptif'=>4, 'texte'=>2),
    115116       
    116                 'rechercher_jointures' => array(
    117                         'document' => array('titre' => 2, 'descriptif' => 1)
    118                 ),
    119                 'champs_versionnes' => array('id_rubrique', 'titre', 'descriptif', 'texte', 'lieu', 'date_debut', 'date_fin'),
    120         );
     117        'rechercher_jointures' => array(
     118            'document' => array('titre' => 2, 'descriptif' => 1)
     119        ),
     120        'champs_versionnes' => array('id_rubrique', 'titre', 'descriptif', 'texte', 'lieu', 'date_debut', 'date_fin'),
     121    );
    121122   
    122123    // On peut lire dans :
     
    125126    // - Extensions/forum/base/forum.php   : jointures sur les forums pour tous les objets
    126127   
    127         return $tables;
     128    return $tables;
    128129}
    129130
  • _plugins_/simple_calendrier/trunk/formulaires/editer_evenement.php

    r55074 r57480  
    2020    $valeurs["date_fin"] = date_sql2affichage($valeurs["date_fin"]);
    2121   
    22     // champ ref = assemblage du champ type et id_objet
    23     $valeurs["ref"] = $valeurs["type"].$valeurs["id_objet"];   
     22    // Champ ref ("0" en base qd pas renseigné)
     23    if (!empty($valeurs["id_objet"])) {
     24        // assemblage du champ type et id_objet
     25        $valeurs["ref"] = $valeurs["type"].$valeurs["id_objet"];
     26    }
     27   
     28    // Appel en creation via portlet
     29    if (_request("new")=='oui'){
     30        $type = trim(_request("type"));
     31        $id_objet = trim(_request("id_objet"));
     32        if ($type and $id_objet){
     33            // assemblage du champ type et id_objet
     34            $valeurs["ref"] = $type.$id_objet;
     35        }
     36    }
    2437   
    2538    return $valeurs;
     
    3144 */
    3245function formulaires_editer_evenement_identifier_dist($id_evenement='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
    33         return serialize(array(intval($id_evenement),$lier_trad));
     46    return serialize(array(intval($id_evenement),$lier_trad));
    3447}
    3548
     
    3851function evenements_edit_config($row)
    3952{
    40         global $spip_ecran, $spip_lang, $spip_display;
     53    global $spip_ecran, $spip_lang, $spip_display;
    4154
    42         $config = $GLOBALS['meta'];
    43         $config['lignes'] = ($spip_ecran == "large")? 8 : 5;
    44         $config['langue'] = $spip_lang;
     55    $config = $GLOBALS['meta'];
     56    $config['lignes'] = ($spip_ecran == "large")? 8 : 5;
     57    $config['langue'] = $spip_lang;
    4558
    46         $config['restreint'] = ($row['statut'] == 'publie');
    47         return $config;
     59    $config['restreint'] = ($row['statut'] == 'publie');
     60    return $config;
    4861}
    4962
    5063function formulaires_editer_evenement_verifier_dist($id_evenement='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
    51         // Verifications automatiques
     64    // Verifications automatiques
    5265    // ---------------------------
    5366    $champs_obligatoires = array('titre', 'date_debut');
     
    104117    }
    105118   
    106         return $erreurs;
     119    return $erreurs;
    107120}
    108121
    109122function formulaires_editer_evenement_traiter_dist($id_evenement='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
    110        
     123   
    111124    // On remet les dates au format SQL ('14/08/2011' => '14/08/2011 00:00:00')
    112125    set_request("date_debut", date_saisie2sql(_request("date_debut")));
     
    134147   
    135148   
    136    
    137    
    138    
    139149    return formulaires_editer_objet_traiter('evenement',$id_evenement,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
    140150}
    141 
    142 
    143151?>
  • _plugins_/simple_calendrier/trunk/inc/simplecal_utils.php

    r53019 r57480  
    8181}
    8282
    83 // 'breve', '17' => 'breve17'
    84 function simplecal_get_ref_from_obj($type, $id_objet){
    85     $le_type = '';
    86     $id = '';
    87    
    88     if (preg_match("/^(article|breve)$/i", $type, $matches)){
    89         $le_type = $matches[0];
    90     }
    91    
    92     if (preg_match("/^([0-9]*)$/i", $id_objet, $matches)){
    93         $id = $matches[0];
    94     }   
    95    
    96     $ref = '';
    97     if ($le_type && $id){
    98         $ref = $le_type.$id;
    99     }
    100    
    101     return $ref;
    102 }
    10383
    10484// 'breve', '17' => 'Le titre de la breve n°17'
     
    154134   
    155135    return $url;
    156 }
    157 
    158 // Portlet d'ajout d'évènement (fiche article/breve)
    159 function simplecal_get_portlet_ajout($type, $id_objet){
    160     $ref = $type.$id_objet;
    161    
    162     $bloc = "";
    163     $bloc .= debut_cadre_enfonce(_DIR_SIMPLECAL_IMG_PACK."simplecal-logo-24.png", $return=true, $fonction='', $titre=_T('simplecal:titre_boite_refobj'));
    164    
    165     $ul = "";
    166     $rows = sql_allfetsel("e.*", "spip_evenements as e", "e.type='".$type."' and e.id_objet=".$id_objet);
    167     foreach ($rows as $row){
    168         $id_evt = $row['id_evenement'];
    169         $ul .= '<li><a href="'.generer_url_ecrire("evenement_voir", "id_evenement=$id_evt").'">'.simplecal_affiche_dates($row['date_debut'], $row['date_fin']).'</a></li>';
    170     }
    171     if ($ul!=""){
    172         $ul = '<ul>'.$ul.'</ul>';
    173         $bloc .= $ul;
    174     }
    175    
    176     if (autoriser('creer', 'evenement', null)){
    177         $bloc .= icone_horizontale(_T('simplecal:raccourcis_ajouter_date'), generer_url_ecrire("evenements_edit", "new=oui&retour=objet&refobj=$ref"), _DIR_SIMPLECAL_IMG_PACK."simplecal-logo-24.png", "creer.gif", false);
    178     }
    179     $bloc .= fin_cadre_enfonce(true);
    180    
    181     return $bloc;
    182136}
    183137
  • _plugins_/simple_calendrier/trunk/lang/simplecal_fr.php

    r55074 r57480  
    9090    'explication_ref' => 'La r&eacute;f&eacute;rence &agrave; un article ou une br&egrave;ve (ex : article23 ; breve45)',
    9191    'explication_texte' => 'Le texte qui d&eacute;crit l\'&eacute;v&egrave;nement.',
    92     'entree_evenement_publie' => 'Statut de cet &eacute;v&egrave;nement :',
     92    'entree_evenement_publie' => 'Cet &eacute;v&egrave;nement est :',
    9393    'enregistrer_dabord_une_fois' => "C'est possible ! <br /><br />Pour cela, veuillez enregistrer la fiche une premi&egrave;re fois...",
    9494    'evenement' => "&Eacute;v&egrave;nement",
     
    103103
    104104// I
     105    'info_aucun_evenement' => 'Aucun &eacute;v&egrave;nement',
    105106    'info_titre' => 'Titre',
    106107    'info_date_debut' => 'Date de d&eacute;but',
     
    130131    'info_evenements_02' => 'Ev&egrave;nements',
    131132    'info_evenements_valider' => 'Ev&egrave;nements &agrave; valider',
    132     'info_evenement_lie' => 'Ev&egrave;nement li&eacute;',
     133    'info_evenements_lies' => 'Ev&egrave;nements associ&eacute;s',
    133134    'icone_nouvel_evenement' => '&Eacute;crire un nouvel &eacute;v&egrave;nement',
    134135    'icone_evenements' => 'Ev&egrave;nements',
  • _plugins_/simple_calendrier/trunk/paquet.xml

    r55074 r57480  
    4040    <pipeline nom="accueil_encours" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 -->
    4141    <pipeline nom="accueil_informations" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 -->
    42     <pipeline nom="compter_contributions_auteur" inclure="simplecal_pipelines.php" />
     42    <pipeline nom="compter_contributions_auteur" inclure="simplecal_pipelines.php" /> <!-- OK SPIP3 -->
    4343   
    4444    <!-- prise en compte du squelette evenement.html pour les urls de type spip.php?evenement123 -->
  • _plugins_/simple_calendrier/trunk/prive/objets/contenu/evenement.html

    r55074 r57480  
    2929        <div dir='#LANG_DIR' class='#EDIT{texte} texte'>
    3030            &rarr;<:simplecal:reference_objet:>
    31             [(#TYPE|=={article}|oui)<a href="?exec=#TYPE&id_#TYPE=#ID_OBJET">#TYPE#ID_OBJET</a>]
    32             [(#TYPE|=={breve}|oui)<a href="?exec=#TYPEs_voir&id_#TYPE=#ID_OBJET">#TYPE#ID_OBJET</a>]
     31            <a href="?exec=#TYPE&id_#TYPE=#ID_OBJET">#TYPE#ID_OBJET</a>
    3332        </div>
    3433    </div>]
  • _plugins_/simple_calendrier/trunk/prive/objets/infos/evenement.html

    r53019 r57480  
    33<div class='numero'><:simplecal:info_gauche_numero_evenement:><p>#ID_EVENEMENT</p></div>
    44
    5 [(#REM)
    6         Bloc de changement de statut
    7 ]
    8 [(#ID_EVENEMENT|instituer_evenement{#ID_RUBRIQUE,#STATUT})]
     5#FORMULAIRE_INSTITUER_OBJET{evenement,#ID_EVENEMENT}
    96
    107
    118[(#REM)
    12         Bouton voir en ligne   
     9
     10    Bouton voir en ligne
     11   
    1312]
    14 
    15 
    1613<BOUCLE_publiee(EVENEMENTS){id_evenement}>
    17         [(#VAL{redirect}
    18                 |generer_url_action{type=evenement&id=#ID_EVENEMENT}
    19                 |parametre_url{var_mode,calcul}
    20                 |icone_horizontale{<:icone_voir_en_ligne:>,racine})]
     14    [(#VAL{redirect}
     15        |generer_url_action{type=evenement&id=#ID_EVENEMENT}
     16        |parametre_url{var_mode,calcul}
     17        |icone_horizontale{<:icone_voir_en_ligne:>,racine})]
    2118</BOUCLE_publiee>
    22         [(#AUTORISER{previsualiser,evenement,#ID_EVENEMENT,'',#ARRAY{statut,#STATUT}})
    23                 [(#VAL{redirect}
    24                         |generer_url_action{type=evenement&id=#ID_EVENEMENT}
    25                         |parametre_url{var_mode,preview}
    26                         |icone_horizontale{<:previsualiser:>,preview})]
    27         ]
     19    [(#AUTORISER{previsualiser,evenement,#ID_EVENEMENT,'',#ARRAY{statut,#STATUT}})
     20        [(#VAL{redirect}
     21            |generer_url_action{type=evenement&id=#ID_EVENEMENT}
     22            |parametre_url{var_mode,preview}
     23            |icone_horizontale{<:previsualiser:>,preview})]
     24    ]
    2825<//B_publiee>
    2926
  • _plugins_/simple_calendrier/trunk/prive/simplecal_style_prive.css

    r53019 r57480  
    2020/* datepicker */
    2121#ui-datepicker-div { font-size:0.7em; }
     22
     23ul.simplecal-portlet { list-style-type:disc; }
     24ul.simplecal-portlet li { margin-left:20px; }
  • _plugins_/simple_calendrier/trunk/simplecal_autoriser.php

    r53019 r57480  
    8787            if ($row['statut'] != 'publie') {
    8888                // Propriétaire ?
    89                 $nb = sql_countsel('spip_auteurs_evenements', "id_evenement=".$id." and id_auteur = ".$qui['id_auteur']);
     89                $nb = sql_countsel('spip_auteurs_liens as lien', "lien.objet='evenement' and lien.id_objet=".$id." and lien.id_auteur = ".$qui['id_auteur']);
    9090                if ($nb>0){
    9191                    $autorise = true;
  • _plugins_/simple_calendrier/trunk/simplecal_pipelines.php

    r55074 r57480  
    168168                'id_objet'=>$id_article
    169169            );
    170             $portlet = recuperer_fond('prive/squelettes/inclure/portlet_article', $contexte);
    171            
    172             //$bloc = simplecal_get_portlet_ajout('article', $id_article);
     170            $portlet = recuperer_fond('prive/squelettes/inclure/portlet_refobj', $contexte);
    173171            $flux['data'] .= $portlet;
    174172        }
     
    176174   
    177175    // On se trouve sur une brève
    178     if ($exec == 'breves_voir'){
     176    if ($exec == 'breve'){
    179177        if ($GLOBALS['meta']['simplecal_refobj'] == 'oui'){
    180178            $id_breve = intval($flux['args']['id_breve']);
    181             $bloc = simplecal_get_portlet_ajout('breve', $id_breve);
    182             $flux['data'] .= $bloc;
     179            $contexte = array(
     180                'type' => 'breve',
     181                'id_objet'=>$id_breve
     182            );
     183            $portlet = recuperer_fond('prive/squelettes/inclure/portlet_refobj', $contexte);
     184            $flux['data'] .= $portlet;
    183185        }
    184186    }
     
    189191
    190192
    191 // Liste des contributions d'un auteur (depuis spip 2.1.0)
    192 // http://programmer.spip.org/compter_contributions_auteur
     193// Liste des contributions d'un auteur (bloc auteur)
    193194function simplecal_compter_contributions_auteur($flux){
    194195    $id_auteur = intval($flux['args']['id_auteur']);
    195     $nb = sql_countsel("spip_auteurs_evenements as lien", "lien.id_auteur = ".$id_auteur);
    196    
    197     if ($nb == 1){
    198         $phrase = $nb." "._T('simplecal:terme_evenement');
    199     } else if ($nb > 1){
    200         $phrase = $nb." "._T('simplecal:terme_evenements');
    201     } else {
    202         $phrase = "";
    203     }
    204    
    205     if ($nb>0){
    206         $flux['data'][] = $phrase;
    207     }
    208    
    209     return $flux;
     196        if ($cpt = sql_countsel("spip_auteurs_liens AS lien", "lien.objet='evenement' and lien.id_auteur=".intval($flux['args']['id_auteur']))){
     197                $contributions = singulier_ou_pluriel($cpt,'simplecal:info_1_evenement','simplecal:info_n_evenements');
     198                $flux['data'][] = $contributions;
     199        }
     200        return $flux;
    210201}
    211202
Note: See TracChangeset for help on using the changeset viewer.