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

11

Cómo actualizar automáticamente el año de copyright en la sección de pie de página del sitio en Magento 2.

ingrese la descripción de la imagen aquí

MazeStricks
fuente

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.

Krishna ijjada
fuente
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()); ?>
Dharmendra Jadav
fuente
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é.

Aaron Allen
fuente
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.

Loek de Rooij
fuente
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>
Bruce
fuente
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!

Juliano Vargas
fuente