Changeset 61923 in spip-zone


Ignore:
Timestamp:
May 31, 2012, 7:24:49 PM (7 years ago)
Author:
marcimat@…
Message:

Les tables ayant un _ de plus tel que spip_xxx_yyys doivent déclarer un objet_surnom, et les autorisations ne doivent pas avoir le _ .

Location:
_plugins_/fabrique
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/fabrique/changelog.txt

    r61915 r61923  
    77Dans l'interface
    88* Décocher les boutons d'un objet et ils revenaient !
     9
     10Dans le plugin généré
     11* Une table avec un espace (spip_xx_yys) nécessite la définition d'un surnom de table objet
     12* À l'inverse sur ces tables avec un espace, les fonctions d'autorisations n'en n'ont pas : autoriser_xxyy_creer_dist()
    913
    1014
  • _plugins_/fabrique/fabrique/base/prefixe.php.html

    r60724 r61923  
    2121        $tables['#TABLE'] = array(
    2222                'type' => '#TYPE',
    23                 'principale' => "oui",[(#SURNOMS|oui)
    24                 'table_objet_surnoms' => array('#TYPE'), // table_objet('#TYPE') => '#LOBJET' ]
     23                'principale' => "oui",[(#OBJETS_SURNOMS|oui)
     24                'table_objet_surnoms' => [(#OBJETS_SURNOMS|ecrire_tableau)], // table_objet('#TYPE') => '#LOBJET' ]
    2525                'field'=> array(
    2626                        [(#VAL{["(#ID_OBJET)"]}   |espacer)] => "#CLE_PRIMAIRE_SQL",[
  • _plugins_/fabrique/fabrique/prefixe_autorisations.php.html

    r60866 r61923  
    2323*/
    2424</BOUCLE_si_exemples2>
    25 <BOUCLE_objets(DATA){source tableau,#OBJETS}>
    26 // -----------------
     25<BOUCLE_objets(DATA){source tableau,#OBJETS}>[
     26(#SET{type,#TYPE|fabrique_type_autorisation})][
     27(#SET{objet,#OBJET|fabrique_type_autorisation})
     28]// -----------------
    2729// Objet [(#OBJET)]
    2830
    2931[
    3032// bouton de menu
    31 function autoriser_[(#OBJET)]_menu_dist($faire, $type, $id, $qui, $opts){
     33function autoriser_#GET{objet}_menu_dist($faire, $type, $id, $qui, $opts){
    3234        return true;
    3335}(#VAL{menu_edition}|in_any{#VALEUR{boutons}})]
    3436[
    3537// bouton d'outils rapides
    36 function autoriser_[(#TYPE)]creer_menu_dist($faire, $type, $id, $qui, $opts){
     38function autoriser_#GET{type}creer_menu_dist($faire, $type, $id, $qui, $opts){
    3739        return autoriser('creer', ['(#TYPE)'], '', $qui, $opts);
    3840}(#VAL{outils_rapides}|in_any{#VALEUR{boutons}})]
    3941
    4042// creer[(#SET{creer,[(#AUTORISATIONS|fabrique_code_autorisation_defaut{objet_creer})]})]
    41 function autoriser_[(#TYPE)]_creer_dist($faire, $type, $id, $qui, $opt) {[
     43function autoriser_#GET{type}_creer_dist($faire, $type, $id, $qui, $opt) {[
    4244        return \([(#GET{creer})] AND sql_countsel('spip_rubriques')>0\);(#VALEUR|champ_present{id_rubrique}|oui)][
    4345        return #GET{creer};(#VALEUR|champ_present{id_rubrique}|non)]
     
    4547
    4648// voir les fiches completes
    47 function autoriser_[(#TYPE)]_voir_dist($faire, $type, $id, $qui, $opt) {
     49function autoriser_#GET{type}_voir_dist($faire, $type, $id, $qui, $opt) {
    4850        return [(#AUTORISATIONS|fabrique_code_autorisation_defaut{objet_voir})];
    4951}
    5052
    5153// modifier
    52 function autoriser_[(#TYPE)]_modifier_dist($faire, $type, $id, $qui, $opt) {
     54function autoriser_#GET{type}_modifier_dist($faire, $type, $id, $qui, $opt) {
    5355        return [(#AUTORISATIONS|fabrique_code_autorisation_defaut{objet_modifier})];
    5456}
    5557
    5658// supprimer
    57 function autoriser_[(#TYPE)]_supprimer_dist($faire, $type, $id, $qui, $opt) {
     59function autoriser_#GET{type}_supprimer_dist($faire, $type, $id, $qui, $opt) {
    5860        return [(#AUTORISATIONS|fabrique_code_autorisation_defaut{objet_supprimer})];
    5961}
    6062<BOUCLE_creer_objet_dans_rubrique(CONDITION){si (#VAL{vue_rubrique}|in_any{#VALEUR{rubriques}})}>
    6163// creer dans une rubrique
    62 function autoriser_rubrique_creer[(#TYPE)]dans_dist($faire, $type, $id, $qui, $opt) {
     64function autoriser_rubrique_creer#GET{type}dans_dist($faire, $type, $id, $qui, $opt) {
    6365        return ($id AND autoriser('voir','rubrique', $id) AND autoriser('creer','[(#TYPE)]', $id));
    6466}</BOUCLE_creer_objet_dans_rubrique>
    6567<BOUCLE_associer_objets(CONDITION){si #TABLE_LIENS}>
    6668// associer (lier / delier)
    67 function autoriser_associer[(#OBJET)]_dist($faire, $type, $id, $qui, $opt) {
     69function autoriser_associer#GET{objet}_dist($faire, $type, $id, $qui, $opt) {
    6870        return [(#AUTORISATIONS|fabrique_code_autorisation_defaut{associerobjet})];
    6971}</BOUCLE_associer_objets>
  • _plugins_/fabrique/fabrique_fonctions.php

    r60866 r61923  
    374374
    375375        return $res;
     376}
     377
     378
     379/**
     380 * Retourne une ecriture de criteres
     381 * {id_parent?}{id_documentation?}
     382 * avec tous les champs id_x declares dans l'interface
     383 * dans la liste des champs.
     384 *
     385 * Cela ne concerne pas les champs speciaux (id_rubrique, id_secteur, id_trad)
     386 * qui ne seront pas inclus.
     387 *
     388 * @param array $objet
     389 *              Description de l'objet
     390 * @return string
     391 *              L'écriture des criteres de boucle
     392**/
     393function criteres_champs_id($objet) {
     394        $ids = array();
     395        if (is_array($objet['champs'])) {
     396                foreach ($objet['champs'] as $info) {
     397                        if (substr($info['champ'], 0, 3) == 'id_') {
     398                                $ids[] = $info['champ'];
     399                        }
     400                }
     401        }
     402        if (!$ids) {
     403                return "";
     404        }
     405        return "{" . implode("?}{", $ids) . "?}";
    376406}
    377407
     
    720750        return fabrique_code_autorisation($type);
    721751}
     752
     753/**
     754 * Retourne le type pour le nom d'une fonction d'autorisation
     755 * 'article' => 'article'
     756 * 'truc_muche' => 'trucmuche'
     757 *
     758 * @param string $type
     759 *              Type ou objet
     760 * @return string
     761 *              Type pour le nom d'autorisation
     762**/
     763function fabrique_type_autorisation($type) {
     764        return str_replace('_', '', $type);
     765}
     766
    722767?>
  • _plugins_/fabrique/formulaires/fabriquer_plugin.html

    r60866 r61923  
    5757                        </div>
    5858
    59                         [(#REM) Attention, la boucle DATA applique safehtml sur toutes les balises ! ]
    6059                        <BOUCLE_objets(DATA){source tableau, #OBJETS}>
    6160                                <div id="tab-objet-#CLE">
     
    7170                        <input type='submit' name='creer' class='submit' value='<:fabrique:bouton_creer:>' />
    7271                </p>
    73                
     72
    7473                <datalist id="licences">
    7574                        <option label="GNU/GPL"    value="GNU/GPL"/>
  • _plugins_/fabrique/formulaires/fabriquer_plugin.php

    r60902 r61923  
    360360
    361361                }
    362                
     362
    363363                unset($data['objet'],  $data['id_objet'], $data['type'],  $data['table']);
    364364                unset($data['mobjet'], $data['lobjet'],   $data['mtype'], $data['mid_objet']);
     
    561561                // quelques raccourcis
    562562                if ($o['table']) {
     563                        $data['objets'][$c]['objets_surnoms'] = array();
     564
    563565                        // si la table est different de spip_xxs
    564                         // on met leve un drapeau au passage indiquant qu'il faudra creer
    565                         // les surnoms car ce n'est pas un nommage standard.
     566                        // ou si elle possede des espaces spip_xx_yys
     567                        // on indique qu'il faudra creer
     568                        // des surnoms car ce n'est pas un nommage standard.
    566569                        // on s'appuie sur la table pour calculer l'objet (pluriel en general)
     570                        $preparation_objet = preg_replace(',^spip_|^id_|s$,', '', $o['table']);
     571                        // table avec espace
     572                        if (false !== strpos($preparation_objet, '_')) {
     573                                // on prend en surnom d'objet le type sans son espace
     574                                $data['objets'][$c]['objets_surnoms'][] = str_replace('_', '', $preparation_objet); // xxyy = xx_yy
     575                        }
     576                        // table non standard sans s
    567577                        if (rtrim($o['table'], 's') == $o['table']) {
    568578                                // la table n'est pas standard.
    569                                 $data['objets'][$c]['surnoms'] = true;
    570                                 $data['les_objets'][] = $data['objets'][$c]['objet'] = preg_replace(',^spip_|^id_|s$,', '', $o['table']);
    571                         } else {
     579                                $data['objets'][$c]['objets_surnoms'][] = $o['table_type']; // xx
     580                                $data['les_objets'][] = $data['objets'][$c]['objet'] = $preparation_objet;
     581                        }
     582                        // table standard avec s
     583                        else {
    572584                                $data['les_objets'][] = $data['objets'][$c]['objet'] = table_objet($o['table']);
    573585                        }
  • _plugins_/fabrique/lang/fabrique_fr.php

    r60724 r61923  
    114114        'champ_auto_rempli' => 'Le champ sera automatiquement rempli si vous laissez vide.',
    115115        'champ_ajoute' => 'Un champ a été ajouté',
    116         'champ_supprime' => 'Le champ a été supprime',
     116        'champ_supprime' => 'Le champ a été supprimé',
    117117        'champ_deplace' => 'Le champ a été déplacé',
    118118        'chargement_effectue' => 'Chargement effectué',
     
    278278                Laisser vide pour ne pas chercher dedans.',
    279279        'label_slogan' => 'Slogan',
     280        'label_saisies' => 'Saisies',
     281        'label_saisies_explication' => 'Créer des saisies et leurs vues',
    280282        'label_saisie' => 'Type de saisie',
    281283        'label_saisie_explication' => 'Si nécessaire (pour afficher ce champ dans le formulaire), indiquez le type de saisie (du plugin saisies) souhaité.',
     
    377379        'restaurer' => 'Restaurer',
    378380
     381        'saisies_objets' => 'Saisie <code>@saisie@</code> : sélecteur d\'objet simple pour tables peu peuplées.',
     382
    379383        'scripts_explication' => 'Du code PHP valide peut être executé
    380384                à certains moment de la procédure de création du plugin. Cela vous permet de traiter des
Note: See TracChangeset for help on using the changeset viewer.