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

11

Jak automatycznie zaktualizować rok praw autorskich w sekcji stopki witryny w Magento 2.

wprowadź opis zdjęcia tutaj

MazeStricks
źródło

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

Krishna ijjada
źródło
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()); ?>
Dharmendra Jadav
źródło
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ą.

Aaron Allen
źródło
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.

Loek de Rooij
źródło
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>
Bruce
źródło
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!

Juliano Vargas
źródło