Página 1 de 1

Criação de Módulos no OC 2.0

Enviado: 12 Ago 2015, 12:20
por n0n4m3
Fala pessoal.

Tenho experiencia na criação de módulos para ver. antiga. masssss....
Estou com dificuldades em criar uma nova tabela no banco de dados para um novo módulo na ver. 2.0 do O.C.

Não encontro módulos para exemplo, e essa documentação nao esta ajudando.
http://docs.opencart.com/developer/module/

Bem, tenho um model em admin/model/module.
Código: Selecionar todos
<?php
  
class ModelModuleTeste extends Model {

 public function createTable() {
  
      $query = $this->db->query("CREATE TABLE IF NOT EXISTS `".DB_PREFIX."teste` (
 
      `teste_orders_id` int(11) NOT NULL AUTO_INCREMENT,
      `teste_id` int(11) NOT NULL,
      `teste_name` varchar(64) NOT NULL
         PRIMARY KEY (`teste_orders_id`)
          )");
}  
  public function deleteTable() {    
    $query = $this->db->query("DROP TABLE IF EXISTS " . DB_PREFIX . "teste");   
  }
  
}
?>
E tenho um controller em /admin/controller/module :
Código: Selecionar todos
<?php
class ControllerModuleteste extends Controller {

	private $error = array(); 

  	public function install() {
   		$this->load->model('module/teste');
    	$this->model_module_teste->createTable();
  	}
  	public function uninstall() {
    	$this->load->model('module/teste');
    	$this->model_module_teste->deleteTable();
  	}

	public function index() {
		$this->load->language('module/teste');

		$this->document->setTitle($this->language->get('heading_title'));

		$this->load->model('extension/module');

		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
			if (!isset($this->request->get['module_id'])) {
				$this->model_extension_module->addModule('teste', $this->request->post);
			} else {
				$this->model_extension_module->editModule($this->request->get['module_id'], $this->request->post);
			}

			$this->session->data['success'] = $this->language->get('text_success');

			$this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'));
		}

		// BOF LANGUAGE 
		$data['heading_title'] = $this->language->get('heading_title');
		$data['text_edit'] = $this->language->get('text_edit');
		$data['text_enabled'] = $this->language->get('text_enabled');
		$data['text_disabled'] = $this->language->get('text_disabled');
		$data['button_save'] = $this->language->get('button_save');
		$data['button_cancel'] = $this->language->get('button_cancel');
		$data['text_module'] = $this->language->get('text_module');		
		// EOF LANGUAGE 

		// BOF ERROR MSG 
		if (isset($this->error['warning'])) {
			$data['error_warning'] = $this->error['warning'];
		} else {
			$data['error_warning'] = '';
		}
		// EOF ERROR MSG

		// BOF breadcrumbs
		$data['breadcrumbs'] = array();

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_home'),
			'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_module'),
			'href' => $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')
		);

		if (!isset($this->request->get['module_id'])) {
			$data['breadcrumbs'][] = array(
				'text' => $this->language->get('heading_title'),
				'href' => $this->url->link('module/teste', 'token=' . $this->session->data['token'], 'SSL')
			);
		} else {
			$data['breadcrumbs'][] = array(
				'text' => $this->language->get('heading_title'),
				'href' => $this->url->link('module/teste', 'token=' . $this->session->data['token'] . '&module_id=' . $this->request->get['module_id'], 'SSL')
			);
		}
		// EOF breadcrumbs

		if (!isset($this->request->get['module_id'])) {
			$data['action'] = $this->url->link('module/teste', 'token=' . $this->session->data['token'], 'SSL');
		} else {
			$data['action'] = $this->url->link('module/teste', 'token=' . $this->session->data['token'] . '&module_id=' . $this->request->get['module_id'], 'SSL');
		}

		$data['cancel'] = $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL');

		if (isset($this->request->get['module_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {
			$module_info = $this->model_extension_module->getModule($this->request->get['module_id']);
		}

		$data['token'] = $this->session->data['token'];
		$data['header'] = $this->load->controller('common/header');
		$data['column_left'] = $this->load->controller('common/column_left');
		$data['footer'] = $this->load->controller('common/footer');

		$this->response->setOutput($this->load->view('module/teste.tpl', $data));
	
	}

	protected function validate() {
		if (!$this->user->hasPermission('modify', 'module/teste')) {
			$this->error['warning'] = $this->language->get('error_permission');
		}

		return !$this->error;
	}
}

Alguem pode me mostrar o caminho ????

Obrigado! [ ] 's

Re: Criação de Módulos no OC 2.0

Enviado: 12 Ago 2015, 12:33
por n0n4m3
Pessoal.

Achei o erro!!! uma virgula no final ! :/

Antes:
`teste_name` varchar(64) NOT NULL

Depois:
`teste_name` varchar(64) NOT NULL,

Me comprometo a montar um modulo teste/demo para o OC 2.0 depois desta.
Sem palavras ! Just Fun ! : ))))

[ ] 's

Re: Criação de Módulos no OC 2.0

Enviado: 17 Set 2015, 14:10
por maskdevil
Recomendo a aplicação via VQMOD, uma vez que a próxima versão do OC vai estar tudo diferente pelo que eu andei lendo por ai...