Wie kann ich in Fußzeile Magento 2 automatisch auf das aktuelle Jahr aktualisieren?


Antworten:


20

Ein möglicher Hack kann uns helfen, das Jahr dynamisch zu ändern.

Gehen Sie zu -> Admin -> Allgemein, wählen Sie Design -> Erweitern Sie den Abschnitt Fußzeile und fügen Sie den folgenden Code ein.

Copyright © <script>document.write(new Date().getFullYear())</script> Magento. All rights reserved.

Entfernen Sie den Cache und überprüfen Sie.


Hallo Danke für deine Antwort, ich werde es auch versuchen
— MazeStricks

Damit ist die Arbeit erledigt, aber ich muss mich fragen, ob Suchmaschinen-Website-Spinnen das richtige Copyright-Jahr erhalten.
— Jschrab

1
Dies funktioniert unter 2.2.2 nicht, da HTML-Elemente nicht akzeptiert werden.
— Juliano Vargas

9

Fügen Sie den folgenden Inhalt in diese Datei ein:

{theme_dir}/Magento_Theme/templates/html/copyright.phtml

<?php /* @escapeNotVerified */ echo preg_replace('/(^|\s)(\d{4})(\s|$)/m', " ".date('Y'). " ", $block->getCopyright()); ?>

2
Diese Lösung gefällt mir am besten - sie gibt Ihnen die Kontrolle über den Text und bietet dennoch Flexibilität für das Copyright-Jahr. Um dies zu erweitern, verwende ich <?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>... und verwende dann den Copyright-Text "{{year}}" in der Fußzeile. Auf diese Weise kann ich zusammen mit dem Jahr der automatischen Aktualisierung die volle Kontrolle über den Text haben.
— Jschrab

7

Fügen Sie den folgenden Inhalt in diese Datei ein: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Leeren Sie dann den Cache.


Hallo Danke für diese Antwort, ich werde es versuchen. Danke Aaron :)
— MazeStricks

0

Der beste Weg, dies zu tun, wäre das Erstellen eines After-Plugins für die getCopyright-Methode in Magento\Theme\Block\Html\Footer. Es wird nicht empfohlen, einer Vorlage Logik hinzuzufügen.

Fügen Sie Folgendes in ein benutzerdefiniertes Modul in der etc/frontend/di.xmlDatei ein

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

Erstellen Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.phpSie in Ihrem Modul:

<?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;
    }
}

Ich habe mir Krishna ijjadas Regex geliehen, um dem Jahr zu entsprechen. Außerdem wird das aktuelle Jahr in die Copyright-Nachricht eingefügt, sodass auch das Jahr, in dem das Copyright gestartet wurde, sichtbar bleibt.


0

Es ist notwendig, an die Zeitzone zu denken, hier ist meine Antwort ( {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>

0

So würde ich es machen. überschreiben 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>

Gehen Content->Design->ConfigurationSie dann zu Wählen Sie ein Thema und Edit->footer->copyrightfügen Sie Folgendes hinzu:

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

Erledigt!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.