Comment mettre à jour automatiquement l'année en cours dans le pied de page Magento 2?

11

Comment mettre à jour automatiquement l'année du droit d'auteur dans la section pied de page du site dans Magento 2.

entrez la description de l'image ici

MazeStricks
la source

Réponses:

20

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.

Krishna ijjada
la source
Salut Merci pour votre réponse, je vais essayer celui-ci aussi
MazeStricks
Cela fait le travail, mais je dois me demander si les araignées du site des moteurs de recherche choisiront la bonne année de copyright.
jschrab
2
Cela ne fonctionne pas sur 2.2.2 car il n'accepte pas les éléments html.
Juliano Vargas
9

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()); ?>
Dharmendra Jadav
la source
2
J'aime le mieux cette solution - elle vous donne le contrôle sur le texte, mais la flexibilité pour que l'année du droit d'auteur change. Ce que je fais pour étendre ceci est <?= /* @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.
jschrab
7

Placez le contenu suivant dans ce fichier: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

<small class="copyright">
    <span>Copyright &copy; You <?php echo date('Y') ?>, All Rights Reserved.</span>
</small>

Vider ensuite le cache.

Aaron Allen
la source
Bonjour Merci pour cette réponse, je vais essayer celle-ci.Merci Aaron :)
MazeStricks
0

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.xmlfichier

<?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.phpen 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.

Loek de Rooij
la source
0

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 &copy; %1 xxx.', $year ) ) ?></span>
</small>
Bruce
la source
0

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->ConfigurationChoisir un thème, Edit->footer->copyrightajoutez ceci:

Copyright © {{year}} Magento. All rights reserved.

Terminé!

Juliano Vargas
la source