Compare commits

...

10 changed files with 447 additions and 94 deletions
Split View
  1. +60
    -22
      ecrire/inc/pipelines_ecrire.php
  2. +11
    -10
      prive/squelettes/body.html
  3. +0
    -8
      prive/squelettes/contenu/article.html
  4. +16
    -3
      prive/squelettes/extra/article.html
  5. +6
    -1
      prive/squelettes/extra/dist.html
  6. +0
    -2
      prive/squelettes/navigation/article.html
  7. +138
    -0
      prive/themes/spip/affiche_connexe.css.html
  8. +207
    -46
      prive/themes/spip/layout.css
  9. +1
    -1
      prive/themes/spip/style_prive.css.html
  10. +8
    -1
      prive/themes/spip/typo.css.html

+ 60
- 22
ecrire/inc/pipelines_ecrire.php View File

@ -142,33 +142,64 @@ function f_afficher_blocs_ecrire($flux) {
$flux['args']['contexte']['id_auteur'] = $GLOBALS['visiteur_session']['id_auteur'];
}
$typepage = (isset($flux['args']['contexte']['type-page']) ? $flux['args']['contexte']['type-page'] : $exec);
// Navigation / affiche_gauche
if ($fond == "prive/squelettes/navigation/$typepage") {
$flux['data']['texte'] = pipeline('affiche_gauche',
array('args' => $flux['args']['contexte'], 'data' => $flux['data']['texte']));
$flux['data']['texte'] = pipeline(
'affiche_gauche',
array('args' => $flux['args']['contexte'], 'data' => $flux['data']['texte'])
);
// Extra / affiche_milieu / affiche_droite
} elseif ($fond == "prive/squelettes/extra/$typepage") {
include_spip('inc/presentation_mini');
$flux['data']['texte'] = pipeline('affiche_droite',
array('args' => $flux['args']['contexte'], 'data' => $flux['data']['texte'])) . liste_objets_bloques($exec,
$flux['args']['contexte']);
// 1) affiche_milieu
/*if (!strpos($flux['data']['texte'], "<!--affiche_milieu-->")) {
$flux['data']['texte'] = preg_replace(
',<div id=["\']wysiwyg,',
"<!--affiche_milieu-->\\0",
$flux['data']['texte']
);
}*/
if ($o[$exec]
and $objet = $o[$exec]['type']
and $o[$exec]['edition'] == false
and isset($flux['args']['contexte'][$o[$exec]['id_table_objet']])
and $id = intval($flux['args']['contexte'][$o[$exec]['id_table_objet']])
) {
// inserer le formulaire de traduction
$flux['data']['texte'] = str_replace("<!--affiche_milieu-->", recuperer_fond('prive/objets/editer/traductions',
array('objet' => $objet, 'id_objet' => $id, 'espace_prive' => 1)) . "<!--affiche_milieu-->", $flux['data']['texte']);
}
$flux['data']['texte'] = pipeline(
'affiche_milieu',
array('args' => $flux['args']['contexte'], 'data' => $flux['data']['texte'])
);
// 2) affiche_droite
$flux['data']['texte'] = pipeline(
'affiche_droite',
array('args' => $flux['args']['contexte'], 'data' => $flux['data']['texte'])
) . liste_objets_bloques($exec,$flux['args']['contexte']);
// Hierarchie / afficher_hierarchie
} elseif ($fond == "prive/squelettes/hierarchie/$typepage" and $o[$exec]) {
// id non defini sur les formulaire de nouveaux objets
$id = isset($flux['args']['contexte'][$o[$exec]['id_table_objet']]) ? intval($flux['args']['contexte'][$o[$exec]['id_table_objet']]) : 0;
$flux['data']['texte'] = pipeline('affiche_hierarchie',
array('args' => array('objet' => $o[$exec]['type'], 'id_objet' => $id), 'data' => $flux['data']['texte']));
$flux['data']['texte'] = pipeline(
'affiche_hierarchie',
array('args' => array('objet' => $o[$exec]['type'], 'id_objet' => $id), 'data' => $flux['data']['texte'])
);
// Contenu : afficher_fiche_objet (suppression de affiche_milieu)
} elseif ($fond == "prive/squelettes/contenu/$typepage") {
if (!strpos($flux['data']['texte'], "<!--affiche_milieu-->")) {
$flux['data']['texte'] = preg_replace(',<div id=["\']wysiwyg,', "<!--affiche_milieu-->\\0",
$flux['data']['texte']);
}
if ($o[$exec]
and $objet = $o[$exec]['type']
and $o[$exec]['edition'] == false
and isset($flux['args']['contexte'][$o[$exec]['id_table_objet']])
and $id = intval($flux['args']['contexte'][$o[$exec]['id_table_objet']])
) {
// inserer le formulaire de traduction
$flux['data']['texte'] = str_replace("<!--affiche_milieu-->", recuperer_fond('prive/objets/editer/traductions',
array('objet' => $objet, 'id_objet' => $id, 'espace_prive' => 1)) . "<!--affiche_milieu-->", $flux['data']['texte']);
$flux['data']['texte'] = pipeline('afficher_fiche_objet', array(
'args' => array(
'contexte' => $flux['args']['contexte'],
@ -178,11 +209,15 @@ function f_afficher_blocs_ecrire($flux) {
'data' => $flux['data']['texte']
));
}
$flux['data']['texte'] = pipeline('affiche_milieu',
array('args' => $flux['args']['contexte'], 'data' => $flux['data']['texte']));
// Pied / affiche_pied
} elseif ($fond == "prive/squelettes/inclure/pied") {
$flux['data']['texte'] = pipeline('affiche_pied',
array('args' => $flux['args']['contexte'], 'data' => $flux['data']['texte']));
$flux['data']['texte'] = pipeline(
'affiche_pied',
array('args' => $flux['args']['contexte'], 'data' => $flux['data']['texte'])
);
// Wysiwyg / afficher_contenu_objet
} elseif (strncmp($fond, "prive/objets/contenu/", 21) == 0
and $objet = basename($fond)
and $objet == substr($fond, 21)
@ -190,10 +225,13 @@ function f_afficher_blocs_ecrire($flux) {
and $o[$objet]
) {
$id = intval($flux['args']['contexte'][$o[$exec]['id_table_objet']]);
$flux['data']['texte'] = pipeline('afficher_contenu_objet', array(
'args' => array('type' => $objet, 'id_objet' => $id, 'contexte' => $flux['args']['contexte']),
'data' => $flux['data']['texte']
));
$flux['data']['texte'] = pipeline(
'afficher_contenu_objet',
array(
'args' => array('type' => $objet, 'id_objet' => $id, 'contexte' => $flux['args']['contexte']),
'data' => $flux['data']['texte'],
)
);
}
}


+ 11
- 10
prive/squelettes/body.html View File

@ -1,10 +1,10 @@
[(#PIPELINE{body_prive,[(#VAL{<body class="#ENV{type-page,page}[ #ENV{type-page,page}_(#ENV{composition,''})][ statut_(#SESSION{statut})][ webmestre_(#SESSION{webmestre})][ auteur_(#SESSION{id_auteur})] [(#VAL|init_body_class)][(#ENV{type-page,page}|match{_edit$}|oui)edition]">})]})]
<INCLURE{fond=prive/squelettes/inclure/barre-nav,lang,recherche,plugins=(#REM|parametres_css_prive)}>
<div id="page">
<INCLURE{fond=prive/squelettes/inclure/barre-nav,lang,recherche,plugins=(#REM|parametres_css_prive)}>
<INCLURE{fond=prive/objets/liste/auteurs_enligne}>
[(#SESSION{id_auteur}|alertes_auteur)]
<div class="largeur">
<div id="haut">
<div id="haut">
<div class="largeur">
<div id="chemin">
<INCLURE{fond=prive/squelettes/hierarchie/#ENV{type-page},ajax=hierarchie,env}>
</div>
@ -13,23 +13,24 @@
-->]
#INCLURE{fond=prive/squelettes/top/#ENV{type-page},ajax=top,env}
</div>
</div>
<div class="largeur">
<div id="conteneur" class="[(#LARGEUR_ECRAN)]">
<div id="contenu" role='main'>
<INCLURE{fond=prive/squelettes/contenu/#ENV{type-page},ajax=contenu,env}>
</div>
<div id="navigation" class='lat' role='contentinfo'>
<INCLURE{fond=prive/squelettes/navigation/#ENV{type-page},ajax=navigation,env}>
[(#EVAL{$GLOBALS}|table_valeur{spip_ecran}|=={large}|oui)
</div>
<div id="extra" class='lat' role='complementary'>]
<div id="extra" class='lat' role='complementary'>
<INCLURE{fond=prive/squelettes/extra/#ENV{type-page},ajax=extra,env}>
</div>
<div id="contenu" role='main'>
<INCLURE{fond=prive/squelettes/contenu/#ENV{type-page},ajax=contenu,env}>
</div>
</div>
<br class="nettoyeur" />
</div>
<br class="nettoyeur" />
<div id="pied">
<div class="largeur">
<INCLURE{fond=prive/squelettes/inclure/pied}>
<INCLURE{fond=prive/squelettes/inclure/pied}>
</div>
</div>
</div>


+ 0
- 8
prive/squelettes/contenu/article.html View File

@ -19,15 +19,7 @@
[(#REM|changer_typo)]
#SET{options,#ARRAY}
[(#STATUT|=={prop}|oui)[(#SET{options,[(#ARRAY{label_date,<:texte_date_publication_objet:>})]})] ]
<div class="ajax">
#FORMULAIRE_DATER{article,#ID_ARTICLE,'',#GET{options}}
</div>
<div class="ajax">
#FORMULAIRE_EDITER_LIENS{auteurs,article,#ID_ARTICLE}
</div>
<!--affiche_milieu-->
<BOUCLE_proposer(ARTICLES)
{id_article}
{statut=prepa}


+ 16
- 3
prive/squelettes/extra/article.html View File

@ -1,7 +1,20 @@
<BOUCLE_extra(ARTICLES){id_article}{statut?}{si #ENV{exec}|=={article}}>
#SET{statut,#SESSION{statut}|statuts_articles_visibles}
#SET{where,#VAL{id_article!=}|concat{#ID_ARTICLE}}
<INCLURE{fond=prive/objets/liste/articles-memerubrique,id_rubrique=#ID_RUBRIQUE,where=#GET{where},statut=#GET{statut},env,ajax}>
<div class="affiche_connexe">
<div class="ajax">
#FORMULAIRE_DATER{article,#ID_ARTICLE,'',#GET{options}}
</div>
<div class="ajax">
#FORMULAIRE_EDITER_LIENS{auteurs,article,#ID_ARTICLE}
</div>
<!--affiche_milieu-->
#PIPELINE{afficher_config_objet,#ARRAY{args,#ARRAY{type,article,id,#ID_ARTICLE},data,''}}
#SET{statut,#SESSION{statut}|statuts_articles_visibles}
#SET{where,#VAL{id_article!=}|concat{#ID_ARTICLE}}
<INCLURE{fond=prive/objets/liste/articles-memerubrique,id_rubrique=#ID_RUBRIQUE,where=#GET{where},statut=#GET{statut},env,ajax}>
<!-- extra -->
</div>
</BOUCLE_extra>
[(#ENV{exec}|=={article_edit}|oui)<INCLURE{fond=prive/squelettes/extra/article_edit,env}>]

+ 6
- 1
prive/squelettes/extra/dist.html View File

@ -5,4 +5,9 @@
Distribue sous licence GPL
]
<!-- extra -->
<div class="affiche_connexe">
<!--affiche_milieu-->
</div>
<div class="affiche_extra">
<!-- extra -->
</div>

+ 0
- 2
prive/squelettes/navigation/article.html View File

@ -7,8 +7,6 @@
#FORMULAIRE_EDITER_LOGO{article,#ID_ARTICLE,'',#ENV**}
</div>
#PIPELINE{afficher_config_objet,#ARRAY{args,#ARRAY{type,article,id,#ID_ARTICLE},data,''}}
<div class="ajax">
#FORMULAIRE_REDIRIGER_ARTICLE{#ENV{id_article}}
</div>


+ 138
- 0
prive/themes/spip/affiche_connexe.css.html View File

@ -0,0 +1,138 @@
[(#REM)<style>]#CACHE{3600*100,cache-client}
#HTTP_HEADER{Content-Type: text/css;charset=utf-8}
#HTTP_HEADER{Vary: Accept-Encoding}
/**
* ================================
* Ajustements pour affiche_connexe
* ================================
*/
.affiche_connexe,
.affiche_connexe * {
box-sizing: border-box;
}
.affiche_connexe {
margin-top: 2em;
}
.affiche_connexe .formulaire_spip,
.affiche_connexe .liste-objets {
margin: 1em 0;
}
/* Liste d'objets */
.affiche_connexe .liste-objets {
background-color: white;
word-break: break-all;
}
.affiche_connexe .liste-objets thead {
display: none;
}
.affiche_connexe .liste-objets caption {
background: transparent;
/* background-color: hsla(0, 0%, 0%, 0.05); */
/* background: linear-gradient(hsla(0, 0%, 0%, 0.05), hsla(0, 0%, 0%, 0.025)); */
/* margin-bottom: 0.5em; */
}
.affiche_connexe .liste-objets .caption {
background-image: none !important;
padding-left: 5px !important;
font-size: 1em;
}
.affiche_connexe .liste-objets tr td {
border-color:transparent;
}
.lat .affiche_connexe .liste-objets tr > .action {
display: table-cell;
}
.affiche_connexe .liste-objets tr > .picto {
width: 0;
}
.affiche_connexe .liste-objets tr > .picto img {
display: none;
}
/* Liste d'objets spécifiques */
.affiche_connexe .liste-objets.auteurs .email,
.affiche_connexe .liste-objets.auteurs .nombre {
display: none;
}
/* Headings normalisés */
.affiche_connexe h4,
.affiche_connexe .h4,
.affiche_connexe caption,
.affiche_connexe .caption-wrap {
font-size: 0.9em;
}
/* Formulaires */
.affiche_connexe .formulaire_spip {
border-color: hsla(0, 0%, 0%, 0.1);
background-color: white;
}
.affiche_connexe .formulaire_spip .liste-objets {
margin-top: 0;
margin-bottom: 0;
}
#extra .affiche_connexe .formulaire_spip .boutons {
border-top: 0;
padding: 0;
display: flex;
justify-content: flex-end;
background-color: transparent;
}
.lat .affiche_connexe .formulaire_spip .boutons .submit {
flex: 1 1 auto;
border-radius: 0;
margin-bottom: -1px;
cursor: pointer;
padding: 0.33em 0.5em !important;
transition: all 0.2s;
}
.lat .affiche_connexe .formulaire_spip .boutons .submit:not(:hover):not(:focus) {
background-color: hsla(0, 0%, 0%, 0.05);
/* background: linear-gradient(hsla(0, 0%, 0%, 0.025), hsla(0, 0%, 0%, 0.05)); */
}
.lat .affiche_connexe .formulaire_spip .boutons .submit + .submit {
border-left: 1px solid hsla(0, 0%, 0%, 0.1);
}
.affiche_connexe .formulaire_spip .boutons .submit:last-of-type {
border-bottom-right-radius: 5px;
}
.affiche_connexe .formulaire_spip .boutons .submit:first-of-type {
border-bottom-left-radius: 5px;
}
.affiche_connexe .formulaire_editer_liens .liste-objets {
margin-left: -5px;
margin-right: -5px;
}
.lat .affiche_connexe .formulaire_traduire .editer label {
font-weight: bold;
}
.affiche_connexe input.recherche {
width: 100%;
}
/* Marges autour du wysiwyg */
#wysiwyg {
margin: 2.0775em 0;
}
/**
* ==========================
* Correctifs SPIP génériques
* ==========================
*/
/* Liste objets qui dépasse */
.lat .formulaire_editer_liens .liste-objets-lies {
margin-left: -5px;
margin-right: -5px;
}
/**
* ==================
* Correctifs plugins
* ==================
*/
.formulaire_editer_composition_objet h4 {
background: none !important;
padding-left: 5px !important;
}

+ 207
- 46
prive/themes/spip/layout.css View File

@ -1,51 +1,212 @@
/* Layout */
body {min-width: 780px;}
body.large {min-width: 974px;}
/* ecran etroit*/
#haut {text-align:center;margin-top:10px;}
.largeur { width: 780px; margin: auto; text-align:left;padding:0; }
#conteneur,.table_page { clear: both; margin-right: auto; margin-left: auto; text-align: left; width: 780px; margin-top:0.5em;}
#navigation { float: left; width: 200px; min-height: 100px; overflow-wrap: break-word; }
#extra { float: left; clear:left; width: 200px; overflow-wrap: break-word; }
#contenu { float: right ; margin-left: 30px; width: 550px; min-height:400px}
/**
* ======
* Layout
* ======
*
* Organisation :
*
* 1. Layout général de la page
* 2. Contenus textes limités en largeur
* 3. Divers
* 4. Grenier
*
* Breakpoints : 780px / 1200px
*
* Markup :
*
* body(.large)
* #page
* #bando_haut
* ...
* #haut
* .largeur
* .largeur
* #conteneur
* #contenu
* #navigation
* #extra
* #pied
* .largeur
*/
/**
* ============================
* 1. Layout général de la page
* ============================
*/
.largeur {
max-width: 1400px;
margin: auto;
text-align: left;
padding: 0 1em;
}
body.large .largeur {
max-width: 100%;
}
#page {
margin: auto;
text-align: center;
}
#haut {
text-align: center;
margin-top: 10px;
}
#contenu {
}
#navigation {
overflow-wrap: break-word;
}
#extra {
overflow-wrap: break-word;
}
#pied {}
div.messages-alertes {text-align: right;background: #fff;padding: 5px;width: 770px;clear: both; margin-right: auto; margin-left: auto;}
/* ecran large*/
.large .largeur {width:974px;}
.large #conteneur,.large .table_page { width: 974px; }
.large div.messages-alertes {width: 964px;}
.large #navigation { }
.large #extra { float: right; clear:none; width: 200px; }
.large #contenu { float: left; margin-left: 17px; width: 540px; }
/* les formulaires sont en 600px en config large */
body.large.edition #contenu,
.articles_edit.large #contenu,
.mots_edit.large #contenu,
.breves_edit.large #contenu,
.rubriques_edit.large #contenu {width:600px;}
body.large.edition #extra,
.articles_edit.large #extra,
.mots_edit.large #extra,
.breves_edit.large #extra,
.rubriques_edit.large #extra {width:140px;}
/* une seule colonne centrale */
.pleine_largeur #navigation,.pleine_largeur #extra,
body.large .pleine_largeur #navigation,body.large .pleine_largeur #extra {display:none;}
.pleine_largeur #contenu,
body.large .pleine_largeur #contenu {margin-left:0;width:100%;}
/**
* Écrans moyens : on passe en 2 colonnes.
* Fallback vieux navigateurs : direct en 3 colonnes et basta.
*/
@media (min-width: 780px) {
.largeur {
padding-left: 1.5em;
padding-right: 1.5em;
}
/* Navigateurs napthaline */
#contenu {
display: inline-block;
width: 60%;
}
#navigation {
width: 18%;
float: left;
margin-right: 2%;
}
#extra {
width: 18%;
float: right;
}
/* Navigateurs récents */
@supports (display: grid) {
.pleine_largeur #contenu {
width: 100%;
}
#conteneur:not(.pleine_largeur) {
display: grid;
grid-column-gap: 1.5em;
grid-template-rows: auto 1fr; /* la 1ère ligne doit se collapser */
grid-template-columns:
calc(8em + 12%) /* navigation & extra */
1fr; /* contenu */
grid-template-areas:
"navigation contenu "
"extra contenu ";
justify-content: center;
}
#contenu {
grid-area: contenu;
width: initial;
}
#navigation {
grid-area: navigation;
width: initial;
margin-right: 0;
}
#extra {
grid-area: extra;
width: initial;
}
}
}
/**
* Sur écrans larges : 3 colonnes.
*/
@media (min-width: 1200px) {
@supports (display: grid) {
#conteneur:not(.pleine_largeur) {
grid-template-columns:
calc(8em + 12%) /* navigation */
1fr /* contenu */
calc(8em + 12%); /* extra */
grid-template-areas:
"navigation contenu extra"
"navigation contenu extra";
}
}
}
/**
* =====================================
* 2. Contenus textes limités en largeur
* =====================================
* On essaie d'obtenir environ 60 charactères max par ligne.
*/
#wysiwyg .champ > * {
max-width: 35rem;
margin-left: auto;
margin-right: auto;
}
/**
* =========
* 3. Divers
* =========
*/
.centered {
margin: 0 auto;
text-align: center;
}
div.messages-alertes {
text-align: right;
background: #fff;
padding: 5px;
width: 770px;
clear: both;
margin-right: auto;
margin-left: auto;
}
/**
* ==========
* 4. Grenier
* ==========
*/
.table_page {
margin: auto;
text-align: left;
clear: both;
margin-right: auto;
margin-left: auto;
margin-top: 0.5em;
}
div.table_page {
margin-top: 1em;
}
/*fix all layout problems of IE6 and IE7*/
.lte7 .cadre,
.lte7 .fiche_objet, /*title not visible*/
.lte7 .ajax-action, /*containers of expandible boxes go mad*/
.lte7 .tabs-container, /*containers of expandible boxes go mad*/
.lte7 .fiche_objet,
/*title not visible*/
.lte7 .ajax-action,
/*containers of expandible boxes go mad*/
.lte7 .tabs-container,
/*containers of expandible boxes go mad*/
.lte7 #portfolio,
.lte7 #documents {zoom:1}
div.table_page { margin-top: 1em; }
.centered { margin: 0 auto; text-align: center; }
#page { margin: auto; text-align: center; }
.table_page{ margin: auto; text-align: left; }
.lte7 #documents {
zoom: 1
}

+ 1
- 1
prive/themes/spip/style_prive.css.html View File

@ -32,7 +32,7 @@ Valeurs par defaut :
[(#INCLURE{#VAL{clear.css}|find_in_theme|direction_css{#GET{dir}}|substr{#CONST{_DIR_RACINE}|strlen}})]
[(#INCLURE{#VAL{layout.css}|find_in_theme|direction_css{#GET{dir}}|substr{#CONST{_DIR_RACINE}|strlen}})]
<BOUCLE_css(POUR){tableau #LISTE{typo.css,grids.css,bando.css,icons.css,lists.css,forms.css,picker.css,box_skins.css,jquery-ui.css,content.css,exceptions.css,theme.css}}>
<BOUCLE_css(POUR){tableau #LISTE{typo.css,grids.css,bando.css,icons.css,lists.css,forms.css,picker.css,box_skins.css,jquery-ui.css,content.css,exceptions.css,theme.css,affiche_connexe.css}}>
[(#SET{fond,[(#VALEUR|concat{.html}|find_in_theme|substr{[(#CONST{_DIR_RACINE}|strlen)],[(#VAL{-5}|intval)]})]})]
/*
* #VALEUR::[(#GET{fond})]


+ 8
- 1
prive/themes/spip/typo.css.html View File

@ -37,7 +37,14 @@
*/
html { font-size: 100.01%; } /* Cf.: http://www.pompage.net/pompe/definir-des-tailles-de-polices-en-CSS/ */
body { background: #GET{background-color}; font: #GET{font-size}/#GET{line-height}[ (#GET{font-family})]; color: #GET{color}; }
body {
background: #GET{background-color};
font-size: #GET{font-size}; /* vieux navigateurs */
font-size: calc\([(#GET{font-size}) ]+ 0.1vw\); /* mobile => 15px, 1920px => 18px */
line-height: #GET{line-height};
font-family: #GET{font-family};
color: #GET{color};
}
/* Titraille / Intertitres */
h1,h2,h3,h4,h5,h6,


Loading…
Cancel
Save