Changeset 5402 in spip-zone


Ignore:
Timestamp:
Sep 15, 2006, 7:46:48 PM (15 years ago)
Author:
real3t@…
Message:

Mise à jour du squelette pour SPIP 1.9.1 (avec le plugin http://zone.spip.org/trac/spip-zone/browser/_plugins_/_typo_/barre_typo_enrichie ce qui explique le fichier inc/texte.php qui vient de la version SVN de SPIP).

Le squelette a besoin de 4 plugins :

Bonne chance Alain ;-)

Location:
_squelettes_/soyezcreateurs_net
Files:
7 added
15 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/soyezcreateurs_net/.htaccess

    r2648 r5402  
    11##############################################################
    2 # Fichier .htaccess                                SPIP v1.8 #
     2# Fichier .htaccess                                SPIP v1.9 #
    33#                                                            #
    44# Permet de controler les URLs et la version de php utilisee #
     
    2727#RewriteBase /sous/repertoire/
    2828RewriteBase /
    29 
    30 ### Version PHP 3
    31 # Si vous utilisez une distribution 'PHP 3' de SPIP, et si votre
    32 # hebergement execute encore les .php[3] avec un moteur PHP 3
    33 # au lieu de PHP 4, vous pouvez decommenter la ligne ci-dessous
    34 # pour faire fonctionner les fichiers sous php4 (sans garantie)
    35 
    36 #AddType x-mapp-php4 .php3
    3729
    3830
     
    7062RewriteRule ^(.*)(ecrire|img|IMG|squelettes)/(.*) /$2/$3 [QSA,R=301,L]
    7163
     64RewriteCond %{REQUEST_URI} !^/spip\.php
    7265RewriteRule ^(.*)/(spip\.php).* /$2 [QSA,L]
     66
     67# Permettre a IE de reconnaitre le win_png.htc de retraitement des png transparents
     68AddType text/x-component .htc
     69
    7370
    7471################ GESTIONS DES URLS SPIP #######################
     
    8784###
    8885# Compatibilite avec les URLS "html" (pour transition sympa)
    89 # voir fichier inc-urls-html.php3
     86# voir fichier ecrire/urls/html.php3
    9087RewriteRule rubrique([0-9]+)\.html$     spip.php?page=rubrique&id_rubrique=$1 [QSA,L]
    9188RewriteRule article([0-9]+)\.html$      spip.php?page=article&id_article=$1 [QSA,L]
     
    105102# URLs "propres" et "propres2"
    106103# pensez a regler $type_urls='propres' ou 'propres2'
    107 # dans ecrire/mes_options.php3
    108 # (fichier associe : inc-urls-propres.php3)
     104# dans ecrire/mes_options.php
     105# (fichier associe : ecrire/urls/propres.php)
    109106
    110107# Les mots-cles
  • _squelettes_/soyezcreateurs_net/ecrire/mes_options.php

    r3261 r5402  
    11<?php
    2 $GLOBALS['debut_intertitre'] = "<h2>";
    3 $GLOBALS['fin_intertitre'] = "</h2>";
    4 $type_urls = 'propres_gt';
     2$formats_logos =  array ('gif', 'jpg', 'png', 'swf');
     3$type_urls = 'propres2';
     4global $couleurs_spip;
     5$couleurs_spip[] = array(
     6// Bleu Pyrat.net
     7                "couleur_foncee" => "#0F7FB3",
     8                "couleur_claire" => "#0094d3",
     9                "couleur_lien" => "#fe7801",
     10                "couleur_lien_off" => "#0d6f99"
     11);
     12
    513?>
  • _squelettes_/soyezcreateurs_net/squelettes/article.html

    r4028 r5402  
    2323[<div class="surtitre"><span>#DEBUT_SURLIGNE(#SURTITRE)#FIN_SURLIGNE</span></div>]
    2424<INCLURE{fond=aff_datepublication}{id_article}>
    25 <div><h1>[<img class="logo_article" src="(#LOGO_ARTICLE||reduire_image{64,64}|extraire_attribut{src})" alt="[(#TITRE|texte_script|supprimer_tags|entites_html|supprimer_numero) (logo)]" />][#DEBUT_SURLIGNE(#TITRE|Supprimer_numero)#FIN_SURLIGNE]</h1></div>
     25<div><h1>[(#LOGO_ARTICLE_NORMAL||logo_swf_or_img{
     26        64,
     27        64,
     28        [(#TITRE|texte_script|supprimer_tags|entites_html|supprimer_numero) (logo)],
     29        "",
     30        "logo_article",
     31        #LOGO_ARTICLE_SURVOL||image_reduire{64,64}}
     32        )]
     33
     34
     35[<img class="logo_article" src="(#LOGO_ARTICLE||reduire_image{64,64}|extraire_attribut{src})" alt="[(#TITRE|texte_script|supprimer_tags|entites_html|supprimer_numero) (logo)]" />][#DEBUT_SURLIGNE(#TITRE|Supprimer_numero)#FIN_SURLIGNE]</h1></div>
    2636[<div class="soustitre"><span>(#SOUSTITRE)</span></div>]<INCLURE{fond=liste_auteurs}{id_article}>
    2737<INCLURE{fond=article_cartouche}{id_article}>
  • _squelettes_/soyezcreateurs_net/squelettes/balise/formulaire_forum.php

    r4166 r5402  
    9999        // Tableau des valeurs servant au calcul d'une signature de securite.
    100100        // Elles seront placees en Input Hidden pour que inc/forum_insert
    101         // recalcule la meme chose et verifie l'identité des resultats.
     101        // recalcule la meme chose et verifie l'identite des resultats.
    102102        // Donc ne pas changer la valeur de ce tableau entre le calcul de
    103103        // la signature et la fabrication des Hidden
     
    117117
    118118        // au premier appel (pas de Post-var nommee "retour_forum")
    119         // memoriser evntuellement l'URL de retour pour y revenir apres
     119        // memoriser eventuellement l'URL de retour pour y revenir apres
    120120        // envoi du message ; aux appels suivants, reconduire la valeur.
    121121        // Initialiser aussi l'auteur
     
    127127                        // qu'en sortie, on inscrit donc une valeur absurde ("!")
    128128                        $retour_forum = "!";
    129                        
     129                        // sauf si on a passe un parametre en argument (exemple : {#SELF})
     130                        if ($url_param_retour)
     131                                $retour_forum = str_replace('&amp;', '&', $url_param_retour);
    130132                }
    131133                if (isset($_COOKIE['spip_forum_user'])
     
    157159                include_spip('inc/actions');
    158160                $hash = calculer_action_auteur('ajout_forum'.join(' ', $ids).' '.$alea);
    159         }
    160161
    161162        // Poser un cookie pour ne pas retaper les infos invariables
     
    164165                       serialize(array('nom' => $auteur,
    165166                                       'email' => $email_auteur)));
    166 
    167         // sauf si on a passe un parametre en argument (exemple : {#SELF})
    168         if ($url_param_retour) {
    169                         $script = $url_param_retour;
    170167        }
    171168
  • _squelettes_/soyezcreateurs_net/squelettes/exec/postconfig.php

    r4032 r5402  
    147147        create_groupe("_InformationsLegales", "Mention légales obligatoire ([CNIL|Commision Nationale Informatique et Liberté->http://www.cnil.fr/] et [LcEN|Loi sur la confiance en l\'Économie Numérique->http://www.legifrance.gouv.fr/WAspad/UnTexteDeJorf?numjo=ECOX0200175L])", "[Décryptage des obligations légales->http://maitre.eolas.free.fr/journal/index.php?2005/05/27/135-responsabilite-du-blogueur].", 'non', 'non', 'non', 'non', 'non', 'non', 'non', 'oui', 'non', 'non');
    148148                create_mot("_InformationsLegales", "10. Propriétaire du site", "Mettre les coordonnées du propriétaire du site ci-dessous", "");
    149                 create_mot("_InformationsLegales", "20. Hébergeur", "");
     149                create_mot("_InformationsLegales", "20. Hébergeur", "Mettre les coordonnées de l\'hébergeur ci-dessous");
    150150                create_mot("_InformationsLegales", "30. Liens vers ce site", "Mettre ci-dessous les conditions d\'utilisation du contenu", "Le site autorise tout site Internet ou tout autre support à le citer ou à mettre en place un lien hypertexte pointant vers son contenu.\n\nL’autorisation de mise en place d’un lien est valable pour tout support, à l’exception de ceux diffusant des informations à caractère polémique, pornographique, xénophobe ou pouvant, dans une plus large mesure porter atteinte à la sensibilité du plus grand nombre.\n\nLa reprise intégrale du contenu d\'une page est aussi autorisée, sous réserve d\'établir un lien clair vers sa source.");
    151151                create_mot("_InformationsLegales", "40. Réalisation", "Mettre ci-dessous les informations concernant la réalisation de ce site.", "Ce site a été réalisé par [PYRAT.net|Création de sites web->http://www.pyrat.net/] en utilisant l\'outil [SPIP->http://www.spip.net/].\n\n[PYRAT.net|Création de sites web->http://www.pyrat.net/] a réalisé ce site dans les respect des [normes pour l\'accessibilité->http://www.pyrat.net/Accessibilite-d-un-site-web,193.html] des sites web à tous.");
     
    159159                create_mot("_LayoutGala", "27. One column liquid and two halves", "", "");
    160160                create_mot("_LayoutGala", "34. Two colums fixed", "", "");
    161                 create_mot("_LayoutGala", "7. Three fixed columns", "", "");
    162161
    163162        create_groupe("_LogosExtra", "Permet de placer une image en fond de la colonne Extra (c\'est-à-dire, soit la colonne secondaire qui peut être afichée soit de l\'autre côté du menu, soit en dessous de celui-ci).", "{{Utilisation}} : affecter un ou plusieurs mots clefs de ce groupe aux rubriques (héritage automatique) qui doivent avoir une ou plusieurs image en fond. L\'image est choisie aléatoirement parmis celles disponibles.\n\n{{Configuration}} : \n-* créer des mots clefs dans ce groupe et leur donner un logo de mot clef.\n-* il est possible de mettre un logo de survol qui sera alors utilisé en fond de texte (en plus de l\'autre logo) et positionné en haut à droite sauf si le texte contient les ordres CSS de positionnement ({bottom left} par exemple)", 'non', 'non', 'non', 'non', 'oui', 'non', 'non', 'oui', 'non', 'non');
     
    174173
    175174        create_groupe("_ModePortail", "Les mots clefs de ce groupe permettent de gérer les éléments qui s\'affichent sur la page d\'accueil du site si celui-ci est en mode portail.", "Les mots clefs numérotés dans leur titre de 0. à 9. verront leur logo utilisé dans les colonnes de gauche et de droite de la page d\'accueil (respectivement pour les numéros impairs et pairs).", 'oui', 'non', 'oui', 'non', 'oui', 'non', 'non', 'oui', 'non', 'non');
     175                create_mot("_ModePortail", "1. Mot1", "", "");
     176                create_mot("_ModePortail", "2. Mot2", "", "");
     177                create_mot("_ModePortail", "Goodies", "Affecter ce mot clef aux objets SPIP devant apparaitre dans la zone des Goodies.", "Ne pas oublier de mettre un logo (120×30) aux objet concernés.");
     178                create_mot("_ModePortail", "ZoomSur", "Affecter ce mot clef à l\'objet que vous voulez placer dans le cadre « Zoom sur » (facultatif).\n\nLe site prendra les 3 derniers articles ayant ce mot clef", "S\'applique aux :\n-* articles\n-* rubriques");
    176179
    177180        create_groupe("_Params", "Paramétrages globaux du site", "Ces paramètres règlent des comportements globaux pour tout le site.", 'non', 'non', 'non', 'non', 'non', 'non', 'non', 'oui', 'non', 'non');
  • _squelettes_/soyezcreateurs_net/squelettes/footer_classique.html

    r4166 r5402  
    77        <div id="navigation">
    88<BOUCLE_LogoHeader(MOTS){titre=LogoHeader}{texte=Oui}> </BOUCLE_LogoHeader>
    9 <div id="logo">[<a href="/"><img src="(#LOGO_SITE_SPIP_NORMAL||extraire_attribut{src})"[ width="(#LOGO_SITE_SPIP_NORMAL||extraire_attribut{width})"][ height="(#LOGO_SITE_SPIP_NORMAL||extraire_attribut{height})"] alt="<:pyrat:retouraccueil:> [(#NOM_SITE_SPIP|supprimer_tags)]" /></a>]</div>
     9<div id="logo">[(#LOGO_SITE_SPIP_NORMAL||logo_swf_or_img{
     10        #LOGO_SITE_SPIP_NORMAL||extraire_attribut{width},
     11        #LOGO_SITE_SPIP_NORMAL||extraire_attribut{height},
     12        <:pyrat:retouraccueil:> [(#NOM_SITE_SPIP|supprimer_tags)],
     13        "/",
     14        "",
     15        #LOGO_SITE_SPIP_SURVOL}
     16        )]</div>
    1017<//B_LogoHeader>
    1118<div id="menu" class="navStuff">
  • _squelettes_/soyezcreateurs_net/squelettes/formulaires/formulaire_forum_previsu.html

    r4028 r5402  
    1313[(#ENV*{texte}|anti_glouton)]
    1414</BOUCLE_PasdeSiteDansForums>
    15 [(#ENV*{texte})]
     15[(#ENV*{texte}|lignes_longues)]
    1616[<p><a[ href="(#ENV{url_site}|attribut_html)"] class="spip_out">(#ENV*{nom_site_forum}|sinon{#ENV{url_site}|couper{80}})</a></p>]
    1717<//B_PasdeSiteDansForums>
  • _squelettes_/soyezcreateurs_net/squelettes/javascripts.js

    r4028 r5402  
    190190        document.getElementById('content').style.height=maxHeight+'px';
    191191  }
    192   if (abs(lTop-rTop)>50) {
     192  if (Math.abs(lTop-rTop)>50) {
    193193          if (document.getElementById('extra')) {
    194194                document.getElementById('extra').style.height = maxHeight - lHeight+'px';
  • _squelettes_/soyezcreateurs_net/squelettes/mes_fonctions.php

    r3616 r5402  
    344344        return $annee;
    345345}
     346
     347function aff_img_propre($src, $alt) {
     348        if ($src) {
     349                $width = extraire_attribut($src, 'width');
     350                $height = extraire_attribut($src, 'height');
     351                $src = extraire_attribut($src, 'src');
     352                if ($link) {
     353                        return "<a href=\"$link\" id=\"logo\"><img$classe src=\"$src\" width=\"$width\" height=\"$height\" alt=\"$alt\" /></a>";
     354                } else {
     355                        return "<img$classe src=\"$src\" width=\"$width\" height=\"$height\" alt=\"$alt\" />";
     356                }
     357        }
     358}
     359
     360function logo_swf_or_img($src, $width, $height, $alt='', $link='', $classe='', $noobject='') {
     361        if ($classe) $classe = " class=\"$classe\"";
     362        if (strpos($src, '.swf')) {
     363                preg_match("/.*<param name='movie' value='(.*)' \/>/", $src, $matches);
     364                $src = $matches[1];
     365                $noobject = aff_img_propre($noobject, $alt);
     366                include_spip('inc/swfheader');
     367                $swf = new swfheader();
     368                $swf->loadswf($src);
     369                if ($swf->valid) {
     370                        $taille_origine[0] = $swf->width;
     371                        $taille_origine[1] = $swf->height;
     372                        list ($width,$height, $ratio) = image_ratio($taille_origine[0], $taille_origine[1], $width, $height);
     373                        return "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
     374  codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'
     375  width='$width' height='$height' type='application/x-shockwave-flash'$classe>
     376  <param name='movie' value='$src' />
     377  <param name='quality' value='high' />
     378  <!--[if !IE]>-->
     379  <object type='application/x-shockwave-flash'
     380    data='$src'
     381    width='$width' height='$height'$classe>
     382        <param name='movie' value='$src' />
     383        <param name='quality' value='high' />
     384        $noobject
     385  </object>
     386  <!--<![endif]-->
     387  </object>";
     388                }
     389        } else {
     390                return aff_img_propre($src, $alt);
     391        }
     392}
    346393?>
  • _squelettes_/soyezcreateurs_net/squelettes/multimedia.html

    r4166 r5402  
    2727  codebase="http://www.apple.com/qtactivex/qtplugin.cab"
    2828  width="[(#LARGEUR|=={0}?{200,#LARGEUR})]" height="[(#HAUTEUR|=={0}?{50,#LARGEUR})]">
    29   <param name="src"
    30     value="#URL_DOCUMENT" />
     29  <param name="src" value="#URL_DOCUMENT" />
    3130  <param name="controller" value="true" />
    3231  <param name="autoplay" value="false" />
  • _squelettes_/soyezcreateurs_net/squelettes/public/balises.php

    r4066 r5402  
    2727// Definition des balises
    2828//
     29// http://doc.spip.org/@balise_NOM_SITE_SPIP_dist
    2930function balise_NOM_SITE_SPIP_dist($p) {
    3031        $p->code = "\$GLOBALS['meta']['nom_site']";
     
    3334}
    3435
     36// http://doc.spip.org/@balise_EMAIL_WEBMASTER_dist
    3537function balise_EMAIL_WEBMASTER_dist($p) {
    3638        $p->code = "\$GLOBALS['meta']['email_webmaster']";
     
    3941}
    4042
     43// http://doc.spip.org/@balise_DESCRIPTIF_SITE_SPIP_dist
    4144function balise_DESCRIPTIF_SITE_SPIP_dist($p) {
    4245        $p->code = "\$GLOBALS['meta']['descriptif_site']";
     
    4548}
    4649
     50// http://doc.spip.org/@balise_CHARSET_dist
    4751function balise_CHARSET_dist($p) {
    4852        $p->code = "\$GLOBALS['meta']['charset']";
     
    5155}
    5256
     57// http://doc.spip.org/@balise_LANG_LEFT_dist
    5358function balise_LANG_LEFT_dist($p) {
    5459        $_lang = champ_sql('lang', $p);
     
    5863}
    5964
     65// http://doc.spip.org/@balise_LANG_RIGHT_dist
    6066function balise_LANG_RIGHT_dist($p) {
    6167        $_lang = champ_sql('lang', $p);
     
    6571}
    6672
     73// http://doc.spip.org/@balise_LANG_DIR_dist
    6774function balise_LANG_DIR_dist($p) {
    6875        $_lang = champ_sql('lang', $p);
     
    7279}
    7380
     81// http://doc.spip.org/@balise_PUCE_dist
    7482function balise_PUCE_dist($p) {
    7583        $p->code = "definir_puce()";
     
    8290// quand #DATE est en dehors des boucles
    8391// http://www.spip.net/fr_article1971.html
     92// http://doc.spip.org/@balise_DATE_dist
    8493function balise_DATE_dist ($p) {
    8594        $_date = champ_sql('date', $p);
     
    91100// #DATE_REDAC
    92101// http://www.spip.net/fr_article1971.html
     102// http://doc.spip.org/@balise_DATE_REDAC_dist
    93103function balise_DATE_REDAC_dist ($p) {
    94104        $_date = champ_sql('date_redac', $p);
     
    100110// #DATE_MODIF
    101111// http://www.spip.net/fr_article1971.html
     112// http://doc.spip.org/@balise_DATE_MODIF_dist
    102113function balise_DATE_MODIF_dist ($p) {
    103114        $_date = champ_sql('date_modif', $p);
     
    109120// #DATE_NOUVEAUTES
    110121// http://www.spip.net/fr_article1971.html
     122// http://doc.spip.org/@balise_DATE_NOUVEAUTES_dist
    111123function balise_DATE_NOUVEAUTES_dist($p) {
    112124        $p->code = "((\$GLOBALS['meta']['quoi_de_neuf'] == 'oui'
     
    118130}
    119131
     132// http://doc.spip.org/@balise_DOSSIER_SQUELETTE_dist
    120133function balise_DOSSIER_SQUELETTE_dist($p) {
    121134        $code = addslashes(dirname($p->descr['sourcefile']));
     
    125138}
    126139
     140// http://doc.spip.org/@balise_SQUELETTE_dist
     141function balise_SQUELETTE_dist($p) {
     142        $code = addslashes($p->descr['sourcefile']);
     143        $p->code = "'$code'" .
     144        $p->interdire_scripts = false;
     145        return $p;
     146}
     147
     148// http://doc.spip.org/@balise_SPIP_VERSION_dist
     149function balise_SPIP_VERSION_dist($p) {
     150        $p->code = "spip_version()";
     151        $p->interdire_scripts = false;
     152        return $p;
     153}
     154
     155// http://doc.spip.org/@balise_URL_SITE_SPIP_dist
    127156function balise_URL_SITE_SPIP_dist($p) {
    128         $p->code = "\$GLOBALS['meta']['adresse_site']";
    129         #$p->interdire_scripts = true;
    130         return $p;
    131 }
    132 
    133 
     157        $p->code = "sinon(\$GLOBALS['meta']['adresse_site'],'.')";
     158        $p->code = "htmlspecialchars(".$p->code.")";
     159        $p->interdire_scripts = false;
     160        return $p;
     161}
     162
     163
     164// http://doc.spip.org/@balise_URL_ARTICLE_dist
    134165function balise_URL_ARTICLE_dist($p) {
    135166        $_type = $p->type_requete;
     
    161192}
    162193
     194// http://doc.spip.org/@balise_URL_RUBRIQUE_dist
    163195function balise_URL_RUBRIQUE_dist($p) {
    164196        $_id_rubrique = '';
     
    180212}
    181213
     214// http://doc.spip.org/@balise_URL_BREVE_dist
    182215function balise_URL_BREVE_dist($p) {
    183216        $_id_breve = '';
     
    199232}
    200233
     234// http://doc.spip.org/@balise_URL_MOT_dist
    201235function balise_URL_MOT_dist($p) {
    202236        $_id_mot = '';
     
    219253
    220254// #NOM_SITE affiche le nom du site, ou sinon l'URL ou le titre de l'objet
     255// http://doc.spip.org/@balise_NOM_SITE_dist
    221256function balise_NOM_SITE_dist($p) {
    222257        if (!$p->etoile) {
     
    237272# a part [(#ID_SYNDIC|generer_url_site)]
    238273
    239 function balise_URL_FORUM_dist($p) {
     274// http://doc.spip.org/@balise_URL_FORUM_dist
     275function balise_URL_FORUM_dist($p, $show_thread = 'false') {
    240276        $_id_forum = '';
    241277        if ($p->param && !$p->param[0][0]){
     
    247283        if (!$_id_forum)
    248284                $_id_forum = champ_sql('id_forum',$p);
    249         $p->code = "generer_url_forum($_id_forum)";
     285        $p->code = "generer_url_forum($_id_forum, $show_thread)";
    250286
    251287        if ($p->boucles[$p->nom_boucle ? $p->nom_boucle : $p->id_boucle]->hash)
     
    256292}
    257293
     294// http://doc.spip.org/@balise_URL_DOCUMENT_dist
    258295function balise_URL_DOCUMENT_dist($p) {
    259296        $_id_document = '';
     
    272309}
    273310
     311// http://doc.spip.org/@balise_URL_AUTEUR_dist
    274312function balise_URL_AUTEUR_dist($p) {
    275313        $_id_auteur = '';
     
    291329}
    292330
     331// http://doc.spip.org/@balise_NOTES_dist
    293332function balise_NOTES_dist($p) {
    294333        // Recuperer les notes
     
    298337}
    299338
     339// http://doc.spip.org/@balise_RECHERCHE_dist
    300340function balise_RECHERCHE_dist($p) {
    301341        $p->code = 'entites_html(_request("recherche"))';
     
    304344}
    305345
     346// http://doc.spip.org/@balise_COMPTEUR_BOUCLE_dist
    306347function balise_COMPTEUR_BOUCLE_dist($p) {
    307348        $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
     
    320361}
    321362
     363// http://doc.spip.org/@balise_TOTAL_BOUCLE_dist
    322364function balise_TOTAL_BOUCLE_dist($p) {
    323365        $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
     
    337379
    338380// Si on est hors d'une boucle {recherche}, ne pas "prendre" cette balise
     381// http://doc.spip.org/@balise_POINTS_dist
    339382function balise_POINTS_dist($p) {
    340383        if ($p->boucles[$p->nom_boucle ? $p->nom_boucle : $p->id_boucle]->hash)
     
    344387}
    345388
     389// http://doc.spip.org/@balise_POPULARITE_ABSOLUE_dist
    346390function balise_POPULARITE_ABSOLUE_dist($p) {
    347391        $p->code = 'ceil(' .
     
    352396}
    353397
     398// http://doc.spip.org/@balise_POPULARITE_SITE_dist
    354399function balise_POPULARITE_SITE_dist($p) {
    355400        $p->code = 'ceil($GLOBALS["meta"][\'popularite_total\'])';
     
    358403}
    359404
     405// http://doc.spip.org/@balise_POPULARITE_MAX_dist
    360406function balise_POPULARITE_MAX_dist($p) {
    361407        $p->code = 'ceil($GLOBALS["meta"][\'popularite_max\'])';
     
    364410}
    365411
     412// http://doc.spip.org/@balise_EXPOSE_dist
    366413function balise_EXPOSE_dist($p) {
    367414        $on = "'on'";
     
    385432}
    386433
    387 // obsolete. utiliser la precedente
    388 
     434// #EXPOSER est obsolete. utiliser #EXPOSE ci-dessus
     435// http://doc.spip.org/@balise_EXPOSER_dist
    389436function balise_EXPOSER_dist($p)
    390437{
     
    403450}
    404451
     452// http://doc.spip.org/@calculer_balise_expose
    405453function calculer_balise_expose($p, $on, $off)
    406454{
     
    422470//
    423471// Inserer directement un document dans le squelette
    424 //
     472// devient un alias de #MODELE{emb}
     473//
     474// On insere simplement un argument {emb} en debut de liste
     475//
     476// Attention la syntaxe est derogatoire : il faut donc attraper
     477// tous les faux-filtres "|autostart=true" et les transformer
     478// en arguments "{autostart=true}"
     479//
     480// On s'arrete au premier filtre ne contenant pas de =, afin de
     481// pouvoir filtrer le resultat
     482//
     483// http://doc.spip.org/@balise_EMBED_DOCUMENT_dist
    425484function balise_EMBED_DOCUMENT_dist($p) {
    426485        balise_distante_interdite($p);
    427         $_id_document = champ_sql('id_document',$p);
    428         $p->code = "calcule_embed_document(intval($_id_document), " .
    429           argumenter_balise($p->fonctions, "|") .
    430           ", \$doublons, '" . $p->descr['documents'] . "')";
    431         $p->param = array();
    432         #$p->interdire_scripts = true;
    433         return $p;
     486
     487        if (!is_array($p->param))
     488                $p->param=array();
     489
     490        // Produire le premier argument {emb}
     491        $texte = new Texte;
     492        $texte->type='texte';
     493        $texte->texte='emb';
     494        $param = array(0=>NULL, 1=>array(0=>$texte));
     495        array_unshift($p->param, $param);
     496
     497        // Transformer les filtres en arguments
     498        for ($i=1; $i<count($p->param); $i++) {
     499                if ($p->param[$i][0]) {
     500                        if (!strstr($p->param[$i][0], '='))
     501                                break;# on a rencontre un vrai filtre, c'est fini
     502                        $texte = new Texte;
     503                        $texte->type='texte';
     504                        $texte->texte=$p->param[$i][0];
     505                        $param = array(0=>$texte);
     506                        $p->param[$i][1] = $param;
     507                        $p->param[$i][0] = NULL;
     508                }
     509        }
     510
     511        // Appeler la balise #MODELE{emb}{arguments}
     512        if (!function_exists($f = 'balise_modele'))
     513                $f = 'balise_modele_dist';
     514        return $f($p);
    434515}
    435516
     
    439520// sinon elles seront remplacees par les fontions de inc_surligne
    440521
     522// http://doc.spip.org/@balise_DEBUT_SURLIGNE_dist
    441523function balise_DEBUT_SURLIGNE_dist($p) {
    442524        include_spip('inc/surligne');
     
    444526        return $p;
    445527}
     528// http://doc.spip.org/@balise_FIN_SURLIGNE_dist
    446529function balise_FIN_SURLIGNE_dist($p) {
    447530        include_spip('inc/surligne');
     
    457540// quasiment jamais se trouver ralenti par des taches de fond un peu lentes
    458541// ATTENTION: cette balise efface parfois les boutons admin implicites
     542// http://doc.spip.org/@balise_SPIP_CRON_dist
    459543function balise_SPIP_CRON_dist ($p) {
    460544        $p->code = '"' . str_replace('"', '\"', (generer_spip_cron())) . '"';
     
    466550// #INTRODUCTION
    467551// http://www.spip.net/@introduction
     552// http://doc.spip.org/@balise_INTRODUCTION_dist
    468553function balise_INTRODUCTION_dist ($p) {
    469554        $_type = $p->type_requete;
     
    482567// (celle du site ou celle qui a ete passee dans l'URL par le visiteur)
    483568// #LANG* n'affiche rien si aucune langue n'est trouvee dans le sql/le contexte
     569// http://doc.spip.org/@balise_LANG_dist
    484570function balise_LANG_dist ($p) {
    485571        $_lang = champ_sql('lang', $p);
     
    492578}
    493579
     580
     581// #LESAUTEURS
     582// les auteurs d'un article (ou d'un article syndique)
     583// http://www.spip.net/fr_article902.html
     584// http://www.spip.net/fr_article911.html
     585// http://doc.spip.org/@balise_LESAUTEURS_dist
     586function balise_LESAUTEURS_dist ($p) {
     587        // Cherche le champ 'lesauteurs' dans la pile
     588        $_lesauteurs = champ_sql('lesauteurs', $p);
     589
     590        // Si le champ n'existe pas (cas de spip_articles), on applique
     591        // le modele lesauteurs.html en passant id_article dans le contexte;
     592        // dans le cas contraire on prend le champ 'lesauteurs' (cas de
     593        // spip_syndic_articles)
     594        if ($_lesauteurs AND $_lesauteurs != '$Pile[0][\'lesauteurs\']') {
     595                $p->code = "safehtml($_lesauteurs)";
     596                // $p->interdire_scripts = true;
     597        } else {
     598                $p->code = "recuperer_fond(
     599                        'modeles/lesauteurs',
     600                        array('id_article' => ".champ_sql('id_article', $p)."))";
     601                $p->interdire_scripts = false; // securite apposee par recuperer_fond()
     602        }
     603
     604        return $p;
     605}
     606
     607
    494608// #RANG
    495609// affiche le "numero de l'article" quand on l'a titre '1. Premier article';
    496610// ceci est transitoire afin de preparer une migration vers un vrai systeme de
    497611// tri des articles dans une rubrique (et plus si affinites)
     612// http://doc.spip.org/@balise_RANG_dist
    498613function balise_RANG_dist ($p) {
    499614        $_titre = champ_sql('titre', $p);
    500615        $p->code = "recuperer_numero($_titre)";
    501616        $p->interdire_scripts = false;
    502         return $p;
    503 }
    504 
    505 
    506 // #LESAUTEURS
    507 // les auteurs d'un article (ou d'un article syndique)
    508 // http://www.spip.net/fr_article902.html
    509 // http://www.spip.net/fr_article911.html
    510 function balise_LESAUTEURS_dist ($p) {
    511         // Cherche le champ 'lesauteurs' dans la pile
    512         $_lesauteurs = champ_sql('lesauteurs', $p);
    513 
    514         // Si le champ n'existe pas (cas de spip_articles), on donne la
    515         // construction speciale sql_auteurs(id_article) ;
    516         // dans le cas contraire on prend le champ 'les_auteurs' (cas de
    517         // spip_syndic_articles)
    518         if ($_lesauteurs AND $_lesauteurs != '$Pile[0][\'lesauteurs\']') {
    519                 $p->code = $_lesauteurs;
    520         } else {
    521                 $nom = $p->id_boucle;
    522         # On pourrait mieux faire qu'utiliser cette fonction assistante ?
    523                 $p->code = "sql_auteurs(" .
    524                         champ_sql('id_article', $p) .
    525                         ",'" .
    526                         $nom .
    527                         "','" .
    528                         $p->boucles[$nom]->type_requete .
    529                         "','" .
    530                         $p->boucles[$nom]->sql_serveur .
    531                         "')";
    532         }
    533 
    534         #$p->interdire_scripts = true;
    535617        return $p;
    536618}
     
    542624// cf FORMULAIRE_PETITION
    543625
     626// http://doc.spip.org/@balise_PETITION_dist
    544627function balise_PETITION_dist ($p) {
    545628        $nom = $p->id_boucle;
     
    560643// #POPULARITE
    561644// http://www.spip.net/fr_article1846.html
     645// http://doc.spip.org/@balise_POPULARITE_dist
    562646function balise_POPULARITE_dist ($p) {
    563647        $_popularite = champ_sql('popularite', $p);
     
    570654// #PAGINATION
    571655// http://www.spip.net/fr_articleXXXX.html
     656// http://doc.spip.org/@balise_PAGINATION_dist
    572657function balise_PAGINATION_dist($p, $liste='true') {
    573658        $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
     
    594679                return $p;
    595680        }
     681        $__modele = "";
     682        if ($p->param && !$p->param[0][0]) {
     683                $__modele = ",". calculer_liste($p->param[0][1],
     684                                        $p->descr,
     685                                        $p->boucles,
     686                                        $p->id_boucle);
     687        }
     688       
    596689
    597690        $p->boucles[$b]->numrows = true;
     
    602695        ), '$b', "
    603696        . $p->boucles[$b]->total_parties
    604         . ", $liste)";
     697        . ", $liste $__modele)";
    605698
    606699        $p->interdire_scripts = false;
     
    610703// N'afficher que l'ancre de la pagination (au-dessus, par exemple, alors
    611704// qu'on mettra les liens en-dessous de la liste paginee)
     705// http://doc.spip.org/@balise_ANCRE_PAGINATION_dist
    612706function balise_ANCRE_PAGINATION_dist($p) {
    613707        $p = balise_PAGINATION_dist($p, $liste='false');
     
    617711// equivalent a #TOTAL_BOUCLE sauf pour les boucles paginees, ou elle
    618712// indique le nombre total d'articles repondant aux criteres hors pagination
     713// http://doc.spip.org/@balise_GRAND_TOTAL_dist
    619714function balise_GRAND_TOTAL_dist($p) {
    620715        $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
     
    634729}
    635730
     731
     732
    636733//
    637734// Fonction commune aux balises #LOGO_XXXX
    638735// (les balises portant ce type de nom sont traitees en bloc ici)
    639736//
    640 function calculer_balise_logo ($p) {
     737// http://doc.spip.org/@calculer_balise_logo_dist
     738function calculer_balise_logo_dist ($p) {
    641739
    642740        // cas #LOGO_?_RUBRIQUE_COURANTE_?
     
    666764
    667765        // analyser les faux filtres
    668         $flag_fichier = $flag_stop = $flag_lien_auto = $code_lien = $filtres = $align = $lien = '';
     766        $flag_fichier = $flag_stop = $flag_lien_auto = $code_lien = $filtres = $align = $lien = $params = '';
    669767
    670768        if (is_array($p->fonctions)) {
     
    675773                                // double || signifie "on passe aux vrais filtres"
    676774                                if ($nom == '') {
    677                                         if (!$params = $couple[1])
     775                                        if ($couple[1]) {
     776                                                $params = $couple[1]; // recuperer #LOGO_DOCUMENT{20,30}
     777                                                array_shift($p->param);
     778                                        }
     779                                        else
    678780                                                $flag_stop = true;
    679781                                } else {
     
    758860                        ",  '$flag_fichier', $logo_hierarchie), $code_lien)";
    759861        }
     862
    760863        $p->interdire_scripts = false;
    761864        return $p;
     
    767870// Champs extra
    768871// Non documentes, en voie d'obsolescence, cf. ecrire/inc/extra
     872// http://doc.spip.org/@balise_EXTRA_dist
    769873function balise_EXTRA_dist ($p) {
    770874        $_extra = champ_sql('extra', $p);
     
    806910//
    807911
     912// http://doc.spip.org/@balise_PARAMETRES_FORUM_dist
    808913function balise_PARAMETRES_FORUM_dist($p) {
    809914        $_id_article = champ_sql('id_article', $p);
     
    857962        // Attention un eventuel &retour=xxx dans l'URL est prioritaire
    858963        $c .= '.
    859         (($lien = (_request("retour") ? _request("retour") : '.$retour.')) ? "&retour=".rawurlencode($lien) : "")';
     964        (($lien = (_request("retour") ? _request("retour") : str_replace("&amp;", "&", '.$retour.'))) ? "&retour=".rawurlencode($lien) : "")';
    860965
    861966        $p->code .= code_invalideur_forums($p, "(".$c.")");
     
    868973// Noter l'invalideur de la page contenant ces parametres,
    869974// en cas de premier post sur le forum
     975// http://doc.spip.org/@code_invalideur_forums
    870976function code_invalideur_forums($p, $code) {
    871977        $type = 'id_forum';
     
    887993// (Dans ce cas faire <INCLURE{self=#SELF}> pour differencier les caches.)
    888994// http://www.spip.net/@self
     995// http://doc.spip.org/@balise_SELF_dist
    889996function balise_SELF_dist($p) {
    890997        $p->code = 'quote_amp(self())';
     
    8991006// aller chercher spip_action.php?action=xxxx
    9001007//
     1008// http://doc.spip.org/@balise_URL_PAGE_dist
    9011009function balise_URL_PAGE_dist($p) {
    9021010
     
    9261034
    9271035//
     1036// #URL_ECRIRE{naviguer} -> ecrire/?exec=naviguer
     1037//
     1038// http://doc.spip.org/@balise_URL_ECRIRE_dist
     1039function balise_URL_ECRIRE_dist($p) {
     1040
     1041        if ($p->param && !$p->param[0][0]) {
     1042                $p->code =  calculer_liste($p->param[0][1],
     1043                                        $p->descr,
     1044                                        $p->boucles,
     1045                                        $p->id_boucle);
     1046
     1047                $args =  calculer_liste($p->param[0][2],
     1048                                        $p->descr,
     1049                                        $p->boucles,
     1050                                        $p->id_boucle);
     1051
     1052                if ($args != "''")
     1053                        $p->code .= ','.$args;
     1054
     1055                // autres filtres (???)
     1056                array_shift($p->param);
     1057        }
     1058
     1059        $p->code = 'generer_url_ecrire(' . $p->code .')';
     1060
     1061        #$p->interdire_scripts = true;
     1062        return $p;
     1063}
     1064
     1065//
    9281066// #CHEMIN{fichier} -> find_in_path(fichier)
    9291067//
     1068// http://doc.spip.org/@balise_CHEMIN_dist
    9301069function balise_CHEMIN_dist($p) {
    9311070        if ($p->param && !$p->param[0][0]) {
     
    9551094// La syntaxe #ENV{toto, rempl} renverra 'rempl' si $toto est vide
    9561095//
     1096// http://doc.spip.org/@balise_ENV_dist
    9571097function balise_ENV_dist($p, $src = NULL) {
    9581098        // le tableau de base de la balise (cf #META ci-dessous)
     
    9961136// La balise fonctionne exactement comme #ENV (ci-dessus)
    9971137//
     1138// http://doc.spip.org/@balise_CONFIG_dist
    9981139function balise_CONFIG_dist($p) {
    9991140        if(function_exists('balise_ENV'))
     
    10141155// Exemples : #EVAL**{6+9} #EVAL**{_DIR_IMG_PACK} #EVAL{'date("Y-m-d")'}
    10151156// #EVAL{'str_replace("r","z", "roger")'}  (attention les "'" sont interdits)
     1157// http://doc.spip.org/@balise_EVAL_dist
    10161158function balise_EVAL_dist($p) {
    10171159        if ($p->param && !$p->param[0][0]) {
     
    10441186// pour les remarques : renvoie toujours ''
    10451187//
     1188// http://doc.spip.org/@balise_REM_dist
    10461189function balise_REM_dist($p) {
    10471190        $p->code="''";
     
    10571200// #HTTP_HEADER{Content-Type: text/css}
    10581201//
     1202// http://doc.spip.org/@balise_HTTP_HEADER_dist
    10591203function balise_HTTP_HEADER_dist($p) {
    10601204
     
    10751219// definit la duree de vie ($delais) du squelette
    10761220// #CACHE{24*3600}
     1221// http://doc.spip.org/@balise_CACHE_dist
    10771222function balise_CACHE_dist($p) {
    10781223        $duree = valeur_numerique($p->param[0][1][0]->texte);
     
    11051250// #INSERT_HEAD
    11061251//
     1252// http://doc.spip.org/@balise_INSERT_HEAD_dist
    11071253function balise_INSERT_HEAD_dist($p) {
    11081254        $p->code = "pipeline('insert_head','')";
     
    11111257}
    11121258
     1259//
     1260// #INCLURE statique
     1261// l'inclusion est realisee au calcul du squelette, pas au service
     1262// corrolairement, le produit du squelette peut etre utilise en entree de filtres a suivre
     1263//
     1264// http://doc.spip.org/@balise_INCLUDE_dist
     1265function balise_INCLUDE_dist($p) {
     1266        if(function_exists('balise_INCLURE'))
     1267                return balise_INCLURE($p);
     1268        else
     1269                return balise_INCLURE_dist($p);
     1270}
     1271// http://doc.spip.org/@balise_INCLURE_dist
     1272function balise_INCLURE_dist($p) {
     1273        $champ = phraser_arguments_inclure($p, true);
     1274        $l = argumenter_inclure($champ, $p->descr, $p->boucles, $p->id_boucle, false);
     1275
     1276        $code = "recuperer_fond('',array(".implode(',',$l)."))";
     1277
     1278        $commentaire = '#INCLURE ' . str_replace("\n", ' ', $code);
     1279
     1280        $p->code = "\n//$commentaire.\n$code";
     1281        $p->interdire_scripts = false;
     1282        return $p;
     1283}
     1284
     1285// Inclure un modele : #MODELE{modele, params}
     1286// http://doc.spip.org/@balise_MODELE_dist
     1287function balise_MODELE_dist($p) {
     1288        $contexte = array();
     1289
     1290        // recupere le premier argument, qui est obligatoirement le nom du modele
     1291        if (!is_array($p->param))
     1292                die("erreur de compilation #MODELE{nom du modele}");
     1293
     1294        // Transforme l'ecriture du deuxieme param {truc=chose,machin=chouette} en
     1295        // {truc=chose}{machin=chouette}... histoire de simplifier l'ecriture pour
     1296        // le webmestre : #MODELE{emb}{autostart=true,truc=1,chose=chouette}
     1297        if ($p->param[0]) {
     1298                while (count($p->param[0])>2){
     1299                        $p->param[]=array(0=>NULL,1=>array_pop($p->param[0]));
     1300                }
     1301        }
     1302        $modele = array_shift($p->param);
     1303        $nom = strtolower($modele[1][0]->texte);
     1304        if (!$nom)
     1305                die("erreur de compilation #MODELE{nom du modele}");
     1306
     1307        $champ = phraser_arguments_inclure($p, true);
     1308
     1309        // a priori true
     1310        // si false, le compilo va bloquer sur des syntaxes avec un filtre sans argument qui suit la balise
     1311        // si true, les arguments simples (sans truc=chose) vont degager
     1312        $code_contexte = argumenter_inclure($champ, $p->descr, $p->boucles, $p->id_boucle, false);
     1313
     1314        // Si le champ existe dans la pile, on le met dans le contexte
     1315        // (a priori c'est du code mort ; il servait pour #LESAUTEURS dans
     1316        // le cas spip_syndic_articles)
     1317        #$code_contexte[] = "'$nom='.".champ_sql($nom, $p);
     1318
     1319        // Reserver la cle primaire de la boucle courante
     1320        if ($primary = $p->boucles[$p->id_boucle]->primary) {
     1321                $id = champ_sql($primary, $p);
     1322                $code_contexte[] = "'$primary='.".$id;
     1323        }
     1324
     1325        $p->code = "( ((\$recurs=(isset(\$Pile[0]['recurs'])?\$Pile[0]['recurs']:0))<5)?
     1326        recuperer_fond('modeles/".$nom."',
     1327                creer_contexte_de_modele(array(".join(',', $code_contexte).",'recurs='.(++\$recurs), \$GLOBALS['spip_lang']))):'')";
     1328        $p->interdire_scripts = false; // securite assuree par le squelette
     1329
     1330        return $p;
     1331}
     1332
     1333//
     1334// #SET
     1335// Affecte une variable locale au squelette
     1336// #SET{nom,valeur}
     1337// la balise renvoie la valeur
     1338// http://doc.spip.org/@balise_SET_dist
     1339function balise_SET_dist($p){
     1340        if ($p->param && !$p->param[0][0]) {
     1341                $_nom =  calculer_liste($p->param[0][1],
     1342                                        $p->descr,
     1343                                        $p->boucles,
     1344                                        $p->id_boucle);
     1345
     1346                $_valeur =  calculer_liste($p->param[0][2],
     1347                                        $p->descr,
     1348                                        $p->boucles,
     1349                                        $p->id_boucle);
     1350
     1351                if ($args != "''")
     1352                        $p->code .= ','.$args;
     1353
     1354                // autres filtres (???)
     1355                array_shift($p->param);
     1356        }
     1357
     1358        $p->code = "vide(\$Pile['vars'][$_nom] = $_valeur)";
     1359
     1360        #$p->interdire_scripts = true;
     1361        return $p;
     1362}
     1363
     1364//
     1365// #GET
     1366// Recupere une variable locale au squelette
     1367// #GET{nom,defaut} renvoie defaut si la variable nom n'a pas ete affectee
     1368//
     1369// http://doc.spip.org/@balise_GET_dist
     1370function balise_GET_dist($p) {
     1371        if (function_exists('balise_ENV'))
     1372                return balise_ENV($p, '$Pile["vars"]');
     1373        else
     1374                return balise_ENV_dist($p, '$Pile["vars"]');
     1375}
    11131376?>
  • _squelettes_/soyezcreateurs_net/squelettes/public/composer.php

    r4166 r5402  
    3131# Toutefois pour 2. et 3. preferer la technique de la surcharge
    3232
     33// http://doc.spip.org/@public_composer_dist
    3334function public_composer_dist($squelette, $mime_type, $gram, $sourcefile) {
    3435
     
    8182
    8283// Le squelette compile est-il trop vieux ?
     84// http://doc.spip.org/@squelette_obsolete
    8385function squelette_obsolete($skel, $squelette) {
    8486        return (
     
    108110// -> http://www.spip.net/fr_article901.html
    109111
     112// http://doc.spip.org/@calcule_fichier_logo
    110113function calcule_fichier_logo($on) {
    111114        return ereg_replace("^" . _DIR_IMG, "", $on);
     
    114117// Renvoie le code html pour afficher un logo, avec ou sans survol, lien, etc.
    115118
     119// http://doc.spip.org/@affiche_logos
    116120function affiche_logos($logos, $lien, $align) {
    117121
     
    120124        if (!$arton) return $artoff;
    121125
    122         if ($taille = @getimagesize($arton)) {
    123                 $taille = " ".$taille[3];
    124         }
    125 
    126         if ($artoff)
    127                 $artoff = " onmouseover=\"this.src='$artoff'\" "
    128                         ."onmouseout=\"this.src='$arton'\"";
    129 
    130         $milieu = "<img src=\"$arton\" alt=\"\""
    131                 . ($align ? " align=\"$align\"" : '')
    132                 . $taille
    133                 . $artoff
    134                 . ' class="spip_logos" />';
    135 
    136         return (!$lien ? $milieu :
    137                 ('<a href="' .
    138                  quote_amp($lien) .
    139                 '">' .
    140                 $milieu .
    141                 '</a>'));
     126        if (strpos($arton, 'swf')) {
     127                include_spip('inc/swfheader');
     128                $swf = new swfheader();
     129                $swf->loadswf($arton);
     130                if ($swf->valid) {
     131                        $width = $swf->width;
     132                        $height = $swf->height;
     133                        return "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
     134          codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'
     135          width='$width' height='$height' type='application/x-shockwave-flash'>
     136          <param name='movie' value='$arton' />
     137          <param name='quality' value='high' />
     138          <!--[if !IE]>-->
     139          <object type='application/x-shockwave-flash'
     140                data='$arton'
     141                width='$width' height='$height'>
     142                <param name='movie' value='$arton' />
     143                <param name='quality' value='high' />
     144          </object>
     145          <!--<![endif]-->
     146        </object>";
     147                } else {
     148                        return $arton;
     149                }
     150        } else {
     151                if ($taille = @getimagesize($arton)) {
     152                        $taille = " ".$taille[3];
     153                }
     154
     155                if ($artoff)
     156                        $artoff = " onmouseover=\"this.src='$artoff'\" "
     157                                ."onmouseout=\"this.src='$arton'\"";
     158
     159                $milieu = "<img src=\"$arton\" alt=\"\""
     160                        . ($align ? " align=\"$align\"" : '')
     161                        . $taille
     162                        . $artoff
     163                        . ' class="spip_logos" />';
     164
     165                return (!$lien ? $milieu :
     166                        ('<a href="' .
     167                         quote_amp($lien) .
     168                        '">' .
     169                        $milieu .
     170                        '</a>'));
     171        }
    142172}
    143173
     
    146176//
    147177
    148 function calcule_logo($type, $onoff, $id, $id_rubrique, $ff, $logo_hierarchie = 1) {
     178// http://doc.spip.org/@calcule_logo
     179function calcule_logo($type, $onoff, $id, $id_rubrique, $flag_fichier, $logo_hierarchie = 1) {
    149180        $logo_f = charger_fonction('chercher_logo', 'inc');
    150181        $nom = strtolower($onoff);
     
    153184                $on = $logo_f($id, $type, $nom);
    154185                if ($on) {
    155                         if ($ff)
     186                        if ($flag_fichier)
    156187                          return  (array('', "$on[2].$on[3]"));
    157188                        else {
     
    176207// function introduction($type,$texte,$chapo,$descriptif) {...}
    177208//
     209// http://doc.spip.org/@calcul_introduction
    178210function calcul_introduction ($type, $texte, $chapo='', $descriptif='') {
    179211        if (function_exists("introduction"))
     
    210242
    211243// elles sont traitees comme des inclusions
     244// http://doc.spip.org/@synthetiser_balise_dynamique
    212245function synthetiser_balise_dynamique($nom, $args, $file, $lang, $ligne) {
    213246        return
     
    227260                .">");
    228261}
     262// http://doc.spip.org/@argumenter_squelette
    229263function argumenter_squelette($v) {
    230264
     
    235269
    236270// verifier leurs arguments et filtres, et calculer le code a inclure
     271// http://doc.spip.org/@executer_balise_dynamique
    237272function executer_balise_dynamique($nom, $args, $filtres, $lang, $ligne) {
    238273        if (!$file = include_spip('balise/' . strtolower($nom)))
     
    258293# NB : a l'exception des fonctions pour les balises dynamiques
    259294
     295// http://doc.spip.org/@calculer_hierarchie
    260296function calculer_hierarchie($id_rubrique, $exclure_feuille = false) {
    261297
     
    278314
    279315
     316// http://doc.spip.org/@calcul_exposer
    280317function calcul_exposer ($id, $type, $reference) {
    281318        static $exposer;
     
    309346}
    310347
     348// http://doc.spip.org/@lister_objets_avec_logos
    311349function lister_objets_avec_logos ($type) {
    312350        $type_logos = array(
     
    330368}
    331369
     370// http://doc.spip.org/@table_from_primary
    332371function table_from_primary($id) {
    333372        global $tables_principales;
     
    341380
    342381// fonction appelee par la balise #LOGO_DOCUMENT
     382// http://doc.spip.org/@calcule_logo_document
    343383function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier, $lien, $align, $params) {
    344384
     
    355395        $fichier = $row['fichier'];
    356396        $mode = $row['mode'];
    357 
    358         // Lien par defaut = l'adresse du document
    359         ## if (!$lien) $lien = $fichier;
    360397
    361398        // Y a t il une vignette personnalisee ?
     
    375412
    376413        // taille maximum [(#LOGO_DOCUMENT{300,52})]
    377         list($x,$y) = split(',', ereg_replace("[}{]", "", $params));
    378 
     414        if ($params
     415        AND preg_match('/{\s*(\d+),\s*(\d+)\s*}/', $params, $r)) {
     416                $x = intval($r[1]);
     417                $y = intval($r[2]);
     418        }
     419
     420        // Retrouver l'extension et le type mime
     421        $ex = spip_abstract_fetch(spip_abstract_select(
     422                array('extension', 'mime_type'),
     423                array('spip_types_documents'),
     424                array("id_type = " . intval($id_type))));
     425        $extension = $ex['extension'];
     426        $mime = $ex['mime_type'];
     427        if (!$extension) $extension = 'txt';
    379428
    380429        if ($logo AND @file_exists($logo)) {
     
    387436        }
    388437        else {
    389                 // Retrouver l'extension
    390                 $extension = spip_abstract_fetch(spip_abstract_select(array('extension'),
    391                         array('spip_types_documents'),
    392                         array("id_type = " . intval($id_type))));
    393                 $extension = $extension['extension'];
    394                 if (!$extension) $extension = 'txt';
    395 
    396438                // Pas de vignette, mais un fichier image -- creer la vignette
    397439                if (strstr($GLOBALS['meta']['formats_graphiques'], $extension)) {
     
    427469        // Calculer le code html complet (cf. calcule_logo)
    428470        $logo = inserer_attribut($logo, 'alt', '');
    429         $logo = inserer_attribut($logo, 'style', 'border-width: 0px;');
    430471        $logo = inserer_attribut($logo, 'class', 'spip_logos');
    431472        if ($align)
     
    433474
    434475        if ($lien)
    435                 $logo = "<a href='$lien'>$logo</a>";
     476                $logo = "<a href='$lien' type='$mime'>$logo</a>";
    436477
    437478        return $logo;
    438 }
    439 
    440 
    441 // fonction appelee par la balise #EMBED
    442 function calcule_embed_document($id_document, $filtres, &$doublons, $doubdoc) {
    443         if ($doubdoc && $id_document) $doublons["documents"] .= ', ' . $id_document;
    444         return embed_document($id_document, $filtres, false);
    445 }
    446 
    447 // cherche les documents numerotes dans un texte traite par propre()
    448 // et affecte les doublons['documents']
    449 function traiter_doublons_documents(&$doublons, $letexte) {
    450         if (preg_match_all(
    451         ',<(span|div\s)[^>]*class=["\']spip_document_([0-9]+) ,',
    452         $letexte, $matches, PREG_PATTERN_ORDER))
    453                 $doublons['documents'] .= "," . join(',', $matches[2]);
    454         return $letexte;
    455479}
    456480
     
    460484// Si le besoin s'en fait sentir, il faudra recuperer la 2e moitie du tableau
    461485
     486// http://doc.spip.org/@argumenter_balise
    462487function argumenter_balise($fonctions, $sep) {
    463488  $res = array();
    464489  if ($fonctions)
    465     foreach ($fonctions as $f) $res[] =
    466       str_replace('\'', '\\\'', str_replace('\\', '\\\\',$f[0]));
     490                foreach ($fonctions as $f)
     491                        $res[] = str_replace('\'', '\\\'', str_replace('\\', '\\\\',$f[0]));
    467492  return ("'" . join($sep, $res) . "'");
    468493}
    469494
    470495// fonction appelee par la balise #NOTES
     496// http://doc.spip.org/@calculer_notes
    471497function calculer_notes() {
    472498        $r = $GLOBALS["les_notes"];
     
    478504
    479505// Renvoie le titre du "lien hypertexte"
     506// http://doc.spip.org/@construire_titre_lien
    480507function construire_titre_lien($nom,$url) {
    481508        return typo(supprimer_numero(calculer_url($url, $nom, 'titre')));
     
    483510
    484511// Ajouter "&lang=..." si la langue de base n'est pas celle du site
     512// http://doc.spip.org/@lang_parametres_forum
    485513function lang_parametres_forum($s) {
    486514        // ne pas se fatiguer si le site est unilingue (plus rapide)
     
    502530// La fonction presente dans les squelettes compiles
    503531
     532// http://doc.spip.org/@spip_optim_select
    504533function spip_optim_select ($select = array(), $from = array(),
    505534                            $where = array(), $join=array(),
     
    552581//condition suffisante (mais non necessaire) pour qu'une jointure soit inutile
    553582
     583// http://doc.spip.org/@spip_optim_joint
    554584function spip_optim_joint($cle, $exp)
    555585{
  • _squelettes_/soyezcreateurs_net/squelettes/public/styliser.php

    r4066 r5402  
    1616// Ce fichier doit imperativement definir la fonction ci-dessous:
    1717
     18// http://doc.spip.org/@public_styliser_dist
    1819function public_styliser_dist($fond, $id_rubrique, $lang) {
    1920       
     
    3940                        array('fichier'=>"'$fond'")),
    4041                        $GLOBALS['dossier_squelettes']);
    41                 $f = find_in_path('404.html');
     42                $f = find_in_path("404.$ext");
    4243                return array(substr($f, 0, -strlen(".$ext")),
    4344                             $ext,
  • _squelettes_/soyezcreateurs_net/squelettes/stylesbleu.css

    r4028 r5402  
    33#HTTP_HEADER{Vary: Accept-Encoding}
    44/* layout */
     5
    56html, body {
    67        margin: 0;
    78        padding: 0;
    89}
    9 
    1010html {
    1111        font-size: 62.7%;
     
    3030}
    3131
     32input, textarea {
     33        border-top:0.06em solid #4F4F4F;
     34        border-left:0.06em solid #4F4F4F;
     35        border-bottom:0.06em solid #CFBEB5;
     36        border-right:0.06em solid #CFBEB5;
     37}
     38
    3239#logo {
    33         background: url([(#LOGO_SITE_SPIP||extraire_attribut{src})]) no-repeat;
     40        background-color: transparent;
    3441        background-position: center;
    35         margin: 0;
    36         top: 0;
    37         left: 0;
    38         padding: 0;
     42        height: auto;
    3943}
    4044
    4145#logo, #logo img {
    42         width: [(#ENV{colgauche})px];
    43         height: [(#LOGO_SITE_SPIP||extraire_attribut{height}|plus{16})]px;
     46        behavior: url("win_png.htc");
     47        text-align: center;
    4448}
    4549
     
    5357        background: url(#DOSSIER_SQUELETTE/images/chapelle.png) top right no-repeat;
    5458        color: #666;
     59        padding-top:1px !important;
     60        margin-bottom: 4em !important;
    5561}
    5662
     
    7076        color: #cdecfa;
    7177        background-color: #016796;
    72         font-size: .85em;
    73         margin:0 0 4em 0;
     78        font-size: 1em;
     79        margin:0;
    7480        width: auto !important;
    7581}
     
    722728        z-index: 99;
    723729        clear: left;
     730}
     731
     732.chapo {
     733        border: 1px solid #ececec;
     734        background: #fff;
     735        padding: 2em;
     736        -moz-border-radius: 1em;
    724737}
    725738
     
    13981411        font-size:.9em;
    13991412        padding-right: 10px;
    1400         padding-top: 4px;
    14011413}
    14021414
     
    18451857        height: 0px;
    18461858}
     1859
     1860img {
     1861        behavior: url("win_png.htc");
     1862}
  • _squelettes_/soyezcreateurs_net/squelettes/stylesportail.css

    r4028 r5402  
    1 #CACHE{0*24*3600}
     1#CACHE{24*3600}
    22#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-1}
    33#HTTP_HEADER{Vary: Accept-Encoding}
    44
    55#pre-header {
     6max-width:1100px;
     7width:expression(document.body.clientWidth > 1100? "1100px": "auto" );
     8margin:0 auto 0 auto;
     9background:#F5EEE0;
    610}
    711#pre-header h1 {
     
    913}
    1014#pre-header a {
    11 }
    12 #pre-header a {
     15display:block;
     16height:70px;
     17background:0;
     18border:0;
     19padding:.5em 0 .5em 0;
     20background:url([(#LOGO_SITE_SPIP||extraire_attribut{'src'})]) -145px .5em no-repeat !important;
     21}
     22#pagesommaire #header_inner {
     23height:7.2em;
    1324}
    1425#contenu {
    15 padding: 0;
    16 margin: 0;
     26clear:both;
     27margin-top:0;
    1728}
    1829#pre-header a#sommaire {
     30display:none;
    1931}
    2032#header_inner img {
     33display:block;
     34float:left;
     35margin:-.3em 1em 0 1em;
     36behavior: url("win_png.htc");
    2137}
    2238#header_inner {
     39padding-top:1em;
    2340}
    2441#pagesommaire .slogan p.spip strong.spip {
     
    4057}
    4158#droite {
    42 width:49%;
     59width:48%;
    4360float:left;
    4461}
    4562#pagesommaire #wrapper {
    46 padding:0;
     63padding:0 0 0 .7em;
    4764}
    4865#gauche {
    49 width:49%;
    50 float:left;
    51 padding:0 2% 0 0;
     66width:48%;
     67float:left;
     68padding:0 3% 0 0;
    5269}
    5370a.vignette {
     
    6481}
    6582#pagesommaire #content {
    66 margin-top: 0;
    67 margin-bottom: 0;
    68 padding-top: 0;
    69 padding-bottom: 0;
     83background:none;
    7084}
    7185#pagesommaire #content h2 {
     
    7589font-weight:normal;
    7690color:#2F2C2C;
    77 margin: 0 auto;
    78 clear: both;
     91border-radius:5px;
     92-moz-border-radius:5px;
    7993}
    8094#pagesommaire #content h2.f {
     
    151165}
    152166#pagesommaire #navigation, #pagesommaire #extra {
     167margin-top:1em;
    153168}
    154169#accessibilite a {
     
    160175background:0;
    161176}
    162 .syndic li img {
    163         float: right;
    164 }
    165 .syndic li {
    166         clear: right;
    167         vertical-align: top;
    168        
    169 }
     177div.espaceavant ul {
     178list-style:none;
     179font-size:.7em;
     180margin:0 15px 0 5px;
     181padding:0;
     182}
     183div.espaceavant ul a {
     184font-weight:normal;
     185background:#F0E5D4;
     186padding:.5em;
     187-moz-border-radius:4px;
     188border-radius:4px;
     189color:#756759;
     190display:block;
     191}
     192div.espaceavant ul a:hover {
     193text-decoration:none;
     194background:#483A2B;
     195color:#F7F1EA;
     196}
     197div.cadreinfo {
     198margin-top:1em;
     199}
     200#content ul.listeafficherimages {
     201list-style:none;
     202margin:1em 0 0 0;
     203padding:0;
     204}
     205#content ul.listeafficherimages a:hover {
     206text-decoration:none;
     207}
Note: See TracChangeset for help on using the changeset viewer.