如何检查页面是否已发布

时间:2015-06-12 11:31:36

标签: javascript sharepoint

检查页面是否使用服务器端代码发布我应该使用此代码段:

$this->assertTrue($this->similar_arrays($arr1, $arr2));

protected function similar_arrays($a, $b) {
    if(is_array($a) && is_array($b)) {
        if(count(array_diff(array_keys($a), array_keys($b))) > 0)
            return false;

        foreach($a as $k => $v) {
            if(!$this->similar_arrays($v, $b[$k]))
                return false;
        }

        return true;
    }
    else
        return $a === $b;
}

我怎么能这样做但在SharePoint中使用Javascript?

1 个答案:

答案 0 :(得分:0)

根据SP.Publishing.PublishingWeb Methods,JSOM API不支持方法GetPublishingPages

但您可以考虑使用以下示例来确定是否使用JSOM API发布页面

function getPublishingPages(success,error)
{
    var ctx = SP.ClientContext.get_current();
    var list = ctx.get_web().get_lists().getByTitle('Pages');
    var items = list.getItems(SP.CamlQuery.createAllItemsQuery());
    ctx.load(items,'Include(File)');

    ctx.executeQueryAsync(function() {
        success(items);
    },
    error);
}



SP.SOD.executeFunc('SP.js', 'SP.ClientContext', function() {
    getPublishingPages(printPagesInfo,logError);    
});    


function printPagesInfo(pages)
{
   pages.get_data().forEach(function(item){
       var file = item.get_file();
       var pageStatus = file.get_level() === SP.FileLevel.published ? 'published' : 'not published';
       console.log(String.format('Page {0} is {1}', file.get_name(),pageStatus)); 
   });
}


function logError(sender,args){
   console.log('An error occured: ' + args.get_message());
}