2

我想用 php 将 K2 文章添加到 joomla 数据库中。我可以在文章表中添加一条记录吗?还是我也需要更新任何其他表?我对 PHP 和 mySQL 有一些基础知识,但我希望能在正确的方向上推动正确的语法来做到这一点。

非常感谢, 哈坎

4

3 回答 3

2

我也在做同样的事情,但在 K2 项目保存上(不适用于 K2 中已经保存的项目)。这样我就可以将 K2 中的项目复制到 joomla 中的文章中,只需单击 K2 项目创建面板上的保存即可。

K2 中的“项目”是 Joomla 中的“文章”。

我正在使用我在这篇文章中提到的过程覆盖核心 K2-> Joomla - 覆盖 getItem 方法

然后我找到了 K2 保存文章的位置,如这篇文章-> Joomla - K2 中保存新项目的标题和别名的代码在哪里

现在,我下一步将在覆盖文件(K2 的 models\item.php)的 save() 函数中添加一段代码,以便将相同的 K2 项目也保存到 joomla com_content 表中。您将在我提到的帖子中找到所有信息。如果有不清楚的地方,请发表评论,以便我回复查询。

祝你好运!

于 2013-02-22T11:02:42.243 回答
0

对于 Joomla 1.6 或更高版本中的文章,您还必须在资产表中有一个条目,并且必须使用 JTableContent 中的方法正确创建它。

于 2013-02-22T19:18:50.273 回答
0

我已经在 J​​oomla 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 );
于 2013-03-04T18:54:06.733 回答