コード例 #1
0
        public static string GetDescription(int siteId, ChannelInfo channelInfo)
        {
            var results = string.Empty;

            if (channelInfo != null)
            {
                results = ECrossSiteTransTypeUtils.GetText(channelInfo.Additional.TransType);

                if (channelInfo.Additional.TransType == ECrossSiteTransType.AllParentSite || channelInfo.Additional.TransType == ECrossSiteTransType.AllSite)
                {
                    if (!string.IsNullOrEmpty(channelInfo.Additional.TransChannelNames))
                    {
                        results += $"({channelInfo.Additional.TransChannelNames})";
                    }
                }
                else if (channelInfo.Additional.TransType == ECrossSiteTransType.SelfSite || channelInfo.Additional.TransType == ECrossSiteTransType.SpecifiedSite || channelInfo.Additional.TransType == ECrossSiteTransType.ParentSite)
                {
                    SiteInfo siteInfo = null;

                    if (channelInfo.Additional.TransType == ECrossSiteTransType.SelfSite)
                    {
                        siteInfo = SiteManager.GetSiteInfo(siteId);
                    }
                    else if (channelInfo.Additional.TransType == ECrossSiteTransType.SpecifiedSite)
                    {
                        siteInfo = SiteManager.GetSiteInfo(channelInfo.Additional.TransSiteId);
                    }
                    else
                    {
                        var parentSiteId = SiteManager.GetParentSiteId(siteId);
                        if (parentSiteId != 0)
                        {
                            siteInfo = SiteManager.GetSiteInfo(parentSiteId);
                        }
                    }

                    if (siteInfo != null && !string.IsNullOrEmpty(channelInfo.Additional.TransChannelIds))
                    {
                        var nodeNameBuilder    = new StringBuilder();
                        var channelIdArrayList = TranslateUtils.StringCollectionToIntList(channelInfo.Additional.TransChannelIds);
                        foreach (int channelId in channelIdArrayList)
                        {
                            var theNodeInfo = ChannelManager.GetChannelInfo(siteInfo.Id, channelId);
                            if (theNodeInfo != null)
                            {
                                nodeNameBuilder.Append(theNodeInfo.ChannelName).Append(",");
                            }
                        }
                        if (nodeNameBuilder.Length > 0)
                        {
                            nodeNameBuilder.Length--;
                            results += $"({siteInfo.SiteName}:{nodeNameBuilder})";
                        }
                    }
                }
            }
            return(results);
        }
コード例 #2
0
ファイル: ContentUtility.cs プロジェクト: zxbe/cms
        public static bool AfterContentAdded(SiteInfo siteInfo, ChannelInfo channelInfo, int contentId, bool isCrossSiteTrans, bool isAutomatic)
        {
            var isTranslated = false;

            if (isCrossSiteTrans && isAutomatic)
            {
                var targetSiteId = 0;

                if (channelInfo.Additional.TransType == ECrossSiteTransType.SpecifiedSite)
                {
                    targetSiteId = channelInfo.Additional.TransSiteId;
                }
                else if (channelInfo.Additional.TransType == ECrossSiteTransType.SelfSite)
                {
                    targetSiteId = siteInfo.Id;
                }
                else if (channelInfo.Additional.TransType == ECrossSiteTransType.ParentSite)
                {
                    targetSiteId = SiteManager.GetParentSiteId(siteInfo.Id);
                }

                if (targetSiteId > 0)
                {
                    var targetSiteInfo = SiteManager.GetSiteInfo(targetSiteId);
                    if (targetSiteInfo != null)
                    {
                        var targetChannelIdArrayList = TranslateUtils.StringCollectionToIntList(channelInfo.Additional.TransChannelIds);
                        if (targetChannelIdArrayList.Count > 0)
                        {
                            foreach (var targetChannelId in targetChannelIdArrayList)
                            {
                                CrossSiteTransUtility.TransContentInfo(siteInfo, channelInfo, contentId, targetSiteInfo, targetChannelId);
                                isTranslated = true;
                            }
                        }
                    }
                }
            }

            foreach (var service in PluginManager.Services)
            {
                try
                {
                    service.OnContentAddCompleted(new ContentEventArgs(siteInfo.Id, channelInfo.Id, contentId));
                }
                catch (Exception ex)
                {
                    LogUtils.AddErrorLog(service.PluginId, ex, nameof(service.OnContentAddCompleted));
                }
            }

            return(isTranslated);
        }
コード例 #3
0
        public static bool IsCrossSiteTrans(SiteInfo siteInfo, ChannelInfo channelInfo)
        {
            var isCrossSiteTrans = false;

            if (channelInfo != null && channelInfo.Additional.TransType != ECrossSiteTransType.None)
            {
                var transType = channelInfo.Additional.TransType;
                if (transType != ECrossSiteTransType.None)
                {
                    if (transType == ECrossSiteTransType.AllParentSite)
                    {
                        var parentSiteId = SiteManager.GetParentSiteId(siteInfo.Id);
                        if (parentSiteId != 0)
                        {
                            isCrossSiteTrans = true;
                        }
                    }
                    else if (transType == ECrossSiteTransType.SelfSite)
                    {
                        isCrossSiteTrans = true;
                    }
                    else if (transType == ECrossSiteTransType.AllSite)
                    {
                        isCrossSiteTrans = true;
                    }
                    else if (transType == ECrossSiteTransType.SpecifiedSite)
                    {
                        if (channelInfo.Additional.TransSiteId > 0)
                        {
                            var theSiteInfo = SiteManager.GetSiteInfo(channelInfo.Additional.TransSiteId);
                            if (theSiteInfo != null)
                            {
                                isCrossSiteTrans = true;
                            }
                        }
                    }
                    else if (transType == ECrossSiteTransType.ParentSite)
                    {
                        var parentSiteId = SiteManager.GetParentSiteId(siteInfo.Id);
                        if (parentSiteId != 0)
                        {
                            isCrossSiteTrans = true;
                        }
                    }
                }
            }

            return(isCrossSiteTrans);
        }
コード例 #4
0
        public static void LoadSiteIdDropDownList(DropDownList siteIdDropDownList, SiteInfo siteInfo, int channelId)
        {
            siteIdDropDownList.Items.Clear();

            var channelInfo = ChannelManager.GetChannelInfo(siteInfo.Id, channelId);

            if (channelInfo.Additional.TransType == ECrossSiteTransType.SelfSite || channelInfo.Additional.TransType == ECrossSiteTransType.SpecifiedSite || channelInfo.Additional.TransType == ECrossSiteTransType.ParentSite)
            {
                int theSiteId;
                if (channelInfo.Additional.TransType == ECrossSiteTransType.SelfSite)
                {
                    theSiteId = siteInfo.Id;
                }
                else if (channelInfo.Additional.TransType == ECrossSiteTransType.SpecifiedSite)
                {
                    theSiteId = channelInfo.Additional.TransSiteId;
                }
                else
                {
                    theSiteId = SiteManager.GetParentSiteId(siteInfo.Id);
                }
                if (theSiteId > 0)
                {
                    var theSiteInfo = SiteManager.GetSiteInfo(theSiteId);
                    if (theSiteInfo != null)
                    {
                        var listitem = new ListItem(theSiteInfo.SiteName, theSiteInfo.Id.ToString());
                        siteIdDropDownList.Items.Add(listitem);
                    }
                }
            }
            else if (channelInfo.Additional.TransType == ECrossSiteTransType.AllParentSite)
            {
                var siteIdList = SiteManager.GetSiteIdList();

                var allParentSiteIdList = new List <int>();
                SiteManager.GetAllParentSiteIdList(allParentSiteIdList, siteIdList, siteInfo.Id);

                foreach (var psId in siteIdList)
                {
                    if (psId == siteInfo.Id)
                    {
                        continue;
                    }
                    var psInfo = SiteManager.GetSiteInfo(psId);
                    var show   = psInfo.IsRoot || allParentSiteIdList.Contains(psInfo.Id);
                    if (show)
                    {
                        var listitem = new ListItem(psInfo.SiteName, psId.ToString());
                        if (psInfo.IsRoot)
                        {
                            listitem.Selected = true;
                        }
                        siteIdDropDownList.Items.Add(listitem);
                    }
                }
            }
            else if (channelInfo.Additional.TransType == ECrossSiteTransType.AllSite)
            {
                var siteIdList = SiteManager.GetSiteIdList();

                foreach (var psId in siteIdList)
                {
                    var psInfo   = SiteManager.GetSiteInfo(psId);
                    var listitem = new ListItem(psInfo.SiteName, psId.ToString());
                    if (psInfo.IsRoot)
                    {
                        listitem.Selected = true;
                    }
                    siteIdDropDownList.Items.Add(listitem);
                }
            }
        }