Difference between revisions of "Variables you can use in theme files"
(→Accessing data in the listing array) |
(→Discovery through the Dump and Die function) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
__TOC__ | __TOC__ | ||
+ | |||
+ | == Discovery through the Dump and Die function == | ||
+ | |||
+ | If are looking into customizing theme files, one important trick you should learn is the ability to look into a complex array to find out what its contents are so you can access those contents directly. Below we provide a list of common variables that can be used in theme files, but it's not meant to be exhaustive. Using this trick should get you further. | ||
+ | |||
+ | '''To view all variables sent to the theme file'''' | ||
+ | |||
+ | <source lang="php"> | ||
+ | dd($this->viewVars); | ||
+ | </source> | ||
+ | |||
+ | '''In the listing detail theme, to view the $listing array'''' | ||
+ | |||
+ | <source lang="php"> | ||
+ | <?php dd($listing); ?> | ||
+ | </source> | ||
+ | |||
+ | '''In the listing list page themes, to view the $listings array'''' | ||
+ | |||
+ | <source lang="php"> | ||
+ | <?php dd($listings); ?> | ||
+ | </source> | ||
+ | |||
+ | '''Quickly access data that's deeply nested inside an array''' | ||
+ | |||
+ | Use the S2Array helper class with dot notation as follows: | ||
+ | |||
+ | <source lang="php"> | ||
+ | <?php echo S2Array::get($listing, 'Listing.title'); ?> | ||
+ | </source> | ||
== Accessing data in the listing array == | == Accessing data in the listing array == | ||
Line 27: | Line 57: | ||
| <source lang="php"><?php echo $listing['Listing']['slug'];?></source> || Listing Alias | | <source lang="php"><?php echo $listing['Listing']['slug'];?></source> || Listing Alias | ||
|- | |- | ||
− | | <source lang="php"><?php echo $listing['Listing']['url'];?></source> || Listing URL. In Joomla you need to pass it through JRoute:_() to convert it into a SEF URL. | + | | <source lang="php"><?php echo $listing['Listing']['url'];?></source> || Listing URL. In Joomla you need to pass it through JRoute::_() to convert it into a SEF URL. |
|- | |- | ||
| <source lang="php"><?php echo $listing['Listing']['summary'];?></source> || Listing summary text | | <source lang="php"><?php echo $listing['Listing']['summary'];?></source> || Listing summary text |
Latest revision as of 14:09, 29 April 2020
Contents
Discovery through the Dump and Die function
If are looking into customizing theme files, one important trick you should learn is the ability to look into a complex array to find out what its contents are so you can access those contents directly. Below we provide a list of common variables that can be used in theme files, but it's not meant to be exhaustive. Using this trick should get you further.
To view all variables sent to the theme file'
dd($this->viewVars);
In the listing detail theme, to view the $listing array'
<?php dd($listing); ?>
In the listing list page themes, to view the $listings array'
<?php dd($listings); ?>
Quickly access data that's deeply nested inside an array
Use the S2Array helper class with dot notation as follows:
<?php echo S2Array::get($listing, 'Listing.title'); ?>
Accessing data in the listing array
The $listing array contains a lot of useful information about a particular listing.
It is used in these files:
- /listings/detail.thtml
- /listings/detail_tabs.thtml
- /listings/detail_compact.thtml
- /listings/listings_blogview.thtml
- /listings/listings_blogview_compact.thtml
- /listings/listings_tableview.thtml
- /listings/listings_thumbview.thtml
- /listings/listings_masonry.thtml
- /modules/listings.thtml
In these files you can add any data from the $listing array. Here is a list of the most commonly used variables.
<?php echo $listing['Listing']['listing_id'];?> |
Listing ID |
<?php echo $listing['Listing']['title'];?> |
Listing Title |
<?php echo $listing['Listing']['slug'];?> |
Listing Alias |
<?php echo $listing['Listing']['url'];?> |
Listing URL. In Joomla you need to pass it through JRoute::_() to convert it into a SEF URL. |
<?php echo $listing['Listing']['summary'];?> |
Listing summary text |
<?php echo $listing['Listing']['description'];?> |
Listing description text |
<?php echo $listing['Listing']['text'];?> |
Summary + Description |
<?php echo $listing['Listing']['media_count'];?> |
Media count |
<?php echo $listing['Listing']['photo_count'];?> |
Photo count |
<?php echo $listing['Listing']['video_count'];?> |
Video count |
<?php echo $listing['Listing']['audio_count'];?> |
Audio count |
<?php echo $listing['Listing']['attachment_count'];?> |
Attachment count |
<?php echo $listing['Listing']['hits'];?> |
Number of visits |
<?php echo $Time->nice($listing['Listing']['created']);?> |
Created date |
<?php echo $Time->nice($listing['Listing']['modified']);?> |
Modified date |
<?php echo $listing['Category']['cat_id'];?> |
Category ID |
<?php echo $listing['Category']['title'];?> |
Category Title |
<?php echo $listing['Category']['slug'];?> |
Category Alias |
<?php echo $listing['Directory']['dir_id'];?> |
Directory ID |
<?php echo $listing['Directory']['title'];?> |
Directory Title |
<?php echo $listing['ListingType']['listing_type_id'];?> |
Listing Type ID |
<?php echo $listing['User']['user_id'];?> |
Listing author's ID |
<?php echo $listing['User']['name'];?> |
Listing author's real name |
<?php echo $listing['User']['username'];?> |
Listing author's username |
<?php echo $listing['User']['email'];?> |
Listing author's email |
<?php echo $listing['Review']['user_rating'];?> |
User rating |
<?php echo $listing['Review']['user_rating_count'];?> |
Number of user ratings |
<?php echo $listing['Review']['user_review_count'];?> |
Number of user reviews |
<?php echo $listing['Review']['editor_rating'];?> |
Editor rating |
<?php echo $listing['Review']['editor_rating_count'];?> |
Number of editor ratings |
<?php echo $listing['Review']['editor_review_count'];?> |
Number of editor reviews |
<?php echo $listing['MainMedia']['media_info']['image']['url'];?> |
Main Media URL |
<?php echo $listing['Favorite']['favored'];?> |
Number of users who added listing to their favorite list |
<?php echo $listing['Claim']['approved'];?> |
The listing's current claim status |
Conditionals
You can use any of the above variables to create conditionals, for example:
<?php if($listing['Review']['user_review_count']): // if user review exists ?> // display something <?php else: ?> // display something else <?php endif;?>
Accessing the Listing Type title
If you need to get the listing type title for a particular listing use the code below in listing detail pages:
<?php echo $this->listing_type->title;?>
In list pages or modules where there's more than one listing you need to access the title directly from the ListingTypes service container like this:
<?php echo $this->listing_type->getById($listing['ListingType']['listing_type_id'])['ListingType']['title'];?>
The code above can also be written in a more readable way shown below:
<?php $listingTypeId = $listing['ListingType']['listing_type_id']; $listingType = $this->listing_type->getById($listingTypeId); echo $listingType['ListingType']['title']; ?>