2010-08-27 9 views
5

मुझे अलग-अलग मेडिकल फॉर्म प्रदर्शित करना है, जिसके अनुसार उपयोगकर्ता किस राज्य में है। एक डिफ़ॉल्ट रूप भी है जो कई राज्य साझा करते हैं। ये चिकित्सा रूप सभी टेम्पलेट टूलकिट में लिखे गए हैं और वे बड़े टेम्पलेट्स में शामिल हैं। राज्य एक सामान्य रूप में एक चर के रूप में उपलब्ध है।क्या मैं टेम्पलेट के अंदर टेम्पलेट विरासत स्थापित कर सकता हूं? (टेम्पलेट टूलकिट)

यदि यह मौजूद है, तो मुझे राज्य-विशिष्ट टेम्पलेट का चयन करने की आवश्यकता है, अन्यथा डिफ़ॉल्ट पर वापस आना चाहिए। मैं यह करने के बारे में सबसे अच्छा कैसे जाना होगा?

INCLUDE_PATH साइट शैलियों के बीच स्विचिंग को नियंत्रित करने के लिए पहले से ही उपयोग किया जा रहा है।

main.tt:

This is a main template [% GET state %] 
[% SET iname = state _ ".tt" %] 
[% TRY %] 
[% INCLUDE "$iname" %] 
[% CATCH %] 
[% INCLUDE default.tt %] 
[% END %] 
End of main template 

default.tt:

This is default template 

s1.tt:

This is template for state s1. 

टी

उत्तर

6

कुछ इस तरह काम करना चाहिए .pl:

#! /usr/bin/perl 
use 5.006; 
use strict; 
use warnings; 

use Template; 
my $tt = Template->new(); 
$tt->process("main.tt", { state => "s1" }) 
    || die $tt->error, "\n"; 
print "---------\n"; 
$tt->process("main.tt", { state => "unknown" }) 
    || die $tt->error, "\n"; 

जब t.pl चल:

This is a main template s1 
This is template for state s1. 
End of main template 
--------- 
This is a main template unknown 
This is default template 
End of main template 
+0

है जैसे कि यह काम करेंगे लग रहा है यही कारण है कि, धन्यवाद! और मैं इसे एक उपयोगिता टेम्पलेट में दूर कर सकता हूं ताकि मैं कुछ ऐसा कर सकूं जैसे '[% INCLUDE "उपयोग/bystate" टेम्पलेट = "some_form.tt2"] ' – Schwern

संबंधित मुद्दे