Às vezes, é necessário substituir as classes principais para obter mais funcionalidades ou fazer com que algumas funções principais funcionem de outra maneira. Existe alguma maneira de substituir classes principais? Se possível, que problemas posso enfrentar ao substituí-los?
20
Respostas:
Sim, é possível.
Você pode usar um plug-in do sistema para substituir as classes, por favor leia este link e isto e isto
Dois problemas que você enfrentará:
você precisa substituir toda a classe (não apenas partes dela)
se o núcleo for atualizado e a classe também for atualizada / alterada, será necessário atualizar sua substituição (se necessário).
fonte
Há um tempo atrás, criei um plug-in que permite substituir as classes principais, mas ainda é vítima dos problemas que o @jackJoe apontou em sua resposta. No entanto, ele permite que você faça as substituições de forma limpa.
https://gist.github.com/dongilbert/3237387
fonte
components/com_content/models/articles.php
.Para usuários do Joomla 3 - verifique estes. Isso vai te ajudar.
Substituir classes MVC no Joomla 3
Plugin - https://github.com/ghazal/plg_mvcoverride
http://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core
Obrigado /joomla//users/270/ghazal
fonte
Eu estive nessa por muito tempo e prometi a Don que, uma vez terminado, darei mais detalhes sobre isso.
Eu precisava substituir o Joomla MVC por componentes e dizer ao Joomla para procurar substituições na minha pasta html do plugin também, não apenas dentro da pasta html do modelo.
O que eu nunca gostei é quando os desenvolvedores realmente pegam a classe padrão do Joomla e mexem com ela, então prefiro estender essa classe, se puder, em vez de frear alguma coisa.
Meu processo segue.
aqui está a imagem em vez http://prntscr.com/3d9syq
As primeiras partes do snippet abaixo estão verificando onde o usuário está, se ele está prestes a atualizar o Joomla. Estou excluindo os arquivos de classe temporária criados para garantir que recebamos novos quando a atualização for concluída, que cuida do número JackJoe. 2)
fonte