Як автоматично оновити до поточного року у нижньому колонтитулі Magento 2?


Відповіді:


20

Один можливий злом може допомогти нам динамічно змінювати рік.

Перейдіть до -> Адміністратор -> Загальне, виберіть Дизайн -> Розгорніть розділ "Нижній колонтитул" та вставте наведений нижче код.

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

Вийміть кеш і перевірте.


Привіт Спасибі за вашу відповідь, я спробую і цю
MazeStricks

Це робить роботу, але мені потрібно задуматися, чи павуки сайту пошукової системи підберуть правильний рік авторського права.
jschrab

2
Це не працює в 2.2.2, оскільки не приймає html-елементи.
Джуліано Варгас

9

Помістіть у цей файл такий вміст:

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

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

2
Найкраще мені подобається це рішення - воно дає вам контроль над текстом, але при цьому гнучкість змінити рік авторських прав. Що я роблю, щоб продовжити це, це <?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>... а потім використовувати "{{year}}" текст авторського права в адміністраторі нижнього колонтитула. Таким чином я можу мати повний контроль над текстом разом із роком автоматичного оновлення.
jschrab

7

Помістіть у цей файл такий вміст: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Потім промийте кеш.


Привіт Дякую за цей відповідь, я спробую це. Дякую Аарону :)
MazeStricks

0

Найкращим способом зробити це було б, створивши післяплагін на методі getCopyright в Magento\Theme\Block\Html\Footer. Недоцільно додавати логіку до шаблону.

Додайте наступне у спеціальний модуль у etc/frontend/di.xmlфайлі

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

створити Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.phpвсередині вас модуль:

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

Я запозичив регекс Кришна іджджади, щоб відповідати року. Також до цього додається поточний рік у повідомленні про авторські права, так що рік, коли розпочалися авторські права, також залишається видимим.


0

Потрібно подумати про часовий пояс, ось моя відповідь ( {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

Ось як би я це зробив. перезаписати 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>

Потім перейдіть до Content->Design->ConfigurationВибір теми, Edit->footer->copyrightдодайте це:

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

Готово!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.