Làm cách nào để tự động cập nhật cho năm hiện tại trong footer Magento 2?


Câu trả lời:


20

Một hack có thể giúp chúng ta sửa đổi năm một cách linh hoạt.

Chuyển đến -> Quản trị viên -> Chung, chọn Thiết kế -> Mở rộng phần Chân trang và dán mã bên dưới.

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

Xóa bộ nhớ cache và kiểm tra.


Xin chào Cảm ơn câu trả lời của bạn Tôi cũng sẽ thử cái này
MazeStricks

Điều này hoàn thành công việc nhưng tôi phải tự hỏi liệu trình thu thập trang web của công cụ tìm kiếm có chọn đúng năm bản quyền hay không.
jschrab

1
Điều này không hoạt động trên 2.2.2 vì nó không chấp nhận các phần tử html.
Juliano Vargas

9

Đặt các nội dung sau trong tập tin này:

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

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

2
Tôi thích giải pháp này tốt nhất - nó cho phép bạn kiểm soát văn bản, nhưng linh hoạt để năm bản quyền thay đổi. Những gì tôi làm để mở rộng điều này là <?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>... và sau đó sử dụng văn bản bản quyền "{{năm}}" trong quản trị viên chân trang. Bằng cách đó tôi có thể có toàn quyền kiểm soát văn bản cùng với năm cập nhật tự động.
jschrab

7

Đặt các nội dung sau trong tập tin này: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Sau đó xóa bộ nhớ cache.


Xin chào Cảm ơn câu trả lời này Tôi sẽ thử cái này. Cảm ơn Aaron :)
MazeStricks

0

Cách tốt nhất để làm điều này là bằng cách tạo một plugin sau trên phương thức getCopyright Magento\Theme\Block\Html\Footer. Nó không phải là thực hành tốt để thêm logic trong một mẫu.

Thêm phần sau vào mô-đun tùy chỉnh trong etc/frontend/di.xmltệp

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

tạo Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.phptrong mô-đun của bạn:

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

Tôi đã mượn regex của Krishna ijjada để phù hợp với năm. Ngoài ra, điều này thêm năm hiện tại trong thông báo bản quyền để năm bắt đầu bản quyền cũng được hiển thị.


0

Cần phải nghĩ về múi giờ, đây là câu trả lời của tôi ( {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

Đây là cách tôi sẽ làm điều đó. ghi đè 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>

Sau đó, đi đến Content->Design->ConfigurationChọn một chủ đề Edit->footer->copyrightthêm này:

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

Làm xong!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.