X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=Rakka%2FResource%2FPageEntity.hs;h=8fd0ed4d4024b39cc851a6ec88b4441225ef8c8b;hp=670958e80c6d4b2ecf31c82f640e19f34eabc9ff;hb=b82b7cb90c3c3666ada1e2a2777c902850f831a2;hpb=34ef5e26ef818d2ef74d5bc2a6c0f2bdac97614f diff --git a/Rakka/Resource/PageEntity.hs b/Rakka/Resource/PageEntity.hs index 670958e..8fd0ed4 100644 --- a/Rakka/Resource/PageEntity.hs +++ b/Rakka/Resource/PageEntity.hs @@ -116,7 +116,8 @@ entityToXHTML env let cssHref = [uriToString id (mkObjectURI baseURI styleSheet) ""] scriptSrc = [uriToString id (baseURI { uriPath = uriPath baseURI "js" }) ""] - feeds <- arrIO0 (findFeeds (envStorage env)) -< () + feeds <- arrIO0 (findFeeds (envStorage env)) -< () + javaScripts <- arrIO0 (findJavaScripts (envStorage env)) -< () pageTitle <- listA (readSubPage env) -< (name, Just page, "PageTitle") leftSideBar <- listA (readSubPage env) -< (name, Just page, "SideBar/Left") @@ -164,6 +165,12 @@ entityToXHTML env += txt ("Rakka.isLocked=" ++ trueOrFalse isLocked ++ ";") += txt ("Rakka.isGlobalLocked=" ++ trueOrFalse isGLocked ++ ";") ) + += ( constL javaScripts + >>> + eelem "script" + += sattr "type" "text/javascript" + += attr "src" (arr (mkObjectURIStr baseURI) >>> mkText) + ) ) += ( eelem "body" += ( eelem "div" @@ -364,6 +371,9 @@ pageListingToXHTML env let cssHref = [uriToString id (mkObjectURI baseURI styleSheet) ""] scriptSrc = [uriToString id (baseURI { uriPath = uriPath baseURI "js" }) ""] + feeds <- arrIO0 (findFeeds (envStorage env)) -< () + javaScripts <- arrIO0 (findJavaScripts (envStorage env)) -< () + pageTitle <- listA (readSubPage env) -< (name, Nothing, "PageTitle") leftSideBar <- listA (readSubPage env) -< (name, Nothing, "SideBar/Left") rightSideBar <- listA (readSubPage env) -< (name, Nothing, "SideBar/Right") @@ -384,6 +394,14 @@ pageListingToXHTML env += sattr "type" "text/css" += attr "href" (arr id >>> mkText) ) + += ( constL feeds + >>> + eelem "link" + += sattr "rel" "alternate" + += sattr "type" "application/rss+xml" + += attr "title" (txt siteName <+> txt " - " <+> mkText) + += attr "href" (arr (mkFeedURIStr baseURI) >>> mkText) + ) += ( constL scriptSrc >>> eelem "script" @@ -395,6 +413,12 @@ pageListingToXHTML env += txt ("Rakka.baseURI = \"" ++ uriToString id baseURI "" ++ "\";") += txt ("Rakka.isGlobalLocked=" ++ trueOrFalse isGLocked ++ ";") ) + += ( constL javaScripts + >>> + eelem "script" + += sattr "type" "text/javascript" + += attr "src" (arr (mkObjectURIStr baseURI) >>> mkText) + ) ) += ( eelem "body" += ( eelem "div" @@ -476,6 +500,9 @@ notFoundToXHTML env let cssHref = [uriToString id (mkObjectURI baseURI styleSheet) ""] scriptSrc = [uriToString id (baseURI { uriPath = uriPath baseURI "js" }) ""] + feeds <- arrIO0 (findFeeds (envStorage env)) -< () + javaScripts <- arrIO0 (findJavaScripts (envStorage env)) -< () + pageTitle <- listA (readSubPage env) -< (name, Nothing, "PageTitle") leftSideBar <- listA (readSubPage env) -< (name, Nothing, "SideBar/Left") rightSideBar <- listA (readSubPage env) -< (name, Nothing, "SideBar/Right") @@ -496,6 +523,14 @@ notFoundToXHTML env += sattr "type" "text/css" += attr "href" (arr id >>> mkText) ) + += ( constL feeds + >>> + eelem "link" + += sattr "rel" "alternate" + += sattr "type" "application/rss+xml" + += attr "title" (txt siteName <+> txt " - " <+> mkText) + += attr "href" (arr (mkFeedURIStr baseURI) >>> mkText) + ) += ( constL scriptSrc >>> eelem "script" @@ -507,6 +542,12 @@ notFoundToXHTML env += txt ("Rakka.baseURI = \"" ++ uriToString id baseURI "" ++ "\";") += txt ("Rakka.isGlobalLocked=" ++ trueOrFalse isGLocked ++ ";") ) + += ( constL javaScripts + >>> + eelem "script" + += sattr "type" "text/javascript" + += attr "src" (arr (mkObjectURIStr baseURI) >>> mkText) + ) ) += ( eelem "body" += ( eelem "div" @@ -572,6 +613,22 @@ findFeeds sto return (map hpPageName $ srPages result) +findJavaScripts :: Storage -> IO [PageName] +findJavaScripts sto + = do cond <- newCondition + setPhrase cond "[UVSET]" + addAttrCond cond "@title STRBW Global/" + addAttrCond cond "@type STRBW text/javascript" + setOrder cond "@uri STRA" + result <- searchPages sto cond + return (map hpPageName $ srPages result) + + mkFeedURIStr :: URI -> PageName -> String mkFeedURIStr baseURI name = uriToString id (mkFeedURI baseURI name) "" + + +mkObjectURIStr :: URI -> PageName -> String +mkObjectURIStr baseURI name + = uriToString id (mkObjectURI baseURI name) ""