2017-08-26 5 views
0

Wir haben eine Drupal 7-Site produziert einen RSS-Feed von Ellucian Portal verbraucht (auf Microsoft SharePoint gebaut). Es gibt einen "Webpart" (ich glaube, das ist der Begriff von SharePoint), der die 5 Artikeltitel aus dem Feed in umgekehrter Reihenfolge auflistet. Unser Feed besteht aus 10 Elementen, was bedeutet, dass SharePoint Titel 10 bis 6 statt 1 bis 5 auflistet. Ich weiß nicht, ob die Orderumkehr eine SharePoint-Sache oder eine Ellucian-Sache ist.Drupal 7 Umkehransicht Auftrag

Wir generieren die Ansicht in der Standard-Drupal-Weise mit dem View-Modul.

Ich kann an 4 Arten von Lösungen zu versuchen.

  1. Ändern Sie die Sortierreihenfolge in der Benutzeroberfläche Ansichten. Das wird nicht funktionieren. Wenn wir 20 Knoten haben, füttern wir die Items 20 bis 11 anstelle von 10 bis 1. Das Portal wird die Items 11 bis 15 auflisten, aber das ist immer noch nicht das was wir wollen.

  2. Begrenzen Sie unseren Feed auf nur 5 Elemente. Dann wird zumindest Ellucian/SharePoint die richtigen Elemente auflisten. Das funktioniert, ist aber nicht optimal: Dies ist ein Feed für bevorstehende Ereignisse, und es wäre besser, das nächste Ereignis zuerst zu haben.

  3. Überzeugen Sie das Portal von Ellucian, die Reihenfolge des Feeds nicht umzukehren. Dies wäre sicherlich die beste Lösung, wenn es machbar ist. Der Hüter des Portals hat keinen Weg gefunden, dies zu tun. Ich weiß nicht, ob das die Inkompetenz des Bewahrers, von Ellucian oder von SharePoint ist.

  4. Nehmen Sie den Feed in unserer Drupal-Site auf, nachdem Views 10 Artikel für den Feed ausgewählt hat. Am ehesten zu einem vielversprechenden Ort, den ich gefunden habe, ist, die Funktion template_preprocess_views_view_rss() des Views-Moduls zu überschreiben. Bis dahin wurde der Elementteil der XML-Datei generiert. Ich müsste es in einzelne Gegenstände zerlegen, um es zu benutzen. Machbar, aber hässlich. Es wäre schön, einen Platz zu finden, den ich einfach reverse_array() anwenden kann.

Irgendwelche Ideen? SharePoint- oder Portal-Experten können mir helfen, dem Hüter des Portals zu helfen. Oder Drupal-Experten könnten mir helfen, einen besseren Ort für die Futtersuche zu finden. Oder was auch immer du hast.

Antwort

1

Versuchen Sie, die Hook-Funktion hook_views_post_exexute() zu verwenden, um die Ergebnisse neu zu ordnen.

Grundsätzlich werden Sie haben Ihr Modul erstellen (wenn Sie noch kein Konto haben bereits) und fügen Sie Funktion, um es mag:

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

Ihre Funktion wird nach Ansicht (Abfrage) aufgerufen werden, wird ausgeführt und Sie können die Ergebnisse hier ändern, z. B. die Reihenfolge ändern.

Natürlich werden Sie „my_module“ und „my_view“ mit Maschinennamen des Moduls und Ansicht ersetzen ...

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

0

Milang bietet die richtige Antwort, aber es löste nicht die zugrunde liegende Problem. Es stellt sich heraus, dass SharePoint (oder Ellucian Portal) die Feeds basierend auf <pubDate>, nicht auf <Artikel> Reihenfolge sortiert. Ich könnte die Gegenstände in beliebiger Reihenfolge arrangieren und es macht keinen Unterschied, was sich in Portal zeigt. Ich habe zu diesem Zeitpunkt 2 Möglichkeiten - nicht optiojn (3) oben in meiner Frage zu zählen.

  1. Massage das Futter (Milang Antwort verwenden) dem falschen <pubDate> zu geben, aber zumindest die richtige Reihenfolge erzwingen.

  2. Sehen Sie, ob ich Zugang zum Portal css bekomme und fixiere es mit Flex-Richtung.

    ein:

Zwei Lehren daraus zu lernen. Wann immer Sie Microsoft involvieren, entsteht Hässlichkeit.

b. Mandevilles Gesetz: Alles, was Software [in diesem Fall SharePoint) für Sie tut, ist etwas, was es Ihnen antut.