Extending a Child6:12 with Alena Holligan
In this video we will extend the child class from ListingPremium. This new grandchild will inherit all the attributes and abilities of ListingPremium AND ListingBasic.
$object = new ListingFeatured(); //parent echo is_a($object, 'ListingPremium'); //returns true //grandparent echo is_a($object, 'ListingBasic'); //returns true //sibling of parent echo is_a($object, 'ListingInactive'); //returns false
For our ListingFeatured class, we're going to add a code of conduct. 0:00 The code of conduct is going to work much like the description. 0:04 So let's copy the code from the ListingPremium and modify that. 0:07 We don't need to change the allowed tags. 0:21 We'll let the ListingPremium handle that, so let's remove that line. 0:23 Now we can change description to code of conduct, or coc for short. 0:31 We update the set values, getCoc, 0:50 And setCoc. 1:05 Let's update our collection to use this new listing. 1:12 Once again we'll modify our addListing method to use this new class. 1:17 Now let's update the statuses. 1:32 We want our featured listings to show up first. 1:36 So let's add it first to this list. 1:39 Next, let's update our form. 1:44 Once again we can copy the code from the description and make a few minor changes. 1:48 Coc, coc, coc, Featured. 2:02 GetCoc. 2:13 We'll call this Code of Conduct. 2:18 And say Featured Only. 2:23 Finally, we need to update our listing. 2:25 We'll start by adding another case to our switch statement. 2:31 If featured, Then we'll use panel-success, 2:36 And break, now, let's show the code of conduct. 2:48 We'll make this a footer. 2:52 If (is_a($listing, 2:57 'ListingFeatured'). 3:02 && !empty 3:12 ($listing->getCoc())) 3:16 div class="panel-footer" 3:31 id="coc 3:39 $listing->getId() 3:47 Let's preview this in the browser and upgrade one of our listings. 4:06 It looks good, but instead of having this displayed all the time, 4:26 let's add a toggle link. 4:29 We'll copy that, and we'll put our link here. 4:38 Onclick="toggle(\'coc'. 4:56 $listing->getID() 5:06 Code of Conduct. 5:19 Let's set the style to start as a display:none. 5:33 Let's clean up the text from our homepage too. 5:45 And we can preview once more. 5:54 Great job, we have featured listings, 6:04 premium listings, basic and inactive. 6:08
You need to sign up for Treehouse in order to download course files.Sign up