Changeset 51655 in spip-zone


Ignore:
Timestamp:
Sep 21, 2011, 2:09:53 PM (8 years ago)
Author:
ben.spip@…
Message:

Voilà ça prends forme ... les metas sont sauvegardées pour les articles et les rubriques

Location:
_plugins_/metas/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/metas/trunk/formulaires/editer_metas.html

    r51532 r51655  
    1 <div class='formulaire_spip formulaire_editer formulaire_editer_metas formulaire_editer_metas-#ENV{id_meta,nouveau}'>
    2         <!-- <br class='bugajaxie' /> -->
    3         [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
     1<div class="ajax formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
     2    <h3 class="titrem"><:metas:configuration_metas:></h3>
     3        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    44        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
     5
    56        [(#ENV{editable})
    67        <form method='post' action='#ENV{action}'><div>
     
    1112          <ul>
    1213            <li class="editer editer_titre obligatoire[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]">
    13                                 <label for="titre"><:metas:title_defaut_explication:></label>[
     14                                <label for="titre"><:metas:title:></label>[
    1415                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>
    15                                 ]<input type='text' class='text' name='titre' id='titre' value="[(#ENV**{titre})]" />
     16                                ]<p class="explication"><:metas:title_defaut_explication:></p>
     17                <input type='text' class='text' name='titre' id='titre' value="[(#ENV**{titre})]" />
    1618            </li>       
    1719          <li class="editer editer_description[ (#ENV**{erreurs}|table_valeur{description}|oui)erreur]">
    18                   <label for="description"><:metas:meta_description_defaut_explication:></label>[
     20                  <label for="description"><:metas:meta_description:></label>[
    1921                  <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{description})</span>
    20                   ]<textarea name='description' id='description' rows='4' cols='40'>[(#ENV**{description})]</textarea>
     22                  ]<p class="explication"><:metas:meta_description_defaut_explication:></p>
     23              <textarea name='description' id='description' rows='4' cols='40'>[(#ENV**{description})]</textarea>
    2124          </li>
    2225          <li class="editer editer_keywords[ (#ENV**{erreurs}|table_valeur{keywords}|oui)erreur]">
    23                   <label for="keywords"><:metas:meta_keywords_defaut_explication:></label>[
     26                  <label for="keywords"><:metas:meta_keywords:></label>[
    2427                  <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{keywords})</span>
    25                   ]<textarea name='keywords' id='keywords' rows='4' cols='40'>[(#ENV**{keywords})]</textarea>
     28                  ]<p class="explication"><:metas:meta_keywords_defaut_explication:></p><textarea name='keywords' id='keywords' rows='4' cols='40'>[(#ENV**{keywords})]</textarea>
    2629          </li>
    2730          </ul>
  • _plugins_/metas/trunk/formulaires/editer_metas.php

    r51630 r51655  
    11<?php
    22
    3 /***************************************************************************\
    4  *  SPIP, Systeme de publication pour l'internet                           *
    5  *                                                                         *
    6  *  Copyright (c) 2001-2011                                                *
    7  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
    8  *                                                                         *
    9  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
    10  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
    11 \***************************************************************************/
    12 
    133if (!defined("_ECRIRE_INC_VERSION")) return;
    14 
    154include_spip('inc/actions');
    165include_spip('inc/editer');
     6include_spip('action/editer_liens');
    177
    188/**
     
    2111 * @return
    2212 */
    23 function formulaires_editer_metas_charger_dist($objet,$id_objet){
    24         $valeurs ;
    25         return $valeurs;
     13function formulaires_editer_metas_charger_dist($objet, $id_objet)
     14{
     15
     16
     17    // on a le type d'objet et l'id_objet (par exemple "article" et "1" ) ... cherchons l'id_meta associé
     18    $id_meta = sql_getfetsel('id_meta', 'spip_metas_liens', "objet=" . sql_quote($objet) . " AND id_objet=" . intval($id_objet));
     19
     20    if ($id_meta) {
     21        // on a des metas sur cet objet
     22        // on utilise la fonctions formulaires_editer_objet_charger
     23        // formulaires_editer_objet_charger($type, $id='new', $id_parent=0, $lier_trad=0, $retour='', $config_fonc='articles_edit_config', $row=array(), $hidden=''){
     24        $valeurs = formulaires_editer_objet_charger('metas', $id_meta, 0, '', $retour, $config_fonc, $row, $hidden);
     25    }
     26    else {
     27        // on initialise le tableau à vide ou avec les valeurs par défaut
     28        $valeurs = array(
     29            'titre' => '',
     30            'description' => '',
     31            'keywords' => ''
     32        );
     33    }
     34    return $valeurs;
    2635}
    2736
    2837/**
    2938 * @return
     39 *
    3040 */
     41function formulaires_editer_metas_verifier_dist($objet, $id_objet)
     42{
     43    $retour = array();
     44    // on va dire que tout est ok ... à la limite tester sur le champs keywords
     45    // le nombre maxi de cracteres et la présence des virgules
     46    // $retour['message_erreur'] = "Boom" ;
     47    return $retour;
     48}
    3149
    32 function formulaires_editer_metas_verifier_dist(){
    33 
    34         $erreurs ;
    35         return $erreurs;
    36 }
    3750/**
     51 * @param $objet
     52 * @param $id_objet
    3853 * @return array
    3954 */
    40 function formulaires_editer_metas_traiter_dist(){
    41         $res = array();
    42         return $res;
     55function formulaires_editer_metas_traiter_dist($objet, $id_objet)
     56{
     57    $res = array();
     58
     59
     60    // on a le type d'objet et l'id_objet (par exemple "article" et "1" ) ... cherchons l'id_meta associé
     61    // oui c'est le même commentaire que dans la fonction charger mais c'est normal, on est obligé de
     62    // refaire cette requête pour deux raisons : 1/ on ne peux pas passer de variable entre charger vérifier et traiter
     63    // 2: il peut se passer plusieurs minutes entre cahrger et traiter et le résultat n'est ptet plus le même
     64    $id_meta = sql_getfetsel('id_meta', 'spip_metas_liens', "objet=" . sql_quote($objet) . " AND id_objet=" . intval($id_objet));
     65
     66    if ($id_meta) {
     67        // on est donc dans le cas d'un update
     68
     69        // on utilise la fonction sql sql_updateq http://programmer3.spip.org/sql_insertq,590
     70        // le nom de la table comprends toujours "spip_" c'est spip qui se débrouille après si le prefix est différent
     71
     72        $resultat_requete = sql_updateq(
     73            'spip_metas',
     74            array(
     75                 'titre' => _request('titre'),
     76                 'description' => _request('description'),
     77                 'keywords' => _request('keywords'),
     78                 'maj' => date('Y-m-d H:i:s'),
     79            ),
     80            "id_meta=" . intval($id_meta)
     81        );
     82        if ($resultat_requete) {
     83            $res['message_ok'] = $res['message_ok'] . "Merci vos infos sont à jour";
     84        }
     85        else
     86        {
     87            $res['message_erreur'] = $res['message_erreur'] . "Problème lors de la mise à jour";
     88        }
     89
     90    }
     91    else
     92    {
     93
     94
     95        $resultat_requete = sql_insertq(
     96                                'spip_metas',
     97                            array(
     98                                 'titre' => _request('titre'),
     99                                 'description' => _request('description'),
     100                                 'keywords' => _request('keywords'),
     101                                 'maj' => date('Y-m-d H:i:s'),
     102                            )
     103            );
     104        if ($resultat_requete) {
     105            $res['message_ok'] = $res['message_ok'] . "infos enregistrées";
     106
     107            // cette fonction permet de faire la liaison en spip_metas et spip_metas_lien
     108            objet_associer(
     109                array('metas' => $resultat_requete),
     110                array("$objet" => $id_objet)
     111            );
     112
     113        }
     114        else
     115        {
     116            $res['message_erreur'] = $res['message_erreur'] . "Problème lors de l'insert  mise à jour";
     117        }
     118
     119
     120    }
     121
     122    return $res;
    43123}
    44124
    45 
    46125?>
  • _plugins_/metas/trunk/metas_pipelines.php

    r51630 r51655  
    1010function metas_affiche_milieu($flux)
    1111{
    12     spip_log(__LINE__ . "metas_affiche_milieu", "ben." . _LOG_ERREUR);
    1312    $en_cours = trouver_objet_exec($flux['args']['exec']);
    1413
    15     //debug
    16     ob_start();
    17     var_export($flux['args']);
    18     var_export($en_cours);
    19     $en_cours_debug = ob_get_contents();
    20     ob_end_clean();
    21     spip_log(__LINE__ . " dollar flux + dollar en_vours:" . $en_cours_debug, "ben." . _LOG_ERREUR);
    22 
    23     spip_log(__LINE__ . " edition:" . $en_cours['edition'], "ben." . _LOG_ERREUR);
    24     spip_log(__LINE__ . " type:" . $en_cours['type'], "ben." . _LOG_ERREUR);
    25     spip_log(__LINE__ . " id_table_objet:" . $en_cours['id_table_objet'], "ben." . _LOG_ERREUR);
    26     spip_log(__LINE__ . " id_article:" . $flux['args']['id_article'], "ben." . _LOG_ERREUR);
     14    // Mode edition, affichage du formulaire.
    2715    if ($en_cours['edition'] == true // page visu
    2816        AND $type = $en_cours['type']
     
    3018                AND ($id = intval($flux['args'][$id_table_objet]))
    3119    ) {
    32         spip_log(__LINE__, "ben." . _LOG_ERREUR);
    3320        $texte = recuperer_fond(
    3421            'prive/squelettes/inclure/editer_metas',
     
    3926            )
    4027        );
    41 
    42         spip_log(__LINE__." texte:". $texte, "ben." . _LOG_ERREUR);
     28        // on affiche le texte des metas au niveau du commentaire affiche_milieu (et pas en fin de page)
     29        if ($p = strpos($flux['data'], "<!--affiche_milieu-->"))
     30            $flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
     31        else
     32            $flux['data'] .= $texte;
     33    }
    4334
    4435
    45         $flux['data'] .= $texte;
    46 
    47 
    48         spip_log(__LINE__ , "ben." . _LOG_ERREUR);
    49     }
    5036    return $flux;
    5137}
  • _plugins_/metas/trunk/paquet.xml

    r51630 r51655  
    1515        <auteur lien="http://www.spip-contrib.net/?auteur10451">Quentin de Serres-Justiniac</auteur>
    1616        <auteur lien="http://www.spip-contrib.net/?auteur1343">Olivier Gendrin</auteur>
    17 
     17<!--
    1818        <pipeline nom="ieconfig_metas" inclure="metas_ieconfig_metas.php" />
    1919        <pipeline nom="pre_propre" inclure="metas_fonctions.php" />
     20        -->
     21
    2022        <pipeline nom="affiche_milieu" inclure="metas_pipelines.php" />
    21         <pipeline nom="declarer_tables_interfaces" inclure="base/metas.php" />
     23    <pipeline nom="declarer_tables_interfaces" inclure="base/metas.php" />
    2224        <pipeline nom="declarer_tables_principales" inclure="base/metas.php" />
    2325        <pipeline nom="declarer_tables_auxiliaires" inclure="base/metas.php" />
    2426        <pipeline nom="autoriser" inclure="metas_autorisations.php" />
    2527
     28    <!--
    2629        <utilise nom="Z" />
     30-->
    2731
     32   
    2833    <!-- reste le menu mais je vois pas bien où on va le mettre , à faire plus tard
    2934    <onglet id="metas" parent="configuration">          <icone>images/metas-24.png</icone>              <titre>metas:configuration_metas</titre>        </onglet>
  • _plugins_/metas/trunk/prive/squelettes/inclure/editer_metas.html

    r51630 r51655  
    1 TOTO
    2 
    3 #FORMULAIRE_EDITER_METAS{#ENV{objet},#ENV{id_objet}}
     1[(#FORMULAIRE_EDITER_METAS{#ENV{objet},#ENV{id_objet}})]
Note: See TracChangeset for help on using the changeset viewer.