Génération auto du tag opengraph image

This commit is contained in:
fredtempez 2018-10-24 22:48:10 +02:00
parent 096eabdf32
commit e4c6a15dd6
3 changed files with 78 additions and 49 deletions

View File

@ -601,6 +601,27 @@ class common {
} }
} }
/**
* Récupérer une copie d'écran du site Web pour le tag image si le fichier n'existe pas.
* En local, copie du site décran de ZwiiCMS
*/
public function makeImageTag () {
if (!file_exists('site/file/source/screenshot.png'))
{
if ( strpos(helper::baseUrl(false),'localhost') > 0 OR strpos(helper::baseUrl(false),'127.0.0.1') > 0) {
$site = 'https://ZwiiCMS.com'; } else {
$site = helper::baseUrl(false); }
$googlePagespeedData = file_get_contents('https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url='. $site .'&screenshot=true&key=AIzaSyBqIP3mGvATby3mU_Xn-UoZjbVoem6MfBI');
$googlePagespeedData = json_decode($googlePagespeedData, true);
$screenshot = $googlePagespeedData['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
$data = 'data:image/jpeg;base64,'.$screenshot;
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
file_put_contents( 'site/file/source/screenshot.png',$data);
}
}
/** /**
* Accède aux données * Accède aux données
* @param array $keys Clé(s) des données * @param array $keys Clé(s) des données
@ -1998,6 +2019,7 @@ class layout extends common {
} }
/** /**
* Affiche la notification * Affiche la notification
*/ */

View File

@ -142,6 +142,7 @@ class config extends common {
20 => '20 articles' 20 => '20 articles'
]; ];
/** /**
* Sauvegarde des données * Sauvegarde des données
*/ */
@ -171,17 +172,19 @@ class config extends common {
* Réalise une copie d'écran * Réalise une copie d'écran
* https://www.codexworld.com/capture-screenshot-website-url-php-google-api/ * https://www.codexworld.com/capture-screenshot-website-url-php-google-api/
*/ */
public function metaimage() { public function configmetaimage() {
// fonction désactivée pour un site local // fonction désactivée pour un site local
if ( strpos(helper::baseUrl(false),'localhost') === 0 OR strpos(helper::baseUrl(false),'127.0.0.1') === 0) if ( strpos(helper::baseUrl(false),'localhost') > 0 OR strpos(helper::baseUrl(false),'127.0.0.1') > 0) {
{ $site = 'https://ZwiiCMS.com'; } else {
$googlePagespeedData = file_get_contents('https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url='. helper::baseUrl(false) .'&screenshot=true&key=AIzaSyA_JOJidlWFgEiyxTlSGi2_fORgYsCZFtA'); $site = helper::baseUrl(false); }
$googlePagespeedData = file_get_contents('https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url='. $site .'&screenshot=true&key=AIzaSyA_JOJidlWFgEiyxTlSGi2_fORgYsCZFtA');
$googlePagespeedData = json_decode($googlePagespeedData, true); $googlePagespeedData = json_decode($googlePagespeedData, true);
$screenshot = $googlePagespeedData['screenshot']['data']; $screenshot = $googlePagespeedData['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot); $screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
$data = 'data:image/jpeg;base64,'.$screenshot; $data = 'data:image/jpeg;base64,'.$screenshot;
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)); $data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
file_put_contents( helper::baseUrl(false) . '/site/file/source/screenshot.png',$data); file_put_contents( 'site/file/source/screenshot.png',$data);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -190,7 +193,8 @@ class config extends common {
'state' => true 'state' => true
]); ]);
} }
}
/** /**
* Configuration * Configuration

View File

@ -1,3 +1,4 @@
<?php $this->makeImageTag(); ?>
<?php echo template::formOpen('configForm'); ?> <?php echo template::formOpen('configForm'); ?>
<div class="row"> <div class="row">
<div class="col2"> <div class="col2">
@ -24,25 +25,14 @@
<?php echo template::text('configTitle', [ <?php echo template::text('configTitle', [
'label' => 'Titre du site', 'label' => 'Titre du site',
'value' => $this->getData(['config', 'title']) 'value' => $this->getData(['config', 'title']),
'help' => 'Affiché dans la barre de titre et inclus lors des partages sur les réseaux sociaux'
]); ?> ]); ?>
<?php echo template::textarea('configMetaDescription', [ <?php echo template::textarea('configMetaDescription', [
'label' => 'Description du site', 'label' => 'Description du site',
'value' => $this->getData(['config', 'metaDescription']) 'value' => $this->getData(['config', 'metaDescription']),
'help' => 'La description est incluse lors des partages sur les réseaux sociaux'
]); ?> ]); ?>
<div class="row">
<div class="col6">
<?php echo template::button('configmetaImage', [
'href' => helper::baseUrl() . 'config/metaimage',
'value' => 'Rafraîchir la capture <br /> d\'écran du site'
]); ?>
</div>
<div class="col6">
<p><img src='<?php echo helper::baseUrl(false) . 'site/file/source/screenshot.png';?>' />
</div>
</div>
</div> </div>
<div class="block"> <div class="block">
<h4>Options avancées</h4> <h4>Options avancées</h4>
@ -61,24 +51,19 @@
<?php echo template::checkbox('configCookieConsent', true, 'Message de consentement pour l\'utilisation des cookies', [ <?php echo template::checkbox('configCookieConsent', true, 'Message de consentement pour l\'utilisation des cookies', [
'checked' => $this->getData(['config', 'cookieConsent']) 'checked' => $this->getData(['config', 'cookieConsent'])
]); ?> ]); ?>
<div class="row">
<div class="col6">
<?php echo template::checkbox('rewrite', true, 'Réécriture d\'URL', [ <?php echo template::checkbox('rewrite', true, 'Réécriture d\'URL', [
'checked' => helper::checkRewrite(), 'checked' => helper::checkRewrite(),
'help' => 'Afin d\'éviter de bloquer votre site pensez à vérifier que le module de réécriture d\'URL est bien actif sur votre serveur avant d\'activer cette fonctionnalité.' 'help' => 'Afin d\'éviter de bloquer votre site pensez à vérifier que le module de réécriture d\'URL est bien actif sur votre serveur avant d\'activer cette fonctionnalité.'
]); ?> ]); ?>
</div>
<div class="col6">
<?php echo template::select('ItemsperPage', $module::$ItemsList, [ <?php echo template::select('ItemsperPage', $module::$ItemsList, [
'label' => 'Pagination', 'label' => 'Pagination Blog et News',
'selected' => $this->getData(['config', 'ItemsperPage']), 'selected' => $this->getData(['config', 'ItemsperPage']),
'help' => 'Nombre d\'articles de blog ou de news par page' 'help' => 'Nombre d\'articles de blog ou de news par page'
]); ?> ]); ?>
</div> </div>
</div> </div>
</div>
</div>
<div class="col6"> <div class="col6">
<div class="block"> <div class="block">
<h4>Réseaux sociaux</h4> <h4>Réseaux sociaux</h4>
@ -159,6 +144,24 @@
</div> </div>
</div> </div>
</div> </div>
<div class="block">
<h4>Copie d'écran pour OpenGraph :</h4>
<div class="col3">
<!--
Bouton inutile
<?php echo template::button('configmetaImage', [
'href' => helper::baseUrl() . 'config/metaimage',
'value' => 'Rafraîchir la capture <br /> d\'écran du site'
]); ?>
-->
</div>
<div class="col6">
<p><img src='<?php echo helper::baseUrl(false) . 'site/file/source/screenshot.png';?>' />
</div>
<div class="col3">
</div>
<p>Cette copie d'écran est nécessaire aux partages sur les réseaux sociaux. Elle est régénérée lorsque le fichier screenshot.png est effacé du gestionnaire de fichiers.</p>
</div>
</div> </div>
</div> </div>
<?php echo template::formClose(); ?> <?php echo template::formClose(); ?>