2012-10-30 86 views
10

我期待在彈出的模式從ExpressionEngine加載項使用jQuery的Ajax調用,這個想法是當在條目標題就會打開用戶點擊顯示在全文進入一個模式它。然後,我正在尋找下一個&模式上的前一個按鈕,這將允許我移動到彈出模式中的下一個和上一個條目。 我不知道是否最好加載模板或饋送,即JSON,或者如果有另一種方式我很樂意聽到。加載項與AJAX

有沒有人嘗試這個又或者知道一個嘖,也許有幫助的。我曾經碰到過這樣的物品,其揭示了它的一些光,http://spibey.com/blog/2011/11/using-partial-views-in-the-expressionengine-control-panel-for-ajax-requests-or-similar/

+0

?大部分將允許您在模式窗口中將模板作爲iframe加載。然後,您可以按照通常的方式對該模板進行編碼,並且可以正確移動上一個/下一個按鈕。 –

回答

11

該教程您鏈接到是控制面板。由於您正在討論前端的內容,因此您可以使用常規的舊EE標籤在EE模板中完成所有工作。

我建議一個模板組來保存你的HTML片段。在這種情況下,它可能是方便把文章本體和入口鏈接到一個單一的模板

ajax.group 
    - single_entry.html 

然後,在其最簡單的,在模板中你必須

<div id="entry-body"> 
    {exp:channel:entries channel="channel_name_here" entry_id="{segment_3}"} 
     <h2>{title}</h2> 
     {body} 
    {/exp:channel:entries} 
</div> 

<div id="entry-links"> 
    {exp:channel:next_entry}   
     <a href="{path='ajax/single_entry'}" class="next">Next</a> 
    {/exp:channel:next_entry} 
    {exp:channel:prev_entry} 
     <a href="{path='ajax/single_entry'}" class="prev">Previous</a> 
    {/exp:channel:prev_entry} 
</div> 

當你請求那些使用ajax的片段,請確保將當前的entry_idurl_title作爲網址段傳遞,以便片段模板爲您加載正確的數據。您可以將選擇器傳遞給load()以獲取所需的html塊並將其加載到頁面上的相應容器中。簡單地說,像

$('#entry-container').load('ajax/single_entry/2 #entry-body'); 
$('#entry-links').load('ajax/single_entry/2 #entry-links'); 

其中2爲您加載項的entry_id。請參閱http://api.jquery.com/on/

最後,您需要在下一個和上一個條目鏈接上有jQuery事件偵聽器,以便它們觸發jQuery load()加載下一個條目。這是.next鏈接的一個例子。

$(document).on('click', '.next', function(event) { 
    var url = $(this).attr('href'); 
    $('#entry-container').load(url); // load the html into your chosen DOM element 
    event.preventDefault(); // prevent the browser from navigating to this page  
}); 

http://api.jquery.com/on/您使用哪種模式插件

+0

謝謝,這是一個很好的答案,你很好地分解它。 您是否建議您使用模式彈出窗口,例如fancybox或類似的東西,或者你會創建自己的函數,讓AJAX更好地工作? 我好什麼,我想實現的例子就是在Chrome瀏覽器谷歌Chrome商店的功能,當你點擊一個應用程序,以瞭解更多你得到一個彈出。 我deally我會希望把在模態外部的按鈕,但我想我將能夠管理與自定義彈出和一些插件已經avaliable – zizther

+0

要使用的fancybox誠實(或類似)和iframe(就像她在上面評論中提到的@MediaGirl)可能只會做你想做的事情並節省一些努力。您仍然希望創建一個類似的頁面片段模板以適合您的目的,但它只會在模態窗口中的iframe中加載。但是完全自定義,或者將這種ajax方法與模態插件相結合,可能會給你更多的自由。很難說哪種更適合您的情況。 –

+0

我認爲這不會改變網址,以便人們可以回到它並彈出打開? – zizther