2011-07-07 6 views
7

में चयनित प्रविष्टि को कैसे बदला जाए, मैं बैकएंड एक्सटेंशन बना रहा हूं, जो पेज पेज के दाईं ओर कार्य क्षेत्र में किसी लिंक पर क्लिक करने पर यह पेज बदलता है। समस्या यह है कि: कार्य क्षेत्र में प्रस्तुत आईडी के अनुसार पेजेट्री अद्यतन नहीं होता है।TYPO3 पेजेट्री

आईडी.एफपी-मॉड्यूल में क्वेरी पैरामीटर आईडी पास करके आईडी बदल दी गई है, और उम्मीद के अनुसार काम करता है। मैं के माध्यम से

 t3lib_BEfunc::openPageTree($this->id); 
    t3lib_BEfunc::setUpdateSignal('updatePageTree');

पेज पेड़ को अद्यतन करने की कोशिश की है और बाद में

 <script type="text/javascript">'.t3lib_BEfunc::getUpdateSignalCode().'</script>

उत्पादन में शामिल किया जाना। यह भी काम करता है (पैगेट्री ताज़ा किया जाता है, और पारित आईडी के छिपे हुए उपपृष्ठ प्रकट होते हैं), पृष्ठ पेड़ में वर्तमान पृष्ठ को इंगित करने वाली ग्रेनेस को छोड़कर उसकी पिछली स्थिति पर छोड़ दिया जाता है।

पैगेट्री बनाने के तरीके के बारे में कोई विचार नया $this->id को प्रतिबिंबित करता है?

+0

क्या आपको कोई समाधान मिला? आप किस प्रकार के TYPO3 से संबंधित हैं? – Mateng

+0

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

+0

एक उपहार देने के बारे में कैसे? यदि आप इस प्रश्न को बनाए रखते हैं तो मैं 100 रेप्स दान करूंगा :)। – Mateng

उत्तर

2

यहां मैंने यह कैसे किया है। मेरी बीई मॉड्यूल के PHP कोड में, मैं केवल इतना की तरह openPageTree कहा जाता है:

t3lib_BEfunc::openPageTree(76,false); 

मैं setUpdateSignal फोन नहीं किया क्योंकि पूरी "अद्यतन संकेत" प्रक्रिया मेरे लिए थोड़ा अजीब लगा। कृपया यह भी ध्यान दें कि openPageTree में अब दूसरा पैरामीटर है, जो आवश्यक है।

मेरी समझ के लिए, यह कॉल उपयोगकर्ता सत्र सर्वर-पक्ष में पेड़ की स्थिति को सेट करने के लिए पर्याप्त होना चाहिए। अब ग्राहक पक्ष आता है।

अपने एक्सटेंशन के जावा स्क्रिप्ट कोड में, मैं बस उपयुक्त पेज आईडी का चयन करें और है कि यह क्या है:

<script type="text/javascript"> 
    if (top && top.TYPO3.Backend.NavigationContainer.PageTree) { 
    top.TYPO3.Backend.NavigationContainer.PageTree.select(76); 
    } 
</script> 

पेज पेड़ के स्रोत के माध्यम से देखते हुए मैंने महसूस किया कि यह हमेशा एक के बाद top.fsMod.recentIds['web'] का चयन करेंगे ताज़ा करें। अफसोस की बात है, मैं यह निर्धारित करने में सक्षम नहीं था कि वहां एक मूल्य को ठीक से कैसे इंजेक्ट किया जाए। ऐसा लगता है कि मूल्य को केवल उपयोगकर्ता इंटरैक्शन के माध्यम से समायोजित किया जाना चाहिए (यानी, उपयोगकर्ता पेज पेड़ में नोड पर क्लिक किया जाता है)।

+0

ओलिवर, आपके सुझाव सत्यापित होने तक कुछ समय लग सकता है। मुझे लगता है कि अगर यह काम करता है तो नॉरवेबियन हमें बताएगा। – Mateng

+0

@Mateng: यह ठीक है। मुझे यह जानना अच्छा लगेगा कि क्या यह वास्तव में उसके लिए समस्या हल करता है या यदि यह केवल * दिखता है * सही :) –

+0

मेरे प्रश्न में आपकी रूचि के लिए धन्यवाद! मैंने अभी स्टैक ओवरफ्लो का पुनरीक्षण किया और आपका समाधान देखा। मैं वास्तव में इसकी सराहना करता हूं, और इसका परीक्षण करने का पहला मौका लेगा। – norwebian

0

typo3 6.1 में, आप एक वेब मॉड्यूल पर जाने के लिए एक जावास्क्रिप्ट समारोह है:

/** 
* jump the backend to a module 
*/ 
function jump(url, modName, mainModName, pageId) { 
    if (isNaN(pageId)) { 
     pageId = -2; 
    } 
    // clear information about which entry in nav. tree that might have been highlighted. 
    top.fsMod.navFrameHighlightedID = []; 
    top.fsMod.recentIds['web'] = pageId; 

    if (top.TYPO3.Backend.NavigationContainer.PageTree) { 
     top.TYPO3.Backend.NavigationContainer.PageTree.refreshTree(); 
    } 

    top.nextLoadModuleUrl = url; 
    top.TYPO3.ModuleMenu.App.showModule(modName); 
} 

आप इस तरह इसका इस्तेमाल कर सकते हैं:

<a onclick="jump('alt_doc.php?&edit[pages][\'uid_page\']=edit','web_list', 'web', 'uid_page')" href="#"><span class="t3-icon t3-icon-actions t3-icon-actions-document t3-icon-document-open">&nbsp;</span></a> 

बस अपने सही uid द्वारा "uid_page" की जगह :)

+0

पोर्टेबिलिटी के लिए आपको शायद कुछ उपयोगिता फ़ंक्शन के साथ यूआरएल प्राप्त करने के लिए alt_doc.php को प्रतिस्थापित करना चाहिए। Https://docs.typo3.org/typo3cms/extensions/core/8.7/singlehtml/Index.html#breaking-72360-removed-deprecated-entry-point-fallback भी देखें। – wirap