بحث الگو:جعبه اطلاعات هنرمند

آخرین نظر: ۳ سال پیش توسط Huji

@Huji: درود. مشکلی در پارامترهای مکان الگو وجود دارد. می‌خواهم به الگو بگویم یا پارامترهای "شهر تولد" و "کشور تولد" را بخواند یا پارامتر "مکان تولد" را بخواند. اما تنها دو پارامتر "شهر تولد" و "کشور تولد" را می‌خواند و چیزی برای پارامتر "مکان تولد" نشان نمی‌دهد. چه کنم؟ Shkuru Afshar (بحث) ‏۱۳ سپتامبر ۲۰۲۰، ساعت ۰۸:۰۲ (UTC)پاسخ

@Shkuru Afshar: این فرصت خوبی است که یک نکتهٔ فنی را به شما آموزش بدهم. این {{{فلان|}}} با آن خط عمودی چه کار می‌کند؟ می‌گوید اگر پارامتر فلان مقدار داشت، مقدارش را نشان بدهد و اگر نه برو چیزی که بعد از خطر تیره است را نشان بدهد. اما توجه کنید که فقط یک خط عمودی از این نوع می‌توانید به کار ببرید. یعنی چه؟ یعنی {{{فلان|چنین}}} اگر فلان مقدار داشت فلان را نشان می‌دهد، اگر نه متن «چنین» را نشان می‌دهد. اما دستور {{{فلان|چنین|چنان}}} هم دقیقاً همان کار را می‌کند و هرگز به بخش «چنان» نمی‌رسد.

حالا بیایید {{{فلان|{{{بهمان|}}}|چنان}}} را بررسی کنیم. اگر پارامتر فلان مقدار داشت مقدارش را نشان می‌دهد. اگر نه می‌رود سراغ قسمت دوم؛ یا پارامتر بهمان مقدار دارد که نشان می‌دهد، یا خالی است که هیچی نشان نمی‌دهد (چون در خودِ {{{بهمان|}}} چیزی بعد از خطر تیره نیامده). دستور هم هرگز به «چنان» نمی‌رسد. واضح بود؟

پس چه کنیم که به چنان برسد؟ چنان را باید بیاوریم داخل دستور بهمان، بعد از خط عمودی، این طوری: {{{فلان|{{{بهمان|چنان}}}}}} اینجا اگر فلان مقدار داشت آن را نشان می‌دهد، در غیر اینصورت می‌رود سراغ بهمان؛ اگر بهمان مقدار داشت آن را نشان می‌دهد و در غیر اینصورت متن «چنان» را نشان می‌دهد. تا اینجا هم واضح بود؟

حال دستوری که در الگو به کار بردید را ببینید؛ من به دلخواه رنگی‌اش کرده‌ام تا تحلیلش ساده‌تر باشد: {{{birth_place|{{{شهر تولد|}}} {{{کشور تولد|}}}|{{{مکان تولد|}}}}}} و مطابق مثال بالا، حالا می‌توانید این را تحلیل کنید. می‌بینید که می‌گوید اول پارامتر birth_place را چک کند، اگر مقدار داشت که داشت، اگر نه مقدار قرمز را نشان بده؛ تحلیل هرگز به بخش نارنجی نمی‌رسد.

راه حل چیست؟ این: {{{birth_place|{{{مکان تولد|{{{شهر تولد|}}} {{{کشور تولد|}}}}}}}}} که می‌گوید اول پارامتر birth_place را چک کن؛ اگر خالی بود پارامتر «مکان تولد» را چک کن، اگر این هم خالی بود، مقدار {{{شهر تولد|}}} {{{کشور تولد|}}} را نشان بده.

نکتهٔ پایانی که نپرسیدید اما مهم است و می‌گویم: اگر تمام چهارپارامتر خالی باشد، خروجی این بخش چیست؟ خالی؟ نه! یک فاصلهٔ اضافه. چرا؟ چون دستور {{{شهر تولد|}}} {{{کشور تولد|}}} بین دو قسمتش همیشه یک فاصله ایجاد می‌کند. اینجا: {{{شهر تولد|}}}{{{کشور تولد|}}}. بسته به الگوی مادر، این می‌تواند مشکل ایجاد بکند یا نکند. بعضی الگوها به وجود فاصله در خروجی‌ها حساسند و بعضی نه. الگوهای infobox به آن حساس نیستند. — حجت/بحث ‏۱۳ سپتامبر ۲۰۲۰، ساعت ۱۲:۴۰ (UTC)پاسخ

بازگشت به صفحهٔ «جعبه اطلاعات هنرمند».