AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
25.05.13 - 15:48:52
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 8
| |-+  ND8: Entwicklung - XPages (Moderatoren: eknori, Glombi, Thomas Schulte, m3)
| | |-+  Inhalt der Navigation dynamisch berechnen
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Inhalt der Navigation dynamisch berechnen  (Gelesen 409 mal)
buzzy666
Aktives Mitglied
***
Offline Offline

Beiträge: 115


Ich liebe dieses Forum!


« am: 05.12.12 - 09:38:07 »

Moing zusammen,

ich habe den Auftrage einen Webshop mit XPages neu zu machen. Ich bräuchte hierfür eine (oder gerne auch mehrere) Ideen, wie ich die Navigation umsetzen könnte.
Und zwar gibt es in dem Shop Produktgruppen, darunter wiederum Herstellen und darunter wieder etliche Artikel. Der "Gag" an der Sache ist, dass je nach User, der sich anmeldet, nur bestimmte Produktgruppen/Hersteller und Artikel sichtbar sein dürfen.
Im alten Webshop werden die gültigen Einträge zur Laufzeit aus einer DB2-Tabelle ermittelt und via Agent zu einer Navigation verwurstet.
Mein Gedanke war nun, die verfügbaren Nav-Einträge pro User in einem Profil vorzuhalten und auszulesen, wenn der User sich anmeldet und daraus die Navi aufzubauen.

Ich habe schon in der OpenNTF geschaut, da aber leider nix gefunden, was mit weiterhelfen könnte.
Die Alternative wäre natürlich, die Navi schon gleich als fertiges HTML in den Profilen zu speichern...

Bin leider noch ein rechter XPage-Noob, von daher kann ich's schlecht einschätzen...

Was meint Ihr?

Danke & Gruß,
Buzzy
Gespeichert
Sven Hasselbach
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 161



WWW
« Antworten #1 am: 05.12.12 - 09:47:05 »

Wie wäre es, bei Öffnen der XPage die erlaubten Produktgruppen / Hersteller in den sessionScope zu schreiben? Und daraus die Navigation aufzubauen?

Deine Alternative mit dem fertigen HTML ist in meinem Augen keine Alternative, sondern ein grausamer Gedanke.
Gespeichert

buzzy666
Aktives Mitglied
***
Offline Offline

Beiträge: 115


Ich liebe dieses Forum!


« Antworten #2 am: 05.12.12 - 10:04:42 »

Deine Alternative mit dem fertigen HTML ist in meinem Augen keine Alternative, sondern ein grausamer Gedanke.

Da gebe ich Dir recht - würd ich mich auch nicht drum reißen!
Wie würdest Du dann dem Aufbau der Navi angehen? Mit dem Navigator aus der ExtLib? Und dann den Inhalt des Navigators aus dem sessionScope einlesen?
Wie würde ich denn sowas angehen? *hüstel* Wink

Danke & Gruß,
Buzzy
Gespeichert
Sven Hasselbach
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 161



WWW
« Antworten #3 am: 05.12.12 - 10:27:59 »

Erstmal würde ich ein paar Grundlagen klären:
1. Wo bzw wie kommen die Daten aus der DB2 Tabelle? Wie werden die denn angezogen in dem Agenten? Was ist das für ein Agent? Und wie häufig ändern sich diese Daten (Stichwort "Caching")?
2. Dann die Frage, ob man es gleich "sauber" macht, also in einer Managed Bean, die im sessionScope vorgehalten wird, oder ist "nur" SSJS möglich?
3. Und zu guter Letzt: Passt der Navigator aus der ExtLb auch in das Konzept der Seite? Oder muss was grundlegend anderes umgesetzt werden?

Je nach dem würde ich in meinen Baukasten greifen und die entsprechenden Codeschnipsel für die Realisierung benutzen ;-)


Gespeichert

buzzy666
Aktives Mitglied
***
Offline Offline

Beiträge: 115


Ich liebe dieses Forum!


« Antworten #4 am: 05.12.12 - 10:59:39 »

Also zu

1.) Momentan wird beim Aufruf des Shops ein LS-Agent gestartet, der dann via ODBC auf DB2 zugreift. Ich würde die jetzt halt nächtens aus DB2 auslesen und z.B. in einem Dokument vorhalten (so schnell werden sich die sichtbaren Artikel nicht ändern). Möglicherweise könnte mir da aber jmd. auch einen WebService zur Verfügung stellen, der mir einen JSON-String zurück gibt.
2.) Puh, das kann ich leider nicht beantworten - mit ManagedBeans hab ich noch nichts gemacht. Würde dann die MB die Ermittlung und Aufbereitung der Navi sorgen. oder wie?
3.) Wenn Du mit "Konzept" das Look-and-Feel bzw. Layout meinst: das haben wir AFAIK keine Vorgaben. Bisher ist's eine klassische Baum-Struktur...

Grüße,
Buzzy
Gespeichert
Sven Hasselbach
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 161



WWW
« Antworten #5 am: 05.12.12 - 11:26:53 »

Zu 1.)
Wenn die Daten Cachbar sind, dann würde ich dir empfehlen, den bestehenden Agenten dazu zu bringen, Userdokumente anzulegen und dort die Kategorien abzulegen
Zu 2.)
Ja, würde sie. Bzw. die Daten vorhalten. Das geht aber auch per SSJS, hier ein Beispiel:

Code:
/***
 * Global function to get a CurrentUser object from sessionScope.
 * Creates a new CurrentUser object if there is none in the scope.
 *
 * @author Sven Hasselbach
 * @return a CurrentUser object
 */
function getCurrentUserObjFromScope() {
var cUser;
if (!sessionScope.containsKey("user")) {
synchronized(sessionScope) {
cUser = new CurrentUser();
sessionScope.put("user", cUser);
}
}
cUser = sessionScope.get("user");
return cUser;
}

/***
 * User Object
 *
 * @author Sven Hasselbach
 */
function CurrentUser(){
var _navigatiorObj = null;

/**
* @return Navigator object
*/
this.getNavigator = function(){

if( typeof this._navigatorObj === 'undefined' )
this.setNavigator( loadNavigator() );

return this._navigatorObj;
}
/**
* @param Navigator object
*/
this.setNavigator = function( navObj){
this._navigatorObj = navObj;
}

/**
* load Navigator
* @return navigation object
*/
function loadNavigator(){

// do lookup or whatever
var v = new java.util.Vector();
v.add("1");
v.add("2");
v.add("3");
return v;
}

}

Als SSJS library kann der Code in der XPage dann mit

Code:
getCurrentUserObjFromScope().getNavigator();

ausgelesen werden.

Zu 3.)
Dann solltest Du den ExtLib Navigator verwenden. Dort gibt es die repeatTreeNode, die kann dafür wunderbar verwendet werden. Dafür könntest Du dann noch ein SSJS Objekt im Userscope ablegen, das die nötigen Eigenschaften hat.
Gespeichert

buzzy666
Aktives Mitglied
***
Offline Offline

Beiträge: 115


Ich liebe dieses Forum!


« Antworten #6 am: 05.12.12 - 13:33:07 »

Na dann werd ich mich da mal drüber machen, vielen Dank schon mal!!!

Greets,
Buzzy
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig  | handys