4

我对 Joomla 非常陌生(坦率地说,我刚开始探索使用 Joomla 的可能性)并且需要帮助以编程方式将文章添加到 Joomla 后端表(请参阅下面的详细信息)。同样,我想了解列的值应该如何:

  • parent_id
  • 左上角
  • rgt
  • 等级

为表jos_assets#__assets

使用以下简化示例来说明我正在尝试做的事情可能会有所帮助。假设我们有一个程序收集各种关键信息,例如网络文章作者的姓名、文章的主题类型、文章的日期以及文章的链接。我希望能够扩展这个程序,以编程方式将这些信息存储在 Joomla 中。目前,此信息存储在自定义表中,用户可以通过自定义 php 网页使用搜索条件(例如按作者姓名)在一定日期范围内查找感兴趣的文章。然后将显示此搜索的结果以及指向实际文章的超链接。文章本地存储在网络服务器上,不是外部链接。

Author   date         type    html_file
Tom      08-14-2011   WEB     /tech/11200/ar_324.html
Jim      05-20-2010   IND     /tech/42350/ar_985.html

等等

Joomla 在编写自定义 php 搜索和演示页面以及趋势等方面提供了所有优势,我们真的很想改用它。似乎在其他表格中,例如#__assets可以#__content通过编程方式填充 Joomla,以从我们现有的 php 程序(用于编译数据)中填充 Joomla,然后使用 Joomla。

非常感谢任何示例、建议和帮助

最亲切的问候加尔

4

2 回答 2

5

只是初步说明:Joomla 1.6/1.7 非常相似。1.5没那么多。我假设是 1.6/1.7,因为这是我推荐的新项目的基础。

首先,您需要能够访问 Joomla 框架。您可以通过组件、模块或引导它的 cron 或其他方式来完成此操作。我不会去,但如何做到这一点。

但是一旦你这样做了,创建一篇文章就相当简单了。

<?php
require_once JPATH_ADMINISTRATOR . '/components/com_content/models/article.php';

$new_article = new ContentModelArticle();

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

实际的字段列表将比这长一点(必填字段等),但您应该从 Joomla 框架中获得合理的错误消息等,这些信息说明了这一点。

总而言之:

  • 加载 Joomla 框架,以便您可以访问数据库、组件、模型等
  • 包括 com_content 文章类,它将为您处理验证、保存到数据库等
  • 创建文章实例,并根据需要填写必填字段
  • 调用保存()

现在我考虑一下,这可能会在 1.5 中工作......

于 2011-09-05T22:29:31.053 回答
2

找到了一种更好的方法来做到这一点而不会出现任何错误创建 Joomla!文章以编程方式

$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;
}
于 2012-09-28T17:09:21.757 回答