drupal ड्रुपल विचार-क्या एक्सपोज़िंग फॉर्म संभव है?




drupal-6 drupal-views (5)

मुझे अपने पृष्ठ के साइडबार में उजागर किए गए फ़ॉर्म का हिस्सा प्रदर्शित करने और $content क्षेत्र में शेष फ़ॉर्म और सामग्री को प्रदर्शित करने $content है। वास्तव में कोई अच्छा तरीका नहीं है कि मैं यह करने के लिए मिल सकता है। मैं एक तरह से "खुला प्रपत्र" सेट के साथ एक "ब्लॉक" दृश्य बनाकर इसे दिखाने के लिए मिला है और फिर केवल उस भाग को दिखाने की कोशिश कर रहा हूं जिसे मैं .tpl फ़ाइलों के ज़रिए ज़रूरत है। समस्या यह है कि जब सबमिट बटन क्लिक किया जाता है (सबमिट बटन $content क्षेत्र में है), तब साइडबार में मौजूद फ़िल्टर को ध्यान में नहीं रखा जाता है।


कुछ पार्श्व सोच ... क्यों नहीं सीएसएस-केवल विकल्पों का पता लगाएं? आप उस फॉर्म तत्व को position:absolute साथ खेल सकते हैं position:absolute ? या (सही साइडबार पर विचार करना) float:right और फिर कुछ नकारात्मक दाएं मार्जिन इसे साइडबार पर धकेलने के लिए है? यदि आप 960 ग्रिड सिस्टम का उपयोग कर रहे हैं, तो pull साथ खेलें और कक्षाएं push


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


उपरोक्त स्पष्टीकरण से मैं मान रहा हूं कि आप ब्लॉक और सामग्री क्षेत्र में उसी फॉर्म को छू रहे हैं और आप पृष्ठ के कुछ हिस्से को छिपा रहे हैं, यदि यह सत्य है, तो आप अपने कस्टम मॉड्यूल में hook_form_alter () का उपयोग कर सकते हैं।

  1. वैश्विक चर में प्रपत्र तत्व (ब्लॉक में मौजूद) का मूल्य स्टोर करें
  2. अब उस वैश्विक वैरिएबल और सेट फॉर्म तत्व का उपयोग करें (सामग्री क्षेत्र में मौजूद, यह फ़ॉर्म तत्व उपयोगकर्ता के लिए दृश्यमान नहीं है)।

अधिक जानकारी प्रदान करें यदि आपने अन्य तरीके लागू किया है।

सादर, चिंतन


यहां एक संबंधित समस्या है: https://drupal.stackexchange.com/questions/3827/multiple-copies-of-views-filter-form-exposed-filters जो कि आपके फ़िल्टर को डुप्लिकेट कैसे करें। हालांकि यह एक बदसूरत हैक की तरह लगता है।

थोड़ा सा क्लीनर यह समाधान # 6 में उल्लिखित लगता है: http://drupal.org/node/641838#comment-3247748 इसे परीक्षण नहीं किया है, लेकिन यह अच्छा लगता है

यह अभी भी आपको कुछ ओवरहेड (डुप्लिकेट दृश्य) देगा लेकिन विचारों का उपयोग करके ऐसा करना सबसे आसान तरीका हो सकता है।

दूसरी तरफ आप एक मॉड्यूल लिख सकते हैं और अपने खुद के कस्टम फ़िल्टर ब्लॉक का निर्माण कर सकते हैं जो आपके दृश्य में हुक है। यहां इस बारे में एक ब्लॉग पोस्ट है: http://www.hashbangcode.com/blog/creating-custom-views-filters-exposed-form-element-drupal-6-561.html


यदि आप संदर्भ की तरह कुछ का उपयोग करते हैं, तो आप एक ही पृष्ठ में दो बार प्रदर्शित करने के लिए उजागर किए गए फ़िल्टर को ब्लॉक कर सकते हैं। आप उन फ़ील्ड को छिपाने के लिए सीएसएस का उपयोग कर सकते हैं, जिन्हें आप प्रत्येक प्रपत्र में प्रदर्शित करना नहीं चाहते हैं।

आपके पास मूलभूत समस्या यह है कि अलग-अलग स्थानों में दो रूपों के होते हैं, उनके पास प्रत्येक का अपना स्वयं का तत्व होता है - जब एक सबमिट शुरू हो जाता है, तो उसी फॉर्म तत्व के भीतर ही फार्म फ़ील्ड भेजी जाती हैं। आपको उन्हें एक रूप में स्थानांतरित करने, या जावास्क्रिप्ट पर भरोसा करने की ज़रूरत है ताकि दोनों फार्मों से खेतों को इकट्ठा किया जा सके और पोस्ट का निर्माण किया जा सके।





drupal-theming