Your IP : 216.73.216.240


Current Path : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/View/Sd/
Upload File :
Current File : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/View/Sd/SdArticle.php

<?php
/*
* @package		Tech Fry Library
* @license		https://www.gnu.org/licenses/gpl-3.0.en.html
*/

namespace TechFry\Library\View\Sd;

defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;

// https://developers.google.com/search/docs/appearance/structured-data/article
class SdArticle
{
    public static function get_output($data = array())
    {
        $uri = Uri::getInstance();
        
        $json = array(
            "@context" => "https://schema.org",
            "@type" => $data['type'] ?? 'Article',
            "headline" => $data['title'],
        );

        if (isset($data['image']) && $data['image'])
        {
            $json['image'] = Sd::add_image($data['image']);
        }

        $json['author'] = array(
            "@type" => "Organization",
            "name" => $data['author_name'],
            "url" => $data['author_url'] ?? $uri->base(),
        );

        $config = Factory::getConfig();
        $tz = $config->get('offset');
        
        // Dates should be in ISO 8601 format: YYYY-MM-DDThh:mm:ss+05:30
        if (isset($data['publish_up']) && $data['publish_up'])
        {
            $json['datePublished'] = Factory::getDate($data['publish_up'], $tz)->toISO8601(true);
        }

        if (isset($data['modified']) && $data['modified'])
        {
            $json['dateModified'] = Factory::getDate($data['modified'], $tz)->toISO8601(true);
        }

        Sd::display_sd($json);
    }
}