Cómo actualizar automáticamente el año de copyright en la sección de pie de página del sitio en Magento 2.
Cómo actualizar automáticamente el año de copyright en la sección de pie de página del sitio en Magento 2.
Respuestas:
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.
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()); ?>
<?= /* @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.
Coloque los siguientes contenidos en este archivo: {theme_dir}/Magento_Theme/templates/html/copyright.phtml
<small class="copyright">
<span>Copyright © You <?php echo date('Y') ?>, All Rights Reserved.</span>
</small>
Luego, vacíe el caché.
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.xml
archivo
<?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.php
dentro 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.
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 © %1 xxx.', $year ) ) ?></span>
</small>
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->Configuration
Elegir un tema, Edit->footer->copyright
agregue esto:
Copyright © {{year}} Magento. All rights reserved.
¡Hecho!