我的自定义组件必须调用核心内容组件,并在#__content表中使用适当的值创建一个条目。当我在文章管理器中添加新文章时,我必须仅将标题作为必填字段值,并且将自动创建其他值。我想在我的自定义组件中假装这个。
答案 0 :(得分:0)
不是直接更新数据库表,而是从ContentModelArticle
加载com_content
并使用该模型创建新文章。这将为您生成alias
,根据View Access执行所有ACL等,让任何系统或内容插件查看文章并执行任何操作。
ContentModelArticle
从JModelAdmin
延伸,因此您可以使用->save($data)
方法。其中$data
是array
要绑定到ContentModelArticle
方法中的新save()
的内容。
所以,一个基本的例子是:
// Create our data with some sample code
$data['title'] = 'My Title';
$data['catid'] = 10; /* NB. this is just an example category Id obviously you'll need to provide a suitable catid for your site */
$data['articletext'] = 'Starting text...'; /* From memory you can't have an empty article.*/
// Get the Article model
$articleModel = $this->getModel('Article', 'ContentModel', array());
// Then save it:
$articleModel->save($data);
显然,您可以根据需要填充任意数量的字段,包括state
,publish_up
,publish_down
,create_by
以及其他许多字段 - 只需查看结构数据库#__content
中的内容表,以查看各个列及其类型。
注意:这是刚刚在浏览器中输入的未经测试的代码。我做了任何2.x的事情也已经有一段时间了。
最后,由于这个问题是关于Joomla的具体实施细节,如果您尝试询问the Joomla Q&A StackExhange site
,您可能会得到更好的结果