php - 创建一个 Joomla!文章程序化

标签 php joomla content-management-system joomla2.5

我已经创建了自己的组件。当我向我的组件添加一条新记录时,我还希望它在 joomla 中创建一篇新文章(即使用 com_content)。

我在堆栈溢出时发现了这个 Programmatically adding an article to Joomla这解释了如何去做。代码很有意义,看起来它会起作用。问题是,一旦开始调用包含在 com_content 中的方法,com_content 中的所有相对 URL 就会崩溃,joomla 会抛出错误。

有谁知道解决这个问题的方法吗?上面链接的评论表明,在包含它之前将当前工作目录更改为 com_content 目录是可行的,但我不是 100% 确定如何执行此操作。

最佳答案

无法更改工作目录,因为它是一个常量。要解决此问题,您可以选择根本不使用 ContentModelArticle,而是仅使用表类:

$table = JTable::getInstance('Content', 'JTable', array());

$data = array(
    'catid' => 1,
    'title' => 'SOME TITLE',
    'introtext' => 'SOME TEXT',
    'fulltext' => 'SOME TEXT',
    'state' => 1,
);

// Bind data
if (!$table->bind($data))
{
    $this->setError($table->getError());
    return false;
}

// Check the data.
if (!$table->check())
{
    $this->setError($table->getError());
    return false;
}

// Store the data.
if (!$table->store())
{
    $this->setError($table->getError());
    return false;
}

请注意,上面的代码不会触发保存前/保存后事件。但是,如果需要,触发这些事件应该不是问题。另外值得注意的是,published_up 字段不会自动设置,类别中的文章也不会重新排序。

重新排序类别:

 $table->reorder('catid = '.(int) $table->catid.' AND state >= 0');

关于php - 创建一个 Joomla!文章程序化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643725/

相关文章:

php - 如何存储(在 php 中)和使用(在 javascript 中)大量数据

php - 为 WordPress、Joomla 或 Drupal 等 CMS 制作可安装模板是否需要具备丰富的 PHP 知识?

content-management-system - 是否可以将 Nesta CMS 包含到 Rails3 应用程序中?

php - 如何在 codeigniter xampp 窗口中从本地主机发送电子邮件

php - 从数据库检索、计算并发布到 View

php - 如何使用 Highcharts 导出整个页面或 html 内容而不仅仅是图表?

html - 移动网站问题(空白和缩放)

templates - 我如何为 Joomla 模块使用多个模板文件

c# - 如何将自定义 css 样式表添加到 Umbraco Admin

php - Wordpress 从另一个数据库获取最新的帖子