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

11

So aktualisieren Sie das Copyright-Jahr automatisch in der Fußzeile der Website in Magento 2.

Geben Sie hier die Bildbeschreibung ein

MazeStricks
quelle

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.

Krishna ijjada
quelle
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()); ?>
Dharmendra Jadav
quelle
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.

Aaron Allen
quelle
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.

Loek de Rooij
quelle
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>
Bruce
quelle
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!

Juliano Vargas
quelle