Improved Multi-lingual Content Management
No one likes to do repetitive tasks when there is a solution to reduce them. I was selected this year on Google Summer of Code to make the life of multi-lingual platform admins easier. The challenge is to change the way Joomla! deals with several components in a multi-lingual platform. It can be performed in a single page in a side-by-side way, instead of being limited to the “new”-”save and close” loop for items referring to the same thing.
I am João Reys Santos and I study at the university of Évora, Portugal. I have always been passionate about technology in general, started with the TV and consoles when I was a kid and after that I decided to start my career with computers. The main reason for that was game-development, I had the dream to work on a big gaming company but after experiencing the “game-dev” process, I quickly became uninterested in following that path and since I enjoyed coding, I had to switch to something more interesting.
In 2012, my first Google Summer of Code experience arrived, it was the best summer of my life. We all have good and bad days at work, but the feel of getting paid to learn and do stuff that you really enjoy at the same time made the bad days irrelevant (I don’t even remember them!). My project was to perform Unit Tests to an organization called “Jikes RVM”, my mentor was great and I felt my skills growing and evolving day by day. It didn’t improve my web-development skills at all, but I felt the famous “Google before you ask!” experience crawling under my skin, it made me a more independent learner.
The goal of my project is to improve a multi-lingual website's back-end, meaning that besides having a considerable amount of content (articles, menu items, categories, contacts, etc.) separated by default having to re-write them multiple times, one can also associate content languages with those items side-by-side to avoid tedious replication tasks of going back and forth to apply changes, as I described before the “new”- ”save and close” loop.
The idea is to write a Joomla CMS (Content Management System) new back-end component, that will display in specific administrator pages all the parameters that help associate items side-by-side for all items where multi language associations are implemented, including 3rd-party extensions that follow the core principles.
The new component must respect the ACL settings, this means that specific ACL groups will be created according to installed Content Languages if multilingual is set to "ON", to help the admin(s) set user permissions to edit items in certain languages, this means users would/could be assigned to these groups to be the only ones able to create, edit, modify, delete, etc. items tagged to a Content Language.
Another feature is to implement the "copy" feature to avoid re-writing/re-uploading content copying all aspects of the reference item, this is mainly useful for links and images that in most cases are the same in an article for example.
How it should look like in the end
Both these image credits go to Jean-Marie Simonet since he's the one who took the screenshots and edited them. I would like to thank him for providing these it improves a lot the quality of this article!