Skip to main content

GSoC’17 Coding period | Week #1 | Drupal




The Coding phase of Google Summer of Code 2017 kicked off the previous week on May 30th, 16:00 UTC, marking the conclusion of the one-month long Community Bonding period. As stated earlier in my previous post, the Community Bonding term proffered the selected students an opportunity to build a rapport with their community, helping them in interacting with the respective mentors and fellow developers.

Presently, I am working on porting the UC Wish list module to Drupal 8, under the guidance of Naveen Valecha, which would specifically allow customers to create and administer personalized wish lists of products in their Ubercart store, thereby enabling potential customers to get a better understanding by referring to those wishlists. During the community bonding phase, I had been asked to create a Plan issue for tracking the status of the port and sub-issues of the project goals, by my mentor. As per the implementation, for the first phase/month of the coding period, I plan to successfully port the following sub-modules:
Therefore, briefly stating the work done the earlier week:
  • Learnt the implementation Form API for the creation, submission & validation of forms (eg:- wish list email) and Search API for executing a functional and effective search.
  • Learnt the employment of the Database API to provide a structured interface for the dynamic construction of queries to implement the second sub-module port and to check whether a wish list is private.
  • Conversion of D7 Hook functions to D8 APIs involving Routes, to define the path to Controllers (page callbacks in D7) or to create tabs and/or contextual links. This was done by creating the corresponding YAML files required and converting the D7 hook_menu() implementations by defining the routes in YAML format, through the routing.yml file.

  • Directory structure:

  • Learnt the verification procedure for email address of an user through the Data Common API.
  • Created a basic controller for the module for converting page/access callbacks for routes, to proper Controller classes. Also, learnt about the creation and application of YAML files and blogged about it.
As stated above, I was able to get a significant understanding of the project and the sub-modules considered for the initial phase. Moreover, I also came across some vital changes in D8 in contrast to its previous functionalities.
  • The .info files in D7 are replaced by .info.yml files. The .info files contained the basic information regarding the respective module.
  • The D7 variables have been converted to the D8 state system. The previous versions had variable_get and variable_set functions to store variables and their default configurations. They are, at present removed from D8 and replaced by the Configuration API.
  • Symfony framework  is used in D8 in the Controller file.. It has MVC architecture. This makes the code easy to maintain, scale, and reuse.
Summing up, these were some of the objectives and concepts learnt during the first week of coding phase in GSoC’17. Hope to learn many more new concepts in the coming weeks for successful completion of the port.

Cheers!

Comments

Popular posts from this blog

GSoC’17 Coding period | Week #8 | UC Wishlist

The eighth week of Google Summer of Code 2017 has come to a close, bringing forth the onset of the Second Evaluation Period. Presently, I've been working on porting the 'Uc Wishlist' module to Drupal 8, under the guidance of my mentor, Naveen Valecha . The conceptualization and understanding developed during the first phase of coding have been of immense help and has provided notable assistance for the completion of the assigned ports. This month, concerning this week in particular saw the completion of a significant amount of work concerning the ports assigned for the Second phase of the coding regime. The work done this week can be briefly described as follows: Fixed the 'Add to wishlist/Remove from wishlist' submit handler for the second port. Previously, on clicking on the add to wishlist button, the screen showed an error page, and the product couldn't get registered. However, the error has been fixed and products can now be adde...

GSoC’17 Coding period | Week #6 | UC-Wishlist

With the conclusion of the sixth week of Google Summer of Code 2017, the Coding regime is nearly halfway through the second phase. The previous week involved some basic albeit important conceptualizations, which have been of immense help and have provided noteworthy assistance for understanding the port functionality. As mentioned earlier, the previous week I had summarised the implementation for the third port concerning the second phase, i.e, porting ‘View/Update wishlist’ functionality. Concerning the above port the following tasks had to be considered: Creating the WishlistViewForm class by implementing the​ Form &​ Module API ​ s, where the forms are created using ​  $form=\Drupal::formBuilder()->getForm( )​ . Providing an interface defining a wish list entity by creating the class UcWishlistInterface by extending ContentEntityInterface and EntityOwnerInterface . The callback: uc_wishlist_display($wid, $mode) is utilised under th...

GSoC’17 Coding period | Week #4 | Drupal

The fourth week of Google Summer of Code 2017 has come to a close, bringing forth the onset of the First Evaluation Period. The conceptualization developed during the first phase of coding have been of immense help and has provided notable assistance for the completion of the assigned ports. As I had stated in the previous blog posts, this month I had the objective of completing the following ports concerning the first phase of the coding regime: Admin wish list settings Add to wishlist  With the conclusion of week 4, I have completed the port of the administrator wish list settings as well as the ‘ Add to wishlist ’ feature as part of the second port. Also for the ‘ Add to Wishlist ’ functionality to work successfully, my next objective would be to add the functionality to view/access the user wish list, on using the button. This functionality would further be succeeded by the option to update the specific wish list, by displaying the required button ...