Lift CMS site

79 views
Skip to first unread message

David Pollak

unread,
Sep 28, 2010, 11:46:15 PM9/28/10
to liftweb
Folks,

The http://liftweb.net site is sitting on top of a CMS system I'm working on.  The code for the CMS system is http://github.com/dpp/hoisted  It's very rough and I'm meaning to use some of the concepts on the cms branch of Lift http://github.com/lift/lift/tree/dpp_cms (basically not using interfaces to define the class that holds the content, but using conversions between the various types).

The Lift site content is at http://github.com/lift/cms_site and committers can update content.  Update the site and push the code.

For example, if Tim adds a new chapter to his book, he can clone http://github.com/lift/cms_site/blob/master/site/happening/4sq.cms.xml and change the path and set the valid_from date (which determines sort order for happenings is based on the valid_from date).

Thanks,

David

--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Blog: http://goodstuff.im
Surf the harmonics

TylerWeir

unread,
Sep 29, 2010, 10:04:21 AM9/29/10
to Lift
Most excellent.

Does this use the type class solution you hinted at?

(I'm looking for a good example of using type classes.)


On Sep 28, 11:46 pm, David Pollak <feeder.of.the.be...@gmail.com>
wrote:
> Folks,
>
> Thehttp://liftweb.netsite is sitting on top of a CMS system I'm working
> on.  The code for the CMS system ishttp://github.com/dpp/hoisted It's very
> rough and I'm meaning to use some of the concepts on the cms branch of Lifthttp://github.com/lift/lift/tree/dpp_cms(basically not using interfaces to
> define the class that holds the content, but using conversions between the
> various types).
>
> The Lift site content is athttp://github.com/lift/cms_siteand committers
> can update content.  Update the site and push the code.
>
> For example, if Tim adds a new chapter to his book, he can clonehttp://github.com/lift/cms_site/blob/master/site/happening/4sq.cms.xmland
> change the path and set the valid_from date (which determines sort order for
> happenings is based on the valid_from date).
>
> Thanks,
>
> David
>
> --
> Lift, the simply functional web frameworkhttp://liftweb.net
> Beginning Scalahttp://www.apress.com/book/view/1430219890

David Pollak

unread,
Sep 29, 2010, 10:51:08 AM9/29/10
to lif...@googlegroups.com
On Wed, Sep 29, 2010 at 7:04 AM, TylerWeir <tyler...@gmail.com> wrote:
Most excellent.

Does this use the type class solution you hinted at?

The stuff on dpp_cms branch does, but it's not nearly complete.

Having the slapped together stuff in hoisted allowed me to learn about how the data structures.  Now I can replicate that stuff to a more generic solution.
 
--
You received this message because you are subscribed to the Google Groups "Lift" group.
To post to this group, send email to lif...@googlegroups.com.
To unsubscribe from this group, send email to liftweb+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.




--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890

Timothy Perrett

unread,
Sep 29, 2010, 11:29:26 AM9/29/10
to lif...@googlegroups.com
David,

This is neat - I am super pressed for time this week but will totally be checking it out next week :-)

Congrats though; this has been something the community has wanted for ages!

Cheers, Tim

David Pollak

unread,
Sep 29, 2010, 1:55:20 PM9/29/10
to lif...@googlegroups.com


On Wed, Sep 29, 2010 at 10:53 AM, Lukasz Kuczera <kuk...@gmail.com> wrote:
Under which licence  its gonna be distributed ?

Apache 2.0  All the stuff I do is Apache 2.0
 

On Sep 29, 4:51 pm, David Pollak <feeder.of.the.be...@gmail.com>
wrote:

> On Wed, Sep 29, 2010 at 7:04 AM, TylerWeir <tyler.w...@gmail.com> wrote:
> > Most excellent.
>
> > Does this use the type class solution you hinted at?
>
> The stuff on dpp_cms branch does, but it's not nearly complete.
>
> Having the slapped together stuff in hoisted allowed me to learn about how
> the data structures.  Now I can replicate that stuff to a more generic
> solution.
>
>
>
>
>
>
>
> > (I'm looking for a good example of using type classes.)
>
> > On Sep 28, 11:46 pm, David Pollak <feeder.of.the.be...@gmail.com>
> > wrote:
> > > Folks,
>
> > > Thehttp://liftweb.netsiteis sitting on top of a CMS system I'm working
> > > on.  The code for the CMS system ishttp://github.com/dpp/hoistedIt's

> > very
> > > rough and I'm meaning to use some of the concepts on the cms branch of

> > interfaces to
> > > define the class that holds the content, but using conversions between
> > the
> > > various types).
>
> > > The Lift site content is athttp://github.com/lift/cms_siteandcommitters
> > > can update content.  Update the site and push the code.
>
> > > For example, if Tim adds a new chapter to his book, he can clonehttp://
> > github.com/lift/cms_site/blob/master/site/happening/4sq.cms.xmland
> > > change the path and set the valid_from date (which determines sort order
> > for
> > > happenings is based on the valid_from date).
>
> > > Thanks,
>
> > > David
>
> > > --
> > > Lift, the simply functional web frameworkhttp://liftweb.net
> > > Beginning Scalahttp://www.apress.com/book/view/1430219890
> > > Follow me:http://twitter.com/dpp
> > > Blog:http://goodstuff.im
> > > Surf the harmonics
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Lift" group.
> > To post to this group, send email to lif...@googlegroups.com.
> > To unsubscribe from this group, send email to

> > .
> > For more options, visit this group at
> >http://groups.google.com/group/liftweb?hl=en.
>
> --
> Lift, the simply functional web frameworkhttp://liftweb.net
> Beginning Scalahttp://www.apress.com/book/view/1430219890
> Follow me:http://twitter.com/dpp
> Blog:http://goodstuff.im
> Surf the harmonics

--
You received this message because you are subscribed to the Google Groups "Lift" group.
To post to this group, send email to lif...@googlegroups.com.
To unsubscribe from this group, send email to liftweb+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.

Lukasz Kuczera

unread,
Sep 29, 2010, 1:53:46 PM9/29/10
to Lift
Under which licence its gonna be distributed ?

On Sep 29, 4:51 pm, David Pollak <feeder.of.the.be...@gmail.com>
wrote:
> On Wed, Sep 29, 2010 at 7:04 AM, TylerWeir <tyler.w...@gmail.com> wrote:
> > Most excellent.
>
> > Does this use the type class solution you hinted at?
>
> The stuff on dpp_cms branch does, but it's not nearly complete.
>
> Having the slapped together stuff in hoisted allowed me to learn about how
> the data structures.  Now I can replicate that stuff to a more generic
> solution.
>
>
>
>
>
>
>
> > (I'm looking for a good example of using type classes.)
>
> > On Sep 28, 11:46 pm, David Pollak <feeder.of.the.be...@gmail.com>
> > wrote:
> > > Folks,
>
> > > Thehttp://liftweb.netsiteis sitting on top of a CMS system I'm working
> > > on.  The code for the CMS system ishttp://github.com/dpp/hoistedIt's
> > very
> > > rough and I'm meaning to use some of the concepts on the cms branch of
> > Lifthttp://github.com/lift/lift/tree/dpp_cms(basicallynot using
> > interfaces to
> > > define the class that holds the content, but using conversions between
> > the
> > > various types).
>
> > > The Lift site content is athttp://github.com/lift/cms_siteandcommitters
> > > can update content.  Update the site and push the code.
>
> > > For example, if Tim adds a new chapter to his book, he can clonehttp://
> > github.com/lift/cms_site/blob/master/site/happening/4sq.cms.xmland
> > > change the path and set the valid_from date (which determines sort order
> > for
> > > happenings is based on the valid_from date).
>
> > > Thanks,
>
> > > David
>
> > > --
> > > Lift, the simply functional web frameworkhttp://liftweb.net
> > > Beginning Scalahttp://www.apress.com/book/view/1430219890
> > > Follow me:http://twitter.com/dpp
> > > Blog:http://goodstuff.im
> > > Surf the harmonics
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Lift" group.
> > To post to this group, send email to lif...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > liftweb+u...@googlegroups.com<liftweb%2Bunsu...@googlegroups.com >
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/liftweb?hl=en.
>
> --

Lukasz Kuczera

unread,
Sep 29, 2010, 3:04:58 PM9/29/10
to Lift
Sorry for double posting but this new design is worse than before :P
I know its matter of taste but its face of lift I would vote to bring
back last design (UI).

Cheers :)

On Sep 29, 7:53 pm, Lukasz Kuczera <kuk...@gmail.com> wrote:
> Under which licence  its gonna be distributed ?
>
> On Sep 29, 4:51 pm, David Pollak <feeder.of.the.be...@gmail.com>
> wrote:
>
>
>
> > On Wed, Sep 29, 2010 at 7:04 AM, TylerWeir <tyler.w...@gmail.com> wrote:
> > > Most excellent.
>
> > > Does this use the type class solution you hinted at?
>
> > The stuff on dpp_cms branch does, but it's not nearly complete.
>
> > Having the slapped together stuff in hoisted allowed me to learn about how
> > the data structures.  Now I can replicate that stuff to a more generic
> > solution.
>
> > > (I'm looking for a good example of using type classes.)
>
> > > On Sep 28, 11:46 pm, David Pollak <feeder.of.the.be...@gmail.com>
> > > wrote:
> > > > Folks,
>
> > > > Thehttp://liftweb.netsiteissitting on top of a CMS system I'm working

Lukasz Kuczera

unread,
Sep 29, 2010, 3:16:12 PM9/29/10
to Lift
I might be pulled into spam bag, but IMHO
http://liftweb.net/community - sounds little harsh to me, I know the
reality and I'm 95% sure who wrote that, and I agree, ... but maybe
renice the text slightly.
It feels like "Stacktrace or GTFO !" - something that I've never seen
on this list of super polite uber hackers.

I zip my keyboard for now. zip!

John Gethoefer

unread,
Sep 29, 2010, 5:07:37 PM9/29/10
to Lift
Have you had any thoughts about integrating JCR in the future?

I was thinking recently of how nice it would be to have a Lift CMS.
Two items on my wish-list would be JCR-integration and content
snippets. My biggest complaint of most CMS systems is the difficulty
in integrating with stand-alone apps. CMSs tend to command ownership
of the web domain. Being able to plug content into an app via
snippets, failover dispatching of URLs to CMS routing and extendable
menu systems would be sweet.

Thanks David.

-John

On Sep 28, 8:46 pm, David Pollak <feeder.of.the.be...@gmail.com>
wrote:
> Folks,
>
> Thehttp://liftweb.netsite is sitting on top of a CMS system I'm working
> on.  The code for the CMS system ishttp://github.com/dpp/hoisted It's very
> rough and I'm meaning to use some of the concepts on the cms branch of Lifthttp://github.com/lift/lift/tree/dpp_cms(basically not using interfaces to
> define the class that holds the content, but using conversions between the
> various types).
>
> The Lift site content is athttp://github.com/lift/cms_siteand committers
> can update content.  Update the site and push the code.
>
> For example, if Tim adds a new chapter to his book, he can clonehttp://github.com/lift/cms_site/blob/master/site/happening/4sq.cms.xmland
> change the path and set the valid_from date (which determines sort order for
> happenings is based on the valid_from date).
>
> Thanks,
>
> David
>
> --
> Lift, the simply functional web frameworkhttp://liftweb.net
> Beginning Scalahttp://www.apress.com/book/view/1430219890

David Pollak

unread,
Sep 29, 2010, 5:20:16 PM9/29/10
to lif...@googlegroups.com
On Wed, Sep 29, 2010 at 2:07 PM, John Gethoefer <jo...@gethoefer.com> wrote:
Have you had any thoughts about integrating JCR in the future?

None at all.  But the general idea of the Lift CMS stuff is that it's backing agnostic... it's about serving the pages, not about storing them... thus the type constructor pattern in the code.
 

I was thinking recently of how nice it would be to have a Lift CMS.
Two items on my wish-list would be JCR-integration and content
snippets. My biggest complaint of most CMS systems is the difficulty
in integrating with stand-alone apps.

Content snippets is already built into the existing system.  for example in http://github.com/lift/cms_site/blob/master/site/templates-hidden/col2.cms.xml , there's:

<lift:subs type="happening">
<h2><a sub:href="/"><sub:title/></a></h2>
<p><sub:desc/></p>
<hr/>
</lift:subs>

Basically, the existing Lift snippet mechanism is used to pull CMS content.
 
CMSs tend to command ownership
of the web domain. Being able to plug content into an app via
snippets, failover dispatching of URLs to CMS routing and extendable
menu systems would be sweet.

The only difference from what you've described is that the pages are served if a root URL matches, but there's no integration with SiteMap because I'm expecting to serve content from many different domains on the same app, so integrating with SiteMap would be almost impossible.
 

Thanks David.

-John

On Sep 28, 8:46 pm, David Pollak <feeder.of.the.be...@gmail.com>
wrote:
> Folks,
>
> Thehttp://liftweb.netsite is sitting on top of a CMS system I'm working
> on.  The code for the CMS system ishttp://github.com/dpp/hoisted It's very
> rough and I'm meaning to use some of the concepts on the cms branch of Lifthttp://github.com/lift/lift/tree/dpp_cms(basically not using interfaces to
> define the class that holds the content, but using conversions between the
> various types).
>
> The Lift site content is athttp://github.com/lift/cms_siteand committers
> can update content.  Update the site and push the code.
>
> For example, if Tim adds a new chapter to his book, he can clonehttp://github.com/lift/cms_site/blob/master/site/happening/4sq.cms.xmland
> change the path and set the valid_from date (which determines sort order for
> happenings is based on the valid_from date).
>
> Thanks,
>
> David
>
> --
> Lift, the simply functional web frameworkhttp://liftweb.net
> Beginning Scalahttp://www.apress.com/book/view/1430219890
> Follow me:http://twitter.com/dpp
> Blog:http://goodstuff.im
> Surf the harmonics

--
You received this message because you are subscribed to the Google Groups "Lift" group.
To post to this group, send email to lif...@googlegroups.com.
To unsubscribe from this group, send email to liftweb+u...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.




--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890

Mads Hartmann Jensen

unread,
Oct 5, 2010, 4:37:14 AM10/5/10
to lif...@googlegroups.com
Just a quick note to say that this is awesome! 

Just pushed some changes to the getting started .cms.xml page and moments later the site was updated. This should make it a lot easier for everyone to help maintain the content of the site :) 

Thanks,
Mads Hartmann 

David Pollak

unread,
Oct 5, 2010, 4:43:59 AM10/5/10
to lif...@googlegroups.com
On Tue, Oct 5, 2010 at 4:37 AM, Mads Hartmann Jensen <mad...@gmail.com> wrote:
Just a quick note to say that this is awesome! 

Glad you like it.
 

Just pushed some changes to the getting started .cms.xml page and moments later the site was updated. This should make it a lot easier for everyone to help maintain the content of the site :) 

Yeah... now for Tim to post updates related to MEAPs....
 

Timothy Perrett

unread,
Oct 5, 2010, 4:56:49 AM10/5/10
to lif...@googlegroups.com
Thats actually a pretty good idea. Let me check with manning to see if they have an RSS feed on that.

Cheers, Tim

Stefan Scott Alexander

unread,
Nov 15, 2010, 6:30:53 PM11/15/10
to Lift
As a way of learning about CMSs, I've been looking at a couple of very
small Java-based ones which don't need a relational database / ORM:

- brix-cms: Wicket-based uses JCR
https://github.com/brix-cms/brix-cms

- MeshCMS: just html, uses SiteMesh
http://cromoteca.com/en/meshcms/

Since brix-cms uses JCR, I wonder if looking at brix-cms might be
helpful for the purpose of integrating a Lift-based CMS with JCR.

- Stefan Scott

On Sep 29, 6:07 pm, John Gethoefer <j...@gethoefer.com> wrote:
> Have you had any thoughts about integratingJCRin the future?
>
> I was thinking recently of how nice it would be to have a Lift CMS.
> Two items on my wish-list would beJCR-integration and content
> snippets. My biggest complaint of most CMS systems is the difficulty
> in integrating with stand-alone apps. CMSs tend to command ownership
> of the web domain. Being able to plug content into an app via
> snippets, failover dispatching of URLs to CMS routing and extendable
> menu systems would be sweet.
>
> Thanks David.
>
> -John
>
> On Sep 28, 8:46 pm, David Pollak <feeder.of.the.be...@gmail.com>
> wrote:
>
>
>
>
>
>
>
> > Folks,
>
> > Thehttp://liftweb.netsiteis sitting on top of a CMS system I'm working
> > on.  The code for the CMS system ishttp://github.com/dpp/hoisted It's very
> > rough and I'm meaning to use some of the concepts on the cms branch of Lifthttp://github.com/lift/lift/tree/dpp_cms(basicallynot using interfaces to
> > define the class that holds the content, but using conversions between the
> > various types).
>
> > The Lift site content is athttp://github.com/lift/cms_siteandcommitters
> > can update content.  Update the site and push the code.
>
> > For example, if Tim adds a new chapter to his book, he can clonehttp://github.com/lift/cms_site/blob/master/site/happening/4sq.cms.xm...

Stefan Scott Alexander

unread,
Nov 15, 2010, 6:40:55 PM11/15/10
to Lift
More info on how/why the Java CMS "brix-cms" uses JCR/Jackrabbit:

http://mythinkpond.wordpress.com/category/java/brix-cms/

>> And guess who uses this Jackrabbit – bingo – Brix-cms. So now I hope you can see the powerhouse behind Brix-cms. Basically content (page content, templates, images, pdf’s, and other binary content) within Brix-cms are all saved within the JCR (Jackrabbit) repository and fetched on demand using some clever techniques to render on the front-end Portal.<<

This sounds like a good approach for a CMS where the only "data" to be
stored is chunks of HTML - much simpler than, say, PHP-based CMSs like
Drupal or MODx, where everything's stored in a relational DB (MySQL,
Postgresql).

I understand there are several other open-source Java-based CMSs which
use JCR, eg Hippo, Magnolia, Ametys:

http://wiki.apache.org/jackrabbit/JcrLinks

I'm curious whether the experiences with these Java-based CMSs using
JCR would be helpful for the purpose of integrating JCR with a Lift
CMS.


On Nov 15, 8:30 pm, Stefan Scott Alexander
<stefanscottal...@gmail.com> wrote:
> As a way of learning about CMSs, I've been looking at a couple of very
> small Java-based ones which don't need a relational database / ORM:
>
> - brix-cms: Wicket-based usesJCRhttps://github.com/brix-cms/brix-cms
>
> - MeshCMS: just html, uses SiteMeshhttp://cromoteca.com/en/meshcms/
>
> Since brix-cms usesJCR, I wonder if looking at brix-cms might be
Reply all
Reply to author
Forward
0 new messages