Come aggiornare automaticamente l'anno del copyright nella sezione piè di pagina del sito in Magento 2.
Come aggiornare automaticamente l'anno del copyright nella sezione piè di pagina del sito in Magento 2.
Risposte:
Un possibile hack può aiutarci a modificare l'anno in modo dinamico.
Vai a -> Amministratore -> Generale, scegli Design -> Espandi la sezione Piè di pagina e incolla il codice seguente.
Copyright © <script>document.write(new Date().getFullYear())</script> Magento. All rights reserved.
Rimuovere la cache e controllare.
Inserire i seguenti contenuti in questo file:
{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()) ?>
... e quindi utilizzare il testo di copyright "{{year}}" nell'amministratore del piè di pagina. In questo modo posso avere il pieno controllo del testo insieme all'anno di aggiornamento automatico.
Inserire i seguenti contenuti in questo file: {theme_dir}/Magento_Theme/templates/html/copyright.phtml
<small class="copyright">
<span>Copyright © You <?php echo date('Y') ?>, All Rights Reserved.</span>
</small>
Quindi svuota la cache.
Il modo migliore per farlo sarebbe creare un plugin after sul metodo getCopyright in Magento\Theme\Block\Html\Footer
. Non è buona pratica aggiungere la logica in un modello.
Aggiungi quanto segue in un modulo personalizzato nel etc/frontend/di.xml
file
<?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>
crea Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.php
nel tuo modulo:
<?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;
}
}
Ho preso in prestito la regex di Krishna ijjada per far coincidere l'anno. Inoltre, questo aggiunge l'anno corrente nel messaggio sul copyright in modo che anche l'anno di inizio del copyright rimanga visibile.
È necessario pensare al fuso orario, ecco la mia risposta ( {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>
Ecco come lo farei. sovrascrivere 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>
Quindi vai a Content->Design->Configuration
Scegli un tema Edit->footer->copyright
aggiungi questo:
Copyright © {{year}} Magento. All rights reserved.
Fatto!