forked from ZwiiCMS-Team/ZwiiCMS
Génération auto du tag opengraph image
This commit is contained in:
parent
096eabdf32
commit
e4c6a15dd6
@ -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
|
||||||
*/
|
*/
|
||||||
|
@ -142,6 +142,7 @@ class config extends common {
|
|||||||
20 => '20 articles'
|
20 => '20 articles'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sauvegarde des données
|
* Sauvegarde des données
|
||||||
*/
|
*/
|
||||||
@ -171,27 +172,30 @@ 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 = 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( helper::baseUrl(false) . '/site/file/source/screenshot.png',$data);
|
|
||||||
|
|
||||||
// Valeurs en sortie
|
$googlePagespeedData = file_get_contents('https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url='. $site .'&screenshot=true&key=AIzaSyA_JOJidlWFgEiyxTlSGi2_fORgYsCZFtA');
|
||||||
$this->addOutput([
|
$googlePagespeedData = json_decode($googlePagespeedData, true);
|
||||||
'notification' => 'Image tag réinitialisée',
|
$screenshot = $googlePagespeedData['screenshot']['data'];
|
||||||
'redirect' => helper::baseUrl() . 'config',
|
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
|
||||||
'state' => true
|
$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);
|
||||||
|
|
||||||
|
// Valeurs en sortie
|
||||||
|
$this->addOutput([
|
||||||
|
'notification' => 'Image tag réinitialisée',
|
||||||
|
'redirect' => helper::baseUrl() . 'config',
|
||||||
|
'state' => true
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration
|
* Configuration
|
||||||
*/
|
*/
|
||||||
|
@ -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>
|
||||||
@ -60,23 +50,18 @@
|
|||||||
]); ?>
|
]); ?>
|
||||||
<?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'])
|
||||||
|
]); ?>
|
||||||
|
<?php echo template::checkbox('rewrite', true, 'Réécriture d\'URL', [
|
||||||
|
'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é.'
|
||||||
|
]); ?>
|
||||||
|
|
||||||
|
|
||||||
|
<?php echo template::select('ItemsperPage', $module::$ItemsList, [
|
||||||
|
'label' => 'Pagination Blog et News',
|
||||||
|
'selected' => $this->getData(['config', 'ItemsperPage']),
|
||||||
|
'help' => 'Nombre d\'articles de blog ou de news par page'
|
||||||
]); ?>
|
]); ?>
|
||||||
<div class="row">
|
|
||||||
<div class="col6">
|
|
||||||
<?php echo template::checkbox('rewrite', true, 'Réécriture d\'URL', [
|
|
||||||
'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é.'
|
|
||||||
]); ?>
|
|
||||||
</div>
|
|
||||||
<div class="col6">
|
|
||||||
<?php echo template::select('ItemsperPage', $module::$ItemsList, [
|
|
||||||
'label' => 'Pagination',
|
|
||||||
'selected' => $this->getData(['config', 'ItemsperPage']),
|
|
||||||
'help' => 'Nombre d\'articles de blog ou de news par page'
|
|
||||||
]); ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col6">
|
<div class="col6">
|
||||||
@ -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(); ?>
|
||||||
|
Loading…
Reference in New Issue
Block a user