I want to add 4 buttons to the bottom of display template Item Default HoverPanel for search results. I need it display like the person column with user's name and photo. enter image description here

By default, it displays Open and Send. I want to change it to 4 boutons (Send message, Tel, Tel with video, Send mail)

enter image description here

In the display template Item Default HoverPanel, it has a variable value #= ctx.RenderFooter(ctx) =#

enter image description here

I can add a button for sending an email to user. But 3 other buttons (Send message, Tel, Tel with video) I have no idea how to add.
For example, if I click the button Tel, I can call user directly, I do not need to click the phone number with phone. I don't know how to do. How could I create the same thing like the column person ?


I found an article which exactly meets my need, I do the same thing but the presence icon does not display. It displays nothing. And the value of SIP address is null http://www.ableblue.com/blog/archive/2013/06/05/add-presence-to-sharepoint-search-results/

Is it possible that there is an error in server setting ? Or it just works on the people search results page ? My search scope is a list.

2 Answers 2


I do not understand your english completely, but I guess you want something like that:

                AddPostRenderCallback(ctx, function(){ULSaRe:;
                    EnsureScriptFunc("clienttemplates.js", "RenderUserFieldWorker", function() {ULSaRe:;
                        var getUserPersona = function() {ULSaRe:;
                            var renderCtx = new ContextInfo();
                            renderCtx.Templates = {};
                            renderCtx.Templates["Fields"] = {};
                            var fieldSchemaData = { "PictureOnly":"1", "PictureSize": "Size_72px"};
                            var listSchema = {"EffectivePresenceEnabled": "1", "PresenceAlt": Srch.Res.item_People_NoPresenceAvailable};
                            var userData = {"title": uName, "email": uEmail, "picture": uPicUrl, "sip": uSip};
                            var personaControlElement = document.getElementById(userPersonaId);
                            if (!Srch.U.n(personaControlElement))
                                personaControlElement.innerHTML = RenderUserFieldWorker(renderCtx, fieldSchemaData, userData, listSchema);
                            if(typeof(ctx.EnqueueImnRequest) == "undefined") { ctx.EnqueueImnRequest = false; }
                            if (ctx.EnqueueImnRequest == false) {
                                ctx.ClientControl.add_oneTimeResultRendered(function(){ULSaRe:; if (typeof(ProcessImn) != "undefined") { ProcessImn(); } });
                                ctx.EnqueueImnRequest = true;

(this code you can find in the Display template "item_person_compactHorizontal.js").

You can Play around with Settings for fieldSchwmaData and listShema. (eg. ImnHeader: True, Variations of "DEfaultRenderer"). For this I suggest you to debug into the renderuserfieldworker method.

  • Could you give me more information, please ? I try this code but it does not work. Maybe I should add more ?
    – AnnaCICI
    May 19, 2015 at 23:46

Because my SIP Adress is blank. So I change it to person's email. It works !!!! This article is very useful: http://www.ableblue.com/blog/archive/2013/06/05/add-presence-to-sharepoint-search-results/

Thank you all !!!!!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.