The difference between page rendering in OC < 2.0 and OC 2.
0 are only few but yo
u have to be aware of them. 1. $data In OC < 2.0 you would do this: $this->data['text_button_save'] = $this->language->get('text_button_save'); while in OC 2.0 it is only $data, i.e. $data['text_button_save'] = $this->language->get('text_button_save'); that is passed over to the $this->load->view() method as an argument, e.g.: $this->response->setOutput($this->load->view('catalog/category_list.tpl', $data) ); 2. $this->render() is gone. Now you are calling $this->load->view('catalog/category_list.tpl', $dat a) instead. 3. $this->children is gone. Now the template child modules' positions are instantiated as part of t emplate properties while you have to call their controllers manually (WHY?): $data['header'] = $this->load->controller('common/header'); $data['column_left'] = $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); I was thinking why the hell were these changes required. What has been improved? Did they want the developers to write less code? Is it now more following the O OP, MVC, WTF (sorry) principles? And got the answer: NO (or nothing to the first one). We still have to load the translations (I mean, we still have to load each singl e string translation). And gettext is out there for more than 8 years... Instead of short $this->response->setOutput($this->render()); we now have to cal l much longer (and incomprehensible) $this->response->setOutput($this->load->vie w('catalog/category_form.tpl', $data));. Why can't we just do this: $this->rende r('catalog/category_form.tpl', $data); ??? I personally think OC 2.0 is the same excrement (from the developers perspective ) as it was before. They just changed the packaging. But, honestly, there are ev en bigger excrements out there, that's why I'm stuck with OpenCart :-)