Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Por n0n4m3
#61538
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
Por n0n4m3
#61539
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