Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v3.x.
#74795
Prezados,

Faz um bom tempo que não atualizo extensões e nem desenvolvo, estou desenvolvendo uma nova ideia que vai suprir algumas necessidades em lojas de roupas e calçados.

1ª Onde coloco os scripts SQL para criação de tabelas no momento da instalação da extensão? Antes ficava em um arquivo "install.sql", porém percebi que nessas novas versões esse arquivo não é executado. Seria uma chamada na controller em um método "install()"?

2ª Em versões anteriores eu conseguia enviar arquivos para o diretório "admin/controller/catalog", que utilizava para criar extensões que ficavam no menu catálogo, porém agora isso não é mais permitido, onde devo colocar a controller que deverá pertencer ao menu de catálogo?

Após análise do código que instala as extensões eu percebi que o OC possui diretórios específicos para escrita:
Código: Selecionar todos
// A list of allowed directories to be written to
$allowed = array(
	'admin/controller/extension/',
	'admin/language/',
	'admin/model/extension/',
	'admin/view/image/',
	'admin/view/javascript/',
	'admin/view/stylesheet/',
	'admin/view/template/extension/',
	'catalog/controller/extension/',
	'catalog/language/',
	'catalog/model/extension/',
	'catalog/view/javascript/',
	'catalog/view/theme/',
	'system/config/',
	'system/library/',
	'image/catalog/'
);
Obrigado por esses esclarecimentos.
#74814
1. Isso. O sql deve ficar no método install;

2. Você deve colocar em admin/controller/extension, devido fazer parte de uma extensão, mas nada lhe impede de usar o comando do php rename. Mas isso tem seu lado positivo, a estrutura do OC, pode ficar mais organizado.
#74815
Pois é... O problema é que estou fazendo um CRUD dentro de catalog, sem a necessidade de existir uma extensão que precisa ser ativada ou não, ai tive que criar uma extensão dentro da categoria de menus só com os comandos install() e uninstall() para executar o SQL. Seria mais viável se tivesse como executar o SQL no momento da importação da extensão :'(
#74832
E é possível rodar uma query sql ao instalar a extensão pelo instalador do opencart, é só criar um arquivo chamado install.sql ou install.php e deixar na raiz do zip no mesmo diretório do install.xml, vou da exemplo de como criar uma tabela utilizando o arquivo install.php;
Código: Selecionar todos
			$this->db->query("
			CREATE TABLE IF NOT EXISTS `".DB_PREFIX."minha_tabela` (
			`tabela_id` int(11) NOT NULL AUTO_INCREMENT,
			`name_campo_1` varchar(64) NOT NULL,
			`name_campo_2` varchar(64) NOT NULL,
			 PRIMARY KEY (`tabela_id`)
			) ENGINE=MyISAM  DEFAULT CHARSET=utf8;");	
#74834
@veteranodf, a partir da versão 3.x do OpenCart, foram as retiradas as opções de executar arquivos install.php e install.sql, para que não houvesse problemas de compatibilidade com a integração ao Marketplace, ou seja, nas versões 2.x, você pode utilizar o recurso, mas nas versões 3.x não pode. :)
Virtual gostou disso
#74835
Manoel Vidal escreveu: 18 Ago 2017, 12:48 @veteranodf, a partir da versão 3.x do OpenCart, foram as retiradas as opções de executar arquivos install.php e install.sql, para que não houvesse problemas de compatibilidade com a integração ao Marketplace, ou seja, nas versões 2.x, você pode utilizar o recurso, mas nas versões 3.x não pode. :)
@Manoel Vidal É bom saber, estou desatualizado com essa versão do opencart pois ainda não trabalho com a mesma;
#74836
Manoel Vidal escreveu: 18 Ago 2017, 12:48 @veteranodf, a partir da versão 3.x do OpenCart, foram as retiradas as opções de executar arquivos install.php e install.sql, para que não houvesse problemas de compatibilidade com a integração ao Marketplace, ou seja, nas versões 2.x, você pode utilizar o recurso, mas nas versões 3.x não pode. :)
Eu passei por esse problema... existem extensões que fazem com que a importação volte a interpretar esses arquivos na versão 3.0... Mas não queria depender de extensões de terceiros para isso.

Infelizmente a unica saída que vejo é ter que criar um php dentro de extensões só com os métodos install() e uninstall() :(

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]