It’s been my first week using Croogo – a CMS platform based on CakePHP and created by the Bangladesh developer Fahad Heylaal. Recently I’ve been looking for a next level platform in order to decrease development time and reduce wasting time for writing standard things from scratch such as menus, user controls (Auth+ACL), multilingual options etc. What Croogo does is delivering all this in a way upper lever.
Croogo itself works out some general concepts in a way that we know from other popular systems. Overall look & feel in admin panel seems like the one that we’ve seen in WordPress. The node-based content (with ability to create new types from the admin) is a well known practice in Drupal – CCK. The core is, of course, CakePHP. I’m quite sure I could find more similar characteristics but the point is that the system is stable enough and flexible as well for other people to develop beyond and contribute as well.
I’ll share some notes and issues from my first steps. Wiki is the first place to stop by.
Theming – themes could easily apply to a Croogo website because there are no special functions needed here. Of course you could (and probably should) use helpers in views to build a better and well structured website. Adding blocks/menus via helpers is also ‘a must’. The point is that you could easily take a free html template (or a sliced PSD design) and adapt it in Croogo in no time.
Themes are installed in app/views/themed – theme name, layout, css/img etc and yml file for configuration.
i18n – multilingual websites are what’s worth to me. I had to release a website in 2 languages, 4 types of users, contact (registration) form, dynamic menu. Everything is already here if you know how to use it. I still do translate the Bulgarian version of Croogo (admin panel, static messages etc). The Translate plugin allows you to add different languages and translate every node/menu/link or a custom type of yours. That frees a room for your powerful multilingual website. Just enable the translate plugin and you’ll see the correct button. Note: please use version 1.3.2 and above because of crucial bugs in 1.3.1 translations.
User management – Auth + ACL. Each controller+action has a granular permission to access from every role you have specified. Fair enough.
Custom stuff – There are helpers, behaviors and components meant to be reused and inherited. Just have a look at what Croogo gives you (the additional config stuff, the new helpers/plugins etc) and you could easily attach your custom code here. If you add actions to your existing controllers (or add controllers) be sure you’ve refreshed your permissions table in order to give rights to certain roles here.
Hacky: reset admin password
I’ve migrated 1.3.1 db in a 1.3.2 website and I misgenerated my admin password. I tried the forgotten password feature which doesn’t work on local accounts. However, the activation key is in the database. Suppose we’re on a local server, you could copy activation key and visit:
and then your password is free for you to reset.