Quel est le message d'erreur:
Le paramètre requis 'theme_dir' n'a pas été transmis
Est-ce lié à dans Magento 2? Et comment résoudre ce problème?
Quel est le message d'erreur:
Le paramètre requis 'theme_dir' n'a pas été transmis
Est-ce lié à dans Magento 2? Et comment résoudre ce problème?
Réponses:
Juste au cas où vous supprimeriez le thème directement (pas de manière Magento).
Puis suivez ces étapes.
Supprimez le contenu de app/design/frontend/<Vendor>
(assurez-vous de le sauvegarder en premier).
Supprimer tout le contenu du dossier var/view_preprocessed
& pub/static/frontend
.
Accédez à votre theme
table et supprimez l'entrée du thème créé.
Après ça...
Accédez à votre core_config_data
table, recherchez-la theme
et vous obtiendrez des enregistrements de chemin d'accès, comme le design/theme/theme_id
remplacement de votre identifiant de thème par défaut.
Videz votre cache php bin/magento cache:flush
Faites-moi savoir si vous rencontrez toujours des problèmes après cela.
theme
table, mais j'ai oublié la core_config_data
valeur.
setup:static-content:deploy
administrateur est retourné à l'interface utilisateur.
pub/static/.htaccess
ne pas être là. merci
Ce message d'erreur signifie que vous avez un thème configuré qui n'existe plus (pas plus) dans le système de fichiers.
Il peut être facilement corrigé en sélectionnant un thème valide. Allez à Contenu -> Configuration , sélectionnez la portée (globale, site Web, store_view) et changez le thème. Une fois que vous avez terminé, vous devez également le supprimer de Contenu -> Thèmes .
Dans mon cas, j'ai supprimé un thème enfant du répertoire des fournisseurs. Mais l'entrée DB était toujours là dans la theme
table. Allez donc à la theme
table et supprimez l'enregistrement qui pointe vers le thème supprimé.
composer remove vendor/theme
?
rm -rf vendor/theme
Assurez-vous que l' theme
entrée et l'entrée de la table magento\app\design\frontend\<Vendor>
seront les mêmes.
Sinon, cela cause ce problème.
Supprimer le thème inutile via Admin -> Contenu -> Conception -> Thèmes . Supprime-le. Donc, cela supprimera aussi DB Entry.
Si vous ne supprimez que le dossier, cela ne fonctionnera pas
Ce problème peut également se produire lorsque vous êtes dans un état émulé, par exemple dans une commande CLI. Je ne pouvais pas envoyer de courrier électronique dans l'interface de ligne de commande car la commande d'habillage s'exécutait dans un état émulé:
$this->appState->emulateAreaCode(AppArea::AREA_GLOBAL, function() {
// In this section the email was sent
});
Dans l'exemple ci-dessus, lorsque le courrier électronique tentait de déterminer son répertoire modèle, il était mappé sur global/Magento/backend
, ce qui n'existe pas. Pour résoudre ce problème, je devais l'ajouter manuellement dans mon constructeur:
/** @var \Magento\Framework\Component\ComponentRegistrarInterface $componentRegistrar */
// Make the admin theme global accessible for sending e-mails:
\Magento\Framework\Component\ComponentRegistrar::register(
'theme',
'global/Magento/backend',
$componentRegistrar->getPath('theme', 'adminhtml/Magento/backend')
);
Après ce correctif, le problème était résolu et je pouvais envoyer le courrier électronique.
Mise à jour:
Lorsqu'il s'agit d'envoyer un courrier à l'aide de la CLI, une approche plus appropriée consisterait à utiliser l'émulation. Par exemple:
/** @var Magento\Framework\App\State $state */
$state->emulateAreaCode(
'frontend',
[$this->accountManagement, 'initiatePasswordReset'],
[
$customer->getEmail(),
AccountManagement::EMAIL_REMINDER,
$customer->getWebsiteId()
]
);
De cette façon, vous n'avez pas à faire votre sale petit bidouillage.
@hakre est correct. J'ai la même erreur Required parameter 'theme_dir' was not passed
. Ci-dessous, j'explique ce que j'ai fait pour provoquer l'erreur:
Je crée un thème dans le répertoire app / design / frontend / MyVendorTheme2 / myThemeName2 , puis je le configure en sélectionnant le thème " MyVendorTheme2 - myThemeName2 " dans le navigateur Admin Magento 2 ( Boutiques> Configuration> PARAMÈTRES THÈME> GÉNÉRAL> Design> Thème de conception ). . Mais j'ai ensuite décidé de déplacer le répertoire " myThemeName2 " (contenant mon nouveau thème) pour le placer dans un autre dossier de fournisseur (existant) " MyVendorTheme1 " app / design / frontend / MyVendorTheme1 / myThemeName2 , et je l' ai supprimé du dossier " MyVendorTheme2 ". c'était avant. J'ai procédé à la compilation des actifs (c. grunt clean
-à- d . grunt exec:myThemeName2
,grunt less:myThemeName2
), puis ouvrez mon navigateur dans mon sous-domaine de thème (par exemple, http: // myvirtualhostdomain: myport / myvendortheme1_mythemename2_magento2_quickstart / ).
Au départ, j'ai eu une erreur non spécifiée:
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number:
J'ENABLED erreur de déclaration en renommant pub/errors/local.xml.sample
à local.xml
, et rafraîchi la page. On m'a alors présenté l'erreur Required parameter 'theme_dir' was not passed
.
J'ai résolu l'erreur en revenant dans le navigateur de mon administrateur Magento 2 ( Magasins> Configuration> PARAMÈTRES DU THÈME> GÉNÉRAL> Design> Thème de conception ), mon thème de conception précédent et maintenant non valide étant sélectionné, j'ai donc choisi le bon.
Cette erreur m’est arrivée lors de l’enregistrement des images du produit après l’installation d’un thème personnalisé.
J'avais le thème personnalisé défini en tant que type virtuel, c'est-à-dire dans la base de données DB de la table theme. Dans mon cas, je n'utilisais plus le thème. Je l'ai donc supprimé de la table.
1 - Utilisez la commande ci-dessous pour identifier les thèmes dans le panneau d'administration.
n98-magerun2 dev:theme:list
2 - Exécutez la commande pour identifier les thèmes installés:
ls -lha app/design/frontend/MyThemePackage/
3- Exécutez ces commandes ci-dessous pour créer le thème qui n'existe pas:
n98-magerun2 deploy:mode:set developer
n98-magerun2 dev:console
make:theme frontend MyThemePackage MyThemeName
Si rien n'a fonctionné, n'oubliez pas de vérifier la section des catégories. Il y a aussi des paramètres de conception. Assurez-vous que le bon thème de conception est attribué. Dans mon cas, l'erreur ne concernait que certaines catégories.
Vous pouvez supprimer directement le thème inutilisé de la base de données en exécutant la requête ci-dessous:
delete from theme where theme_path in ('unusedtheme');
Quand Thème Inutilisé est le thème inutilisé, et après vous clena votre cache
J'ai eu ce problème lorsque j'ai supprimé par accident le dossier app / desing / adminhtml / theme-name. Le ramener a résolu mon problème. De plus, cela ne s'est produit que lorsque j'ai essayé d'entrer dans le Panneau d'administration.
Dans certains cas, si vous supprimez le thème personnalisé de manière appropriée, vous devrez également faire face à cette erreur. Dans cette situation:
1) you have to delete that entry/row from 'theme' table.
2) set value 1 (1 for blank theme 2 for Luma what ever you want to set) against 'design/theme/theme_id'
Actualiser l'erreur de page disparue.
J'ai résolu le problème. Dans mon cas, le problème n'était pas Magento2, mais une opération fausse que j'avais effectuée il y a longtemps: j'ai créé un thème créant le chemin relatif dans app / design / frontend / MyFolder / MyTheme et l'ai enregistré comme expliqué dans la documentation en ligne de Magento 2. Ensuite, j'ai décidé d'annuler le thème et d'utiliser la commande appropriée suivante: bin / magento theme: uninstall frontend / MyFolder / MyTheme J'ai supprimé les dossiers directement. Ce n'est pas une bonne opération car la base de données n'est pas mise à jour avec les informations requises. Solution: avec un éditeur de base de données tel que phpmyadmin, supprimez l'enregistrement dans le tableau "Thème" correspondant aux dossiers supprimés. J'espère que cela aidera!
Je sais que cette question est assez ancienne, mais depuis que je suis tombée dessus aujourd'hui et que j'ai rapidement découvert quel était mon problème, j'ai décidé de poster ma réponse comme rappel à tous ceux qui, comme moi, utilisent PhpStorm pour travailler avec Magento: n'oubliez pas de consulter vos fichiers lorsque vous changez de branche.
Dans mon cas, la branche sur laquelle je travaillais ne possédait pas les fichiers de thème requis (ils ont été cachés par PhpStorm lorsque je suis passé de la branche de thème à la branche principale) car ils ne sont pas encore fusionnés. Erreur.
J'espère que cela pourrait aider quelqu'un.
supprime tous les fichiers temporaires de thème non utilisés sur le site Web et supprime également le thème ne pas utiliser et exécute le cache: flush