Come eseguire l'aggiornamento automatico dell'anno corrente nel piè di pagina Magento 2?


Risposte:


20

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.


Ciao, grazie per la tua risposta, proverò anche questo
MazeStricks,

Questo porta a termine il lavoro, ma devo chiedermi se i ragni del sito dei motori di ricerca prenderanno l'anno del copyright corretto.
jschrab,

2
Questo non funziona su 2.2.2 in quanto non accetta elementi html.
Juliano Vargas,

9

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()); ?>

2
Mi piace al meglio questa soluzione: ti dà il controllo sul testo, ma la flessibilità per l'anno del copyright cambia. Quello che faccio per estenderlo è <?= /* @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.
jschrab,

7

Inserire i seguenti contenuti in questo file: {theme_dir}/Magento_Theme/templates/html/copyright.phtml

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

Quindi svuota la cache.


Ciao Grazie per questa risposta, lo proverò. Grazie Aaron :)
MazeStricks,

0

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.xmlfile

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


0

È 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 &copy; %1 xxx.', $year ) ) ?></span>
</small>

0

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->ConfigurationScegli un tema Edit->footer->copyrightaggiungi questo:

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

Fatto!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.