Šablona:FAQ: Porovnání verzí

Z Wiki JU
Ofara (diskuse | příspěvky)
m Ofara přesunul stránku Šablona:Faq na Šablona:FAQ
Ofara (diskuse | příspěvky)
Bez shrnutí editace
Řádek 1: Řádek 1:
<includeonly>
<includeonly>
<!-- Jedna FAQ položka s tematyzací a možností permanentně rozbalit.
<!-- Parametry: que, ans, permanentne(0/1), tema(default|uni)
    Parametry (EN):
    volitelné overrides: bg, q_color, ramecek(1/0), barva_ramecku, radius, barva_sipky,
      que= (required) question text
                          ans_bg, ans_ramecek(1/0), ans_barva_ramecku, ans_radius, ans_inset -->
      ans= (required) answer content (wiki markup allowed)
      permanentne= 1 → always expanded (no arrow)
      tema= default | uni   (theming preset)
      -- Styling overrides (optional):
      bg, q_color, ramecek (1/0), barva_ramecku, radius, barva_sipky,
      ans_bg, ans_ramecek (1/0), ans_barva_ramecku, ans_radius, ans_inset
-->


<!-- 0) vstupy -->
<!-- Helpery pro theme-defaulty s možností override -->
{{#vardefine: tema | {{{tema|default}}} }}
<!-- bg -->
{{#vardefine: permanentne | {{{permanentne|0}}} }}
{{#vardefineecho:__bg|
{{#vardefine: que | {{{que|Question}}} }}
  {{#if: {{{bg|}}}
{{#vardefine: ans | {{{ans|}}} }}
    | {{{bg}}}
    | {{#ifeq: {{{tema|default}}} | uni | #E00034 | #ffffff}}
  }}
}}


<!-- 1) theme defaults -->
<!-- text/arrow color -->
{{#vardefine: def_bg | {{#switch: {{#var:tema}}
{{#vardefineecho:__qcolor|
  | uni = #E00034
  {{#if: {{{q_color|}}}
  | #default = #ffffff
    | {{{q_color}}}
}} }}
    | {{#ifeq: {{{tema|default}}} | uni | #ffffff | #000000}}
{{#vardefine: def_q_color | {{#switch: {{#var:tema}}
  }}
  | uni = #ffffff
}}
  | #default = #000000
{{#vardefineecho:__arrow|
}} }}
  {{#if: {{{barva_sipky|}}}
{{#vardefine: def_barva_sipky | {{#switch: {{#var:tema}}
    | {{{barva_sipky}}}
  | uni = #ffffff
    | {{#ifeq: {{{tema|default}}} | uni | #ffffff | #000000}}
  | #default = #000000
  }}
}} }}
}}
{{#vardefine: def_ramecek | {{#switch: {{#var:tema}}
  | uni = 0
  | #default = 1
}} }}
{{#vardefine: def_barva_ramecku | {{#switch: {{#var:tema}}
  | uni = #E00034
  | #default = #00000033
}} }}


<!-- odpověď (panel) – necháme neutrální, ale lze přepsat -->
<!-- border toggle + color -->
{{#vardefine: def_ans_bg | #f5f5f5 }}
{{#vardefineecho:__ramecek|
{{#vardefine: def_ans_ramecek | 1 }}
  {{#if: {{{ramecek|}}}
{{#vardefine: def_ans_barva_ramecku | #00000033 }}
    | {{{ramecek}}}
{{#vardefine: def_radius | 10px }}
    | {{#ifeq: {{{tema|default}}} | uni | 0 | 1}}
{{#vardefine: def_ans_radius | 0 0 10px 10px }}
  }}
{{#vardefine: def_ans_inset | 12px }}
}}
 
{{#vardefineecho:__bordercolor|
<!-- 2) final values (user override > theme default) -->
  {{#if: {{{barva_ramecku|}}}
{{#vardefine: bg | {{#if: {{{bg|}}} | {{{bg}}} | {{#var:def_bg}} }} }}
    | {{{barva_ramecku}}}
{{#vardefine: q_color | {{#if: {{{q_color|}}} | {{{q_color}}} | {{#var:def_q_color}} }} }}
    | {{#ifeq: {{{tema|default}}} | uni | #E00034 | #00000033}}
{{#vardefine: barva_sipky | {{#if: {{{barva_sipky|}}} | {{{barva_sipky}}} | {{#var:def_barva_sipky}} }} }}
   }}
{{#vardefine: ramecek | {{#if: {{{ramecek|}}} | {{{ramecek}}} | {{#var:def_ramecek}} }} }}
{{#vardefine: barva_ramecku | {{#if: {{{barva_ramecku|}}} | {{{barva_ramecku}}} | {{#var:def_barva_ramecku}} }} }}
{{#vardefine: radius | {{{radius|{{#var:def_radius}}}}} }}
 
{{#vardefine: ans_bg | {{{ans_bg|{{#var:def_ans_bg}}}}} }}
{{#vardefine: ans_ramecek | {{{ans_ramecek|{{#var:def_ans_ramecek}}}}} }}
{{#vardefine: ans_barva_ramecku | {{{ans_barva_ramecku|{{#var:def_ans_barva_ramecku}}}}} }}
{{#vardefine: ans_radius | {{{ans_radius|{{#var:def_ans_radius}}}}} }}
{{#vardefine: ans_inset | {{{ans_inset|{{#var:def_ans_inset}}}}} }}
 
<!-- 3) derived styles -->
{{#vardefine: box-border | {{#ifeq: {{#var:ramecek}} | 1 | 1px solid {{#var:barva_ramecku}} | none}} }}
{{#vardefine: ans-border | {{#ifeq: {{#var:ans_ramecek}} | 1 | 1px solid {{#var:ans_barva_ramecku}} | none}} }}
 
<!-- 4) render -->
{{#ifeq: {{#var:permanentne}} | 1 |
   <!-- permanent (no arrow) -->
  <div class="faq-item faq-permanent"
      style="background:{{#var:bg}}; border:{{#var:box-border}}; border-radius:{{#var:radius}}; padding:0; margin:.5rem 0;">
    <div class="faq-qrow" role="heading"
        style="display:flex; align-items:center; gap:.5rem; padding:.75rem 1rem; font-weight:700; color:{{#var:q_color}};">
      <span class="faq-qtext" style="flex:1 1 auto;">{{#var:que}}</span>
    </div>
    <div class="faq-answer"
        style="margin:.25rem {{#var:ans_inset}} 1rem {{#var:ans_inset}}; padding:.75rem 1rem;
                background:{{#var:ans_bg}}; border:{{#var:ans-border}}; border-radius:{{#var:ans_radius}};">
      {{#var:ans}}
    </div>
  </div>
|
  <!-- collapsible details with arrow -->
  <details class="faq-item"
          style="background:{{#var:bg}}; border:{{#var:box-border}}; border-radius:{{#var:radius}}; padding:0; margin:.5rem 0;">
    <summary class="faq-qrow"
            style="display:flex; align-items:center; gap:.5rem; padding:.75rem 1rem; font-weight:700; color:{{#var:q_color}}; list-style:none; cursor:pointer;">
      <span class="faq-qtext" style="flex:1 1 auto;">{{#var:que}}</span>
      <span class="faq-arrow" style="margin-left:auto; color:{{#var:barva_sipky}};">
        <span class="arrow-down">▼</span><span class="arrow-up">▲</span>
      </span>
    </summary>
    <div class="faq-answer"
        style="margin:.25rem {{#var:ans_inset}} 1rem {{#var:ans_inset}}; padding:.75rem 1rem;
                background:{{#var:ans_bg}}; border:{{#var:ans-border}}; border-radius:{{#var:ans_radius}};">
      {{#var:ans}}
    </div>
  </details>
}}
}}
</includeonly>
{{#vardefineecho:__radius|{{{radius|10px}}} }}


<noinclude>
<!-- answer panel defaults -->
== Template:FAQ ==
{{#vardefineecho:__ansbg|{{{ans_bg|#f5f5f5}}} }}
* EN parametry: que, ans, permanentne (0/1), tema (default|uni)
{{#vardefineecho:__ansramecek|{{{ans_ramecek|1}}} }}
* Volitelné overrides: bg, q_color, ramecek, barva_ramecku, radius, barva_sipky, ans_bg, ans_ramecek, ans_barva_ramecku, ans_radius, ans_inset
{{#vardefineecho:__ansborder|{{{ans_barva_ramecku|#00000033}}} }}
{{#vardefineecho:__ansradius|{{{ans_radius|0 0 10px 10px}}} }}
{{#vardefineecho:__ansinset|{{{ans_inset|12px}}} }}


Příklady:
<!-- finální border stringy -->
<pre>
{{#vardefineecho:__boxborder|
{{FAQ
  {{#ifeq: {{#var:__ramecek}} | 1 | 1px solid {{#var:__bordercolor}} | none}}
| que = How do I change my password?
| ans = Go to [[Special:ChangePassword]] and follow the steps.
}}
}}
 
{{#vardefineecho:__ansboxborder|
{{FAQ
  {{#ifeq: {{#var:__ansramecek}} | 1 | 1px solid {{#var:__ansborder}} | none}}
| que = Important notice
| ans = This procedure is mandatory for all users.
| permanentne = 1
}}
}}


{{FAQ
<!-- RENDER -->
  | que = Upload limit
{{#ifeq: {{{permanentne|0}}} | 1
  | ans = Contact IT to increase the limit; alternatively use external storage.
  | <!-- permanentně rozbaleno -->
| tema = uni
  <div class="faq-item faq-permanent"
        style="background:{{#var:__bg}}; border:{{#var:__boxborder}}; border-radius:{{#var:__radius}}; padding:0; margin:.5rem 0;">
    <div class="faq-qrow" role="heading"
          style="display:flex; align-items:center; gap:.5rem; padding:.75rem 1rem; font-weight:700; color:{{#var:__qcolor}};">
      <span class="faq-qtext" style="flex:1 1 auto;">{{{que|Question}}}</span>
    </div>
    <div class="faq-answer"
          style="margin:.25rem {{#var:__ansinset}} 1rem {{#var:__ansinset}}; padding:.75rem 1rem;
                background:{{#var:__ansbg}}; border:{{#var:__ansboxborder}}; border-radius:{{#var:__ansradius}};">
      {{{ans|}}}
    </div>
  </div>
  | <!-- collapsible -->
  <details class="faq-item"
            style="background:{{#var:__bg}}; border:{{#var:__boxborder}}; border-radius:{{#var:__radius}}; padding:0; margin:.5rem 0;">
    <summary class="faq-qrow"
              style="display:flex; align-items:center; gap:.5rem; padding:.75rem 1rem; font-weight:700; color:{{#var:__qcolor}}; list-style:none; cursor:pointer;">
      <span class="faq-qtext" style="flex:1 1 auto;">{{{que|Question}}}</span>
      <span class="faq-arrow" style="margin-left:auto; color:{{#var:__arrow}};">
        <span class="arrow-down">▼</span><span class="arrow-up">▲</span>
      </span>
    </summary>
    <div class="faq-answer"
          style="margin:.25rem {{#var:__ansinset}} 1rem {{#var:__ansinset}}; padding:.75rem 1rem;
                background:{{#var:__ansbg}}; border:{{#var:__ansboxborder}}; border-radius:{{#var:__ansradius}};">
      {{{ans|}}}
    </div>
  </details>
}}
}}
 
</includeonly>
{{FAQ
<noinclude>
| que = Custom styled item
Použití:
| ans = You can override theme defaults per item.
* Základ: {{FAQ|que=Can I upload PDFs over 10 MB?|ans=Yes, ask IT to raise the limit.}}
| bg = #fff | q_color = #111 | ramecek = 1 | barva_ramecku = #00000022
* Téma UNI: {{FAQ|que=Password reset|ans=Use [[Special:PasswordReset]].|tema=uni}}
| ans_bg = #f2f2f2 | ans_barva_ramecku = #00000022
* Permanentně: {{FAQ|que=Notice|ans=Maintenance 22:00–23:00.|permanentne=1|tema=uni}}
| radius = 12px | ans_radius = 0 0 12px 12px | ans_inset = 16px
}}
</pre>
</noinclude>
</noinclude>

Verze z 24. 9. 2025, 13:52


Použití:

  • Základ:

{{#vardefineecho:__bg|

  1. ffffff

}}

{{#vardefineecho:__qcolor|

  1. 000000

}} {{#vardefineecho:__arrow|

  1. 000000

}}

{{#vardefineecho:__ramecek|

 1

}} {{#vardefineecho:__bordercolor|

  1. 00000033

}} {{#vardefineecho:__radius|10px }}

{{#vardefineecho:__ansbg|#f5f5f5 }} {{#vardefineecho:__ansramecek|1 }} {{#vardefineecho:__ansborder|#00000033 }} {{#vardefineecho:__ansradius|0 0 10px 10px }} {{#vardefineecho:__ansinset|12px }}

{{#vardefineecho:__boxborder|

 none

}} {{#vardefineecho:__ansboxborder|

 none

}}

<details class="faq-item"

           style="background:{{#var:__bg}}; border:{{#var:__boxborder}}; border-radius:{{#var:__radius}}; padding:0; margin:.5rem 0;">
    <summary class="faq-qrow"
             style="display:flex; align-items:center; gap:.5rem; padding:.75rem 1rem; font-weight:700; color:{{#var:__qcolor}}; list-style:none; cursor:pointer;">
      Can I upload PDFs over 10 MB?
      
        
      
    </summary>
      Yes, ask IT to raise the limit.
  </details>


  • Téma UNI:

{{#vardefineecho:__bg|

  1. E00034

}}

{{#vardefineecho:__qcolor|

  1. ffffff

}} {{#vardefineecho:__arrow|

  1. ffffff

}}

{{#vardefineecho:__ramecek|

 0

}} {{#vardefineecho:__bordercolor|

  1. E00034

}} {{#vardefineecho:__radius|10px }}

{{#vardefineecho:__ansbg|#f5f5f5 }} {{#vardefineecho:__ansramecek|1 }} {{#vardefineecho:__ansborder|#00000033 }} {{#vardefineecho:__ansradius|0 0 10px 10px }} {{#vardefineecho:__ansinset|12px }}

{{#vardefineecho:__boxborder|

 none

}} {{#vardefineecho:__ansboxborder|

 none

}}

<details class="faq-item"

           style="background:{{#var:__bg}}; border:{{#var:__boxborder}}; border-radius:{{#var:__radius}}; padding:0; margin:.5rem 0;">
    <summary class="faq-qrow"
             style="display:flex; align-items:center; gap:.5rem; padding:.75rem 1rem; font-weight:700; color:{{#var:__qcolor}}; list-style:none; cursor:pointer;">
      Password reset
      
        
      
    </summary>
  </details>


  • Permanentně:

{{#vardefineecho:__bg|

  1. E00034

}}

{{#vardefineecho:__qcolor|

  1. ffffff

}} {{#vardefineecho:__arrow|

  1. ffffff

}}

{{#vardefineecho:__ramecek|

 0

}} {{#vardefineecho:__bordercolor|

  1. E00034

}} {{#vardefineecho:__radius|10px }}

{{#vardefineecho:__ansbg|#f5f5f5 }} {{#vardefineecho:__ansramecek|1 }} {{#vardefineecho:__ansborder|#00000033 }} {{#vardefineecho:__ansradius|0 0 10px 10px }} {{#vardefineecho:__ansinset|12px }}

{{#vardefineecho:__boxborder|

 none

}} {{#vardefineecho:__ansboxborder|

 none

}}

      Notice
      Maintenance 22:00–23:00.