Malldiskussion:Kartposition markör

Sidans innehåll stöds inte på andra språk.
Från Wikipedia

Förslag på ny optionell parameter - platstextbredd[redigera wikitext]

Jag stötte på ett problem med mallen Kartposition markör när jag uppdaterade artikeln Landsortsdjupet. Eftersom jag vill ha platsnamnet till vänster om markören, där det finns mest plats, så angav jag position=left i mallen. Det visar sig dock att för längre namn, som t ex Landsortsdjupet, så gör begränsningen i width att texten krockar med markören. (Märkligt nog är text-align:right inte tillräckligt kraftfullt för att överrida width. I fallet position=right så fortsätter ju texten så långt det behövs till höger även om width överskrids.)
I det aktuella fallet, Landsortsdjupet, så fungerar inte heller position=top eller position=bottom eftersom texten då hamnar delvis utanför kartbilden vilket inte är snyggt.

Mitt förslag på lösning på detta problem är att i mallen Kartposition markör införa en ny parameter, platstextbredd, som är optionell. Om den utelämnas så fungerar mallen precis som tidigare (med width=6em). Om man anger platstextbredd (i enheten em) så ersätts värdet på width med det angivna värdet och left anpassas för fallen position=left, top och bottom så att den högerjusterade respektive centerjusterade texten hamnar rätt.

Not: Den enklaste lösningen att bara ändra 6em till något större, t ex 10em, (samt anpassa left för fallen top och bottom) i mallen fungerar också, men riskerar att ställa till problem där man eventuellt har utnyttjat den fasta begränsningen av width till just 6em.)

Här är den modifierade mallkoden:

Jag har provat den lite, men eftersom mallen är flitigt använd så är det väl bra om någon vänlig person granskar koden innan den tas i drift:

<includeonly>
<div style="position:absolute;z-index:200;top:{{#expr:100*({{Kartposition {{{1}}}|topp}}-{{{lat}}}) / ({{Kartposition {{{1}}}|topp}}-{{Kartposition {{{1}}}|botten}}) round 1}}%;
left:{{#expr:100*({{{long}}}-{{Kartposition {{{1}}}|vänster}}) / ({{Kartposition {{{1}}}|höger}}-{{Kartposition {{{1}}}|vänster}}) round 1}}%;height:0;width:0;margin:0;padding:0;">
<div style="position:relative;top:-4px;left:-4px;width:8px;text-align:center;z-index:201">[[Image:{{#if:{{{markör|}}}|{{{markör}}}|Red_pog.svg}}|{{#if:{{{storlek|}}}|{{{storlek}}}|8px}}]]</div>
{{#switch:{{{position}}}
|right=<div style{{=}}"font-size:90%;line-height:110%;position:relative;top:-1.5em;left:0.5em;text-align:left;width:{{#if:{{{platstextbredd|}}}|{{{platstextbredd}}}|6}}em;z-index:202;">
|left=<div style="font-size:90%;line-height:110%;position:relative;top:-1.5em;
left:{{#expr:-0.5-{{#if:{{{platstextbredd|}}}|{{{platstextbredd}}}|6}}}}em;width:{{#if:{{{platstextbredd|}}}|{{{platstextbredd}}}|6}}em;text-align:right;z-index:202;">
|top=<div style="font-size:90%;line-height:110%;position:relative;top:-3.0em;
left:{{#expr:0.5-{{#if:{{{platstextbredd|}}}|{{{platstextbredd}}}/2|3}}}}em;
width:{{#if:{{{platstextbredd|}}}|{{{platstextbredd}}}|6}}em;text-align:center;z-index:202;">
|bottom=<div style="font-size:90%;line-height:110%;position:relative;top:-0.5em;
left:{{#expr:0.5-{{#if:{{{platstextbredd|}}}|{{{platstextbredd}}}/2|3}}}}em;
width:{{#if:{{{platstextbredd|}}}|{{{platstextbredd}}}|6}}em;text-align:center;z-index:202;">
|<div style{{=}}"font-size:90%;line-height:110%;position:relative;top:-1.5em;left:0.5em;text-align:left;width:{{#if:{{{platstextbredd|}}}|{{{platstextbredd}}}|6}}em;z-index:202;">
}}<span style="padding:1px;background:{{#if:{{{färg|}}}|{{{färg}}}|none}}">{{{plats}}}</span>
</div>
</div></includeonly>

Larske 29 mars 2011 kl. 12.03 (CEST)[svara]

Ändringen enligt ovan är nu införd och dokumentationen är uppdaterad. Ingen av de artiklar som använder mallen har påverkats negativt såvitt jag kan se. Den nya parametern platstextbredd har även använts i några av dessa artiklar, t ex Världsarv i Sverige och Världsarv i Ryssland. Nu när man inte längre är begränsad vad gäller bredden på text så kanske fler kan få användning för mallen i nya eller befintliga artiklar.
Larske 16 april 2011 kl. 14.13 (CEST)[svara]