我想用php添加一篇K2文章到一个joomla数据库。我可以在文章表中添加一条记录吗?或者我是否还需要更新任何其他表格? 我有一些关于PHP和mySQL的基础知识,但我希望能够在正确的方向上轻推正确的语法来实现这一目标。
非常感谢, 哈坎
答案 0 :(得分:2)
我正在做同样的事情但是在K2项目保存(不是K2中已经保存的项目)。这样我就可以将K2中的项目复制到joomla中的文章中,只需点击一下保存在K2项目创建面板上。
K2中的“项目”是Joomla中的“文章”。
我使用我在本文中提到的过程覆盖核心K2>的 Joomla - Overriding getItem method 强>
然后我找到了K2保存文章的位置,如此帖子>的 Joomla - Where is the code in K2 which saves a new item's Title and alias 强>
现在,我的下一步是将一个代码添加到覆盖文件(K2的models \ item.php)save()函数中,以便将相同的K2项目保存到joomla com_content表中。您将在我提到的帖子中找到所有信息。如果某些事情不明确,请留下评论,以便我可以恢复查询。
祝你好运!
答案 1 :(得分:0)
对于Joomla 1.6或更高版本中的文章,您还必须在资产表中有一个条目,并且必须使用JTableContent中的方法正确创建它。
答案 2 :(得分:0)
我在Joomla 2.5及更高版本中已经多次这样做了。只需将结构合理的行插入Joomla数据库的k2_items表即可。但是,您需要确保添加的每个新行都具有正确递增的ID。这是一个例子:
$data =new stdClass();
$data->id = null;
$data->title = $title;
$temp = strtolower($data->title);
$data->alias = str_replace(' ', '-', $temp);
$data->catid = $catid;
$data->published = 1;
$data->introtext = $introtext;
$data->fulltext = $fulltext;
对所有其他K2字段(其中有一堆)执行相同的操作,直到您最终编写以下代码:
$db = JFactory::getDBO();
$db->insertObject( '#__k2_items', $data, id );