diff --git a/src/Snap/Extras/SpliceUtils/Compiled.hs b/src/Snap/Extras/SpliceUtils/Compiled.hs index 6040c3e..e24b18a 100644 --- a/src/Snap/Extras/SpliceUtils/Compiled.hs +++ b/src/Snap/Extras/SpliceUtils/Compiled.hs @@ -19,9 +19,15 @@ import Text.XmlHtml utilSplices :: MonadSnap m => [(Text, Splice m)] utilSplices = [ ("rqparam", paramSplice) + , ("refererLink", refererCSplice) ] +refererCSplice :: MonadSnap m => Splice m +refererCSplice = return $ yieldRuntimeText $ return . + maybe "/" T.decodeUtf8 =<< lift (getsRequest (getHeader "Referer")) + + ------------------------------------------------------------------------------ -- | Gets the value of a request parameter. Example use: -- diff --git a/src/Snap/Extras/SpliceUtils/Interpreted.hs b/src/Snap/Extras/SpliceUtils/Interpreted.hs index 1d51ee5..83231c4 100644 --- a/src/Snap/Extras/SpliceUtils/Interpreted.hs +++ b/src/Snap/Extras/SpliceUtils/Interpreted.hs @@ -8,6 +8,7 @@ module Snap.Extras.SpliceUtils.Interpreted , runTextAreas , scriptsSplice , ifFlagSplice + , refererSplice ) where ------------------------------------------------------------------------------- @@ -32,9 +33,15 @@ import Text.XmlHtml utilSplices :: [(Text, SnapletISplice b)] utilSplices = [ ("rqparam", paramSplice) + , ("refererLink", refererSplice) ] +refererSplice :: MonadSnap m => Splice m +refererSplice = + textSplice . maybe "/" T.decodeUtf8 =<< lift (getsRequest (getHeader "Referer")) + + ------------------------------------------------------------------------------ -- | Gets the value of a request parameter. Example use: --