请帮忙,这是我写的第一个插件,我完全迷失了。我正在尝试使用我的自定义 giveBadge()函数在joomla数据库的表中编写和更新信息。函数接收两个不同的变量,第一个变量是 $ userID ,第二个是数字 300 ,我使用 giveBadge在类的底部传递(300)即可。同时比较Joomla数据库中的 $ userID ,以确保为登录Joomla站点的当前用户提供 300 数字。
提前致谢。
<?php
defined('JPATH_BASE') or die;
class plgUserBadge extends JPlugin
{
public function onUserLogin () {
$user =& JFactory::getUser();
$userID =& user->userID;
return $userID;
}
public function giveBadge ($userID, &$badgeID) {
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Fields to update.
$fields = array(
'profile_value=\'Updating custom message for user 1001.\'',
'ordering=2');
// Conditions for which records should be updated.
$conditions = array(
'user_id='.$userID,
'profile_key=\'custom.message\'');
$query->update($db->quoteName('#__user_badges'))->set($fields)->where($conditions);
$db->setQuery($query);
try {
$result = $db->query();
} catch (Exception $e) {
// Catch the error.
}es = array(1001, $db->quote('custom.message'), $db->quote('Inserting a record using insert()'), 1);
}
}
giveBadge(300); //attaches to $badgeID
?>
答案 0 :(得分:2)
您的代码不合适:
& user->userID;
任何IDE都会发现您的错误以及代码中的其他内容。die("My plugin was called")
查看您的插件是否真正被调用