Joomla:通过 ajax 获取 k2 项目内容不会增加项目点击率

Joomla: Fetching k2 item content by ajax won't increase item hits

k2支持ajax真好。尽管我已经使用 k2 多年,但我只是通过阅读此博客 post 才意识到这一点:http://getk2.org/blog/786-k2-v257-released-introduces-json-jsonp-content-output 并开始使用 ajax 来改进我的 k2 支持的网站。

但是我遇到了一个问题。

在我的页面上,既有来自类别的项目列表,也有显示最新项目的 k2 内容模块。我已经这样做了,当单击类别中的一个项目时,模块中的项目内容会更新 ajax。 Live页面在这里,aoafinc.org/index.php?option=com_k2&view=itemlist&layout=category&task=category&id=2&Itemid=150&lang=en-us它正在开发中,主要是中文,但你明白了。

看起来不错,但问题是,物品点击率不会增加。 (我现在不得不使用一些 javascript 来伪造标题下显示的项目点击数)有没有办法解决这个问题?我在想也许我需要对一些 PHP 文件进行硬编码,以便每次显示 'url+&format=json' 时,项目命中率都会增加。

有人指出有这个功能

function hit($id)
{

    $row = JTable::getInstance('K2Item', 'Table');
    $row->hit($id);
}

在 com_k2/models/item.php 中。

但我真的对 k2 核心知之甚少,不知道如何使用它,所以任何方向或提示将不胜感激!

在某种程度上,我认为这是一个比 joomla 和 k2 更普遍的问题。如果您使用 ajax 来获取内容,您如何计算内容点击量?

你的方向是正确的。关于命中,您还必须考虑缓存。否则,它只会在禁用缓存时增加。

您可以查看 K2 组件如何以相同的方式计算命中。

在com_k2/views/item下,有view.html.phpview.json.php,在view.html.php第134行

// Increase hits counter
$model->hit($item->id);

view.json.php 没有这一行。添加这一行,问题就解决了!