Bagaimana cara memutakhirkan secara otomatis ke tahun berjalan di footer Magento 2?

11

Cara memperbarui tahun hak cipta secara otomatis di bagian footer situs di Magento 2.

masukkan deskripsi gambar di sini

MazeStricks
sumber

Jawaban:

20

Satu peretas yang mungkin dapat membantu kita untuk memodifikasi tahun secara dinamis.

Pergi ke -> Admin -> Umum, pilih Desain -> Perluas bagian Footer dan rekatkan kode di bawah ini.

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

Hapus cache dan periksa.

Krishna ijjada
sumber
Hai Terima kasih atas jawaban Anda, saya akan mencoba yang ini juga
MazeStricks
Ini menyelesaikan pekerjaan tetapi saya harus bertanya-tanya apakah spider situs mesin pencari akan mengambil tahun hak cipta yang benar.
jschrab
2
Ini tidak berfungsi pada 2.2.2 karena tidak menerima elemen html.
Juliano Vargas
9

Tempatkan konten berikut dalam file ini:

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

<?php /* @escapeNotVerified */ echo preg_replace('/(^|\s)(\d{4})(\s|$)/m', " ".date('Y'). " ", $block->getCopyright()); ?>
Dharmendra Jadav
sumber
2
Saya suka solusi ini yang terbaik - ini memberi Anda kendali atas teks, namun fleksibilitas untuk tahun hak cipta berubah. Apa yang saya lakukan untuk memperpanjang ini adalah <?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>... dan kemudian menggunakan teks hak cipta "{{year}}" di admin footer. Dengan begitu saya dapat memiliki kontrol penuh atas teks bersama dengan tahun pembaruan otomatis.
jschrab
7

Tempatkan konten berikut dalam file ini: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Lalu siram cache.

Aaron Allen
sumber
Halo, terima kasih atas jawaban ini, saya akan mencoba yang ini. Terima kasih Aaron :)
MazeStricks
0

Cara terbaik untuk melakukan ini adalah dengan membuat plugin setelah pada metode getCopyright di Magento\Theme\Block\Html\Footer. Ini bukan praktik yang baik untuk menambahkan logika dalam templat.

Tambahkan berikut ini dalam modul khusus dalam etc/frontend/di.xmlfile

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

buat Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.phpdalam modul Anda:

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

Saya meminjam regex Krishna ijjada untuk mencocokkan tahun. Ini juga menambahkan tahun ini dalam pesan hak cipta sehingga tahun ketika hak cipta dimulai juga tetap terlihat.

Loek de Rooij
sumber
0

Perlu untuk memikirkan zona waktu, inilah jawaban saya ( {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
sumber
0

Ini bagaimana saya akan melakukannya. menimpa 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>

Lalu pergi ke Content->Design->ConfigurationPilih tema Edit->footer->copyrighttambahkan ini:

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

Selesai!

Juliano Vargas
sumber