Changeset 100136 in spip-zone


Ignore:
Timestamp:
Oct 24, 2016, 10:25:56 PM (5 years ago)
Author:
teddy.spip@…
Message:
  • Retour du traitement des balises <encart> et <marge> dans le texte ;
  • Intégration de la liste des articles auxquels l'encart est lié dans sa fiche au lieu de la zone d'extra ;
  • On a maintenant une liaison plus classique des encarts, à la méthode de SPIP. On verra au retour des utilisateurs si on garde cette affichage ou pas.
  • Grosse mise à niveau, donc, up de y.
Location:
_plugins_/encarts/trunk
Files:
16 added
1 deleted
15 edited
3 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/encarts/trunk/action/supprimer_encart.php

    r100117 r100136  
    11<?php
    2 /*
    3  * Plugin Encarts
    4  * (c) 2011 Camille Lafitte, Cyril Marion
    5  * Avec l'aide de Matthieu Marcillaud
    6  * Distribue sous licence GPL
     2/**
     3 * Action : supprimer un encart
    74 *
     5 * @plugin     Encarts
     6 * @copyright  2013-2016
     7 * @licence    GNU/GPL
     8 * @package    SPIP\Encarts\Action
    89 */
    910
    10 if (!defined("_ECRIRE_INC_VERSION")) return;
     11
     12if (!defined("_ECRIRE_INC_VERSION")) {
     13        return;
     14}
    1115
    1216function action_supprimer_encart_dist() {
    13 
     17        include_spip('inc/utils');
    1418        $securiser_action = charger_fonction('securiser_action', 'inc');
    1519        $arg = $securiser_action();
     
    1721
    1822        // suppression
    19         sql_delete('spip_encarts', 'id_encart='.$id_encart);
    20         sql_delete('spip_encarts_liens', 'id_encart='.$id_encart);
     23        include_spip('base/abstract_sql');
     24        sql_delete('spip_encarts', 'id_encart=' . $id_encart);
     25        sql_delete('spip_encarts_liens', 'id_encart=' . $id_encart);
    2126
    2227        // retour
     
    2631}
    2732
    28 
    29 ?>
  • _plugins_/encarts/trunk/encarts_autorisations.php

    r100130 r100136  
    7070 **/
    7171function autoriser_encartcreer_menu_dist($faire, $type, $id, $qui, $opt) {
     72        include_spip('inc/autoriser');
    7273        return autoriser('creer', 'encart', '', $qui, $opt);
    7374}
     
    150151 **/
    151152function autoriser_encart_associer_dist($faire, $type, $id, $qui, $opts) {
    152 
     153        include_spip('inc/autoriser');
    153154        $autoriser = (
    154155                ($qui['statut'] == '0minirezo' AND !$qui['restreint'])
     
    180181 */
    181182function autoriser_encart_dissocier_dist($faire, $type, $id, $qui, $opts) {
    182 
     183        include_spip('base/abstract_sql');
     184        include_spip('inc/autoriser');
    183185        $autoriser = (
    184186                autoriser('associer', 'encart', $id, $qui, $opts)
  • _plugins_/encarts/trunk/encarts_pipelines.php

    r100130 r100136  
    3131 */
    3232function encarts_affiche_milieu($flux) {
     33        include_spip('inc/pipelines_ecrire');
     34        include_spip('inc/utils');
    3335        $texte = "";
    3436        $e = trouver_objet_exec($flux['args']['exec']);
     
    7072        return $flux;
    7173}
     74
     75/**
     76 * Traiter les textes contenant des <encart> .... </encart>
     77 * ou des <marge>...</marge>
     78 * en les remplaçant par un span...
     79 *
     80 * @param string $texte à analyser
     81 * @return texte modifié
     82 **/
     83function encarts_pre_propre($texte) {
     84        if (false !== strpos($texte, '<')) {
     85                if (preg_match_all(',<(' . _TYPES_ENCARTS . ')>(.*?)</\1>,is', $texte, $regs, PREG_SET_ORDER)) {
     86                        foreach ($regs as $reg) {
     87                                $css = 'encart';
     88                                if ($reg[1] != 'encart') {
     89                                        $css .= " " . $reg[1];
     90                                }
     91                                $texte = str_replace($reg[0], "<span class='$css'>" . $reg[2] . "</span>", $texte);
     92                        }
     93                }
     94        }
     95
     96        return $texte;
     97}
     98
     99/**
     100 * Mettre les vu=oui lorsque l'on met un modèle
     101 * d'encart dans un texte.
     102 *
     103 **/
     104function encarts_post_edition($flux) {
     105        include_spip('inc/utils');
     106        include_spip('base/objets');
     107        if (!in_array($flux['args']['type'], array('forum', 'signature'))) {
     108                $marquer_doublons_encart = charger_fonction('marquer_doublons_encart', 'inc');
     109                $marquer_doublons_encart($flux['data'], $flux['args']['id_objet'], $flux['args']['type'], id_table_objet($flux['args']['type'], $flux['args']['serveur']), $flux['args']['table_objet'], $flux['args']['spip_table_objet'], '', $flux['args']['serveur']);
     110        }
     111
     112        return $flux;
     113}
  • _plugins_/encarts/trunk/formulaires/editer_encart.html

    r88539 r100136  
    77                #ACTION_FORMULAIRE{#ENV{action}}
    88                <input type='hidden' name='id_encart' value='#ENV{id_encart}' />
    9                 <ul>
     9                <[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
    1010                        #GENERER_SAISIES{#ENV{_saisies}}
    11                 </ul>
     11                </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
    1212                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    1313                <!--extra-->
  • _plugins_/encarts/trunk/inc/marquer_doublons_encart.php

    r44078 r100136  
    1111$GLOBALS['encarts_liste_champs'][] = 'texte';
    1212$GLOBALS['encarts_liste_champs'][] = 'chapo';
    13  
    1413
    15 function inc_marquer_doublons_encart_dist($champs,$id,$type,$id_table_objet,$table_objet,$spip_table_objet, $desc=array(), $serveur=''){
    16         $champs_selection=array();
    17                 foreach ($GLOBALS['encarts_liste_champs'] as $champs_choisis) {
    18                         if ( isset($champs[$champs_choisis]) )
    19                         array_push($champs_selection,$champs_choisis);
     14
     15function inc_marquer_doublons_encart_dist($champs, $id, $type, $id_table_objet, $table_objet, $spip_table_objet, $desc = array(), $serveur = '') {
     16        include_spip('inc/utils');
     17        include_spip('inc/lien');
     18        include_spip('base/abstract_sql');
     19        $champs_selection = array();
     20        $champs_a_traiter = '';
     21        foreach ($GLOBALS['encarts_liste_champs'] as $champs_choisis) {
     22                if (isset($champs[$champs_choisis])) {
     23                        array_push($champs_selection, $champs_choisis);
    2024                }
    21         if (count($champs_selection) == 0)
     25        }
     26        if (count($champs_selection) == 0) {
    2227                return;
    23         if (!$desc){
     28        }
     29        if (!$desc) {
    2430                $trouver_table = charger_fonction('trouver_table', 'base');
    2531                $desc = $trouver_table($table_objet, $serveur);
     
    2834        // charger le champ manquant en cas de modif partielle de l     'objet
    2935        // seulement si le champ existe dans la table demande
    30        
    31                 foreach ($champs_selection as $champs_a_parcourir) {
    32                         if (isset($desc['field'][$champs_a_parcourir])) {
     36
     37        foreach ($champs_selection as $champs_a_parcourir) {
     38                if (isset($desc['field'][$champs_a_parcourir])) {
    3339                        $load = $champs_a_parcourir;
    3440                        $champs_a_traiter .= $champs[$champs_a_parcourir];
    35                         }
    36                 }       
     41                }
     42        }
    3743
    38         if ($load){
     44        if ($load) {
    3945                $champs[$load] = "";
    40                 $row = sql_fetsel($load, $spip_table_objet, "$id_table_objet=".sql_quote($id));
    41                 if ($row AND isset($row[$load]))
     46                $row = sql_fetsel($load, $spip_table_objet, "$id_table_objet=" . sql_quote($id));
     47                if ($row AND isset($row[$load])) {
    4248                        $champs[$load] = $row[$load];
     49                }
    4350        }
    44         include_spip('inc/texte');
    45         include_spip('base/abstract_sql');
    4651        $GLOBALS['doublons_encarts_inclus'] = array();
    47         traiter_modeles($champs_a_traiter, array('encarts'=>array('encart'))); // detecter les doublons
    48         sql_updateq("spip_encarts_liens", array("vu" => 'non'), "id_objet=$id AND objet=".sql_quote($type));
    49         if (count($GLOBALS['doublons_encarts_inclus'])){
     52        traiter_modeles($champs_a_traiter, array('encarts' => array('encart'))); // detecter les doublons
     53        sql_updateq("spip_encarts_liens", array("vu" => 'non'), "id_objet=$id AND objet=" . sql_quote($type));
     54        if (count($GLOBALS['doublons_encarts_inclus'])) {
    5055                // on repasse par une requete sur spip_encarts pour verifier que les encarts existent bien !
    5156                $in_liste = sql_in('id_encart',
     
    5459                while ($row = sql_fetch($res)) {
    5560                        // Creer le lien s'il n'existe pas deja
    56                         sql_insertq("spip_encarts_liens", array('id_objet'=>$id, 'objet'=>$type, 'id_encart' => $row['id_encart'], 'vu' => 'oui'));
    57                         sql_updateq("spip_encarts_liens", array("vu" => 'oui'), "id_objet=$id AND objet=".sql_quote($type)." AND id_encart=" . $row['id_encart']);
     61                        sql_insertq("spip_encarts_liens", array(
     62                                'id_objet' => $id,
     63                                'objet' => $type,
     64                                'id_encart' => $row['id_encart'],
     65                                'vu' => 'oui'
     66                        ));
     67                        sql_updateq("spip_encarts_liens", array("vu" => 'oui'), "id_objet=$id AND objet=" . sql_quote($type) . " AND id_encart=" . $row['id_encart']);
    5868                }
    5969        }
    6070}
    6171
    62 ?>
  • _plugins_/encarts/trunk/lang/encart_fr.php

    r100130 r100136  
    2121        'info_1_encart' => 'Un encart',
    2222        'info_1_utilisation' => '1 utilisation',
     23        'info_actions'=> 'Actions',
    2324        'info_aucun_encart' => 'Aucun encart',
    2425        'info_encarts_auteur' => 'Les encarts de cet auteur',
     
    3435        'retirer_tous_liens_encarts' => 'Retirer tous les encarts',
    3536
     37        // S
     38        'supprimer_encart' => 'Supprimer cet encart',
     39        'supprimer_encart_confirmer' => 'Êtes-vous sûr de vouloir supprimer cet encart&nbsp;? Cette action est définitive.',
     40        'supprimer_encart_explication' => 'La suppression de cet encart risque de rompre des liens vers cet encart.',
     41
    3642        // T
    3743        'texte_ajouter_encart' => 'Ajouter un encart',
     
    4349        'titre_langue_encart' => 'Langue de cet encart',
    4450        'titre_logo_encart' => 'Logo de cet encart',
     51        'titre_objets_lies_encart' => "Liés à cet encart :",
    4552);
    4653
  • _plugins_/encarts/trunk/lang/paquet-encarts_fr.php

    r100130 r100136  
    1010        // E
    1111        'encarts_description' => 'Permet aux rédacteurs d\'ajouter des encarts (ou encadrés) dans leurs articles, et aux graphistes de les placer n\'importe où dans leurs mises-en-page.',
    12         'encarts_nom' => 'encarts',
     12        'encarts_nom' => 'Encarts',
    1313        'encarts_slogan' => 'Pour ajouter des encadrés à vos articles SPIP !',
    1414);
  • _plugins_/encarts/trunk/modeles/encart.html

    r44168 r100136  
    1 
    21<!-- plugin encarts - squelette modeles/encart.html -->
    3 
    4 <BOUCLE_encart(ENCARTS){id_encart}>
    5         [<h2 class="h2">(#TITRE)</h2>]
    6         <div class="encart">#TEXTE</div>
     2<BOUCLE_encart (ENCARTS) {id_encart}>
     3[<h2 class="h2">(#TITRE)</h2>]
     4<div class="encart">#TEXTE</div>
    75</BOUCLE_encart>
  • _plugins_/encarts/trunk/paquet.xml

    r95224 r100136  
    22        prefix="encarts"
    33        categorie="edition"
    4         version="2.1.3"
     4        version="2.2.0"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.1.*]"
     
    1717        <licence>GNU/GPL</licence>
    1818
    19         <necessite nom="saisies" compatibilite="[1.24.0;]" />
     19        <necessite nom="saisies" compatibilite="[2.5.29;]" />
    2020
    2121        <pipeline nom="autoriser" inclure="encarts_autorisations.php" />
     
    2626        <pipeline nom="affiche_milieu" inclure="encarts_pipelines.php" />
    2727        <pipeline nom="optimiser_base_disparus" inclure="encarts_pipelines.php" />
     28        <pipeline nom="pre_propre" inclure="encarts_pipelines.php" />
     29        <pipeline nom="post_edition" inclure="encarts_pipelines.php" />
    2830
    2931        <menu nom="encarts" titre="encart:titre_encarts" parent="menu_edition" icone="images/encart-16.png" action="encarts" />
  • _plugins_/encarts/trunk/prive/objets/contenu/encart.html

    r76998 r100136  
    22
    33[<div class="champ contenu_titre[ (#TITRE*|strlen|?{'',vide})]">
    4         <label><:encart:label_titre:> : </label>
    5         <span dir='#LANG_DIR' class='#EDIT{titre} titre'>(#TITRE)</span>
     4        <div class='label'><:encart:label_titre:> : </div>
     5        <div dir='#LANG_DIR' class='#EDIT{titre} titre span'>(#TITRE)</div>
    66</div>]
    77
    88[<div class="champ contenu_texte[ (#TEXTE*|strlen|?{'',vide})]">
    9         <label><:encart:label_texte:> : </label>
    10         <span dir='#LANG_DIR' class='#EDIT{texte} texte'>(#TEXTE)</span>
     9        <div class='label'><:encart:label_texte:> : </div>
     10        <div dir='#LANG_DIR' class='#EDIT{texte} texte span'>(#TEXTE)</div>
    1111</div>]
    1212
  • _plugins_/encarts/trunk/prive/objets/infos/encart.html

    r76998 r100136  
    33[(#SET{texte_objet,<:encart:titre_encart:>})]
    44<div class='numero'><:titre_cadre_numero_objet{objet=#GET{texte_objet}}:><p>#ID_ENCART</p></div>
    5 
    65</div>
     6[(#AUTORISER{supprimer, encart, #ID_ENCART}|oui)
     7[(#BOUTON_ACTION{[(#CHEMIN_IMAGE{encart-del-24.png}
     8        |balise_img{<:encart:supprimer_encart:>}|inserer_attribut{class,co_middle}
     9        |concat{' ',<:encart:supprimer_encart:>})],
     10        [(#URL_ACTION_AUTEUR{supprimer_encart,#ID_ENCART,#URL_ECRIRE{encarts}})],
     11        icone s24 horizontale danger encart-del-24,<:encart:supprimer_encart_confirmer:>\n\n<:encart:supprimer_encart_explication:>})]
     12]
    713</BOUCLE_encart>
  • _plugins_/encarts/trunk/prive/objets/liste/encarts_associer_fonctions.php

    r100130 r100136  
    1010 */
    1111
    12 if (!defined('_ECRIRE_INC_VERSION')) return;
     12if (!defined('_ECRIRE_INC_VERSION')) {
     13        return;
     14}
    1315
    1416
  • _plugins_/encarts/trunk/prive/squelettes/contenu/encart.html

    r76998 r100136  
    3838#PIPELINE{afficher_complement_objet,#ARRAY{args,#ARRAY{type,encart,id,#ID_ENCART},data,'<div class="nettoyeur"></div>'}}
    3939
     40<div class="liste">
     41        <BOUCLE_objetslies(spip_encarts_liens){id_encart}{0,1}><h3><:encart:titre_objets_lies_encart:></h3></BOUCLE_objetslies>
     42
     43        <INCLURE{fond=prive/objets/liste/articles_encart,id_encart,par=date,statut=(#SESSION{statut}|statuts_articles_visibles),ajax,env} />
     44
     45        <BOUCLE_autresobjets(spip_encarts_liens){id_encart}{objet !IN article}{fusion objet}{par objet}>
     46        #SET{table,#OBJET|table_objet}
     47        [(#SET{titre,[#OBJET:info_(#GET{table})_liees_encart]})]
     48        [(#SET{liste,#VAL{prive/objets/liste/#GET{table}}|trouver_fond|?{#GET{table},objets_lies_encart}})]
     49        <INCLURE{fond=prive/objets/liste/#GET{liste},objet,id_encart,ajax,env} />
     50        </BOUCLE_autresobjets>
     51</div>
     52
    4053#BOITE_FERMER
    4154[(#EVAL{_AJAX}|oui)
  • _plugins_/encarts/trunk/prive/squelettes/contenu/encarts.html

    r76998 r100136  
     1[(#AUTORISER{voir,encarts}|sinon_interdire_acces)]
     2<h1 class="grostitre"><:encart:titre_encarts:></h1>
     3<div class="nettoyeur"></div>
     4
    15#FORMULAIRE_RECHERCHE_ECRIRE{#SELF,ajax}
    26<div class="nettoyeur"></div>
    3 
    47<INCLURE{fond=prive/objets/liste/encarts, par=titre, env, ajax, sinon=<:encart:info_aucun_encart:>}>
    58
Note: See TracChangeset for help on using the changeset viewer.