¿Cómo actualizar automáticamente al año actual en el pie de página Magento 2?


Respuestas:


20

Un posible hack puede ayudarnos a modificar el año dinámicamente.

Vaya a -> Admin -> General, elija Diseño -> Expanda la sección Pie de página y pegue el código a continuación.

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

Retire el caché y verifique.


Hola, gracias por tu respuesta
Probaré

Esto hace el trabajo, pero tengo que preguntarme si las arañas del sitio de los motores de búsqueda recogerán el año de copyright correcto.
jschrab

1
Esto no funciona en 2.2.2 ya que no acepta elementos html.
Juliano Vargas

9

Coloque los siguientes contenidos en este archivo:

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

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

2
Esta es la solución que más me gusta: le da control sobre el texto y, sin embargo, flexibilidad para que cambie el año de copyright. Lo que hago para extender esto es <?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>... y luego uso el texto de copyright "{{año}}" en el administrador del pie de página. De esa manera puedo tener control total sobre el texto junto con el año de actualización automática.
jschrab

7

Coloque los siguientes contenidos en este archivo: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Luego, vacíe el caché.


Hola, gracias por esta respuesta. Probaré esta. Gracias Aaron :)
MazeStricks

0

La mejor manera de hacer esto sería creando un plugin after en el método getCopyright en Magento\Theme\Block\Html\Footer. No es una buena práctica agregar lógica en una plantilla.

Agregue lo siguiente en un módulo personalizado en el etc/frontend/di.xmlarchivo

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

crear Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.phpdentro de tu 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;
    }
}

Tomé prestada la expresión regular de Krishna ijjada para que coincida con el año. Además, esto agrega el año actual en el mensaje de copyright para que el año en que comenzó el copyright también permanezca visible.


0

Es necesario pensar en la zona horaria, aquí está mi respuesta ( {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

Así es como lo haría. sobrescribir 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>

Luego vaya a Content->Design->ConfigurationElegir un tema, Edit->footer->copyrightagregue esto:

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

¡Hecho!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.