Ajout d'une page d'administration sur OpenCart version 2
Je suis havin un problème de l'ajout d'une page d'administration pour Opencart2, et suivant les réponses sur à peu près identiques, les questions sur AFIN de ne pas l'aider, alors je crois que le problème est spécifique à OC2.
À la suite de la réponse à cette question je reçois toujours le message d'erreur "Fatal error: Call to undefined method ControllerCustomHelloWorld::render() dans C:\websites\weddingshoponline\shop\admin\controller\custom\helloworld.php sur la ligne 13. Toute aide serait grandement appréciée, comme je l'ai été de tourner en rond.
Merci.
PS de Revenir à une version précédente d'OC n'est pas de réponse valide, mais un bon.
- En OC2 vous n'êtes plus en appelant
$this->render()
. Le problème, c'est que vous avez suivi le tutoriel/répondre applicable pour l'OC < 2.0. Jetez un oeil à d'autres contrôleurs OC 2.0 pour savoir comment le rendu de la page est terminé (fondamentalement, il n'ya aucun, vous ne définissez les variables pour le rendu du modèle, le contenu du module de positions, en fait). - Yup, je l'ai fait merci pour la réponse. Il l'a fait apparaître un nouveau problème avec l' $header $et de pied de page de variables non déclarées, mais j'espérais ne pas avoir à slog de ça car j'ai encore du chemin à faire avec la création d'un nouveau module dans oc2.
- Je ne voulais pas l'écrire ici, mais pourquoi pas SI manque de bonnes questions et les bonnes réponses... Vérifier ma réponse.
- Oui, pourquoi pas? Votre réponse est correcte, et j'ai terminé l'ajout d'une simple page d'administration. Votre réponse est à peu près correct, donc je vais accepter en tant que telle et d'afficher les fichiers de travail comme un échantillon dans un mo'. J'étais tout simplement doff sur l' $headers/$pieds de page de commentaire.
Vous devez vous connecter pour publier un commentaire.
La différence entre le rendu de la page dans l'OC < 2.0 et OC 2.0 ne sont que quelques-uns, mais vous devez être au courant d'entre eux.
1.
$data
Dans l'OC < 2.0 vous voulez faire cela:
tandis que dans d'OC 2.0, il est seulement
$data
, c'est à direqui est passé au-dessus de la
$this->load->view()
méthode comme un argument, par exemple:2.
$this->render()
est allé. Maintenant que vous appelez
$this->load->view('catalog/category_list.tpl', $data)
à la place.3.
$this->children
est allé. Maintenant, le modèle de l'enfant des modules de postes sont instanciés dans le cadre de propriétés du modèle lorsque vous appelez leurs contrôleurs manuellement (POURQUOI?):
Je pensais pourquoi diable ces changements ont été nécessaires. Ce qui a été amélioré? Voulaient-ils les développeurs d'écrire moins de code? Il est maintenant de plus à la suite de la POO, MVC, WTF (désolé) principes? Et j'ai la réponse: PAS (ou rien à la première).
Nous avons encore à charge les traductions (je veux dire, nous avons encore à charge de chaque chaîne unique de traduction). Et
gettext
est là depuis plus de 8 ans...Au lieu de courte
$this->response->setOutput($this->render());
nous avons maintenant à appeler beaucoup plus de temps (et incompréhensible)$this->response->setOutput($this->load->view('catalog/category_form.tpl', $data));
. Pourquoi ne peut-on pas faire cela:$this->render('catalog/category_form.tpl', $data);
???Personnellement, je pense OC 2.0 est la même excréments (de la part des développeurs point de vue) comme il était avant. Ils ont juste changé le emballage. Mais, honnêtement, il y a encore plus excréments là-bas, c'est pourquoi je suis coincé avec OpenCart 🙂
D'élaborer sur shadyyx la réponse à la question ci-joint le code que j'ai obtenu de travail... je ne dis pas que c'est parfait, ça fonctionne.
admin\controller\custom\helloworld.php
admin\language\english\custom\helloworld.php
admin\model\custom\helloworld.php
admin\view\template\custom\helloworld.php