Changeset 3068


Ignore:
Timestamp:
03/16/10 21:57:38 (11 years ago)
Author:
kent1
Message:

Le nouveau diogène ... on crée des templates d'articles maintenant

Location:
plugins_spip/diogene
Files:
14 added
8 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/diogene/base/diogene_installer.php

    r2960 r3068  
    4545                                ecrire_meta('diogene',serialize($meta_config),'non');
    4646                        }
     47                        include_spip('base/create');
     48                        include_spip('base/diogene');
     49                        creer_base();
    4750                        ecrire_meta($nom_meta_base_version, $current_version=$version_cible, 'non');
     51                }else if(version_compare($current_version,'0.2','<')){
     52                        include_spip('base/create');
     53                        include_spip('base/diogene');
     54                        creer_base();
     55                        ecrire_meta($nom_meta_base_version, $current_version=0.2, 'non');
    4856                }
    4957        }
     
    5260function diogene_vider_tables($nom_meta_base_version) {
    5361        effacer_meta($nom_meta_base_version);
     62        sql_delete('spip_diogenes');
     63        sql_delete('spip_diogenes_liens');
    5464}
    5565?>
  • plugins_spip/diogene/contenu/page-diogene.html

    r2974 r3068  
    11[(#REM) Fil d'Ariane ]
    22<div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_article}> &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt; <strong class="on">(#TITRE|couper{80})</strong>]</div>
    3 
    4 [(#PIPELINE{diogene_avant_formulaire,[(#ARRAY{args,[(#ENV**|unserialize)],data,''})]})]
    53<BOUCLE_article_en_cours(ARTICLES){id_article}{!statut = 'poubelle'}>
    64        #SET{article_cree,oui}
     
    1513
    1614<div id="formulaire_diogene">
    17         [(#FORMULAIRE_DIOGENE{[(#GET{id_article}|sinon{new})],[(#ENV{id_rubrique}|sinon{0})],[(#ENV{id_trad}|sinon{0})],#ENV{em_type}})]
     15        [(#FORMULAIRE_EDITER_ARTICLE{[(#GET{id_article}|sinon{new})],[(#GET{id_rubrique}|sinon{0})],[(#ENV{id_trad}|sinon{0})]})]
    1816</div>
  • plugins_spip/diogene/diogene_options.php

    r2974 r3068  
    1818        $GLOBALS['spip_pipeline']['diogene_ajout_media_post_traiter']="";
    1919        $GLOBALS['spip_pipeline']['diogene_champs_texte']="";
     20
     21        $GLOBALS['spip_pipeline']['diogene_champs_sup']="";
     22
     23function revision_diogene($id_diogene,$champs=false){
     24
     25        modifier_contenu('diogene', $id_diogene,
     26                array(
     27                        'nonvide' => array('titre' => _T('info_sans_titre')) // champ a mettre a date('Y-m-d H:i:s') s'il y a modif
     28                ),
     29                $champs);
     30
     31        return '';
     32
     33}
    2034?>
  • plugins_spip/diogene/diogene_pipelines.php

    r3062 r3068  
    1111 * @return array
    1212 */
     13
     14function diogene_editer_contenu_objet($flux){
     15        $args = $flux['args'];
     16        $type = $args['type'];
     17        if (in_array($type,array('rubrique','article'))){
     18                $id_secteur = $args['contexte']['id_secteur'] ?
     19                        $args['contexte']['id_secteur'] :
     20                        sql_getfetsel('id_secteur','spip_rubriques','id_parent='.intval($args['contexte']['id_parent']));
     21                if($diogene = sql_fetsel('*','spip_diogenes','id_secteur='.intval($id_secteur))){
     22                        /*
     23                         * On ajoute dans l'environnement les champs ajoutés par diogÚnes et ses sous plugins
     24                         */
     25                        if(unserialize($diogene['champs_ajoutes']) == 'false'){
     26                                $args['diogene_ajouts'] = array();
     27                        }else{
     28                                $args['diogene_ajouts'] = unserialize($diogene['champs_ajoutes']);
     29                        }
     30
     31                        /**
     32                         * On vire les champs que l'on ne souhaite pas
     33                         */
     34                        if(is_array(unserialize($diogene['champs_caches']))){
     35                                foreach(unserialize($diogene['champs_caches']) as $champ){
     36                                        if (preg_match(",<li [^>]*class=[\"']editer_($champ).*<\/li>,Uims",$flux['data'],$regs)){
     37                                                $flux['data'] = preg_replace(",(<li [^>]*class=[\"']editer_($champ).*<\/li>),Uims","",$flux['data'],1);
     38                                        }
     39                                }
     40                        }
     41                        /**
     42                         * On ajoute ce que l'on souhaite ajouter avant le formulaire
     43                         */
     44                        if (preg_match(",<div [^>]*class=[\"'][^>]*formulaire_editer_($type),Uims",$flux['data'],$regs)){
     45                                $args['champs_ajoutes'] = $diogene['champs_ajoutes'];
     46                                $ajouts = pipeline('diogene_avant_formulaire',array('args'=>$args));
     47                                $flux['data'] = preg_replace(",(<div [^>]*class=[\"'][^>]*formulaire_editer_$type),Uims",$ajouts."\\1",$flux['data'],1);
     48                        }
     49                        /**
     50                         * On ajoute en fin de formulaire les blocs supplémentaires
     51                         */
     52                        if (strpos($flux['data'],'<!--extra-->')!==FALSE){
     53                                $saisie = pipeline('diogene_ajouter_media',array('args'=>$args));
     54                                $flux['data'] = preg_replace(',(.*)(<!--extra-->),ims',"\\1<ul>".$saisie."</ul>\\2",$flux['data'],1);
     55                        }
     56
     57                }
     58        }
     59        return $flux;
     60}
     61
     62function diogene_formulaire_charger($flux){
     63        $form = $flux['args']['form'];
     64        if ($objet = substr($form,7) AND in_array($form,array('editer_article','editer_rubrique')))
     65                {
     66                // On ne fait rien si l'id_parent principal est incoherent (exemple : compat pages uniques)
     67                $id_objet = $flux['data'][$id_table_objet];
     68
     69                $id_table_objet = id_table_objet($objet);
     70
     71                $post_valeurs = pipeline('diogene_ajout_media_post_charger',
     72                                array(
     73                                        'args' => array(
     74                                                $id_table_objet => $id_objet,
     75                                                'mode' => 'chargement',
     76                                                'valeurs' => $flux['data']
     77                                        ),
     78                                        'data' => array()
     79                                ));
     80                if(is_array($post_valeurs)){
     81                        $valeurs = array_merge($flux['data'],$post_valeurs);
     82                }
     83        }
     84        return $flux;
     85}
     86
     87function diogene_formulaire_verifier($flux){
     88        $form = $flux['args']['form'];
     89        if ($objet = substr($form,7) AND in_array($form,array('editer_article','editer_rubrique'))){
     90                // On ne fait rien si l'id_parent principal est incoherent (exemple : compat pages uniques)
     91                if (_request('id_parent') < 0) return $flux;
     92
     93                $id_table_objet = id_table_objet($objet);
     94                $flux = pipeline('diogene_ajout_media_post_verifier',
     95                        array(
     96                                'args' => array(
     97                                        'erreurs' => $flux['data']
     98                                ),
     99                                'data' => $flux['data']
     100                        )
     101                );
     102        }
     103        return $flux;
     104}
     105
    13106function diogene_pre_edition($flux){
     107        if(in_array($flux['args']['type'],array('article','rubrique')) && ($flux['args']['action']=='modifier')){
     108                pipeline('diogene_ajout_media_post_traiter',
     109                        array(
     110                                'args' => $flux['args']
     111                        )
     112                );
     113        }
    14114        if($flux['args']['table'] == 'spip_rubriques'){
    15115                $id_rubrique = $flux['args']['id_objet'];
     
    29129        return $flux;
    30130}
     131function diogene_diogene_champs_sup($flux){
     132
     133}
    31134?>
  • plugins_spip/diogene/formulaires/diogene.html

    r2974 r3068  
    2727                                [(#SAISIE{input,titre,
    2828                                        label=<:texte_titre_obligatoire:>})]
    29 
     29                                <!--polyhier-->
    3030                                [(#CONFIG{diogene/texte/rubrique}|count|=={1}|non)
    3131                                <INCLURE{fond=formulaires/selecteur_rubrique}{env}>]
     
    6666
    6767                                [(#CONFIG{diogene/texte/textearticle}|=={on}|oui)
    68                                 <li class="editer_textearticle">
    69                                         <label for="textearticle"><:info_texte:> : </label>
     68                                <li class="editer_texte">
     69                                        <label for="texte"><:info_texte:> : </label>
    7070                                         [<p class='formulaire_erreur'>(#ENV**{erreurs}|table_valeur{textearticle})</p>]
    71                                          <textarea name='textearticle' id='textearticle' class='inserer_barre_edition' rows='12' cols='48' lang="#LANG">[(#ENV**{textearticle})]</textarea>
     71                                         <textarea name='texte' id='texte' class='inserer_barre_edition' rows='12' cols='48' lang="#LANG">[(#ENV**{texte})]</textarea>
    7272                                </li>]
    7373
  • plugins_spip/diogene/formulaires/diogene.php

    r3062 r3068  
    11<?php
     2
     3include_spip('inc/editer');
    24
    35function formulaires_diogene_charger_dist($id_article='new', $id_rubrique=0, $lier_trad=0, $type='normal',$redirect=''){
     
    1416        else{
    1517                $auteur_statut = $visiteur_session['statut'];
    16 
    1718                // on cherche un article deja existant seulement si la configuration le permet
    1819                if ($config['chercher_article']=='oui') {
    1920                        if(!intval($id_article)){
    20                                 $id_article = sql_getfetsel("art.id_article","spip_articles AS art LEFT JOIN spip_auteurs_articles AS aut ON (art.id_article=aut.id_article)","art.statut IN ('prop','prepa') AND art.objet_type = '$type' AND aut.id_auteur = $id_auteur");
     21                                $id_article = sql_getfetsel("art.xid_article","spip_articles AS art LEFT JOIN spip_auteurs_articles AS aut ON (art.id_article=aut.id_article)","art.statut IN ('prop','prepa') AND art.objet_type = '$type' AND aut.id_auteur = $id_auteur");
    2122                                if(!intval($id_article)){
    2223                                        $id_article = 'new';
     
    4546
    4647                        // Si l'article existe déjà, on récupÚre ses anciennes valeurs
    47                         $valeurs = sql_fetsel("*","spip_articles","id_article=$id_article");
    48 
    49                         // Le textarea pour le texte dans le public est dénommé textearticle
    50                         $valeurs['textearticle'] = $valeurs['texte'];
     48                        $id_parent = sql_getfetsel("id_rubrique","spip_articles","id_article=$id_article");
     49
     50                        $valeurs= formulaires_editer_objet_charger('article',$id_article,$id_parent,$lier_trad,$redirect,'');
    5151
    5252                        // et la valeur pour rubrique = rubrique
     
    150150function formulaires_diogene_verifier_dist($id_article='new',$id_rubrique=0, $lier_trad=0,$type='normal',$redirect=''){
    151151        //initialise le tableau des erreurs
    152         $erreurs = array();
    153 
    154     //initilise le tableau de valeurs $champs => $valeur
     152        $erreurs = formulaires_editer_objet_verifier('article',$id_article,array());
     153
     154    //initialise le tableau de valeurs $champs => $valeur
    155155    $valeurs = array();
    156156
     
    211211function formulaires_diogene_traiter_dist($id_article='new',$id_rubrique=0, $lier_trad=0,$type='normal',$redirect=''){
    212212        include_spip('base/abstract_sql');
     213        formulaires_editer_objet_traiter('article',$id_article,$id_parent,$lier_trad,$redirect,'');
    213214        $invalider = true;
    214215        $config = lire_config('diogene/statuts/');
     
    234235
    235236        $valeurs['titre'] = _request('titre');
    236         $valeurs['texte'] = $valeurs['textearticle'];
     237        $valeurs['texte'] = _request('texte');
    237238        unset($valeurs['textearticle']);
    238239
  • plugins_spip/diogene/lang/diogene_fr.php

    r2974 r3068  
    7979
    8080        // V
    81 
     81        'valeur_pas_float' => 'Le champs "@champs@" doit &ecirc;tre un nombre &agrave; virgule.',
    8282);
    8383
  • plugins_spip/diogene/plugin.xml

    r3062 r3068  
    77        </auteur>
    88        <version>
    9         0.1
     9        0.2
    1010        </version>
    1111        <version_base>
    12         0.1
     12        0.2
    1313        </version_base>
    1414        <etat>
     
    2525                <inclure>diogene_pipelines.php</inclure>
    2626        </pipeline>
     27        <pipeline>
     28                <nom>declarer_tables_interfaces</nom>
     29                <inclure>base/diogene.php</inclure>
     30        </pipeline>
     31        <pipeline>
     32                <nom>declarer_tables_principales</nom>
     33                <inclure>base/diogene.php</inclure>
     34        </pipeline>
     35        <pipeline>
     36                <nom>declarer_tables_auxiliaires</nom>
     37                <inclure>base/diogene.php</inclure>
     38        </pipeline>
     39        <pipeline>
     40                <nom>editer_contenu_objet</nom>
     41                <inclure>diogene_pipelines.php</inclure>
     42        </pipeline>
     43        <pipeline>
     44                <nom>formulaire_charger</nom>
     45                <inclure>diogene_pipelines.php</inclure>
     46        </pipeline>
     47        <pipeline>
     48                <nom>formulaire_verifier</nom>
     49                <inclure>diogene_pipelines.php</inclure>
     50        </pipeline>
     51        <pipeline>
     52                <nom>pre_edition</nom>
     53                <inclure>diogene_pipelines.php</inclure>
     54        </pipeline>
     55        <bouton id='diogenes' parent="configuration">
     56                <titre>diogene:bouton_editer_diogene</titre>
     57                <icone>images/diogene-24.png</icone>
     58        </bouton>
    2759        <icon>images/diogene-128.png</icon>
    2860        <install>base/diogene_installer.php</install>
Note: See TracChangeset for help on using the changeset viewer.