SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Dynamische Links - Top Navigation per User

Geprüfte Antwort Dieser Beitrag hat 7 Antworten

Ohne Rang
234 Beiträge
Patrick erstellt 15 Juni 2015 15:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ist es möglich die Top-Navigation bzw. irgendeinen Link auf eine Seite anhand des angemeldeten Users zu ändern?

Z.B. wenn "User:Patrick" dann ändere Link und Beschreibung von "http://sp13/team1 - Team1" auf "http://sp13/team2 - Team2" usw.

Sollte doch irgendwie mit Javascript vielleicht gehen, oder?

Hat mir da jemand einen Tipp? Oder ein How-To?

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Juni 2015 15:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mit JavaScript geht es bestimmt. Wo genau hast Du denn ein Problem?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
234 Beiträge
Patrick Als Antwort am 15 Juni 2015 16:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Bin gerade am probieren..

Sollte doch so in der Art gehen, oder?

In der Aleartbox steht aber leider nix...

 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"> </script>

<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.SPServices/0.7.2/jquery.SPServices-0.7.2.min.js" type="text/javascript" language="javascript"></script>

<script type="text/javascript">

        $(document).ready(function () {            

             var currUser = $().SPServices.SPGetCurrentUser({

                     fieldName: "Department",

                     debug: false

                            });

             alert(currUser);

        });

</script>

Grüße

 

Patrick

Zu meinem SharePoint Blog: afraIT

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Juni 2015 16:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So oder so ähnlich sollte das gehen.

Auf SPServices würde ich an der Stelle wohl verzichten (im Gegensatz zu jQuery). Du brauchst es ja nur zum Ermitteln des aktuellen Benutzers. Schaue Dir mal im Debugger das _spPageContextInfo-Objekt an. Das erhält viele nützliche Dinge und u.a. auch den aktuellen User.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
234 Beiträge
Patrick Als Antwort am 15 Juni 2015 16:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hey, 

das Script funktioniert doch.

Ich hatte vergessen, dass in meinem Testsystem meine Accounts nun mal in keiner Abteilung sind.

*ups*

Grüße

 

Patrick

Zu meinem SharePoint Blog: afraIT

Ohne Rang
234 Beiträge
Patrick Als Antwort am 16 Juni 2015 14:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi Andi,

das _spPageContextInfo-Objekt enthält leider auch nicht das Department des Users.

Grüße

 

Patrick

Zu meinem SharePoint Blog: afraIT

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Juni 2015 15:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das stimmt (habe ich wohl übersehen). Ich würde mir das dann aber trotzdem lieber mit den offiziellen Methoden des JavaScript Object Models holen. SPServices ist in dieser Hinsicht veraltet und benutzt immer noch die Webservices - jedenfalls soweit ich weiß.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
234 Beiträge
Patrick Als Antwort am 17 Juni 2015 08:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

bin mittlerweile auf diesem Weg:

<script type="text/javascript">

$(document).ready(function () {

var loginName = "Patrick XXX";

var userid = _spPageContextInfo.userId;

 

function GetCurrentUser() {

var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";

//var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/SP.UserProfiles.PeopleManager/GetUserProfilePropertyFor(accountName=@v,propertyName='Office')?@v='" + loginName + "'";

 

var requestHeaders = { "accept" : "application/json;odata=verbose" };

 

$.ajax({

  url : requestUri,

  contentType : "application/json;odata=verbose",

  headers : requestHeaders,

  success : onSuccess,

  error : onError

});

}

 

function onSuccess(data, request){

  //var loginName = data.d.LoginName.split('|')[1];

  var loginName = data.d.Title;

    //alert(loginName);

 

    if(loginName == "Patrick XXX")

    {

    //alert("if clause");

    document.getElementById("teamuebersicht").innerHTML = "<a href='http://sp13/teams/it'>Interne Teamseite</a>";

    }

}

 

function onError(error) {

  alert(error);

}

 

GetCurrentUser();

 

});

</script>

 

Jedoch würde ich diese Prüfung gerne auf die Abteilung machen. Die auskommentierte requestUri liefert mir zwar die Abteilung, jedoch kann ich mir den Wert nicht in einer Variable speichern, bzw. weiß ich nicht wie...

Sowas wie "var department = data.d.Office" funktioniert einfach nicht. Hast mir da noch jemand einen Tipp?

Grüße

 

Patrick

Zu meinem SharePoint Blog: afraIT