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.