कैसे प्रोग्राम को मौजूदा दृश्य में ब्लॉक आयात करने के लिए?

Aug 17 2020

मुझे इसकी सेटिंग्स के साथ प्रोग्राम को मौजूदा दृश्य में ब्लॉक करने की आवश्यकता है ।

मुझे पता है कि पूरे दृश्य को कैसे निर्यात करें और इसे प्रोग्रामेटिक रूप से आयात करें। लेकिन मैं पूरे दृश्य को निर्यात नहीं करना चाहता और फिर पूरे दृश्य को आयात करना चाहता हूं। मेरे विचार में 25 ब्लॉक है, इसलिए यह मुझे आयात करने के लिए कोड की 4000 लाइनें देता है। मैं केवल अपने नए ब्लॉक के निर्यात कोड को कॉपी कर सकता हूं। लेकिन मौजूदा दृश्य में कोड के इस हिस्से को कैसे आयात किया जाए ? संभव है कि? मुझे कोई समाधान नहीं मिल रहा है।

जवाब

1 ShawnConn Aug 18 2020 at 04:42

यूआई में इंगित किए गए "ब्लॉक" को आंतरिक रूप से "डिस्प्ले" कहा जाता है। displayप्रॉपर्टी (जैसे $view->display) में व्यू ऑब्जेक्ट के अंदर डिस्प्ले को स्टोर किया जाता है ।

आप विचारों निर्यात कोड को देखें, तो आप निर्यात ब्लॉक (जैसे के पैटर्न देखना चाहिए /* Display: Block 1 */, /* Display: Block 2 */आदि) कि द्वारा प्रदान की गई है views::export()विधि।

प्रत्येक ब्लॉक (यानी डिस्प्ले) के लिए आपको $handler = $view->new_display(...)कई $handler->display...लाइनों का पालन करना चाहिए जो उस डिस्प्ले के लिए संबंधित फ़ील्ड / फ़िल्टर जोड़ते हैं।

प्रोग्रामेटिक रूप से एक एकल प्रदर्शन को आयात करने के लिए आप निम्न जैसा कुछ करेंगे:

$view = views_get_view('my_existing_view'); // @TODO: Add my new display handler code $view->save();