2

我正在使用带有默认“用户配置文件”插件的 joomla 2.5,该插件向 joomla 的配置文件页面添加了额外的字段。

我也在使用 k2 并为我正在使用的视图设置了模板覆盖设置:

site/templates/template/html/com_k2/category_item.php

在该视图中,我可以使用以下方法成功“提取”我需要的数据:

jimport('joomla.user.helper');
$user = & JFactory::getUser();
$profile = JUserHelper::getProfile($user->id);
echo $profile->profile['fieldname'];

我的问题是真的......如何在不刷新页面的情况下使用 jQuery / Javascript 更新此字段?不幸的是,没有类似的 joomla 功能:

JUserHelper::updateProfileField(value,user->id)

这是我希望与 jQuery 的 .ajax() 一起使用的...无论如何,我想我可能必须编写一个函数来执行此操作...在这种情况下,我可能不想修改核心 joomla 的东西( JUserHelper)...但也许是我自己的?或者我应该向 k2 添加一个可以更新 joomla 用户配置文件数据的功能?

顺便说一句......我这样做的全部目的是因为我想在用户个人资料页面中添加一个自定义“点”字段......我只需要一种可靠的方式来阅读和更新它(我认为使用 ajax) k2 category_item.php 视图!

谢谢你!!!!

4

1 回答 1

0

您应该编写一个组件来处理 ajax 调用,或者至少添加一个带有您需要的任务的控制器,即,如果您试图取回一些 json:

{user:'paul', custom_field_1:'yes and no'}

然后在您的控制器中,即 com_your_component/controller.php 您将有一个任务,例如“getInfo”:

function getInfo() {
  // return the json
  echo json_encode($myResultArray);
  exit; // this will make sure you don't get the template etc.
}

你会将 ajax 调用发送到:

http://example.com/index.php?option=com_your_component&task=getInfo&format=json
于 2013-02-12T22:53:14.707 回答