Définir un bookmark comme page d'acceuil par defaut

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Définir un bookmark comme page d'acceuil par defaut

Messagepar esolarc » 07 Oct 2009 à 09:32

Bonjour,

Je cherche a reproduire l'action "Set bookmark as home page" accessible depuis le menu click droit sur certains bookmark en @command ou lotusscript mais je ne trouve pas d'équivalent...

Quelqu'un a une idée ?...
Avatar de l’utilisateur
esolarc
Modérateur
Modérateur
 
Message(s) : 522
Inscrit(e) le : 10 Oct 2006 à 08:23
Localisation : Genève

Messagepar Michael DELIQUE » 07 Oct 2009 à 09:41

salut

peut être un début de piste
Code : Tout sélectionner
Sub Create_url_Bookmark_Draft
   
' Récupération du titre de la base
   Dim atDbTitle As Variant
   atDbTitle = Evaluate("@DbTitle")
   
' Définition du label du signet avec le titre de la base
   Dim labelSignet As String
   labelSignet = atDbTitle(0)
   
' Label des outlines se situant avant le signet que l'on veut mettre
   Dim labelBeforeFR As String
   Dim labelBeforeUK As String
   labelBeforeFR = ""
   labelBeforeUK = ""
   
' Nom de l'image dans la base de bookmark
' et id de l'image dans la base courante
   Dim imageTextInBookmark As String
   Dim idImageInBaseCourante As String
   imageTextInBookmark = "Icone_DMR_PreValidation_Voyage.bmp"
   idImageInBaseCourante = "11D2B0CCF15381E8C1256FB9004FD2B5"
   
   
' Récupération de la session
   Dim session As New NotesSession
   
' Récupération de la base Courante
   Dim dbCourante As NotesDatabase
   Set dbCourante = session.CurrentDatabase
   
' Récupération du nom de serveur
   Dim atServerName As Variant
   atServerName = Evaluate("@ServerName")
   
' Récupération de la base des images
   Dim imagesDB As NotesDatabase
   Set imagesDB = New NotesDatabase( atServerName(0) , "RessourceNotesExanes.nsf" )
   
' Récupération du bookmark local
   Dim dbBookmark As NotesDatabase
   Set dbBookmark = New NotesDatabase( "", "bookmark.nsf" )
   
' Récupération de la outline qui gère les signets de la partiee gauche de Notes
   Dim outline As NotesOutline
   Set outline = dbBookmark.GetOutline("UserBookmarkOrder")
   
' Récupération de la première entrée de la Outline(plan)
   Dim oeTmp As NotesOutlineEntry
   Dim oeRef As NotesOutlineEntry
   Set oeTmp = outline.GetFirst()
   
   
' Début du traitement , on en gère l'état
   Dim done As Boolean
   Dim referenceFound As Boolean
   Dim nacEntryFound As Boolean
   
   Dim label As String
   done = False
   
' Boucle sur toutes les entrées du plan pour positionner le signet où on veut
' Et surtout pour vérifier qu'il n'est pas déjà là !
   Do While Not(done)
      If oeTmp Is Nothing Then
         done = True
      Else
         label = oeTmp.Label
         If label = labelSignet And oeTmp.Level = 0 Then
            nacEntryFound = True
            done = True
         Else
            If (labelBeforeFR<>"" Or labelBeforeUK<>"") And (label=labelBeforeFR Or label=labelBeforeUK) Then
               referenceFound = True
               Set oeRef = oeTmp
            End If
            Set oeTmp = outline.GetNextSibling(oeTmp)
         End If
      End If
   Loop
   
   
   
' Si l'entrée a été trouvé , on le précise à l'utilisateur
   If nacEntryFound Then
      Messagebox "L'icône se trouve déjà sur la barre des signets", MB_OK, "Information !"
      Exit Sub
   Else
      
' Création de la nouvelle entrée
      Dim oeNew As NotesOutlineEntry
      Set oeNew = outline.CreateEntry(labelSignet)
      Call oeNew.SetURL(dbCourante.NotesURL)
      
      If referenceFound Then
         Call outline.AddEntry(oeNew, oeRef,True,False)
      Else
         Call outline.AddEntry(oeNew, ,True,False)
      End If
      
      oeNew.ImagesText= imageTextInBookmark
      
      Call outline.save()
   End If
   
' Copie de l'icone image dans le bookmark local
   Dim imageDocument As NotesDocument
   Set imageDocument = dbCourante.GetDocumentByUNID( idImageInBaseCourante )
   
   Dim imageDocumentInBookmark As NotesDocument
   Set imageDocumentInBookmark = imageDocument.CopyToDatabase( dbBookmark )
   Call imageDocumentInBookmark.ReplaceItemValue("$TITLE",imageTextInBookmark)
   Call imageDocumentInBookmark.save(True,True)
   
   Messagebox "L'icône sera visible au prochain démarrage de Lotus Notes.", MB_OK, "Information !"
   
End Sub
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar roubech » 07 Oct 2009 à 13:22

il me semble avoir essayé de manipuler un doc "Layout" dans la base bookmark.nsf et avoir renseigné son ID dans le doc site ???
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar esolarc » 07 Oct 2009 à 14:16

Merci Michael,

Je suis parti de ton code et l'ai l'adapter à mon besoin et la base s'ajoute parfaitement dans le bookmark, en revanche au lieu de m'afficher sur le lien l'îcone de la base liée il m'affiche celui de la base bookmark... mais ça c'est pas encore trop grave dans mon cas.

En revanche il me reste toujours a trouver comment le définir comme page d'accueil par défaut.

J'ai regardé dans le document site, roubech, mais je n'ai rien trouvé qui ressemble à une référence d'ID comme base de lancement (il y a bien un champ BookmarkDb mais il contient le nom de la base bookmark.nsf qui n'est pas celle setté comme page d'accueil) mais je vais continuer à chercher, merci :wink:
Avatar de l’utilisateur
esolarc
Modérateur
Modérateur
 
Message(s) : 522
Inscrit(e) le : 10 Oct 2006 à 08:23
Localisation : Genève

Messagepar roubech » 07 Oct 2009 à 15:10

il y a un doc profile CurrentLayout dans la base bookmark.nsf
mais c'est pour définir qu'elle layout afficher quand ta base bookmark.nsf est déjà définie comme page d'accueil

mais s'il faut mettre une autre base, je ne sais pas !
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille


Retour vers Développement

cron