Câu trả lời:
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.
Đặ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()); ?>
<?= /* @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.
Đặ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 © You <?php echo date('Y') ?>, All Rights Reserved.</span>
</small>
Sau đó xóa bộ nhớ cache.
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.xml
tệ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.php
trong 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ị.
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 © %1 xxx.', $year ) ) ?></span>
</small>
Đâ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->Configuration
Chọn một chủ đề Edit->footer->copyright
thêm này:
Copyright © {{year}} Magento. All rights reserved.
Làm xong!