gpt4 book ai didi

php - Joomla 在哪里存储 'fulltext' 篇文章?

转载 作者:搜寻专家 更新时间:2023-10-30 21:50:46 26 4
gpt4 key购买 nike

Joomla (3.3) 在哪里存储文章的“全文”?当我从 Joomla 内容表中选择所有 ("*") 时:

private function selectAllContent() {
$query = $db->getQuery(true);
$query->select("*");
$query->from($db->quoteName(array('#__contents')));
$rows = $db->loadRowList();
// ...
}

我发现 fulltext 列是空的,introtext 列有一个版本的文章文本已经删除了一些 html 标记,例如项目符号列表。在 Joomla 管理员中,仍然可以打开存在项目符号列表标记的“编辑文章”屏幕。它存储在数据库中的什么位置?

我知道有一个相关问题: where are articles stored in joomla? 但是,该问题的答案只是说内容表是存储文章的位置,这并不能完全解决我的问题。如果您能提供帮助,非常感谢!

更新

我还是迷路了,所以提供所有代码和导致“丢失”标记的过程。我使用 print_r 查看返回的所有内容。

  1. 首先,我创建了一篇包含列表的文章,因此标记如下所示:

    Introductory example text

    1. Some item plus more text here
    2. Another item plus more text here

  2. 文章已保存。
  3. 一个模块从数据库中提取所有文章(及其所有内容)。模块代码如下所示:

    // From the main module file:
    $helper = new modArticlesTableHelper;
    $articlesTable = $helper->getArticleContent($params);

    // From the module helper file:
    public function getArticleContent($params) {
    $result = $this->_getArticles();
    return "<div style=\"display:none;\">".print_r($result, true)."</div>";
    }

    private function _getArticles() {
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select("*");
    $query->from($db->quoteName(array('#__contents')));
    $query->where($db->quoteName('catid')." = 16");
    $rows = $db->loadObj();
    return $rows;
    }
  4. 其结果简单地回显在模块模板中:

    echo $articlesTable;
  5. 如果我然后从显示它的页面复制模块输出的标记,只有这样:

    ["introtext"]=&gt;
    string(127) "Introductory example text

    <strong>Some item</strong> plus more text here
    <strong>Another item</strong> plus more text here"
    ["fulltext"]=&gt;
    string(0) ""
  6. 到目前为止,我还没有看到过滤器是如何发挥作用的 - 它看起来像是直接从数据库进入 print_r。然而,当我再次编辑文章时,标记仍然存在:

Introductory example text

  1. Some item plus more text here
  2. Another item plus more text here

是否有可能是过滤器在此处的某个时候删除了列表?

更新 2

如果我在 joomla 文章的顶部添加一个 Readmore 中断,将返回以下内容,但是,我不认为在每篇文章的顶部添加一个 readmore 中断是正确的方法 - 似乎是破解!

["introtext"]=>
string(0) ""
["fulltext"]=>
string(164) "
<p>Introductory example text</p>
<ol>
<li><strong>Some item</strong> plus more text here</li>
<li><strong>Another item</strong> plus more text here</li>
</ol>"

最佳答案

如果您不设置“阅读更多”中断,所有内容都将存储在 introtext 中。如果您阅读更多内容,那么它将分为内文和全文。换句话说,如果您要进行区分,则只需要全文。它有点过时,但这是来自 Joomla 1.0 的 API,它是 JSON 之前的。

关于php - Joomla 在哪里存储 'fulltext' 篇文章?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23979103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com