Comment mettre à jour automatiquement l'année du droit d'auteur dans la section pied de page du site dans Magento 2.
Comment mettre à jour automatiquement l'année du droit d'auteur dans la section pied de page du site dans Magento 2.
Réponses:
Un hack possible peut nous aider à modifier dynamiquement l'année.
Allez dans -> Admin -> Général, choisissez Conception -> Développez la section Pied de page et collez le code ci-dessous.
Copyright © <script>document.write(new Date().getFullYear())</script> Magento. All rights reserved.
Retirez le cache et vérifiez.
Placez le contenu suivant dans ce fichier:
{theme_dir}/Magento_Theme/templates/html/copyright.phtml
<?php /* @escapeNotVerified */ echo preg_replace('/(^|\s)(\d{4})(\s|$)/m', " ".date('Y'). " ", $block->getCopyright()); ?>
<?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>
... puis utiliser le texte de copyright "{{year}}" dans l'administrateur du pied de page. De cette façon, je peux avoir un contrôle total sur le texte avec l'année de mise à jour automatique.
Placez le contenu suivant dans ce fichier: {theme_dir}/Magento_Theme/templates/html/copyright.phtml
<small class="copyright">
<span>Copyright © You <?php echo date('Y') ?>, All Rights Reserved.</span>
</small>
Vider ensuite le cache.
La meilleure façon de le faire serait de créer un plugin after sur la méthode getCopyright dans Magento\Theme\Block\Html\Footer
. Il n'est pas recommandé d'ajouter de la logique dans un modèle.
Ajoutez ce qui suit dans un module personnalisé dans le etc/frontend/di.xml
fichier
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Theme\Block\Html\Footer">
<plugin name="Vendor_Module::UpdateCopyrightWithCurrentYear" type="Vendor\Module\Plugin\Theme\Block\Html\Footer\UpdateCopyrightWithCurrentYear" />
</type>
</config>
créez Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.php
en vous le module:
<?php
namespace Vendor\Module\Plugin\Theme\Block\Html\Footer;
use Magento\Theme\Block\Html\Footer;
class UpdateCopyrightWithCurrentYear
{
/**
* @param Footer $subject
* @param string $result
* @return string $result
*/
public function afterGetCopyright(Footer $subject, $result)
{
$result = preg_replace_callback(
'/(^|\s)(\d{4})(\s|$)/m',
function($matches) {
return $matches[2] != date('Y')?$matches[1] . $matches[2].' - '.date('Y') . $matches[3]:$matches[0];
},
$result);
return $result;
}
}
J'ai emprunté l'expression régulière de Krishna ijjada pour correspondre à l'année. Cela ajoute également l'année en cours dans le message de copyright afin que l'année de début du copyright reste également visible.
Il faut penser au fuseau horaire, voici ma réponse ( {theme_dir}/Magento_Theme/templates/html/copyright.phtml
):
<?php
/* @var $block \Magento\Theme\Block\Html\Footer */
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
$year = ObjectManager::getInstance()->get( TimezoneInterface::class )->date()->format( 'Y' );
?>
<small class="copyright">
<span><?= /* @escapeNotVerified */ $block->escapeHtml( __( 'Copyright © %1 xxx.', $year ) ) ?></span>
</small>
Voilà comment je le ferais. écraser copyright.phtml
:
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
?>
<small class="copyright">
<span><?= /* @escapeNotVerified */ str_replace ( '{{year}}', date('Y'), $block->getCopyright()) ?></span>
</small>
Ensuite, allez sur Content->Design->Configuration
Choisir un thème, Edit->footer->copyright
ajoutez ceci:
Copyright © {{year}} Magento. All rights reserved.
Terminé!