2010-08-21 21 views
6

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

मैं क्षेत्र के उत्पादन के पुनर्लेखन के लिए विकल्प का चयन किया है और मैं टैग सही ढंग से उपयोग कर रहा हूँ

दृश्य भी शैली मेरे टैग से जिम्मेदार बताते हैं स्ट्रिप्स। उदाहरण के लिए:

<h3 style="border-bottom: solid 1px #ffcc99;">Some text here</h3> 

इस प्रकार दिखेगा:

<h3>Some text here</h3> 

वहाँ इस के लिए एक समाधान है? धन्यवाद।


संपादित


शुरू मैं नीचे दिए गए कोड चिपकाने हूँ मैं मेरे विचार में उपयोग कर रहा हूँ।

<div class="bloco-filme"> 
    [title] 
    <div class="field-imagem"> 
    [field_imagem_fid] 

    <script type='text/javascript' src='sites/default/files/js/swfobject.js'></script> 

    <div id='mediaspace[nid]'>Se você estiver visualizando esta mensagem, significa o Flash Player não está instalado em sua máquina. Para assistir ao vídeo é preciso instalar o Flash player</div> 

    <script type='text/javascript'> 
     var so = new SWFObject('sites/default/files/plugins/jqplayer/player.swf','mpl','205','undefined','9'); 
     so.addParam('allowfullscreen','true'); 
     so.addParam('allowscriptaccess','always'); 
     so.addParam('wmode','transparent'); 
     so.addVariable('file','[field_video_fid]'); 
     so.addVariable('quality','false'); 
     so.write('mediaspace[nid]'); 
    </script> 
    [field_video_fid] 
    </div> 
    <div class="field-resumo"> 
    <p>[body]</p> 
    </div> 
</div> 

फिर


संपादित कोड ऊपर मेरे विचार में तैनात beinng है। मैंने इसे संभालने के लिए एक दृश्य बनाया है।

फील्ड्स नोड: Nid नोड: शीर्षक (शीर्षक, यह pt-br में है) नोड: लिंक "editar" (संपादित) नोड: लिंक "apagar" (यह मेरे विचार के क्षेत्र क्षेत्र है हटाना) Conteúdo: Imagem थंबनेल छवि Conteúdo: वीडियो URL arquivo (वीडियो फ़ाइल यूआरएल) नोड कार्य करें: निगम (शारीरिक)

मैं प्रदर्शन से ऊपर सभी क्षेत्रों के निष्क्रिय कर दिया है और शरीर के सारे कोड पैक है खेत। वहां मैंने उस विकल्प का चयन किया जिसे मैं फ़ील्ड के आउटपुट को फिर से लिखना चाहता हूं।

+0

वीडियो क्या है? क्या यह एक एम्बेडेड यूट्यूब वीडियो है? यदि ऐसा है तो यह कहाँ एम्बेडेड है? क्या यह आपकी साइट पर होस्ट किए गए प्लेयर का उपयोग करता है जैसे कि विम्पी? क्या यह एक सीसीके फ़ाइल फ़ील्ड पर अपलोड की गई एक वीडियो फ़ाइल है? क्या आप HTML को ऐसे नोड में चिपका रहे हैं जो वीडियो प्रदर्शित करना है, और यदि वीडियो अपलोड/प्रदर्शित नहीं होते हैं? यदि वे नोड्स पर अपलोड होते हैं तो क्या वे सीधे नोड को देखते समय दिखाते हैं? – CitrusTree

+0

हाय, यह एक FLV फ़ाइल है। मैं जेडब्लूप्लेयर का उपयोग कर रहा हूं। मैं जावास्क्रिप्ट कोड का उपयोग इसे एम्बेड करने के लिए कर रहा हूं (swfobject.swf) जैसा कि यहां सुझाया गया है: http://www.longtailvideo.com/support/jw-player-setup- जादूगर। वीडियो एक सीसीके फ़ाइल फ़ील्ड के माध्यम से अपलोड किया गया था।वीडियो फ़ील्ड में मैं अपने कच्चे यूआरएल का अनुरोध कर रहा हूं और फिर मैं अपने कच्चे यूआरएल का उपयोग करके वीडियो खींचने के लिए स्क्रिप्ट का उपयोग करने के लिए आउटपुट को फिर से लिख रहा हूं। सीधे नोड्स को देखते समय वीडियो को डाउनलोड करने के लिंक के रूप में दिखाया जाता है, यह डाउनलोड लिंक के साथ फ़ाइल फ़ील्ड के लिए डिफ़ॉल्ट थीमिंग है। –

+0

"वीडियो फ़ील्ड में मैं अपने कच्चे यूआरएल का अनुरोध कर रहा हूं और फिर मैं स्क्रिप्ट का उपयोग करने के लिए आउटपुट को फिर से लिख रहा हूं" - आप इसे कहां संसाधित कर रहे हैं? एक कस्टम मोड में? – CitrusTree

उत्तर

5

kiamlaluno बुनियादी समस्या की पहचान है, लेकिन यह हल करने के लिए, आप एक क्षेत्र टेम्पलेट जो फिल्टरिंग सिस्टम दृश्य का उपयोग करता है का उपयोग कर से बचने जाएगा उपयोग करने के लिए जा रहे हैं। Group 42 has a great guide आपको थीम थीमिंग की मूलभूत बातें के माध्यम से चलने के लिए, इसलिए मैं उन विवरणों पर सिर्फ चमक दूंगा और आपके विशिष्ट मामले के बारे में बात करूंगा।

सबसे पहले, आप जो क्षेत्र आप को फिर से लिखने के लिए चाहते हैं की पहचान करने की जरूरत है: मेरा मानना ​​है कि आप कर रहे हैं फील्ड विन्यास का उपयोग कर कि, लेकिन यह स्पष्ट है जो क्षेत्र आप पुनः लिख रहे हैं नहीं है। मैं यह मानने जा रहा हूं कि यह शरीर का क्षेत्र है। अपनी थीम में बॉडी फ़ील्ड के लिए एक नई टेम्पलेट फ़ाइल बनाने के लिए समूह 42 की मार्गदर्शिका के माध्यम से जाएं।

<div class="bloco-filme"> 
    <?php print $view->field['title']->render($row) ?> 
    <div class="field-imagem"> 
    <?php print $view->field['field_imagem_fid']->render($row) ?> 

    <script type='text/javascript' src='sites/default/files/js/swfobject.js'></script> 

    <div id="mediaspace<?php print $view->field['nid']->render($row) ?>">Se você estiver visualizando esta mensagem, significa o Flash Player não está instalado em sua máquina. Para assistir ao vídeo é preciso instalar o Flash player</div> 

    <script type='text/javascript'> 
     var so = new SWFObject('sites/default/files/plugins/jqplayer/player.swf','mpl','205','undefined','9'); 
     so.addParam('allowfullscreen','true'); 
     so.addParam('allowscriptaccess','always'); 
     so.addParam('wmode','transparent'); 
     so.addVariable('file','<?php print $view->field["field_video_fid"]->render($row) ?>'); 
     so.addVariable('quality','false'); 
     so.write('mediaspace<?php print $view->field["nid"]->render($row) ?>'); 
    </script> 
    <?php print $view->field['field_video_fid']->render($row) ?> 
    </div> 
    <div class="field-resumo"> 
    <p><?php print $output ?></p> 
    </div> 
</div> 

अपने नए टेम्पलेट फ़ाइल सहेजें, और अब शरीर क्षेत्र सही उत्पादन के साथ बदल दिया जाएगा:

नया टेम्पलेट फ़ाइल में निम्न कोड का उपयोग करें। बस सुनिश्चित करें कि जब आप देखें संपादित सभी क्षेत्रों आप टेम्पलेट में संदर्भित किया है फील्ड्स सूची के भीतर शरीर क्षेत्र से पहले कर रहे हैं।

आप देख सकते हैं कि यह ज्यादातर कुछ पीएचपी बिट्स के साथ HTML है। इस तरह कोड:

<?php print $view->field['title']->render($row) ?> 

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

और कोड इस तरह:

<?php print $output ?> 

आउटपुट वर्तमान फ़ील्ड का मान, इस मामले में, शरीर।

+0

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

+1

आह, इसके बारे में क्षमा करें; '$ पंक्ति' कच्चे आउटपुट लौटाता है। मैंने अपना जवाब '$ view-> फ़ील्ड [' field_name '] -> रेंडर ($ पंक्ति)' का उपयोग करने के लिए संपादित किया है, जो प्रस्तुत सामग्री को आउटपुट करेगा। –

+0

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

2

मुझे नहीं लगता कि दृश्य समस्या का कारण बन रहा है। kiamlaluno काफी सही है कि इनपुट प्रारूप आपके कोड से बहुत अलग हो जाएगा, जब तक कि आप इनपुट प्रारूप को परिवर्तित नहीं करते हैं, हालांकि मुझे यकीन नहीं है कि आप वास्तव में प्राप्त करने में सक्षम होंगे जो आप किसी भी क्षेत्र में शरीर के क्षेत्र का उपयोग करके करने की कोशिश कर रहे हैं दयालु तरीके की तरह।

प्रत्येक नोड प्रकार से आपको आवश्यक सामग्री को आउटपुट करने के लिए विचारों का उपयोग करें, लेकिन मैं यह निर्धारित करने के लिए कभी भी विचारों का उपयोग नहीं करता कि यह कैसे प्रदर्शित किया जाएगा (फ़ील्ड ऑर्डर करने के अलावा)। मैं इसे प्रदर्शन फ़ील्ड विकल्प (/ admin/content/node-type/[your-node-type]/display) या थीम में उपयोग करने के लिए करता हूं। दूसरे शब्दों में मैं नोड (सामग्री प्रकार) या फ़ील्ड स्वयं थीम।

मैं यहां देखकर विचार करूँगा - http://drupal.org/node/206980 - यह देखने के लिए कि व्यक्तिगत फ़ील्ड थीम कैसे करें। अपने थीम फ़ोल्डर में सामग्री-field.tpl.php की एक प्रति की शुरुआत में field_ (फ़ील्ड नाम उपसर्ग) का उपयोग करें (आप इसे अपने सीके फ़ोल्डर के थीम फ़ोल्डर में पाएंगे), और फ़ील्ड थीम के लिए इसका उपयोग करें जिस तरह से आप इसे प्रस्तुत करना चाहते हैं (ऊपर अपने कोड का उपयोग कर)। इसलिए, जब दृश्य इसे प्रदर्शित करने के लिए चुनता है, तो यह उपरोक्त आपके कोड का उपयोग करके थीम करेगा।

यह जाहिर है, अतिरिक्त लाभ यह है कि आप पृष्ठ पर, जो सब पर यह करने के लिए एक स्केलेबल तरीका नहीं है के शरीर तत्व के लिए किसी भी कोड में जोड़ने की जरूरत नहीं है।

वैकल्पिक रूप से, आप write a small module जो hook_field() (link 1, link 2) का उपयोग करता है क्षेत्र प्रदर्शन के पुनर्लेखन के लिए, लेकिन जब तक आप साइट के व्यवस्थापक क्षेत्र में इस के किसी भी अनुकूलित करने के लिए सक्षम होना चाहते हैं कर सकते थे, आपका सबसे अच्छा विकल्प शायद है उपरोक्त के रूप में क्षेत्र खुद को थीम करने के लिए।

0

मैं लगभग बिल्कुल इस मुद्दे (पोस्ट करने के लिए धन्यवाद!) था, लेकिन कुछ चीजें इस पोस्ट के बाद से तीन साल में (जाहिर है) को बदल दिया है।

मेरे मामले में, दृश्य 3 और डी 7 का उपयोग करके, मैं सभी प्रासंगिक swfobject कोड को मेरे दृश्य के शीर्षलेख या पाद लेख में पेस्ट करने में सक्षम था, टेक्स्ट इनपुट फ़िल्टर को टेक्स्ट इनपुट फ़िल्टर के रूप में टेक्स्ट इनपुट फ़िल्टर का उपयोग करना सुनिश्चित करता हूं ।

template.php का कोई संपादन आवश्यक नहीं था। मैंने अपनी फिल्म के फ्लैशवर्स को प्रासंगिक फ़िल्टर तर्क प्रदान करने के लिए टोकन प्रतिस्थापन का भी उपयोग किया।

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