Variables you can use in theme files

From JReviews Documentation
Jump to: navigation, search

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'


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


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:

$listingTypeId = $listing['ListingType']['listing_type_id'];
$listingType = $this->listing_type->getById($listingTypeId);
echo $listingType['ListingType']['title'];