子站批量设置节点允许指定主站推送
如果按照正常操作步骤:
每个子站先开启允许指定主站推送(不建议直接选全部);
切换到每个子站后台,在节点修改,权限设置中选择允许主站推送;重复设置其他节点;
针对以上操作,如果有四五十个子站,每个站点十几个栏目需要设置,这工作量想想就够了。
优化后的方法(数据库操作,记得提前备份):
子站点设置开启允许主站推送:
declare my_cursor cursor for
select SiteId,OtherSiteSendPermissionType from PE_Common_Site where SiteId <> 1
open my_cursor
declare @SiteId int,@OtherSiteSendPermissionType int
fetch next from my_cursor into @SiteId,@OtherSiteSendPermissionType
while( @@FETCH_STATUS=0) --假如检索到了数据继续执行
begin
print('-----------------------begin-------------------------------CurrentSiteId=' + convert(nvarchar,@SiteId))
if(@OtherSiteSendPermissionType != 2) --如果“报送/推送权限”状态不是“只允许指定站点报送/推送数据到本站点”。
begin
print('正在修改SiteId为' + convert(nvarchar,@SiteId) + '的 “SendPermissionType”值为2(只允许指定站点报送/推送数据到本节点。)')
update PE_Common_Site set OtherSiteSendPermissionType = 2 where SiteId = @SiteId
end
if((select count(*) from [PE_Common_SiteAllowDesignatedSiteRelation] where SiteId = @SiteId and DesignatedSiteId = 1) = 0) -- 当前站点还未指定站点ID为1
begin
print('正在为SiteId为' + convert(nvarchar,@SiteId) + ' 的站点,将主站添加到“已允许的站点”关系中。 ')
insert into [PE_Common_SiteAllowDesignatedSiteRelation] values(@SiteId, 1, True, '1|0')
end
print('-----------------------end-------------------------------')
fetch next from my_cursor into @nodeid, @SendPermissionType
end--关闭释放游标
close my_cursor
deallocate my_cursor结果如下:
子站节点开启允许主站推送
declare my_cursor cursor for
select nodeid,SendPermissionType from PE_ContentManage_Node where NodeName = '栏目名称' and SiteId <> 1
open my_cursor
declare @nodeid int,@SendPermissionType int
fetch next from my_cursor into @nodeid, @SendPermissionType
while( @@FETCH_STATUS=0) --假如检索到了数据继续执行
begin
print('-----------------------begin-------------------------------CurrentNodeId=' + convert(nvarchar,@nodeid))
if(@SendPermissionType != 2) --如果“报送/推送权限”状态不是“只允许指定站点报送/推送数据到本节点”。
begin
print('正在修改nodeid为' + convert(nvarchar,@nodeid) + '的 “SendPermissionType”值为2(只允许指定站点报送/推送数据到本节点。)')
update PE_ContentManage_Node set SendPermissionType = 2 where NodeId = @nodeid
end
if((select count(*) from [PE_ContentManage_NodeAllowDesignatedSiteRelation] where NodeId = @nodeid and DesignatedSiteId = 1) = 0) -- 当前节点还未指定站点ID为1
begin
print('正在为nodeid为' + convert(nvarchar,@nodeid) + ' 的节点,将主站添加到“已允许的站点”关系中。 ')
insert into [PE_ContentManage_NodeAllowDesignatedSiteRelation] values(@nodeid, 1, 0, '1|0')
end
print('-----------------------end-------------------------------')
fetch next from my_cursor into @nodeid, @SendPermissionType
end--关闭释放游标
close my_cursor
deallocate my_cursor
结果如下:
执行脚本后需要点下清空数据缓存。