Actualize Dreams

We are able

Trouble comparing dates in PHP — September 17, 2018

Trouble comparing dates in PHP

The scenario.

I’m building a custom tool which automates the curation of blogs from member bloggers’ feeds. These blogs must be fetched on a weekly basis because the intention is to make sure every member blogger, blogs at least once a week.

Where to the feed URLs come from?

Member joins by submitting a blog feed URL, which will save in the system manually at the moment.

The system(bot) must;

  1. Retrieve the feed URLs from the database.
  2. The system should loop the URLS.
  3. Connect to each URL.
  4. Fetch one feed item(latest).
  5. Get the feed item date and compare it to the date of last Sunday. If the feed date is greater than the date of last Sunday.
  6. Connect to the database again and retrieve a blog item whose item title is similar to the feed item title. If a blog item similar to the feed item is returned, skip that feed item since we already have it and move to the next. Repeating steps 2 to 6.
  7. If the blog item similar to the feed item is not returned, insert it in our blog database to store it permanently.

Tools used.

First of all, I chose PHP programming language to accomplish the task. I would have chosen Python, however, my hosting environment doesn’t have python. Yet am also more experienced in PHP than Python.

I also hard to extend WordPress so that I don’t have to build everything from scratch. Using WordPress will give me the opportunity to automate member sign up, log in and feed submission easier than if I used something different.

I will eventually build a frontend interface for the system. This interface will enable the public readers to choose and read any blog of their choice as well as enable bloggers to sign up from any part of the world. Building a WordPress theme will be much easier than if I built everything from scratch.

Alternative tools one could look at Joomla, Drupal and Django and many others.

What have I built so far?

So far I have built a WordPress plugin, with the following features.

  1. Automated Feed fetcher
  2. Shortcode which lists active bloggers. This is helpful for displaying member bloggers on the homepage or any page. Hence make it easy for readers to navigate blogs of any member(author)
  3. Shortcode for listing blogs. The intention of the system is to curate blogs from consistent bloggers around the world and make them accessible by consistent readers. This shortcode helps in displaying the blogs on the platform.

Challenges

  1. Comparing dates.

PHP has several inbuilt date functions and objects such as DataTime(), CreateDate() etc but they were not helpful. Sometimes they could function but they were never consistent. Luckily enough converting the date strings to time saved me after many trials and struggle.

Solution

$TimelastSunday = strtotime(‘last Sunday’);

$TimeFeedItem = strtotime($feedItem->get_date(‘m-j-Y’));

if($TimeFeedItem > $TimeLastSunday) {

// Do the rest

}

Whoa! Whoa!

Can’t wait to enable automated signing up, blog submission and attachment of categories and tags to the fetched/retrieved feeds.

Thanks for reading until next time.

Advertisements
Shared time with a programmer — September 9, 2018

Shared time with a programmer

One day, one of my friends found himself in a situation where he couldn’t achieve the kind of user interface he wanted. I invited him to our office and within two days, we were able to reach somewhere.

I realized the cause of his suffering arose from how he was writing code and not knowing the procedure of how something should be approached. For example, he couldn’t really explain to me what he wanted to happen when a certain element is being hovered.

Basically, it was hard to read and understand his code because of the way he indented his code and named his variables.

When I helped him, I shared some of the code on github.com which I will share in this post, hopefully, one can pick an idea or two or even contribute towards improving it. This code is written in HTML, JavaScript, and PHP. A snippet which is meant to handle submission of multiple form fields which should pick an array of data. By saying the array of data, I mean picking numerous variants of the same object.

In his scenario, he wants to pick the available work periods of a contractor and send to a PHP script for processing and storage. During the data entry of a contractor, they have to specify the time duration of a particular day that the contract will be available to offer a service throughout the entire contract period i.e. Monday 08:00 to 17:00, Tuesday 09:00 to 17:00 etc. Therefore it’s necessary for the web application to enable an administrator and registering contract to select a collection of work periods at once without navigating away from the entry form.

Click here to take a look at the code.

Besides the code we wrote together, how did I help him improve his coding lifestyle?

  • He got an idea of how to name variables so that even without writing comments the code can be understood by other programmers without any struggle.
  • I admit my code doesn’t come near to the cleanest written code that I hope it will be in a couple months but he was inspired by how I indent and it looks so clean, perhaps he is now practicing the same or even better.
  • I taught him about writing optimized code, especially when using loops.
  • I also introduced him to the idea of a ternary operator as control statement, this was really amazing to him because it would help cut almost a quota of his code.
  • JavaScript is one of his weakest points according to my observation and encouraged him to take a good study of the language including the new concepts of ES6.
  • I encouraged him to watch and follow NetNinjas and Traversy Media channels and others on YouTube to help him develop as fast as possible.