With the conclusion of
the tenth week of Google Summer of Code 2017, the coding regime is
almost halfway through the third phase. Meanwhile, last week saw a
stringent buildup on the concept for the remaining ports, which would
aid in its gradual completion. I have maintained a detailed structure of
the code for the port which can be accessed here.
Focusing on the present scenario, the implementation
of the 5th port ‘Email wishlist to users’ has almost reached completion.
Additionally, the implementation of the last port ‘Add user wish list
settings’ is underway, with a significant portion of the port to be
accomplished within the coming week. Therefore, based on a comprehensive
evaluation of the current status of the module, the work done previous
week can be summarised as:
-
Option to email wishlist to others:
-
This feature would enable users or wish list owners to share any wish list with other users or potential customers by emailing it to the respective user.
-
Completed the WishlistEmailForm.php form contained in src/Form using the Form API involving the buildForm, validateForm and submitForm handlers for the wish list email.
-
Usage of the Database API for the dynamic construction of queries and storing the database within the DBQuery.php file in src/Database.
-
Converted D7 Hook functions to D8 APIs and provided menu-defined local links such as the email wishlist tab Routes, thereby linking the user wishlist to the local tabs routed through /user/%user/email-wishlist. Email address of an user is verified through the Data Common API.
-
-
Implemented hook_rules_condition_info:
-
This hook is implemented in order to add a new Rules condition to the existing module. Created the file uc_wishlist.rules.inc, which gets automatically included when the hook is invoked.
-
Here, Rules fires a function uc_wishlist_product_wishlist, with the related parameters provided. This function checks the required query whether the order has a wishlist product selected and returns either TRUE or FALSE.
-
Finally for the Views implementation to work as
planned, it would require the creation of the the Views Filter Plugin
for the integration of the wishlists with Views. Further work would
require the implementation of the ‘Add user wish list settings’ routed
through /user/%user/wishlist redirected through the Wishlist local menu
tab.
As of now, the port implementation for ‘Email
wishlist to other users’ is almost done. With the addition of the rules
and views hook implementations the wishlist product that can be reviewed
systematically. Also, I need to carry out hook_mail implementation and
link the Email-wishlist form to a controller/local menu tabs for the
port to work completely. After the successful completion of the ports, I
would move on to draft the documentation and create the related testing
framework for the same.
Overall, the experience so far has been amazing and
it’s great to advance onto the final regime of GSoC’17. Winding up,
these were the objectives and concepts learned during the eighth week of
coding phase in GSoC’17. Hope to learn many more new concepts in the
coming weeks for the successful completion of the port.
Cheers!
Comments
Post a Comment