Archives de catégorie : Tuto

Magento 2 : Date erronée sur les facture pdf

Après avoir mis à jour Magento, j’ai eu une drôle de surprise en imprimant des factures.

D’ailleurs, je ne l’ai même pas vu tout de suite, mais j’ai fini par m’en apercevoir et heureusement. Car Magento est parti dans le futur.

date erronée

Et alors il n’y a rien du tout de bon, ni le jour, ni le mois et encore moins l’année.

Une date erronée ,c’est vraiment très surprenant comme erreur.

Mais ça va, il y a juste à modifier un fichier pour corriger le problème.

Il s’agit du fichier Timezone.php qui se trouve : /vendor/magento/framework/Stdlib/DateTime/Timezone.php

N’oubliez pas de faire une sauvegarde de votre fichier.

Allez vers la ligne 196 et commentez (ou supprimer cette fonction) :

public function scopeDate($scope = null, $date = null, $includeTime = false)
    {
        $timezone = new \DateTimeZone(
            $this->_scopeConfig->getValue($this->getDefaultTimezonePath(), $this->_scopeType, $scope)
        );
        switch (true) {
            case (empty($date)):
                $date = new \DateTime('now', $timezone);
                break;
            case ($date instanceof \DateTime):
            case ($date instanceof \DateTimeImmutable):
                $date = $date->setTimezone($timezone);
                break;
            case (!is_numeric($date)):
                $timeType = $includeTime ? \IntlDateFormatter::SHORT : \IntlDateFormatter::NONE;
                $formatter = new \IntlDateFormatter(
                    $this->_localeResolver->getLocale(),
                    \IntlDateFormatter::SHORT,
                    $timeType,
                    $timezone
                );
                $timestamp = $formatter->parse($date);
                $date = $timestamp
                    ? (new \DateTime('@' . $timestamp))->setTimezone($timezone)
                    : new \DateTime($date, $timezone);
                break;
            case (is_numeric($date)):
                $date = new \DateTime('@' . $date);
                $date = $date->setTimezone($timezone);
                break;
            default:
                $date = new \DateTime($date, $timezone);
				$date = new \DateTime(is_numeric($date) ? '@' . $date : $date);
                $date->setTimezone($timezone);
                break;
        }

        if (!$includeTime) {
            $date->setTime(0, 0, 0);
        }

        return $date;
    }

Et remplacez là par cette fonction :

public function scopeDate($scope = null, $date = null, $includeTime = false)
{
    $timezone = new \DateTimeZone(
        $this->_scopeConfig->getValue($this->getDefaultTimezonePath(), $this->_scopeType, $scope)
    );
    switch (true) {
        case (empty($date)):
            $date = new \DateTime('now', $timezone);
            break;
        case ($date instanceof \DateTime):
        case ($date instanceof \DateTimeImmutable):
            $date = $date->setTimezone($timezone);
            break;
        default:
            $date = new \DateTime(is_numeric($date) ? '@' . $date : $date);
            $date->setTimezone($timezone);
            break;
    }
 
    if (!$includeTime) {
        $date->setTime(0, 0, 0);
    }
 
    return $date;
}

Et c’est tout, fini la date erronée, la bonne date est revenue.

date erronée

Créer des mots de passe faciles à retenir

Si vous passez beaucoup de temps sur le net, vous savez très bien qu’il faut des mots de passe pour quasiment tout, que ce soit pour les sites administratifs, les réseaux sociaux, les sites de jeux…etc….

mots de passe faciles à retenir

Et comme beaucoup, on a tendance à utiliser un mot de passe facile à retenir, comme une année de naissance, le prénom d’un enfant ou d’un animal….etc…

Et qui dit mots de passe faciles à retenir dit aussi mot de passe facile à trouver.

Il y a aussi la méthode de les écrire dans un carnet ou un fichier, mais si ce document tombe entre de mauvaises mains (et des fois elles ne sont pas aussi loin qu’on le croit), c’est bingo pour la personne malintentionnée.

La méthode

Bref, il existe une méthode toute simple pour créer des mots de passe différents pour chaque site et plus compliqués à trouver que le prénom du petit dernier 🙂

Pour qu’un mot de passe soit difficile à trouver, il faut qu’il y ait un mélange de lettres, de chiffres et si possible de caractères spéciaux, comme par exemple un tiret.

Je vais vous montrer une méthode simple, mais il en existe des tas d’autres plus ou moins compliquées.

Après c’est à vous de travailler avec la méthode qui vous convient le mieux.

Le mot-clé :

La première étape consiste à choisir un mot clé.

Le mot clé, c’est le mot que vous utiliserez à chaque fois.

Il doit être facile à retenir, mais ce mot ne doit pas être un mot familier pour vous, donc évitez un prénom ou une marque favorite.

Choisissez plutôt un mot qui n’a rien à voir avec vous, mais que vous allez quand même pouvoir retenir facilement.

Vous pouvez prendre le nom d’un objet, un verbe, un adjectif, ce que vous voulez.

Mais ce mot clé gardez-vous bien de le dire à qui que ce soit, gardez le pour vous.

Pour l’exemple, je vais utiliser  le mot « boulet ».

Le nom du site :

Pour la deuxième étape, on va travailler avec le nom du site.

Par exemple, facebook.

A partir de là il y a différentes méthodes, on peut soit :

  • garder le nom du site en entier : facebook
  • Ne prendre que les 4 premières lettre : face
  • Ne prendre que les 4 dernières lettres : book
  • Ne garder que les consonnes : fcbk
  • Ne garder que les voyelles : aeoo
  • ….etc…

Vous pouvez faire tout ce que vous voulez, le tout étant de se mettre d’accord sur une méthode dès le départ.

Pour notre exemple, on va prendre les consonnes (fcbk).

Les caractères spéciaux :

Pour les caractères spéciaux, c’est un peu plus délicat, car tous les sites ne les accepteront pas forcément, alors pour cet exemple, je vais utiliser les classiques « – » (tiret du 6) et « _ » (tiret du 8).

Le nombre :

 Tout comme le mot clé, le nombre ne doit pas être quelque chose de personnel, sauf si vous mélangez les chiffres.

Si par exemple vous êtes nés en 1982, vous pourriez prendre 2891, ou 8219 ou 1298, ou 2981 ….. il y a beaucoup de combinaison.

Pour mon exemple, je vais partir de l’année 2014, et prendre comme chiffre-clé le 4102.

Le mot de passe final :

Une fois qu’on a tout ce qu’il nous faut, il n’y a plus qu’a définir l’ordre d’utilisation.

Pour notre exemple, on va utiliser :

motclé-nomdusite_nombre

Ce qui donnerait : boulet-fcbk_4102

 Je suis d’accord, que cette méthode n’est pas infaillible mais en tout cas, elle sera un peu (et même beaucoup) plus sûre que si vous utilisiez des mots de passes identiques partout du style « 123456 » ou « azerty » 🙂

Il est très important de diversifier ses mots de passe, et dans l’idéal d’en avoir un différent par site.

Vous savez maintenant comment faire pour créer des mots de passe faciles à retenir.

Au boulot !! 🙂

VPS OVH : ajout d’un sous-domaine

L’ajout d’un sous-domaine se fait exactement de la même manière qu’un autre domaine.

Avec les virtuals host c’est super facile.

Redirection ovh

Avant toute chose, il faudra aller dans votre espace client pour ajouter une entrée dans les redirections de votre domaine.

Entrer le nom de votre sous-domaine et choisissez une redirection vers un serveur ovh.

Ensuite, choisissez une adresse ip.

Et à l’étape suivante, il vous suffira d’entrer l’adresse ip de votre vps.

Ensuite il ne reste plus qu’à attendre 24h la propagation.

Virtual Hosts

Commencez par créer un dossier avec le nom de votre sous-domaine dans var/www/html soit via un logiciel ftp soit en ligne de commande.

Ensuite, rendez vous dans /etc/apache2/sites-available/ et copier le fichier default pour lui donner le nom de votre sous-domaine (le même que le dossier que vous avez crée).

Dans mon cas c’est :

cp 000-default.conf xxx.astuciosites.com.conf

Ensuite, éditez le nouveau fichier.

nano xxx.astuciosites.com.conf

et dedans, mettez y les infos suivantes :

  ServerAdmin mail@astuciosites.com
  ServerName xxx.astuciosites.com
  ServerAlias www.xxx.astuciosites.com
  DocumentRoot /var/www/html/xxx.astuciosites.com

Ce fichier pourra contenir d’autres infos selon vos besoin. Vous pourrez le modifier plus tard.

Ensuite il ne reste plus qu’à activer le sous-domaine :

a2ensite xxx.astuciosites.com

Et à redémarrer apache :

systemctl restart apache2

Et voilà ! c’est prêt !!

Magento 2 : erreur 404 fichiers jquery-ui-modules

Ce que je vais vous donner là, ce n’est pas du tout une solution définitive ou un tuto, c’est simplement une solution de dépannage en attendant de trouver ce qui se passe.

Je suis quasiment sûre que cette erreur est due à un problème de lien symbolique et/ou de configuration d’une extension. mais pour l’instant, je n’ai pas encore trouvé laquelle.

Pour pouvoir continuer à travailler, voilà une petite astuce pour que vos scripts fonctionnent. Mais attention, cette astuce ne fonctionnera que jusqu’au prochain déploiement.

Donc ce qui se passe, c’est que les scripts se trouvent actuellement dans :

pub/static/fronted/votre-theme/fr_FR/jquery/ui-modules

Mais tout à coup, ils sont cherchés dans un dossier appelé « jquery-ui-modules »

Il suffit donc de copier le dossier « ui-modules » et de le renommer en « jquery-ui-modules » et de le mettre à l’emplacement ou il est manquant.

Il faut faire la même chose dans pub/static/adminhtml/Magento/backend/fr_FR/

Si vous passez par là et que vous connaissez la solution, n’hésitez pas à m’en faire part. 🙂

Solution qui fonctionne dans Magento 2.3