Пример #1
0
        private void IsChecked(PageSimpleExXmlElement pageEle)
        {
            if (pageEle.IsDeleted != true)
            {
                switch (pageEle.PageType)
                {
                case PageType.Hr:
                    this.conHr.Checked = true;
                    break;

                case PageType.Knowledge:
                    this.conKnowledge.Checked = true;
                    break;

                case PageType.Product:
                    this.conProduct.Checked = true;
                    break;

                case PageType.Project:
                    this.conProject.Checked = true;
                    break;

                case PageType.General:
                    this.conGeneral.Checked = true;
                    break;

                case PageType.InviteBidding:
                    this.conInviteBidding.Checked = true;
                    break;
                }
            }
        }
Пример #2
0
 /// <summary>
 /// 生成正文页面片内容
 /// </summary>
 static public string GetContentPageContent(string contentId)
 {
     try
     {
         PageSimpleExXmlElement pageEle  = ToHtmlSdsiteService.SdsiteXmlDocument.GetPageElementById(contentId);
         TmpltXmlDocument       tmpltDoc = ToHtmlSdsiteService.SdsiteXmlDocument.GetTmpltDocumentById(pageEle.TmpltId);
         SnipXmlElement         snipEle  = tmpltDoc.GetContentSnipEle();
         string contentHtml = null;
         if (snipEle != null)
         {
             // lukan, 2008-6-23 10:38:45, 重构
             //contentHtml = snipEle.ToRealContentHtml(contentId);
             //if (snipEle.IsHaveContent == false && tmpltDoc.TmpltType == TmpltType.General)
             //{
             //    contentHtml += "<span>您在正文页面片中还没有添加正文,正文部分将无法显示</span>";
             //}
             //if (!string.IsNullOrEmpty(snipEle.ToRealCss()))
             //{
             //    ActiveTmpltAndSnip.AddSnipElementIntoDictionary(snipEle);
             //}
         }
         else
         {
             return("您还没有添加正文页面片!");
         }
         return(contentHtml);
     }
     catch (Exception e)
     {
         ExceptionService.CreateException(e);
         return(string.Empty);
     }
 }
Пример #3
0
        private void OKBtn_Click(object sender, EventArgs e)
        {
            if ((m_tree.CurrentNode is DataNode) && ((DataNode)m_tree.CurrentNode).NodeType == TreeNodeType.Tmplt)
            {
                this.TmpltId = ((TmpltNode)m_tree.CurrentNode).Element.Id;

                //如果传入的父元素为空,则父频道为网站根节点
                if (_parentEle == null)
                {
                    _parentEle = ((ElementNode)m_tree.SelectTreeRootChanNode).Element as FolderXmlElement;
                    PageType   = (PageType)((int)((TmpltNode)m_tree.CurrentNode).Element.TmpltType);
                }

                ///检查是否有重名
                //if (File.Exists(Path.Combine(_parentEle.AbsoluteFilePath, NameTextBox.Text + Utility.Const.PageFileExt)))
                //{
                //    MessageService.Show("此文件已存在,请重新命名。");
                //    NameTextBox.SelectAll();
                //    NameTextBox.Focus();
                //    return;
                //}

                SdsiteXmlDocument      doc     = Service.Sdsite.CurrentDocument;
                PageSimpleExXmlElement pageEle = doc.CreatePage(_parentEle.Id, PageType, NameTextBox.Text, TmpltId);

                this.NewPageId    = pageEle.Id;
                this.DialogResult = DialogResult.OK;
                Close();
            }
            else
            {
                MessageService.Show("请选择模板!");
            }
        }
Пример #4
0
        private void OKBtn_Click(object sender, EventArgs e)
        {
            SdsiteXmlDocument doc = Service.Sdsite.CurrentDocument;

            ///不创建模板
            if (!newTmpltCheckBox.Checked)
            {
                if ((m_tree.CurrentNode is DataNode) && ((DataNode)m_tree.CurrentNode).NodeType == TreeNodeType.Tmplt)
                {
                    if (_parentEle == null)//如果传入的父元素为空,则父频道为网站根节点
                    {
                        _parentEle = ((ElementNode)m_tree.SelectTreeRootChanNode).Element as FolderXmlElement;
                    }

                    PageSimpleExXmlElement pageEle = doc.CreatePage(_parentEle, PageType.Home, NameTextBox.Text, ((TmpltNode)m_tree.CurrentNode).Element.Id);
                    NewPageId = pageEle.Id;
                }
                else
                {
                    MessageService.Show("请选择模板!");
                    return;
                }
            }
            ///创建页面同时创建模板
            else
            {
                KeyValuePair <string, string> keyvalue = doc.CreateHome(_parentEle, NameTextBox.Text);
                NewPageId = keyvalue.Value;
            }

            this.DialogResult = DialogResult.OK;
            Close();
        }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        public static string GetKeywordListSnip(string tmpltId, string pageId)
        {
            PageSimpleExXmlElement pageEle    = ToHtmlSdsiteService.SdsiteXmlDocument.GetPageElementById(pageId);
            TmpltXmlDocument       tmpltDoc   = ToHtmlSdsiteService.SdsiteXmlDocument.GetTmpltDocumentById(tmpltId);
            SnipXmlElement         snipXmlEle = tmpltDoc.GetKeyListSnip();

            return("");// snipXmlEle.ToKeywordHtml(pageEle);
        }
Пример #6
0
        public static string GetIndexPath(string channleGuid)
        {
            FolderXmlElement       channleEle = ToHtmlSdsiteService.SdsiteXmlDocument.GetFolderElementById(channleGuid);
            PageSimpleExXmlElement pageEle    = ToHtmlSdsiteService.SdsiteXmlDocument.GetPageElementById(channleEle.DefaultPageId);

            if (pageEle != null)
            {
                return(pageEle.OwnerFolderElement.RelativeUrl + pageEle.FileName + Utility.Const.ShtmlFileExt);
            }
            return(string.Empty);
        }
Пример #7
0
        void titleToolStripTextBox_Validated(object sender, EventArgs e)
        {
            SdsiteXmlDocument      doc = Service.Sdsite.CurrentDocument;
            PageSimpleExXmlElement ele = doc.GetPageElementById(_htmlDesigner.PageId);

            ele.Title = titleToolStripTextBox.Text;
            doc.Save();

            PageXmlDocument pageDoc = doc.GetPageDocumentById(_htmlDesigner.PageId);

            pageDoc.Title = titleToolStripTextBox.Text;
            pageDoc.Save();
        }
Пример #8
0
 /// <summary>
 /// 通过pageID获取shtml文件的那句话
 /// </summary>
 static public string GetPageContent(string pageId)
 {
     try
     {
         PageSimpleExXmlElement pageEle = ToHtmlSdsiteService.SdsiteXmlDocument.GetPageElementById(pageId);
         return("");// pageEle.ToHtml();
     }
     catch (Exception e)
     {
         ExceptionService.CreateException(e);
         return(string.Empty);
     }
 }
Пример #9
0
        protected override void OnLoad(EventArgs e)
        {
            Debug.Assert(!string.IsNullOrEmpty(_homeId));
            _elePageSimple = Service.Sdsite.CurrentDocument.GetPageElementById(_homeId);
            if (_elePageSimple == null || !File.Exists(_elePageSimple.AbsoluteFilePath))
            {
                MessageService.Show("文件不存在,打开失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
                return;
            }

            this.Text = _elePageSimple.Title;
            base.OnLoad(e);
        }
Пример #10
0
        /// <summary>
        /// 将窗体值转入xml文件中
        /// </summary>
        public void WritePageTextProp(PageTextPropertyItem property, string PageId)
        {
            PageXmlDocument        doc = Service.Sdsite.CurrentDocument.GetPageDocumentById(PageId) as PageXmlDocument;
            PageSimpleExXmlElement ele = Service.Sdsite.CurrentDocument.GetPageElementById(PageId) as PageSimpleExXmlElement;

            ele.IsModified     = true;
            doc.Title          = property.Title;
            doc.PageTitleAlias = property.TitleAlias;
            doc.PageCreateTime = property.DeliverTime;
            doc.PageSummary    = property.Summary;
            doc.Author         = property.AuthorAlias;
            doc.AuthorAlias    = property.AuthorAlias;
            doc.ModifyAlias    = property.ModifyBy;
            doc.DesignSummary  = property.DesignSummary;

            doc.PageKeywords  = property.tag.ToArray();
            doc.ContentSource = property.ContentSource;

            //                doc.DocumentElement.Attributes["content_source"].Value = property.ContentSource;
            //doc.DocumentElement.Attributes["is_always_pub"].Value = property.IsAlwaysPub.ToString();

            //doc.DocumentElement.Attributes["stop_time"].Value = property.EndPubTime;
            doc.Save();
            Service.Sdsite.CurrentDocument.Save();
            ///写入文章摘要

            /*
             *
             * doc.DocumentElement.Attributes["content_source"].Value = property.ContentSource;
             * doc.DocumentElement.Attributes["is_always_pub"].Value = property.IsAlwaysPub.ToString();
             *
             * doc.DocumentElement.Attributes["stop_time"].Value = property.EndPubTime;
             *
             *
             * XmlNode tagNode = ContentDoc.SelectSingleNode("/content/tags");
             * WriteXmlTag(property.tag, tagNode);
             *
             * if (text != "")
             * {
             *   ///重新存储
             *   XmlNode textNode = ContentDoc.SelectSingleNode("/content/article_text");
             *   textNode.RemoveAll();
             *   XmlCDataSection xmlData = ContentDoc.CreateCDataSection(text);
             *   textNode.AppendChild(xmlData);
             * }*/
        }
Пример #11
0
        private void InitListViewSubFile(XmlNodeList xmlNode, ListViewEx listView, string FlterType)
        {
            //加载子文件
            foreach (XmlNode node in xmlNode)
            {
                if (node is FileSimpleExXmlElement)
                {
                    FileSimpleExXmlElement fileEle = (FileSimpleExXmlElement)node;

                    string exfile = Path.GetExtension(fileEle.AbsoluteFilePath).ToLower();
                    if (FlterType != _strAll && !FlterType.Contains(exfile))
                    {
                        continue;
                    }

                    MyListFileItem myFileItem = new MyListFileItem(fileEle);
                    if (fileEle.IsDeleted)
                    {
                        continue;
                    }
                    myFileItem.ItemMediaType = GetListItemType(exfile);
                    myFileItem.Element       = fileEle;
                    myFileItem.Text          = fileEle.Title;
                    listView.Items.Add(myFileItem);
                }
                else if (node is PageSimpleExXmlElement)
                {
                    PageSimpleExXmlElement fileEle = (PageSimpleExXmlElement)node;

                    if (FlterType != _strAll && fileEle.PageType.ToString() != FlterType)
                    {
                        continue;
                    }
                    MyListFileItem myFileItem = new MyListFileItem(fileEle);
                    if (fileEle.IsDeleted)
                    {
                        continue;
                    }
                    myFileItem.Element = fileEle;
                    myFileItem.Text    = fileEle.Title;
                    listView.Items.Add(myFileItem);
                }
            }
        }
Пример #12
0
        private void CreatTreeNode(AnyXmlElement channelEle, TreeNode treeNode)
        {
            foreach (AnyXmlElement simEle in channelEle.ChildNodes)
            {
                if (simEle.NodeType != XmlNodeType.Element)
                {
                    break;
                }
                TreeNode subTreeNode = null;
                if (simEle.Name == "channel")  //一定要是频道
                {
                    PageSimpleExXmlElement currEle = (PageSimpleExXmlElement)simEle;

                    // ChannelSimpleExXmlElement currEle = (ChannelSimpleExXmlElement)simEle;
                    if (currEle.IsDeleted)
                    {
                        break;
                    }
                    subTreeNode = new TreeNode();
                    int m = (int)currEle.PageType;
                    // int m = (int)currEle.ChannelType;
                    int  n        = (int)this._pageType;
                    bool typeBool = (m == n);
                    if (!typeBool)
                    {
                        subTreeNode.ForeColor = System.Drawing.Color.Silver;
                        subTreeNode.Tag       = false;
                    }

                    subTreeNode.Name = currEle.Id;
                    subTreeNode.Text = currEle.Title;
                    subTreeNode.Tag  = true;
                    if (currEle.HasChildNodes)
                    {
                        CreatTreeNode(currEle, subTreeNode);//递归
                    }
                }
                if (subTreeNode != null)
                {
                    treeNode.Nodes.Add(subTreeNode);
                }
            }
        }
Пример #13
0
        protected override void OnLoad(EventArgs e)
        {
            Debug.Assert(!string.IsNullOrEmpty(_pageId));
            PageSimpleExXmlElement ele = Service.Sdsite.CurrentDocument.GetPageElementById(_pageId);

            if (ele == null || !File.Exists(ele.AbsoluteFilePath))
            {
                MessageService.Show("文件不存在,打开失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Timer timer = new Timer();
                timer.Interval = 10;
                timer.Tick    += delegate
                {
                    timer.Stop();
                    timer.Dispose();
                    this.Close();
                };
                timer.Start();
                return;
            }

            this._pageDoc = ele.GetIndexXmlDocument();
            // this._pageEle = (PageElement)this._pageDoc.GetElementById(pageId); /wangmiao

            this.Text = ele.Title;//w
            Service.Sdsite.CurrentDocument.ElementTitleChanged += new EventHandler <ChangeTitleEventArgs>(CurrentDocument_ElementTitleChanged);

            //控件设置
            _htmldesign = new HTMLDesignerEx(PageId);
            //_htmldesign.PageId = _pageId;
            //this.Controls.Add(_htmldesign.GetMainToolStrip());
            //this.Controls.Add(_htmldesign.GetHtmlPanel());
            this.Controls.Add(_htmldesign);
            string fileName = Service.Sdsite.CurrentDocument.GetPageElementById(_pageId).Title; //w

            this._htmldesign.PageTitle = fileName;                                              //w

            //this._htmldesign.SetHtmlPanel().BringToFront();
            this._designWebB = this._htmldesign.DesignWebBrowser;

            //IDoc2 = _htmldesign.Idoc2;
            base.OnLoad(e);
        }
Пример #14
0
        /// <summary>
        /// 内容页面资料处理
        /// </summary>
        /// <param name="filePath">文件路径, string pageText</param>
        /// <param name="fileContent">文件的正文</param>
        public PagePropertyPanel(string pageId)
        {
            InitializeComponent();
            _pageID = pageId;
            PageSimpleExXmlElement pageEle = (PageSimpleExXmlElement)Service.Sdsite.CurrentDocument.GetElementById(pageId);
            string          filePath       = pageEle.AbsoluteFilePath;
            PageXmlDocument pageDoc        = Service.Sdsite.CurrentDocument.GetPageDocumentById(pageId);

            if (pageDoc == null)
            {
                ///读取文章正文]
                mgr       = new PagePropertyHelper(pageId);
                _pageText = mgr.ReadPageText();
            }
            else
            {
                mgr       = new PagePropertyHelper(pageId);
                _pageText = pageDoc.PageText;
            }
        }
Пример #15
0
 private void OkMethod()
 {
     if (this._tree.SelectedNode == null)
     {
         this.DialogResult = DialogResult.Cancel;
     }
     else
     {
         PageSimpleExXmlElement ele = Service.Sdsite.CurrentDocument.GetPageElementById(this._tree.SelectedNode.Name);
         //ChannelSimpleExXmlElement ele =
         //    Service.Sdsite.CurrentDocument.GetChannelElementById(this._tree.SelectedNode.Name);
         //int m = (int)ele.ChannelType;
         int  m        = (int)ele.PageType;
         int  n        = (int)this._pageType;
         bool typeBool = (m == n);
         if (!typeBool)
         {
             DialogResult result;
             result = MessageBox.Show(
                 this,
                 "choseChannel",    //this.GetTextResource("choseChannel"),
                 "NotChoseChannel", //this.GetTextResource("NotChoseChannel"),
                 MessageBoxButtons.OKCancel,
                 MessageBoxIcon.Exclamation);
             if (result == DialogResult.Cancel)
             {
                 this.DialogResult = DialogResult.Cancel;
             }
         }
         else
         {
             this.DialogResult = DialogResult.OK;
             this._channelId   = this._tree.SelectedNode.Name;
             this.Close();
         }
     }
 }
Пример #16
0
        /// <summary>
        /// 生成页面文件
        /// </summary>
        /// <param name="simpleEle"></param>
        public void BuildPageFile(SimpleExIndexXmlElement simpleEle)
        {
            //添加模板到Dictionary字典中
            AddElementToDictionary(simpleEle);

            PageSimpleExXmlElement pageEle = (PageSimpleExXmlElement)simpleEle;
            string pageId    = pageEle.Id;
            string channelId = pageEle.OwnerChannelElement.Id; //页面直属频道的Id

            PageXmlDocument pageDoc = SdsiteDocument.GetPageDocumentById(pageId);

            if (pageEle.IsDeletedRecursive)
            {
                //如果 是索引页面,删除本身的文件 filename.sdpage index.sdpage,其它页面则还要删除
                //及一系列的关于页面的文件filename_head.inc filename_content.inc filename_list.inc
                pageDoc.DeleteXhtml(ToHtmlHelperObj);

                //此时就要看与此文件关联的其它文件
                if (AsTmpltList(channelId))
                {
                    NewMethod(channelId);
                }
                //文件删除,则其它链接到此文件文件不做处理
            }
            else if (!pageEle.IsAlreadyPublished) //新建
            {
                //如果 是索引页面,新建本身的文件 filename.sdpage 及index.shtml
                //,其它类型页面则要新建一系列的关于页面的文件filename_head.inc filename_content.inc


                //todo:...


                //此时,就要查看与此关联的文件,是如何
                if (AsTmpltList(channelId))
                {
                    //生成filename_list.inc文件

                    NewMethod(channelId);

                    //此处不用考虑其路径问题
                }
            }
            else
            {
                //文件路径是否改变(与重命名有密切关系)
                if (pageEle.IsChangedPosition)
                {
                    //先将文件移动到新的位置
                }

                if (pageEle.IsModified)
                {
                    //页面本身的一些文件重新生成

                    //关联页面
                    NewMethod(channelId);

                    //路径关联的一些页面的重新生成
                    //如果发生CustomID的变化,找到链接到此文件的所有页面,然后重新生成
                }
                else
                {
                    //如果是模板的内容布局有所在改变,则content还是要重新生成
                }
            }
        }
Пример #17
0
 public PageNode(PageSimpleExXmlElement element)
     : base(element)
 {
 }
Пример #18
0
        public virtual int AddChildNode(int index, BaseTreeNode node)
        {
            int result = index;

            ///先添加到节点中
            if (index == -1)
            {
                result = this.Nodes.Add(node);
            }
            else
            {
                this.Nodes.Insert(index, node);
            }

            ///设置图标
            node.SelectedImageKey = node.ImageKey = node.FactImageKey;

            ///初始化节点状态
            TreeView.InitNode(node);

            ///检查文件是否正常
            if (node is ElementNode)
            {
                ElementNode elementNode = (ElementNode)node;

                ///添加到TreeNode的dic容器里去
                if (TreeView.TreeMode == TreeMode.General && elementNode.NodeType != TreeNodeType.Link)
                {
                    TreeView.SetElementNode(elementNode);
                }

                ///检查文件是否存在:不存在,则在图标上画一个感叹号
                if (!Utility.File.Exists(elementNode.Element.AbsoluteFilePath))
                {
                    string signKey = Service.Draw.GetSignKey(node.FactImageKey, SignType.ExcalmatoryPoint);
                    if (!this.TreeView.ImageList.Images.ContainsKey(signKey))
                    {
                        ///若是资源文件节点,则先确定图标已经存在
                        if (elementNode is ResourceFileNode)
                        {
                            ResourceFileNode fileNode = (ResourceFileNode)elementNode;
                            fileNode.InsureIcon();
                        }

                        ///画标记
                        Image signImage = this.TreeView.ImageList.Images[node.FactImageKey];
                        Service.Draw.DrawSign(signImage, SignType.ExcalmatoryPoint);
                        this.TreeView.ImageList.Images.Add(signKey, signImage);
                    }

                    node.SelectedImageKey = node.ImageKey = signKey;

                    if (elementNode.IsFolder)
                    {
                        node.ToolTipText = "此文件夹不存在!";
                    }
                    else
                    {
                        node.ToolTipText = "此文件不存在!";
                    }
                }
                else
                {
                    bool isHealthy = true;
                    switch (elementNode.Element.DataType)
                    {
                    ///检查非首页型模板是否有正文型页面片
                    case DataType.Tmplt:
                    {
                        TmpltSimpleExXmlElement tmpltEle = elementNode.Element as TmpltSimpleExXmlElement;
                        if (tmpltEle.TmpltType != TmpltType.Home && !tmpltEle.HasContentSnip)
                        {
                            isHealthy = false;
                            elementNode.ToolTipText = "此模板没有正文型页面片。属于不完整模板。\r\n请为此模板创建正文型页面片,否则关联到它的页面无法正常生成。";
                        }
                        break;
                    }

                    ///检查页面是否正确关联了模板
                    case DataType.Page:
                    {
                        PageSimpleExXmlElement pageEle = elementNode.Element as PageSimpleExXmlElement;
                        if (string.IsNullOrEmpty(pageEle.TmpltId))
                        {
                            isHealthy = false;
                            elementNode.ToolTipText = "此页面没有设置关联模板,属于不完整页面。\r\n请重新选择关联模板,否则将无法生成最终页面。";
                        }
                        else
                        {
                            TmpltSimpleExXmlElement tmpltEle = Service.Sdsite.CurrentDocument.GetTmpltElementById(pageEle.TmpltId);
                            if (tmpltEle == null ||
                                !File.Exists(tmpltEle.AbsoluteFilePath))
                            {
                                isHealthy = false;
                                elementNode.ToolTipText = "此页面关联的模板未能找到,属于不完整页面。\r\n请重新选择关联模板,否则无法生成最终页面。";
                            }
                            else
                            {
                                isHealthy = true;
                                //ElementNode tmpltNode = TreeView.GetElementNode(tmpltEle.Id);
                                //if (tmpltNode != null)
                                //{
                                //    elementNode.ToolTipText = "此页面完整,关联的模板是:" + tmpltNode.FullPath + "。\r\n可生成最终页面。";
                                //}
                            }
                        }
                        break;
                    }
                    }

                    ///不健康节点,在图标上添加标记
                    if (!isHealthy)
                    {
                        string signKey = Service.Draw.GetSignKey(node.FactImageKey, SignType.QuestionPoint);
                        if (!this.TreeView.ImageList.Images.ContainsKey(signKey))
                        {
                            Image signImage = this.TreeView.ImageList.Images[node.FactImageKey];
                            Service.Draw.DrawSign(signImage, SignType.QuestionPoint);
                            this.TreeView.ImageList.Images.Add(signKey, signImage);
                        }

                        node.SelectedImageKey = node.ImageKey = signKey;
                    }
                }
            }

            return(result);
        }