Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JMicrodata

Liste de tous les membres

Fonctions membres publiques

 __construct ($type= '', $flag=true)
 enable ($flag=true)
 isEnabled ()
 setType ($type)
 getType ()
 property ($property)
 getProperty ()
 content ($value, $machineValue=null)
 getContent ()
 fallback ($type, $property)
 getFallbackType ()
 getFallbackProperty ()
 display ($displayType= '', $emptyOutput=false)
 displayScope ()

Fonctions membres publiques statiques

static sanitizeType ($type)
static sanitizeProperty ($property)
static getTypes ()
static getAvailableTypes ()
static getExpectedTypes ($type, $property)
static isPropertyInType ($type, $property)
static isTypeAvailable ($type)
static htmlMeta ($content, $property, $scope= '', $inverse=false)
static htmlSpan ($content, $property= '', $scope= '', $inverse=false)
static htmlDiv ($content, $property= '', $scope= '', $inverse=false)
static htmlScope ($scope)
static htmlProperty ($property)

Fonctions membres protégées statiques

static loadTypes ()
static getExpectedDisplayType ($type, $property)

Attributs protégés

 $type = null
 $property = null
 $content = null
 $machineContent = null
 $fallbackType = null
 $fallbackProperty = null
 $fallback = false
 $enabled = true

Attributs protégés statiques

static $types = null

Description détaillée

Définition à la ligne 19 du fichier microdata.php.


Documentation des constructeurs et destructeur

JMicrodata::__construct (   $type = '',
  $flag = true 
)

Initialize the class and setup the default Type

Paramètres:
string$typeOptional, Fallback to Thing Type
boolean$flagEnable or disable microdata output
Depuis:
3.2

Définition à la ligne 101 du fichier microdata.php.

{
if ($this->enabled = (boolean) $flag)
{
// Fallback to Thing Type
if (!$type)
{
$type = 'Thing';
}
$this->setType($type);
}
}

Documentation des fonctions membres

JMicrodata::content (   $value,
  $machineValue = null 
)

Setup a Text value or Content value for the Microdata

Paramètres:
string$valueThe human value or marchine value to be used
string$machineValueThe machine value
Renvoie:
JMicrodata Instance of $this
Depuis:
3.2

Définition à la ligne 254 du fichier microdata.php.

{
$this->content = $value;
$this->machineContent = $machineValue;
return $this;
}
JMicrodata::display (   $displayType = '',
  $emptyOutput = false 
)

This function handle the logic of a Microdata intelligent display. Check if the Type, Property are available, if not check for a Fallback, then reset all params for the next use and return the Microdata HTML

Paramètres:
string$displayTypeOptional, 'inline', available ['inline'|'span'|'div'|meta]
boolean$emptyOutputReturn an empty string if the microdata output is disabled and there is a $content value
Renvoie:
string
Depuis:
3.2

Définition à la ligne 350 du fichier microdata.php.

{
// Initialize the HTML to output
$html = ($this->content !== null) ? $this->content : '';
// Control if the Microdata output is enabled, otherwise return the content or empty string
if (!$this->enabled)
{
return ($emptyOutput) ? '' : $html;
}
// If the property is wrong for the current Type check if Fallback available, otherwise return empty HTML
if ($this->property && !$this->fallback)
{
// Process and return the HTML the way the user expects to
if ($displayType)
{
switch ($displayType)
{
case 'span':
$html = static::htmlSpan($html, $this->property);
break;
case 'div':
$html = static::htmlDiv($html, $this->property);
break;
case 'meta':
$html = ($this->machineContent !== null) ? $this->machineContent : $html;
$html = static::htmlMeta($html, $this->property);
break;
default:
// Default $displayType = 'inline'
$html = static::htmlProperty($this->property);
break;
}
}
else
{
/*
* Process and return the HTML in an automatic way,
* with the Property expected Types and display the Microdata in the right way,
* check if the Property is normal, nested or must be rendered in a metadata tag
*/
switch (static::getExpectedDisplayType($this->type, $this->property))
{
case 'nested':
// Retrive the expected nested Type of the Property
$nestedType = static::getExpectedTypes($this->type, $this->property);
$nestedProperty = '';
// If there is a Fallback Type then probably it could be the expectedType
if (in_array($this->fallbackType, $nestedType))
{
$nestedType = $this->fallbackType;
if ($this->fallbackProperty)
{
$nestedProperty = $this->fallbackProperty;
}
}
else
{
$nestedType = $nestedType[0];
}
// Check if a Content is available, otherwise Fallback to an 'inline' display type
if ($this->content !== null)
{
if ($nestedProperty)
{
$this->content,
$nestedProperty
);
}
$html,
$this->property,
$nestedType,
true
);
}
else
{
$html = static::htmlProperty($this->property) . ' ' . static::htmlScope($nestedType);
if ($nestedProperty)
{
$html .= ' ' . static::htmlProperty($nestedProperty);
}
}
break;
case 'meta':
// Check if the Content value is available, otherwise Fallback to an 'inline' display Type
if ($this->content !== null)
{
$html = ($this->machineContent !== null) ? $this->machineContent : $this->content;
$html = static::htmlMeta($html, $this->property) . $this->content;
}
else
{
$html = static::htmlProperty($this->property);
}
break;
default:
/*
* Default expected display type = 'normal'
* Check if the Content value is available,
* otherwise Fallback to an 'inline' display Type
*/
if ($this->content !== null)
{
$html = static::htmlSpan($this->content, $this->property);
}
else
{
$html = static::htmlProperty($this->property);
}
break;
}
}
}
elseif ($this->fallbackProperty)
{
// Process and return the HTML the way the user expects to
if ($displayType)
{
switch ($displayType)
{
case 'span':
$html = static::htmlSpan($html, $this->fallbackProperty, $this->fallbackType);
break;
case 'div':
$html = static::htmlDiv($html, $this->fallbackProperty, $this->fallbackType);
break;
case 'meta':
$html = ($this->machineContent !== null) ? $this->machineContent : $html;
$html = static::htmlMeta($html, $this->fallbackProperty, $this->fallbackType);
break;
default:
// Default $displayType = 'inline'
$html = static::htmlScope($type::scope()) . ' ' . static::htmlProperty($this->fallbackProperty);
break;
}
}
else
{
/*
* Process and return the HTML in an automatic way,
* with the Property expected Types an display the Microdata in the right way,
* check if the Property is nested or must be rendered in a metadata tag
*/
switch (static::getExpectedDisplayType($this->fallbackType, $this->fallbackProperty))
{
case 'meta':
// Check if the Content value is available, otherwise Fallback to an 'inline' display Type
if ($this->content !== null)
{
$html = ($this->machineContent !== null) ? $this->machineContent : $this->content;
$html = static::htmlMeta($html, $this->fallbackProperty, $this->fallbackType);
}
else
{
$html = static::htmlScope($this->fallbackType) . ' ' . static::htmlProperty($this->fallbackProperty);
}
break;
default:
/*
* Default expected display type = 'normal'
* Check if the Content value is available,
* otherwise Fallback to an 'inline' display Type
*/
if ($this->content !== null)
{
$html = static::htmlSpan($this->content, $this->fallbackProperty);
$html = static::htmlSpan($html, '', $this->fallbackType);
}
else
{
$html = static::htmlScope($this->fallbackType) . ' ' . static::htmlProperty($this->fallbackProperty);
}
break;
}
}
}
elseif (!$this->fallbackProperty && $this->fallbackType !== null)
{
$html = static::htmlScope($this->fallbackType);
}
// Reset params
$this->content = null;
$this->property = null;
$this->fallbackProperty = null;
$this->fallbackType = null;
$this->fallback = false;
return $html;
}
JMicrodata::displayScope ( )

Return the HTML of the current Scope

Renvoie:
string
Depuis:
3.2

Définition à la ligne 571 du fichier microdata.php.

{
// Control if the Microdata output is enabled, otherwise return the content or empty string
if (!$this->enabled)
{
return '';
}
return static::htmlScope($this->type);
}
JMicrodata::enable (   $flag = true)

Enable or Disable Microdata semantics output

Paramètres:
boolean$flagEnable or disable microdata output
Renvoie:
JMicrodata Instance of $this
Depuis:
3.2

Définition à la ligne 141 du fichier microdata.php.

{
$this->enabled = (boolean) $flag;
return $this;
}
JMicrodata::fallback (   $type,
  $property 
)

Setup a Fallback Type and Property

Paramètres:
string$typeThe Fallback Type
string$propertyThe Fallback Property
Renvoie:
JMicrodata Instance of $this
Depuis:
3.2

Définition à la ligne 284 du fichier microdata.php.

{
if (!$this->enabled)
{
return $this;
}
// Sanitize the Type
$this->fallbackType = static::sanitizeType($type);
// If the given Type isn't available, fallback to Thing
if (!static::isTypeAvailable($this->fallbackType))
{
$this->fallbackType = 'Thing';
}
// Control if the Property exist in the given Type and setup it, if not leave NULL
if (static::isPropertyInType($this->fallbackType, $property))
{
$this->fallbackProperty = $property;
}
else
{
$this->fallbackProperty = null;
}
return $this;
}
static JMicrodata::getAvailableTypes ( )
static

Return an array with all available Types

Renvoie:
array
Depuis:
3.2

Définition à la ligne 631 du fichier microdata.php.

{
return array_keys(static::$types);
}
JMicrodata::getContent ( )

Return the content variable

Renvoie:
string
Depuis:
3.2

Définition à la ligne 269 du fichier microdata.php.

{
}
static JMicrodata::getExpectedDisplayType (   $type,
  $property 
)
staticprotected

Return the expected display type of the [normal|nested|meta] In wich way to display the Property: normal -> itemprop="name" nested -> itemprop="director" itemscope itemtype="http://schema.org/Person" meta -> <meta itemprop="datePublished" content="1991-05-01">

Paramètres:
string$typeThe Type where to find the Property
string$propertyThe Property to process
Renvoie:
string
Depuis:
3.2

Définition à la ligne 686 du fichier microdata.php.

{
// Retrieve the first expected type
$type = $expectedTypes[0];
// Check if it's a meta display
if ($type === 'Date' || $type === 'DateTime' || $property === 'interactionCount')
{
return 'meta';
}
// Check if it's a normal display
if ($type === 'Text' || $type === 'URL' || $type === 'Boolean' || $type === 'Number')
{
return 'normal';
}
// Otherwise it's a nested display
return 'nested';
}
static JMicrodata::getExpectedTypes (   $type,
  $property 
)
static

Return the expected types of the Property

Paramètres:
string$typeThe Type to process
string$propertyThe Property to process
Renvoie:
array
Depuis:
3.2

Définition à la ligne 648 du fichier microdata.php.

{
$tmp = static::$types[$type]['properties'];
// Check if the Property is in the Type
if (isset($tmp[$property]))
{
return $tmp[$property]['expectedTypes'];
}
// Check if the Property is inherit
$extendedType = static::$types[$type]['extends'];
// Recursive
if (!empty($extendedType))
{
return static::getExpectedTypes($extendedType, $property);
}
return array();
}
JMicrodata::getFallbackProperty ( )

Return the fallbackProperty variable

Renvoie:
string
Depuis:
3.2

Définition à la ligne 332 du fichier microdata.php.

JMicrodata::getFallbackType ( )

Return the fallbackType variable

Renvoie:
string
Depuis:
3.2

Définition à la ligne 320 du fichier microdata.php.

{
}
JMicrodata::getProperty ( )

Return the property variable

Renvoie:
string
Depuis:
3.2

Définition à la ligne 239 du fichier microdata.php.

{
}
JMicrodata::getType ( )

Return the current Type name

Renvoie:
string
Depuis:
3.2

Définition à la ligne 195 du fichier microdata.php.

{
return $this->type;
}
static JMicrodata::getTypes ( )
static

Return an array with all Types and Properties

Renvoie:
array
Depuis:
3.2

Définition à la ligne 617 du fichier microdata.php.

static JMicrodata::htmlDiv (   $content,
  $property = '',
  $scope = '',
  $inverse = false 
)
static

Return the microdata in an

tag.
Paramètres:
string$contentThe human value
string$propertyOptional, the human value to display
string$scopeOptional, the Type scope to display
boolean$inverseOptional, default = false, inverse the $scope with the $property
Renvoie:
string
Depuis:
3.2

Définition à la ligne 852 du fichier microdata.php.

{
// Control if the Property has allready the itemprop
if (!empty($property) && stripos($property, 'itemprop') !== 0)
{
}
// Control if the Scope have allready the itemtype
if (!empty($scope) && stripos($scope, 'itemscope') !== 0)
{
$scope = static::htmlScope($scope);
}
if ($inverse)
{
$tmp = join(' ', array($property, $scope));
}
else
{
$tmp = join(' ', array($scope, $property));
}
$tmp = trim($tmp);
$tmp = ($tmp) ? ' ' . $tmp : '';
return "<div$tmp>$content</div>";
}
static JMicrodata::htmlMeta (   $content,
  $property,
  $scope = '',
  $inverse = false 
)
static

Return the microdata in a <meta> tag with the machine content inside.

Paramètres:
string$contentThe machine content to display
string$propertyThe Property
string$scopeOptional, the Type scope to display
boolean$inverseOptional, default = false, inverse the $scope with the $property
Renvoie:
string
Depuis:
3.2

Définition à la ligne 771 du fichier microdata.php.

{
// Control if the Property has allready the itemprop
if (stripos($property, 'itemprop') !== 0)
{
}
// Control if the Scope have allready the itemtype
if (!empty($scope) && stripos($scope, 'itemscope') !== 0)
{
$scope = static::htmlScope($scope);
}
if ($inverse)
{
$tmp = join(' ', array($property, $scope));
}
else
{
$tmp = join(' ', array($scope, $property));
}
$tmp = trim($tmp);
return "<meta $tmp content='$content'/>";
}
static JMicrodata::htmlProperty (   $property)
static

Return the HTML Property

Paramètres:
string$propertyThe Property to process
Renvoie:
string
Depuis:
3.2

Définition à la ligne 909 du fichier microdata.php.

{
return "itemprop='$property'";
}
static JMicrodata::htmlScope (   $scope)
static

Return the HTML Scope

Paramètres:
string$scopeThe Scope to process
Renvoie:
string
Depuis:
3.2

Définition à la ligne 890 du fichier microdata.php.

{
if (stripos($scope, 'http') !== 0)
{
$scope = 'https://schema.org/' . ucfirst($scope);
}
return "itemscope itemtype='$scope'";
}
static JMicrodata::htmlSpan (   $content,
  $property = '',
  $scope = '',
  $inverse = false 
)
static

Return the microdata in an tag.

Paramètres:
string$contentThe human value
string$propertyOptional, the human value to display
string$scopeOptional, the Type scope to display
boolean$inverseOptional, default = false, inverse the $scope with the $property
Renvoie:
string
Depuis:
3.2

Définition à la ligne 811 du fichier microdata.php.

{
// Control if the Property has allready the itemprop
if (!empty($property) && stripos($property, 'itemprop') !== 0)
{
}
// Control if the Scope have allready the itemtype
if (!empty($scope) && stripos($scope, 'itemscope') !== 0)
{
$scope = static::htmlScope($scope);
}
if ($inverse)
{
$tmp = join(' ', array($property, $scope));
}
else
{
$tmp = join(' ', array($scope, $property));
}
$tmp = trim($tmp);
$tmp = ($tmp) ? ' ' . $tmp : '';
return "<span$tmp>$content</span>";
}
JMicrodata::isEnabled ( )

Return true if Microdata semantics output are enabled

Renvoie:
boolean
Depuis:
3.2

Définition à la ligne 155 du fichier microdata.php.

{
return ($this->enabled) ? true : false;
}
static JMicrodata::isPropertyInType (   $type,
  $property 
)
static

Recursive function, control if the given Type has the given Property

Paramètres:
string$typeThe Type where to check
string$propertyThe Property to check
Renvoie:
boolean
Depuis:
3.2

Définition à la ligne 719 du fichier microdata.php.

{
if (!static::isTypeAvailable($type))
{
return false;
}
// Control if the Property exists, and return true
if (array_key_exists($property, static::$types[$type]['properties']))
{
return true;
}
// Recursive: Check if the Property is inherit
$extendedType = static::$types[$type]['extends'];
if (!empty($extendedType))
{
return static::isPropertyInType($extendedType, $property);
}
return false;
}
static JMicrodata::isTypeAvailable (   $type)
static

Control if the given Type class is available

Paramètres:
string$typeThe Type to check
Renvoie:
boolean
Depuis:
3.2

Définition à la ligne 752 du fichier microdata.php.

{
return (array_key_exists($type, static::$types)) ? true : false;
}
static JMicrodata::loadTypes ( )
staticprotected

Load all Types and Properties from the types.json file

Renvoie:
void
Depuis:
3.2

Définition à la ligne 122 du fichier microdata.php.

{
// Load the JSON
if (!static::$types)
{
$path = JPATH_PLATFORM . '/joomla/microdata/types.json';
static::$types = json_decode(file_get_contents($path), true);
}
}
JMicrodata::property (   $property)

Setup a Property

Paramètres:
string$propertyThe Property
Renvoie:
JMicrodata Instance of $this
Depuis:
3.2

Définition à la ligne 209 du fichier microdata.php.

{
if (!$this->enabled)
{
return $this;
}
// Sanitize the Property
// Control if the Property exist in the given Type and setup it, if not leave NULL
if (static::isPropertyInType($this->type, $property))
{
$this->property = $property;
}
else
{
$this->fallback = true;
}
return $this;
}
static JMicrodata::sanitizeProperty (   $property)
static

Return the sanitized Property

Paramètres:
string$propertyThe Property to sanitize
Renvoie:
string
Depuis:
3.2

Définition à la ligne 605 du fichier microdata.php.

{
return lcfirst(trim($property));
}
static JMicrodata::sanitizeType (   $type)
static

Return the sanitized Type

Paramètres:
string$typeThe Type to sanitize
Renvoie:
string
Depuis:
3.2

Définition à la ligne 591 du fichier microdata.php.

{
return ucfirst(trim($type));
}
JMicrodata::setType (   $type)

Set a new Schema.org Type

Paramètres:
string$typeThe Type to be setup
Renvoie:
JMicrodata Instance of $this
Depuis:
3.2

Définition à la ligne 169 du fichier microdata.php.

{
if (!$this->enabled)
{
return $this;
}
// Sanitize the Type
$this->type = static::sanitizeType($type);
// If the given Type isn't available, fallback to Thing
if (!static::isTypeAvailable($this->type))
{
$this->type = 'Thing';
}
return $this;
}

Documentation des données membres

JMicrodata::$content = null
protected

Définition à la ligne 51 du fichier microdata.php.

JMicrodata::$enabled = true
protected

Définition à la ligne 91 du fichier microdata.php.

JMicrodata::$fallback = false
protected

Définition à la ligne 83 du fichier microdata.php.

JMicrodata::$fallbackProperty = null
protected

Définition à la ligne 75 du fichier microdata.php.

JMicrodata::$fallbackType = null
protected

Définition à la ligne 67 du fichier microdata.php.

JMicrodata::$machineContent = null
protected

Définition à la ligne 59 du fichier microdata.php.

JMicrodata::$property = null
protected

Définition à la ligne 43 du fichier microdata.php.

JMicrodata::$type = null
protected

Définition à la ligne 35 du fichier microdata.php.

JMicrodata::$types = null
staticprotected

Définition à la ligne 27 du fichier microdata.php.


La documentation de cette classe a été générée à partir du fichier suivant :