मैं तरीके चतुर में प्रत्यावर्तन को संभालने के लिए की एक जोड़ी, ज्यादातर जो संसाधनों की हास्यास्पद बेकार की तरह लगता है खुद में टेम्पलेट्स, सहित के आधार पर पाया। मैसीजू द्वारा मैसीजू द्वारा एक समाधान मिला, जो कि सही था - लेकिन यह समर्थित नहीं है और smarty के नवीनतम संस्करण में विफल रहता है :(smarty में रिकर्सन को संभालने का सबसे अच्छा तरीका क्या है?
लोगों से पूछने के लिए: मैं क्या प्रिंट करना चाहता हूं एक चर्चा है थ्रेड कि प्रविष्टियों की एक सरणी द्वारा परिभाषित किया गया है। एक प्रविष्टि एक या अधिक जवाब है, तो उन के रूप में बच्चों एक सरणी में प्रवेश कहा करने के लिए सूचीबद्ध किया गया है, और इतने पर।
array(
array(
'id'=>0,
'headline'=>"My parent headline",
'body' =>"My parent body",
'children'=>array(
array(
'id'=>1,
'headline'=>"My firstChild headline",
'body' =>"My firstChild body",
'children'=>array()
),
array(
'id'=>2,
'headline'=>"My secondChild headline",
'body' =>"My secondChild body",
'children'=>array()
)
)
),
);
नेस्टेड सरणी एक मनमाना गहराई है, और प्रत्येक प्रविष्टि के बच्चों की एक मनमाना संख्या होगा। मेरे लिए यह कुछ मैं टेम्पलेट के दायरे के भीतर साथ क्या करना चाहते है, मैं विचार के रूप में यह शुद्ध प्रदर्शन तर्क। मैं नहीं चाहता कि HTML या HTML के कुछ प्रकार संभाल करने के लिए करना चाहते हैं के बाहर प्लेसहोल्डर्स टेम्पलेट।
मैं इस रूप में नेस्टेड सूचियों मुद्रित करने के लिए चतुर हैं:
<ul>
<li>
<h1>My parent headline</h1>
<p>My parent body</p>
<ul>
<li>
<h1>My firstChild headline</h1>
<p>My firstChild body</p>
</li>
<li>
<h1>My secondChild headline</h1>
<p>My secondChild body</p>
</li>
</ul>
</li>
</ul>
मैं महसूस करने के लिए यह एक बहुत ही मामला-दर-मामला समस्या हो सकती है शुरू कर, तो मैं समझ मैं सिर्फ एक चतुर प्लगइन लिखेंगे इसे विशेष रूप से संभालने के लिए, हालांकि मैं एक आसपास के समाधान के बजाय होगा।
क्या कोई तरीका है?
इस तरह से सोचें, ऐप को सामान की मनमाने ढंग से घोंसला वाली सूची प्रदर्शित करने की आवश्यकता है। वहाँ जटिलता है। आपको जटिलता का प्रबंधन करने की आवश्यकता है। टेम्पलेट में अनिवार्य रूप से तर्क प्रदर्शित करना (सरणी के माध्यम से लूप और मार्कअप थूकना) डालना समझ में आता है। बस रिकर्सन होने से यह बुरा नहीं बनता है। – GloryFish
काफी उचित है, लेकिन एक ऑफ-फ़ंक्शन के साथ रिकर्सन करने की तुलना में, एक स्मार्ट समाधान को गठबंधन किया जाएगा। –