/// <summary>
		/// レスポンスボディ用の空の Xhtml を得ます。
		/// </summary>
		protected Xhtml GetXhtml(){
			Xhtml result = new Xhtml();
			result.Html.SetAttribute("xml:lang", "ja");
			return result;
		}
// 静的メソッド
		public static void SetReplaceUrl(Xhtml html){}
Exemple #3
0
		/// <summary>
		/// ページナビゲーションを取得します。
		/// </summary>
		public XmlNode GetPageNav(Xhtml html, AbsPath uriPrefix){

			int startPos = CurrentPage - myNavPrevItems;
			if(startPos > LastPage - myNavPrevItems - myNavNextItems) startPos = LastPage - myNavPrevItems - myNavNextItems;
			if(startPos < 3) startPos = 1;
			int endPos = CurrentPage + myNavNextItems;
			if(endPos < myNavPrevItems + myNavNextItems) endPos = myNavPrevItems + myNavNextItems;
			if(endPos > LastPage - 2) endPos = LastPage;

			XmlDocumentFragment result = html.CreateDocumentFragment();
			XmlElement pageNav = html.P("pageNav");

			if(CurrentPage > 1){
				XmlElement prevLink = html.A(uriPrefix.Combine((CurrentPage-1).ToString()));
				prevLink.InnerText = "前のページ";
				prevLink.SetAttribute("rel", "prev");
				pageNav.AppendChild(prevLink);
				pageNav.AppendChild(html.Text(" "));
			}

			if(startPos > 1){
				pageNav.AppendChild(html.GetPageLink(uriPrefix, 1));
				pageNav.AppendChild(html.Span("omitted", "..."));
			}
			for(int i = startPos; i <= endPos; i++){
				if(i > startPos){
					pageNav.AppendChild(html.Span("separate", "/"));
				}
				pageNav.AppendChild(html.GetPageLink(uriPrefix, i));
			}
			if(endPos < LastPage){
				pageNav.AppendChild(html.Span("omitted", "..."));
				pageNav.AppendChild(html.GetPageLink(uriPrefix, LastPage));
			}

			if(CurrentPage < LastPage){
				XmlElement nextLink = html.A(uriPrefix.Combine((CurrentPage+1).ToString()));
				nextLink.InnerText = "次のページ";
				nextLink.SetAttribute("rel", "next");
				pageNav.AppendChild(html.Text(" "));
				pageNav.AppendChild(nextLink);
			}

			result.AppendChild(pageNav);
			return result;
		}
Exemple #4
0
// パブリックメソッド


		/// <summary>
		/// 雛形の Xhtml を指定して、Xhtml の新しいインスタンスを作成します。
		/// </summary>
		public static Xhtml Copy(Xhtml html){
			if(html == null) throw new ArgumentException("元となる XHTML が null です。");
			Xhtml result = new Xhtml();
			// 文書型宣言なども含めてコピー
			foreach(XmlNode x in html.ChildNodes){
				result.AppendChild(result.ImportNode(x, true));
			}
			return result;
		}
Exemple #5
0
		// Bbs に属する Action すべての SetReplaceUrl メソッドを実行します。
		public static void SetAllReplaceUrl(Xhtml html){
			html.SetReplaceUrl("/" + BbsViewThread.Id + "/1", "");
			html.SetReplaceUrl("/" + BbsViewOrder.Id + "/1", "/" + BbsViewOrder.Id);
			html.SetReplaceUrl("/" + BbsViewRootList.Id + "/1", "/" + BbsViewRootList.Id);
		}