Jak automatycznie zaktualizować do bieżącego roku w stopce Magento 2?


Odpowiedzi:


20

Jeden możliwy hack może pomóc nam dynamicznie zmodyfikować rok.

Przejdź do -> Administrator -> Ogólne, wybierz Projekt -> Rozwiń sekcję Stopka i wklej poniższy kod.

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

Usuń pamięć podręczną i sprawdź.


Cześć Dzięki za odpowiedź. Spróbuję również tego
MazeStricks,

Wykonuje to zadanie, ale muszę się zastanawiać, czy pająki w wyszukiwarkach wybiorą prawidłowy rok praw autorskich.
jschrab

2
To nie działa w 2.2.2, ponieważ nie akceptuje elementów HTML.
Juliano Vargas,

9

Umieść następującą zawartość w tym pliku:

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

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

2
Najbardziej podoba mi się to rozwiązanie - daje ci kontrolę nad tekstem, a jednocześnie elastyczność w zakresie zmiany roku praw autorskich. Aby to rozszerzyć, <?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>... ... a następnie użyj tekstu chronionego prawem autorskim „{{year}}” w stopce admin. W ten sposób mogę mieć pełną kontrolę nad tekstem wraz z rokiem automatycznej aktualizacji.
jschrab

7

Umieść następującą zawartość w tym pliku: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Następnie opróżnij pamięć podręczną.


Cześć Dzięki za to odpowiedz, spróbuję tego. Dzięki Aaron :)
MazeStricks

0

Najlepszym sposobem na to byłoby utworzenie wtyczki After w metodzie getCopyright w Magento\Theme\Block\Html\Footer. Dodanie logiki do szablonu nie jest dobrą praktyką.

Dodaj następujące elementy do niestandardowego modułu w etc/frontend/di.xmlpliku

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

utwórz Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.phpw tobie moduł:

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

Pożyczyłem wyrażenie regularne Krishny ijjada, aby pasowało do roku. Dodaje to również bieżący rok do wiadomości o prawach autorskich, dzięki czemu rok, w którym zaczęło się prawo autorskie, pozostaje widoczny.


0

Należy pomyśleć o strefie czasowej, oto moja odpowiedź ( {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

Tak bym to zrobił. nadpisać 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>

Następnie przejdź do Content->Design->ConfigurationWybierz motyw, Edit->footer->copyrightdodaj to:

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

Gotowy!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.