[Magento 2] Authentication required (repo.magento.com) lors d’un composer install

Attention: Il faut avoir un compte sur marketplace.magento.com.

En cherchant dans votre profil sur marketplace.magento.com

Récupérer le login (clé publique) et le mot de passe (clé privée) sous My Profile > My Products > Access Keys. Il sera peut-être nécessaire de générer une paire de clé.

Le Username demandé correspond à la clé publique. Le Password demandé correspond à la clé privée. Et PAS aux username et password de votre compte marketplace.magento.com!

En cherchant dans le fichier auth.json de Composer:

Aller tout à la racine de sa machine (dossier parent de « /home ») et taper:

Le résultat devrait vous afficher une ligne de ce type:

Faites:

Le fichier vous révèle les Username et Password pour repo.magento.com.

La procédure d’install va ensuite vous demander:

Do you want to store credentials for repo.magento.com in /root/.composer/auth.json ?

Si vous être sur votre machine, répondez: Y. Dans un container, répondez: n.

[Magento 2] Utilisation de before et after sur les containers dans les layout xml

Doc officielle: Layout instructions

Le truc à retenir est que les attributs before et after applicables sur les balises container et block des layouts XML de Magento 2 ont BESOIN d’un contexte pour fonctionner. Exemple:

Pas bon:

L’attribut before ne fonctionnera PAS! Votre block cart.product.slider ne s’affichera pas ou s’affichera au mauvais endroit (ou au bon endroit sur un malentendu… jusqu’à la prochaine modification de layout que vous effectuerez).

Bon:

L’attribut before fonctionnera!

Vous avez saisi la différence entre les deux samples de code ci-dessus?

La ligne <referenceContainer name="content"> précise un contexte, une parenté. Les containers cart.product.slider.container et page.bottom.container sont des enfants directs du container content.

[Magento 2] Ajouter une mise à jour de layout pour une page CMS (custom layout update)

Testé fonctionnel Magento 2.3.4 et 2.4.0.

Pour une page CMS:

Dans le code source du projet:

Le fichier à utiliser comme modèle est le suivant: vendor/magento/module-cms/view/frontend/layout/cms_page_view.xml.

Pour une page CMS, créer un fichier app/design/frontend/Vendor/theme/Magento_Cms/layout/cms_page_view_selectable_<clé d'URL>_<libellé de votre layout update tel qu'il apparaît dans le champ en BO>.xml.

Exemple: pour une page CMS dont la clé d’URL est « test-karine » (en front: https://agriculture-vitalconcept-prod.sodicloud.fr/test-karine):

Si une page avec la même clé d’URL existe sur tous vos stores: app/design/frontend/Vital/vital/Magento_Cms/layout/cms_page_view_selectable_test-karine_TestKarine.xml.

Si la page n’existe que sur un store en particulier (agriculture dans mon exemple): app/design/frontend/Vital/agriculture/Magento_Cms/layout/cms_page_view_selectable_test-karine_TestKarine.xml.

Depuis le BO:

Créer une page (dans mon exemple, dont la clé d’URL est « test-karine »)

Dans le détail de cette page, dans le volet Design, champ custom layout update, on sélectionne « TestKarine »

Pour personnaliser le contenu de la sidebar, créer un block (dans mon exemple, dont l’identifier est « block-karine »)

[Magento 2] Supprimer le supplément de prix du champ Select pour un produit configurable

Testé fonctionnel sur une version 2.3. Source: MAGENTO 2 – REMOVE PRICE FROM SELECT DROPDOWN ON CONFIGURABLE PRODUCTS.

Partie à commenter dans la surcharge que vous ferez du fichier vendor/magento/module-configurable-product/view/frontend/web/js/configurable.js dans votre thème:

[Magento 2] Utiliser action method= »setTemplate » pour surcharger un fichier PHTML dans app/code/Vendor/Module plutôt que dans un thème

Je veux surcharger app/code/Magento/LayeredNavigation/view/frontend/templates/layer/view.phtml dans app/code/NakedUi/LayeredNavigation/view/frontend/layer/view.phtml. Source: How to Override a phtml File Using a Custom Module in Magento 2.

Créer un module NakedUi_LayeredNavigation qui contient au minimum les fichiers suivants:

./registration.php

./etc/module.xml

Puis dans ./view/frontend/layout, créer les deux fichiers suivants:

catalog_category_view_type_layered.xml et catalogsearch_result_index.xml

Ne pas oublier de surcharger ./view/frontend/templates/layer/view.phtml

[Magento 2] un assistant qui surveille les changements de code et vide les caches en fonction des types de fichiers modifiés

Magento 2 Cache Clean – A faster drop in replacement for bin/magento cache:clean with a file watcher.

L’outil marchotte sans plus. Je travaille sous Linux, dans un environnement de dev Dockerisé. J’ai rencontré plusieurs problèmes avant de pouvoir l’utiliser:

Erreur « Error NOSPC »

(Si sudo n’est pas installé dans votre container (il vous le fera comprendre…)) Sortir du container et exécuter la commande: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p.

[HTML] Exploiter les microformats pour baliser une zone de contact (h-card) de la manière la plus sémantique possible

Ressources officielles sur les Microformats et outils de test en ligne

Demo

La démo comprend la sématique HTML et les microformats pour une société qui possède plusieurs agences réparties dans plusieurs villes.

Demo CodePen.io

[Ligne de commande] Utiliser grep pour manipuler des données

Rassembler les résultats d’une rechercher grep dans un nouveau fichier

Source: Output grep results to text file, need cleaner output

Compter le nombre de mots de x lettres dans un fichier TXT

Source: How can I count the amount of five letter words in a txt file using grep?

Remplacement des diacritiques (les accents, cédilles, etc… sur les lettres)

[javascript] L’équivalent ES6/vanilla JS de la méthode .eq() de jQuery

Source: Pure JS equivalent of Jquery eq().

La méthode .eq() de jQuery

La même chose en ES6/vanilla JS

[javascript] Corriger l’erreur « Uncaught TypeError: Cannot read property ‘getData’ of undefined » (ou ‘setData’) en déclarant un addEventListener correctement

Source: Ondragstart Attribute doesn’t appear when created dynamically.

En essayant de convertir la génération d’un élément TD dans le DOM avec jQuery en code vanilla JS, je me suis heurté aux erreurs suivantes:

Uncaught TypeError: Cannot read property ‘getData’ of undefined
Uncaught TypeError: Cannot read property ‘setData’ of undefined

Le code jquery de départ:

Version vanilla JS/ES6

On commence par créer l’élément TD:

Puis on lui assigne de multiples attributs (id, title, class) (source: Setting multiple attributes for an element at once with JavaScript):

(pour n’ajouter qu’un seul attribut: $row.setAttribute("class", "is-row");)

Mais pour ajouter des attributs relatifs à des événements (ondrop, ondragover, …), il faut utiliser la méthode addEventListener:

© 2020 devfrontend.info

Theme by Anders NorénUp ↑