我是joomla的初学者。我创建自己的组件,并希望使用其他组件(完全是contentbuilder)的模型。 我找到了几种不同的方法来创建模型但我的问题是
class ContentbuilderModelEdit扩展了JModel
在其中使用JPATH_COMPONENT_ADMINISTRATOR。当我创建模型ContentbuilderModelEdit时,我会在使用JPATH_COMPONENT_ADMINISTRATOR常量的行中收到警告。
是否可以使用其他组件中的常量创建模型?
感谢您的回答
答案 0 :(得分:2)
唉不。 JPATH_COMPONENT
和JPATH_COMPONENT_ADMINISTRATOR
是defined
常量,无法更改。
有时开发人员本能地(很容易)这样做,却没有意识到他们对其他开发人员的限制。您可以考虑联系开发人员并提出此类更改;如果他们接受,你就赢了;如果他们不这样做,请编写执行更改的sed
脚本(将其替换为JPATH_SITE
和JPATH_ADMINISTRATOR . '/components/com_contentbuilder'
,并在每次更新后应用它。
或者,将他们的模型复制到您的组件中,如果它支持它,则重命名它。
答案 1 :(得分:0)
:)
要从另一个组件调用模型,首先需要包含此模型的路径:
JModelLegacy::addIncludePath(JPATH_SITE . '/components/comp1/models', 'Comp1Model');
其次,您必须创建模型的实例:
$model = JModelLegacy::getInstance('Model1', 'Comp1Model');
之后,您应该可以使用模型的方法。