TIP: Use Markdown or, <pre> for multi line code blocks / <code> for inline code.
Forums are in read-only mode while we transition to new software.
Lattice - An open source AJAX CMS written in Kohana
  • Greetings!

    Today I am announcing the availability of our open source project 'Lattice,' which is a content management system written in Kohana. This code is a collaborative project of the Made of People collective, and has been used to create a number of custom web tools and content management deployments. The system has a lot of good ideas and useful features (graph database concepts, frontend view code generation, smooth treatment of evolving data architectures). We'd like to open up the project now for collaboration, if there is interest.

    The github for the project is available here, along with links to installation and more info on the system. At this time the documentation is sparse, but I will be updating as time permits. https://github.com/deepwinter/lattice It is a Kohana 3.1 project, but could certainly be made compatible with 3.2 and 3.3.

    Anyone interested in this project is welcome to hit me up in #lattice on freenode (I irc as xone), or can discuss more here. Thanks!!!

  • Looks promising! I'm going to test it out after work. :)

  • Testing it now. Thanks.

  • I encountered an error in Model_Object L1130

    public function activeFilter(){
            $this->where('object.activity', 'IS', NULL); // needs to be 'objects.activity' ,or more likely $this->tablename or similar
            return $this;
       }
    

    and my MySQL setup balked at the user setup having no values (ie; null) for firstname/lastname in initializer/latticeauth.php

    Not got any further than that yet...

  • Actually some screenshots would be nice. I don't want to install it before seeing some screenshots :)

  • not working

    
    ErrorException [ Fatal Error ]: Call to undefined method Kohana::config()
    MODPATH/lattice/classes/initializer/cms.php [ 7 ]
     2 
     3 Class Initializer_Cms {
     4 
     5  public function initialize() {
     6      
     7       Graph::configureObjectType(Kohana::config('cms.graphRootNode'), true);
     8       Graph::addRootNode(Kohana::config('cms.graphRootNode'));
     9       
    10       Lattice_Initializer::addMessage('configured graph root node');
    11 
    12  }
    {PHP internal call} » Kohana_Core::shutdown_handler()
    
    
  • Actually some screenshots would be nice. I don't want to install it before seeing some screenshots :)

    Wut? Are you looking for design or CMS?

  • +1 for screenshots.

  • @daGrevis just the screenshots what the CMS looks like.

  • Thanks for the feedback. Posting screen shot is on my list, so stay tuned.

    @zsolt The error you post ErrorException [ Fatal Error ]: Call to undefined method Kohana::config() Happens with Kohana 3.2, This system is only currently tested on Kohana 3.1, so that may be the trouble you are facing.

    @nickg Sorry about that! Right before posting the link I did a clean checkout of kohana-core, and I think that the dev/testing area I was using was on a less recent commit of 3.1. For some reason the table 'objects' is getting called in 'object' in some queries, but not in others - there must have been a change at some in how AS is being treated in kohana. I changed all to 'object' and everything seemed ok, but apparently not. I'll have a look and update with the fix.

  • Ok I've gotten to the bottom of a few of the issues that were posted. As I mentioned, my testbed was not completely up to date with system repo and all modules. I've committed a few fixes to the github to address this. If you are NOT on the latest 3.1 master on ORM, Database, and System, you might see some of these issues. It's weird to see this crop up just not, but that's the purpose of open source review I guess. If anyone gives it another go and continues to run into problems, please link me a stack trace or file a ticket against the github.

    Screen shots and a demo site will be coming along as time permits.

  • Which Repo? - the one above (which I downloaded) does not have issues enabled.
    This one does https://github.com/codebase/lattice-3.0

  • Ah I see what' s going. https://github.com/deepwinter/lattice is the correct repo at this time, I've enabled issues there.

  • Hi there! I'm now looking for an experience Kohana developer to help me maintain and stabilize this project. I've personally moved away mostly from PHP development, but I have some clients that use this CMS, and more importantly I use it myself for several projects and several collaboratores of mine also use it. I have a small but ongoing budget to maintain this CMS. For the right developer, who mights also be excited to contribute to open source nature of this project, it could be a decent supplemental gig. Please PM me if you are interested. It's a cool CMS, but needs some love.

  • @deepwinter: We're kidda still waiting for the screenshots. Do you have some so we can take a look without having to install the whole CMS.

  • @deepwinter i watched a bit thought the code, gues it would be usefull if you would create empty classnames and a lattice folder with real classnames so everyone could just extend it with custom plugins or own application.

    like system classes of Kohana

    class Requests extends Kohana_Request

    so in your case

    class Frontend extends Lattice_Frontend

    also try to use less HTML in classes;) export it to the views

    just my 2 cent

  • Yup those are all great ideas, I completely agree, I just don't have the time myself.

    I have a small but ongoing BUDGET to work to maintain this CMS (mainly for a few clients, but this can also extend to open source contributions), I'm not looking for an handout here and I know the project needs some work to be really up to snuff.

    So anyone who might be interested in being hired to chip in on this, and help maintain some of the installs that are out there, please PM me with your normal hourly rate.

  • @rjd22 Here's the screen shots. http://redmine.winterroot.net/madeofpeople/projects/lattice/wiki/Screen_Shots

    Snacks made a basic portfolio with lattice, I'll see if she will post a github with that kohana app in it.

    Theres also a google group for this cms call [email protected] (that's where the cms screenshots came from, user madeofpeople)

  • I think part of the challenge is that the Kohana style guide or even best practices isn't followed at all here, so it barely feels like a Kohana app at all (starting with <? and ?> tags in many but not all files, camel case everywhere, no code documentation - little that would appear in Kohana's API browser even - braces and spacing all over the place, html echoed in class methods, && instead of AND, etc etc).

    This makes the prospect of a Kohana dev working with this code less attractive than it might be, as you'd have to start with a big cleanup job first. An object lesson in why running code sniffer regularly is a good thing, IMHO.

  • Thanks for the feedback zeebee. Most of the work on this project was done quite a long time ago, against Kohana 2 (and actually originally against what I think was Kohana 1), and ported forward without a lot of reworking of the older parts due to constraints of many kinds. This might have been before the Kohana style guide or community was as strong as it is now. Not making any excuses, just giving the background.

    A few people have brought up the HTML echoed in class methods - This is actually a code generating step that creates view files based off a configuration for querying sets of graph objects from the database, it's not html that gets generated at run time but more like a rake command that gets run once (or possibly a few times during development). The idea there is to generate the views and then allow the op to modify (actually override) them rather than writing complex object walking code from scratch. It's actually saved us a lot of time having this approach as part of the tool.

    Thanks again for taking a look!

  • @zeebee re: your comments, loaded code sniffer and cleaned a number of the more major violations. still a ways to go, but it's better.

  • Ok, an update on the progress here.

    • We've got a Kohana dev on some of the features and maintenance now which is great.
    • I've put some time in getting more in line with Kohana style guide - most of the camelCaps is gone now, and many other items in the code sniffs no longer trigger. This is on our 'dev' branch, which also incorporates some cleanups to the UI.

    We have a list of bugs and features that we need to implement for some of our projects, but I see that in order to make things easy on Kohana devs certain other moves are also necessary, so part of the of roadmap will include the following:

    • Move all class logic into classes/lattice/ and subclassing these with empty classes for extension by devs

    • Improve organization of the classes folder in general / improve modularity

    I'm interested in other suggestions for major items that need to take place for this system to be more usable by Kohana devs. This system was originally built (obviously) in relative isolation from the mainstream Kohana community, so I'm still learning what needs to happen here...

    Another question to devs as well: I've seen in the past on the kohana-modules repository the requirement that a kohana module function perfectl without dependencies. This of course doesn't make any sense for a CMS, which by definition is going to require a lot of modules to function. What's the best way to distribute a module that has submodule dependencies in Kohana - I've never really understood that. One obvious case for us is to split our frontend one off generation tasks from the main lattice module, or to provide our CMS's Datamodel and AJAX functionality as a framework that could be used by other frontends. We used to have it divided up this way, but it didn't do us much good. Is it a good idea to work back in the direction?

    Also for preview there are also whitelabels available of both a Record Label and a Portfolio website built on lattice coming along:

    https://github.com/voidtactical/record-label-website

    https://github.com/snacks/portfolio-white-label

    These may have issues, so please follow up with us at [email protected], and please do fork and contribute if you find this a useful tool.

  • Very interesting! Finished the installation and now looking at the code.

  • @landfish cool, you might also take a look at the development branch..

    https://github.com/deepwinter/lattice/tree/dev

    Many of the bigger issues with the project have been resolved here, and others are being resolved. The dev branch is approaching stability and merge into master at this time, while a major rewrite of the data import utilities is underway on another branch.

    Fi you have questions or would be interested to contribute, please do get in touch.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion