Como atualizar automaticamente para o ano atual no rodapé Magento 2?

11

Como atualizar automaticamente o ano dos direitos autorais na seção de rodapé do site no Magento 2.

insira a descrição da imagem aqui

MazeStricks
fonte

Respostas:

20

Um possível hack pode nos ajudar a modificar o ano dinamicamente.

Vá para -> Admin -> Geral, escolha Design -> Expanda a seção Rodapé e cole o código abaixo.

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

Remova o cache e verifique.

Krishna ijjada
fonte
Oi Obrigado pela sua resposta, vou tentar esta também #
MazeStricks
Isso faz o trabalho, mas eu tenho que me perguntar se as aranhas do site dos mecanismos de pesquisa receberão o ano correto dos direitos autorais.
jschrab
1
Isso não funciona no 2.2.2, pois não aceita elementos html.
Juliano Vargas
9

Coloque o seguinte conteúdo neste arquivo:

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

<?php /* @escapeNotVerified */ echo preg_replace('/(^|\s)(\d{4})(\s|$)/m', " ".date('Y'). " ", $block->getCopyright()); ?>
Dharmendra Jadav
fonte
2
Eu gosto dessa solução da melhor maneira - ela oferece controle sobre o texto e ainda flexibilidade para que o ano dos direitos autorais seja alterado. O que faço para estender isso é <?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>... e, em seguida, use o texto de direitos autorais "{{year}}" no rodapé do administrador. Dessa forma, eu posso ter controle total sobre o texto junto com o ano da atualização automática.
jschrab
7

Coloque o seguinte conteúdo neste arquivo: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Em seguida, limpe o cache.

Aaron Allen
fonte
Olá Obrigado por este answor Vou tentar one.Thanks este Aaron :)
MazeStricks
0

A melhor maneira de fazer isso seria criando um plug-in after no método getCopyright em Magento\Theme\Block\Html\Footer. Não é uma boa prática adicionar lógica a um modelo.

Adicione o seguinte em um módulo personalizado no etc/frontend/di.xmlarquivo

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

crie Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.phpdentro de você o módulo:

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

Peguei emprestado o regex de Krishna ijjada para combinar com o ano. Além disso, isso adiciona o ano atual na mensagem de direitos autorais para que o ano em que os direitos autorais começaram também permaneça visível.

Loek de Rooij
fonte
0

É necessário pensar no fuso horário, aqui está a minha resposta ( {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
fonte
0

É assim que eu faria. substituir 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>

Em seguida, vá para Content->Design->ConfigurationEscolha um tema e Edit->footer->copyrightadicione isto:

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

Feito!

Juliano Vargas
fonte