Welcome Guest, Not a member yet? Register   Sign In
Is CodeIgniter the right choice for my CMS project?
#1

[eluser]Unknown[/eluser]
I'm a web design student at MA level, and I'm also a relatively experienced web developer/designer - although by no means an experienced PHP developer. I'm currently working on my thesis project, which is to build a publishing platform for academics/academic journal editors etc. Although it's a university project, my intention is to release it under a creative commons license. Without boring you with the details (or rewriting my project proposal!) I think there's the potential for a CMS with such a narrow focus to prove quite beneficial, and I have a background in academic publishing which I'm hoping has enabled me to scope the project properly. Realistically, I'm hoping to organise a beta test for early next year, with a version 1.0 release to follow soon after. The project itself will be announced by the end of August at the latest.

I've been playing around with CodeIgniter, and looking at existing CodeIgniter based CMS (ExpressionEngine - which I've used several times for client work - , Pyro, Fuel, Ionize) and in many ways it's perfect for what I want to do. So much of the heavy lifting in terms of validation, security and so on is taken care of, and I've really taken to the MVC paradigm. However I do have one big concern, which is the way in which the applications are structured.

Hands down my favourite CMS to use for client work is Perch, because of its inherent client-friendliness, and the way in which it stays out of the way. Although my project will be very different from Perch - which is a CMS in the true sense, whereas my project is more along the lines of a specialised blog platform - I want to try and build in a similar flexibility.

The Perch application lives in one folder in the root directory of the website. The site structure is entirely separate from the application. In CodeIgniter terms this would mean all of the views would live outside of the application. So, a very simple install would look something like this:

cms - the application
articles - essentially a blog
about - containing information about the journal

Article pages - index, view etc. - would live outside of the application and be built using a simple templating code, similar to ExpressionEngine. If a user wanted to call their articles directory something else - 'thoughts', 'treatises' and so on - they would be able to, and just call in the articles by using code like this:

View page:

Code:
[cms:articles limit="1" orderby="date" order="desc"]
  <h2>[article_title]</h2>
  <p>
    <a href="[author_email]">[author_name]</a>
  </p>
  [article_abstract]
  [article_content]
[/cms:articles]

Index page:

Code:
[cms:articles orderby="date" order="desc"]
  <article>
    <h2>[article_title]</h2>
    <p>
      <a href="[author_email]">[author_name]</a>
    </p>
    [article_abstract]
    <p>
      <a href="[article_permalink]">Read article</a>
    </p>
  </article>
[/cms:articles]

The pages module would work slightly differently, in that page templates would be created which would live within the application but outside of the core, but the pages themselves would be created in directories which would be specified by the user. So, when creating a page they would choose the parent directory and the template from select fields within the admin panel.

Is this kind of structure something which is possible with CodeIgniter? I've oversimplified everything, but I'm very clear on how I would like the platform to be structured and how I would like it to work.

If you read this far, thank you. I hope I've explained it well enough.
#2

[eluser]tomcode[/eluser]
For now (v2.1.2) out of the box You need to load the views from the application's view folder, but:
- You can use a package path to have Your views under web root
- You can extend the loader library

On github, in the develop branch one can specify a separate view path in the index.php.

#3

[eluser]Unknown[/eluser]
Thank you, that's an excellent answer.




Theme © iAndrew 2016 - Forum software by © MyBB