mirror of
https://github.com/e107inc/e107.git
synced 2025-07-31 03:40:37 +02:00
Issue #5422 Calling e107::schema() multiple times with json data no longer overwrites existing data and will render all of the items.
This commit is contained in:
@@ -190,7 +190,7 @@ unset($e_headers);
|
||||
/** @experimental - subject to change at any time */
|
||||
if($schema = e107::schema())
|
||||
{
|
||||
echo '<script type="application/ld+json">'.$schema."</script>\n";
|
||||
echo $schema;
|
||||
}
|
||||
|
||||
unset($schema);
|
||||
|
@@ -4559,21 +4559,38 @@ class e107
|
||||
/**
|
||||
* Getter/Setter for schema. eg. Google structured data etc.
|
||||
* @param string $json
|
||||
* @return string|bool|null
|
||||
* @return string|null
|
||||
*/
|
||||
public static function schema($json = null)
|
||||
{
|
||||
|
||||
static $currentSchema = [];
|
||||
|
||||
if(empty($json))
|
||||
{
|
||||
return self::getRegistry('core/e107/schema', false);
|
||||
if(empty($currentSchema))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
$output = '';
|
||||
foreach($currentSchema as $schema)
|
||||
{
|
||||
if(!empty($schema))
|
||||
{
|
||||
$output .= '<script type="application/ld+json">' . $schema . "</script>\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
return self::setRegistry('core/e107/schema',$json);
|
||||
$currentSchema[] = $json;
|
||||
|
||||
return self::setRegistry('core/e107/schema', $currentSchema);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve error page handler.
|
||||
*
|
||||
|
Reference in New Issue
Block a user