|
|
|
Posted
2 days
ago
by
We haven't been using many of the nice featurs Assembla is offering to streamline and handle the development of ImpressCMS on their service.
That's a pity, as some of those features are really interesting, for example merge requests and locked folders. keep reading ...
|
|
Posted
3 days
ago
by
Responsive design is very hot right now, and our designers have been generating some stellar responsive design themes lately. They weren't that easy to find keep reading ...
|
|
Posted
4 days
ago
As I promised, let´s go with a responsive theme: Retina. Great for professional or corporate sites.
|
|
Posted
23 days
ago
by
ImpressCMS 2.0 includes a major overhaul to the UI, which you have probably heard about. However the breadth of these changes have not been explained in very much detail. This blog posts seeks to rectify that, I will do my very best to cover the
... [More]
changes I have made, and try to provide some explanantion to the why along the way where it seems necessary.
To start, ImpressCMS 1.x contained a large collection of javascript/css/html that was inherited from our legacy systems - I am pretty sure I saw some stuff from Mr. Burzi while I was digging around. :)
This is what initially fired me up to refactor as much of this as I could and get it into 2.0 - it was pointless to have such a major release without doing something to improve our situation, and hopefully the changes I discuss below will be seen as just that, and will provide our system witha strong platform to expand on. The bright side, is that if one day we decide to go in a different direction - it will be far less painful to do so now that the UI has been abstracted away from the code base so much.
AMD AMD is an up and coming specification that was selected for many reasons, most of which you can read about by clicking through on that link. Ultimately, it came down to resource management. In a system as big as ours, with so many moving parts it was imperative to reduce the footprint on each page load. What AMD offers us is the opportunity to load resources was needed, and asynchronously.
RequireJS Require is the module loader that does all of the heavy lifting for us. Each module requests its dependencies, thus allowing our systems to only load the resources it needs to render the active page. We accomplish this using multiple methods, each with its own benefits and drawbacks. Which methods are used for which area/widget will become a matter of taste and need. There are routers (core, module and theme level) and widgets which can be invoked from your templates. For more information about each you can click through to the blog articles on my site about the respective topic.
JSCore If you navigate to the libraries folder in your copy of ICMS2 - you will see a new folder called "jscore" - this folder will serve as the home for all core level javascript from this day forward. No longer will javascript be fragmented throughout the system. We encourage module and theme authors to adopt a similar architecture in their respective repositories to ensure a cohesive experience for users that intend to modify the code.
In the Window A new feature that was added to the js architecture is the new icms object - this object contains, among other things, non-sensitive config information. Whoa now, what does this mean?
icms.config.url -> 'http://yoursiteurl.com' icms.config.language -> 'english'
icms.user.isUser -> boolean check if this is a user icms.user.name -> Name of the active user
There are many more that will be extremely useful to developers and users alike. Open your console and type icms into the debugger and explore what is available to work with.
The Mediator Mediator introduces pub/sub to ICMS, and it will be a major part of any ongoing development. What mediator allows us to do is bind to events before they are called. This allows modules to react to events triggered from elsewhere, and loop into routines that exits already without modify the existing code.
A prevalent use of this is with the new notification system. Any module can fire off a notification witha single line of code, and can customize the look and behavior with a few extra characters. Here is an example of a simple notification, bear in mind this can be fired from any module regardless of what level that module exists at (core/module/theme). mediator.publish('addNotification', 'This is the message to show');
This will display a basic block notification bubble with the text supplied in it. There is a significant array of customizations to modify the look and behavior of notifications as well. For example, if you wanted to show a red notification bubble you might do this: mediator.publish('addNotification', 'This is the message to show', {type: 'error'});
Password Fields I have globally removed double password fields, and replaced them with a single field that allows you to view your password with the click of a button as well as even generates random passwords with the click of another. This is a simple tweak, but worth mentioning. Be sure to test those registration forms in the alpha!
The 'Core' Theme The core theme was a massive undertaking, the majority of which was done in the boiler framework that I presented earlier in the year. It was completely converted to a more bootstrap based framework and massively revamped several times to take advantage of the ongoing improvements in the core. The theme is far to robust to be covered in this post, but I encourage you to dive in and explore and feel free to post any questions or improvements in the forums.
System Templates Most of the core templates have been refactored completely to take advantage of bootstrap functionality and improve uasbility or presentation of data. SOme of the most significant work occurred in the admin section. I anticipate feedback on this, as it will continue to be an ongoing effort. I hope to redo the default blocks as part of the installer initiative to make the default layout of the admin more inviting and understandable.
I have also begun work on converting some originally stand alone facets of the core into templates. Please review the PM system to get an idea of what this can do to improve the cohesiveness of the system.
Localization For translators, previously language embedded in javascript was doomed to forever be in English unless you physically modified the resource to translate it into your native language. This has been resolved with the use of language files specifically for javascript applications. Please view /libraries/jscore/locale/english for the current translation files in use as part of the core. While minimal at this time, having the ability to provide localized translations for javascript applications supports an original ICMS initiative to provide support to a wide range of languages.
Implications for upgraders This is a significant topic, the UI received a massive change and as such many older themes may be left behind especially those that include versions of jquery and other libraries statically. Much precaution has gone into mitigating these issue, but ultimately only time will tell. All original themes have been removed from the system, however for those of you still in love with iTheme - it will certainly need some work to ensure compatibility. I would be extremely interested to hear reports of how your old themes perform in the new ICMS2 - so after testing please test against your own theme and let me know how t goes. The upgrade path will be a bumpy one for some, but hopefully we can mitigate as many common problems as possible.
If you have made it this far, I salute you :) [Less]
|
|
Posted
24 days
ago
The ImpressCMS team is proud to present the second alpha release for ImpressCMS 2.0.0. This release is the first release since the move to Git, and contains several major changes compared to the previous alpha release. This release is now
... [More]
ready to test, and depending on the amount of feedback we get, a new alpha release could be coming in one or two weeks. Let's take out the test sheet and make this a rock-solid release!
The complete list of changes can be found on the changelog on Assembla. [Less]
|
|
Posted
24 days
ago
by
As part of the upcoming 2.0 release we have included a brand new core theme to replace all others called "core". This theme is extremely powerful and introduces a lot of new techniques and adds a whole new set of tools for themers to take advantage
... [More]
of in their future works.
One big problem with our old methods was theme variations, our repos could be easily cluttered with dozens of copies of the same theme with a few CSS modifications to give it a new vibe.
This is not technically a bad thing by any means, but this type of contributions should not really be considered a theme should it?
themes/coolTheme_blue themes/coolTheme_red themes/coolTheme_pink themes/coolTheme_orange themes/coolTheme_etc
Aren't these all the same theme? They are all just minimal variations of the coolTheme base theme right? I certainly thought so, and in ImpressCMS 2.0 I wanted to figure out a way to provide the ability for authors to include multiple skins with a single theme core, and came up with a whole new approach to theming in ImpressCMS.
Now instead of the above you can have
themes/coolTheme/skins/blue themes/coolTheme/skins/red themes/coolTheme/skins/pink themes/coolTheme/skins/orange themes/coolTheme/skins/etc
This also means you can elect to release new skins of your theme without needing to update your base theme. A skin could be as minimal as a style sheet - or as vast as your imagination will allow. In the core theme - we even show you how you might do skin-level template overrides!
The new skinning approach added on top of the existing power of the ImpressCMS theme engine make the possible use cases of our system limitless.
I for one am extremely excited to see what the community can do with this new tech. [Less]
|
|
Posted
24 days
ago
by
You might not have noticed, but I've been working with Inbox and Siteground to move our site from the former to the latter. Both have been very cooperative and flexible, and i can say that the migration looks more or less complete. keep reading ...
|
|
Posted
24 days
ago
imFAQ is a FAQ module made by TheRplima (Rodrigo Pereira Lima); the ideal replacement for the old SmartFaq module.
|
|
Posted
about 1 month
ago
It has professional quality...but is is free. Perfect for personal or corporate sites.
|
|
Posted
about 1 month
ago
In this series of articles, we take you back to how it all started for ImpressCMS. We do this in a series of interviews with our early contributors. This series of interviews marks the 5th anniversary of ImpressCMS. Our next
... [More]
contributor's interview is with David Janssens. Three and a half years ago, he was looking at creating a site to act as a public 3D model exchange site and got introduced to ImpressCMS by Marc-André. [Less]
|