Friday, September 27, 2013

The First Commit

The First Commit


After spending a lot of time, researching and reading and communicating with my mentor and friends on how to develop the front end editor for modules and menus in Joomla! I finally set to work!

Although I had a good understanding on what needed to be done, starting was the hardest part. After some research I understood that the front end com_modules, which would enable the front end module and menu editing was not very different from the back end com_modules!

The first task I did was creating the correct folder structure. I created the front end folder structure almost similar to the back end one as the functionalities would be the same.

Following the the folder structure I followed

Components
       com_modules
             controllers
                      cancel.php
                      display.php
                      index.htlml
                      save.php
            model
                     form
                          advanced.xml
                          index.html
                          module.xml
                    index.htlml
                    module3.php
         view
                   tmpl
                          default_options.php
                          default.php
                          index.html
                  html.php
                  index.html
       index.html
       modules.php

            

My Project - Front-end Editor for Modules & Menus

My Project - Front-end Editor for Modules & Menus


  • Goal of the project

    Joomla! is a widely used CMS for web development. The clearly distinct front-end and back-end of Joomla sometimes make it difficult for the users without a sound technical knowledge on Joomla!, to edit their websites. Especially the ordinary users find adding menu items and modules confusing.
     The goal of this project is to make the approach easier for the users. The main objective is to give the users the ability to add and edit menu items and modules in the front-end without having a solid technical knowledge.

  • Details of the front-end editor
      As mentioned above, Joomla! maintains distinct front-end and back-end. Through this project I would basically create a seamless connection between the two ends.
     The front-end interface will be slightly changed. I intend to use a similar approach as in for the front-end. For the user to edit his/her website from the front end he/she will have to log in as an administrator. The username and password authentication will be happening there. I am planning to use basic HTTP Authentication for the time being.
     Once logged in as an administer, the user will be presented with an administrator interface where he/she will be able to click on a menu item 'Module/Menu Manager' to add/remove/edit menus and modules.
     I will basically concentrate on the front end component, as there are separate but inter-linked projects proposed in the Joomla! ideas page to modify the back-end com-services accordingly.
     The main challenge faced in this project will be connecting the front-end and the back-end  seamlessly. The task of highest priority will be retrieving the necessary admin data from the back-end database and displaying them in the front-end admin page and storing the front-end edited content in the back-end database effectively. Although there are a number of possible ways of approaching this, I am planning to use Web Services as it uses basic URLs and I am quite familiar with the concept and its usage.
    Since in this project I am planning to develop only the front-end component, if the back end com-services would be changed in the future, the use of web services will give the developers the ability to modify the front-end component without much effort. Most probably for the front end component to comply with an updated back-end, changing the format of the URLs that would be used in the web services would be enough!
   And I am planning to do UI and usability testing throughout the development process. Since this will be a front end component the users' feedback would be very helpful.