Я также попытался добавить веб-часть Page Contact, и это стало беспорядком. Попробуйте нажать на Свойства страницы> Владелец страницы и / или Владелец страницы. На этот вопрос ответили здесь , но вот ответ снова:
Вам необходим jQuery 1.7.x + и библиотека jQuery SPServices версии 0.7.2 или выше, установленная на вашем сайте.
Используйте GetListItems в качестве операции от SPServices.
Я ищу страницы в каталоге Pages, поэтому listName - это "Pages". Обратите внимание, что для страниц списка и системных страниц потребуется другое обращение.
Поля просмотра CAML - это, в основном, столбцы для PublishingContactEmail и PublishingContact. Я нашел тех, кто использует CAML Builder версии u2u 4.0.0.0
Переменные ows_ можно найти в представлении xml объекта POST в firebug.
ows_PublishingContact возвращает длинную неприятную строку информации о контакте. К счастью, адрес электронной почты окружен ,#
, что делало его разделенным на массив, а затем осуществлял поиск по электронной почте @ easy, но вот почему это так.
function get_page_contact_email() {
var thisPageID = _spPageContextInfo.pageItemId;
var e;
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Pages",
CAMLViewFields: "<ViewFields><FieldRef Name='PublishingContactEmail' /><FieldRef Name='PublishingContact' /></ViewFields>",
CAMLQueryOptions: "<QueryOptions><ExpandUserField>True</ExpandUserField></QueryOptions>",
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function () {
if (thisPageID == $(this).attr("ows_ID")) {
if ($(this).attr("ows_PublishingContactEmail")) { // if page email is set
e = $(this).attr("ows_PublishingContactEmail");
} else if ($(this).attr("ows_PublishingContact")) { //otherwise use contact info
var contact = $(this).attr("ows_PublishingContact").split(",#");
for (var c = 0; c < contact.length; c++) {
if (contact[c].indexOf("@") != -1) {
e = contact[c];
}
}
} else { //or nothing is set.
e = false;
}
}
});
}
});
return e;
}