Magento 2 altbilgisinde geçerli yıla otomatik güncelleme nasıl yapılır?


Yanıtlar:


20

Olası bir hack, yılı dinamik olarak değiştirmemize yardımcı olabilir.

-> Yönetici -> Genel'e gidin, Tasarım -> Altbilgi bölümünü genişletin ve aşağıdaki kodu yapıştırın.

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

Önbelleği kaldırın ve kontrol edin.


Merhaba Cevabınız için teşekkürler Bunu da deneyeceğim
MazeStricks

Bu iş yapılır ama arama motoru sitesi örümcekler doğru telif hakkı yıl alacak olup olmadığını merak etmek zorunda.
jschrab

2
Html öğelerini kabul etmediğinden 2.2.2 üzerinde çalışmaz.
Juliano Vargas

9

Aşağıdaki içeriği bu dosyaya yerleştirin:

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

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

2
Bu çözümü en çok sevdim - metin üzerinde kontrol sahibi olmanızı sağlar, ancak telif hakkı yılının değişmesi için esneklik sağlar. Bunu genişletmek için yaptığım şey <?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>... ve sonra altbilgi yöneticisinde "{{year}}" telif hakkı metnini kullanmak. Bu şekilde otomatik güncelleme yılıyla birlikte metin üzerinde tam kontrole sahip olabilirim.
jschrab

7

Aşağıdaki içeriği bu dosyaya yerleştirin: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Ardından önbelleği yıkayın.


Merhaba Bu cevap için teşekkürler Bunu deneyeceğim.Teşekkürler Aaron :)
MazeStricks

0

Bunu yapmanın en iyi yolu, getCopyright yönteminde bir after eklentisi oluşturmaktır Magento\Theme\Block\Html\Footer. Bir şablona mantık eklemek iyi bir uygulama değildir.

Aşağıdakileri etc/frontend/di.xmldosyadaki özel bir modüle ekleyin

<?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.phpiçinde oluşturmak modülü:

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

Krishna ijjada'nın regex'ini yılla eşleşecek şekilde ödünç aldım. Ayrıca bu, telif hakkı mesajına geçerli yılı ekler, böylece telif hakkının başladığı yıl da görünür kalır.


0

Saat dilimini düşünmek gerekiyor, işte cevabım ( {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

Ben böyle yapardım. üzerine yazma 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>

Ardından Content->Design->ConfigurationBir tema seçin bölümüne gidin ve şunu Edit->footer->copyrightekleyin:

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

Bitti!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.