2017-08-26 88 views
0

我們有一個Drupal 7站點,生成由Ellucian Portal(構建在Microsoft SharePoint之上)使用的rss提要。有一個「Web部分」(我認爲這是SharePoint的術語),它以相反的順序列出來自Feed的5個項目標題。我們的Feed包含10個項目,這意味着SharePoint將列出標題10到6而不是1 - 5。我不知道訂單逆轉是SharePoint的事情還是Ellucian的事情。Drupal 7反轉查看順序

我們使用View模塊以標準Drupal方式生成視圖。

我可以想到4種類型的解決方案嘗試。

  1. 更改視圖UI中的排序順序設置。這是行不通的。如果我們有20個節點需要拉動,我們會將項目20到11而不是10到1喂入。門戶網站將很好地列出項目11到15,但這仍然不是我們想要的。

  2. 限制我們的飼料只有5項。那麼至少Ellucian/SharePoint會列出正確的項目。這會工作,但不是最優的:這是即將到來的事件的飼料,最好事先準備好最近的事件。

  3. 說服Ellucian Portal不要顛倒提要的順序。如果可行的話,這肯定是最好的解決方案。門戶的守護者還沒有找到辦法做到這一點。我不知道這是否是Keeper,Ellucian或SharePoint的無能。

  4. 在Views中挑選了10個飼料項目後,在我們的Drupal站點中使用飼料。最接近有希望這樣做的地方我已經找到了重寫Views模塊的template_preprocess_views_view_rss()函數。屆時,xml的項目部分已經生成。我不得不將它分解成單個項目來度假。可行但醜陋。很高興找到一個我可以簡單地應用reverse_array()的地方。

任何想法? SharePoint或Portal專家可能會幫助我幫助門戶網站的門戶。或者Drupal的專家可能會幫助我找到一個更好的地方來採取飼料。或者你擁有的其他東西。

回答

1

嘗試使用hook_views_post_exexute()鉤子函數重新排序結果。

基本上,你必須創建你的模塊(如果你沒有的話),並添加功能,它想:

function MY_MODULE_views_post_execute(&$view) { 
    if ($view->name == 'MY_VIEW') { 
    // re-order $view->result here 
    } 
} 

你的功能後視圖(查詢)被調用執行和你可以在這裏改變結果,就像重新排序它們一樣。

當然,你代替「MY_MODULE」和「MY_VIEW」與您的模塊和視圖的計算機名...

https://api.drupal.org/api/views/views.api.php/function/hook_views_post_execute/7.x-3.x

0

MilanG提供正確的答案,但它並沒有解決根本問題。事實證明,SharePoint(或Ellucian Portal)正在根據<pubDate>對訂閱源進行排序,而不是對<項目>訂單進行排序。我可以按照我喜歡的任何順序排列項目,並且它在Portal中顯示的內容沒有區別。在這一點上,我似乎有兩個選項 - 在我的問題中不包括上面的optiojn(3)。

  1. 按摩飼料(使用MilanG的答案),以給出錯誤< pubdate的>但至少迫使正確的順序。

  2. 看看我是否可以訪問Portal css並用flex-direction來修復它。

兩個教訓,從中學到:

一個。每當你涉及微軟時,就會出現醜陋。

b。曼德維爾定律:任何軟件[在這種情況下,SharePoint]都會爲你做的事情。