User Points 4.2.16

Submitted On: 20 Feb 2025
File Size: 1594
Downloads: 221
File Version: 4.2.16
File Author: Martin Brampton

Descended from Alpha User points via Alta User Points, this is a Joomla 3.10.x/4.x/5.x component. It manages user points that can be earned through user actions, and spent on services and products. Capable of being interfaced to many other Joomla extensions.

Recent fixes include bug in user reset, avatar handling, improved referral processing for invitations, fixes for coupons, QR codes along with other bug fixes and code upgrades. Languages have machine translated additions - now supporting 16 languages. Notifications have been checked for reliability. Raffle bug fixed.

UserPoints now has integrated ability to purchase points. That requires the (free) Payage component and one or more Payage payment gateway plugins. See the documentation for more details.

The code is being radically improved and the software is fully supported - please raise a ticket if needed.

Documentation is also under development - you can find it at https://docs.black-sheep-research.com/userpoints:contents

If you install this component, it will import parameters from Alta User Points and will use the same database tables as Alta/Alpha User Points. Any Alta/Alpha User Points extensions will be uninstalled.

Work is going on the update compatibility of other Joomla Extensions. jDownloads is compatible. Hikashop will be compatible in its next release.

There is much more work to be done on integrations. The sync and recalculate functions have had their efficiency hugely increased. For the technically minded, the code has mostly been namespaced and references to Joomla classes and methods updated. Much code cleaning has been done and an improved object model created.

In principle, this is compatible with earlier user points components and their integrations. But the transition to Joomla 4 and the renaming will have created some issues. Please report any problems via our ticket system.

Where a third party product is involved (such as another extension or a plugin) please provide a copy of the software.

This release provides for integration with Joomdonation's EShop.

File Rating (5/11)
Log in to cast your vote
Comments: 3
avatar some1new
some1new 6 months ago
Cannot find a way to success my pending subscription since 26-06-2024, can you help?
avatar sciphy
sciphy 8 months ago
Hi, I'd like to use user points with ARI Quiz, in joomla 4. Is User Points compatible with ARI Quiz ? Thanks ! ;)
avatar hbproph
hbproph 9 months ago
Hi Guys wanted to buy but unfortunately your site is not working stripe never loaded in so im not able to pay

RELATED DOCUMENTS

This report falls under the following categories. Click on a link below to explore similar documents.

ProductLines: UserPoints

Is there anything we can help you with in this morning ?

We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

4.22MBMemory Usage117msRequest Duration
Joomla! Version5.2.5
PHP Version8.2.28
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.11.6-MariaDB-0+deb12u1-log
Collation
utf8mb4_unicode_ci
Conn Collation
utf8mb4_general_ci
$_GET
array:2 [ "view" => "fileinfo" "id" => 734 ]
$_POST
[]
$_SESSION
array:2 [ "aliro_auth" => array:5 [ "subj_found" => & array:1 [ "remosFolder" => array:2...
$_COOKIE
array:1 [ "d5da79bc0b36f7f37f1d1beb5d2efb16" => "jfor4hkg1sbr4fvcmf1lutrc67" ]
$_SERVER
array:55 [ "USER" => "remos" "HOME" => "/var/www/remos" "SCRIPT_NAME" => "" "REQUEST_URI" =>...
session
array:3 [ "counter" => 2 "timer" => array:3 [ "start" => 1742006075 "last" => 1742006075...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
gtag
false
  • afterLoad (73.79KB) (1.08ms)
  • afterInitialise (1.04MB) (22.24ms)
  • afterRoute (349.43KB) (14.33ms)
  • beforeRenderComponent com_remository (46.16KB) (2.04ms)
  • afterRenderComponent com_remository (1.67MB) (44.15ms)
  • afterDispatch (2.27KB) (577μs)
  • beforeRenderRawModule mod_menu (Main Menu) (60.01KB) (4.78ms)
  • afterRenderRawModule mod_menu (Main Menu) (124.33KB) (5.9ms)
  • beforeRenderRawModule mod_login (Login Form) (976B) (55μs)
  • afterRenderRawModule mod_login (Login Form) (38.06KB) (2.74ms)
  • beforeRenderRawModule mod_remositorytree (Explore Repository) (704B) (200μs)
  • afterRenderRawModule mod_remositorytree (Explore Repository) (10.38KB) (4.47ms)
  • beforeRenderRawModule mod_whatsapp_agent (WhatsApp Multi Agent) (4.79KB) (535μs)
  • afterRenderRawModule mod_whatsapp_agent (WhatsApp Multi Agent) (42.06KB) (1.15ms)
  • beforeRenderModule mod_whatsapp_agent (WhatsApp Multi Agent) (736B) (11μs)
  • Before Access::preloadComponents (all components) (12.5KB) (1.49ms)
  • After Access::preloadComponents (all components) (114.68KB) (1.65ms)
  • Before Access::getAssetRules (id:1 name:root.1) (536B) (32μs)
  • After Access::getAssetRules (id:1 name:root.1) (7.05KB) (72μs)
  • afterRenderModule mod_whatsapp_agent (WhatsApp Multi Agent) (520B) (244μs)
  • beforeRenderModule mod_menu (Main Menu) (12.26KB) (152μs)
  • afterRenderModule mod_menu (Main Menu) (4.19KB) (269μs)
  • beforeRenderModule mod_login (Login Form) (640B) (28μs)
  • afterRenderModule mod_login (Login Form) (6.47KB) (102μs)
  • beforeRenderModule mod_remositorytree (Explore Repository) (5.86KB) (22μs)
  • afterRenderModule mod_remositorytree (Explore Repository) (4.48KB) (97μs)
  • beforeRenderRawModule mod_breadcrumbs (Breadcrumbs) (7.02KB) (171μs)
  • afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (10.52KB) (1.26ms)
  • beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (9μs)
  • afterRenderModule mod_breadcrumbs (Breadcrumbs) (3.56KB) (236μs)
  • afterRender (142.67KB) (6.38ms)
  • 1 x afterRenderComponent com_remository (1.67MB) (37.67%)
    44.15ms
    1 x afterInitialise (1.04MB) (18.98%)
    22.24ms
    1 x afterRoute (349.43KB) (12.23%)
    14.33ms
    1 x afterRender (142.67KB) (5.44%)
    6.38ms
    1 x afterRenderRawModule mod_menu (Main Menu) (124.33KB) (5.03%)
    5.90ms
    1 x beforeRenderRawModule mod_menu (Main Menu) (60.01KB) (4.07%)
    4.78ms
    1 x afterRenderRawModule mod_remositorytree (Explore Repository) (10.38KB) (3.82%)
    4.47ms
    1 x afterRenderRawModule mod_login (Login Form) (38.06KB) (2.34%)
    2.74ms
    1 x beforeRenderComponent com_remository (46.16KB) (1.74%)
    2.04ms
    1 x After Access::preloadComponents (all components) (114.68KB) (1.41%)
    1.65ms
    1 x Before Access::preloadComponents (all components) (12.5KB) (1.27%)
    1.49ms
    1 x afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (10.52KB) (1.08%)
    1.26ms
    1 x afterRenderRawModule mod_whatsapp_agent (WhatsApp Multi Agent) (42.06KB) (0.98%)
    1.15ms
    1 x afterLoad (73.79KB) (0.92%)
    1.08ms
    1 x afterDispatch (2.27KB) (0.49%)
    577μs
    1 x beforeRenderRawModule mod_whatsapp_agent (WhatsApp Multi Agent) (4.79KB) (0.46%)
    535μs
    1 x afterRenderModule mod_menu (Main Menu) (4.19KB) (0.23%)
    269μs
    1 x afterRenderModule mod_whatsapp_agent (WhatsApp Multi Agent) (520B) (0.21%)
    244μs
    1 x afterRenderModule mod_breadcrumbs (Breadcrumbs) (3.56KB) (0.2%)
    236μs
    1 x beforeRenderRawModule mod_remositorytree (Explore Repository) (704B) (0.17%)
    200μs
    1 x beforeRenderRawModule mod_breadcrumbs (Breadcrumbs) (7.02KB) (0.15%)
    171μs
    1 x beforeRenderModule mod_menu (Main Menu) (12.26KB) (0.13%)
    152μs
    1 x afterRenderModule mod_login (Login Form) (6.47KB) (0.09%)
    102μs
    1 x afterRenderModule mod_remositorytree (Explore Repository) (4.48KB) (0.08%)
    97μs
    1 x After Access::getAssetRules (id:1 name:root.1) (7.05KB) (0.06%)
    72μs
    1 x beforeRenderRawModule mod_login (Login Form) (976B) (0.05%)
    55μs
    1 x Before Access::getAssetRules (id:1 name:root.1) (536B) (0.03%)
    32μs
    1 x beforeRenderModule mod_login (Login Form) (640B) (0.02%)
    28μs
    1 x beforeRenderModule mod_remositorytree (Explore Repository) (5.86KB) (0.02%)
    22μs
    1 x beforeRenderModule mod_whatsapp_agent (WhatsApp Multi Agent) (736B) (0.01%)
    11μs
    1 x beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (0.01%)
    9μs
45 statements were executed, 4 of which were duplicates, 41 unique22.21ms107.77KB
  • SELECT @@SESSION.sql_mode;166μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:308Copy
  • SELECT `data` FROM `jos_session` WHERE `session_id` = ?245μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `jos_session` WHERE `session_id` = :session_id LIMIT 1149μs1.31KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • UPDATE `jos_session` SET `guest` = :guest , `time` = :time , `userid` = :user_id , `username` = :username , `client_id` = :client_id WHERE `session_id` = :session_id1.62ms992BParams/libraries/src/Session/MetadataManager.php:316Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `jos_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1607μs17.69KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `jos_viewlevels`170μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `jos_usergroups` AS `a` LEFT JOIN `jos_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest282μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `jos_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`1.15ms4.48KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SET sql_mode=(SELECT REPLACE(@@sql_mode,'STRICT_TRANS_TABLES',''));68μs640B/administrator/components/com_osmembership/loader.php:95Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `jos_menu` AS `m` LEFT JOIN `jos_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`1.46ms19.8KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SHOW TABLES LIKE 'jos_downloads_repository'645μs520B/libraries/BlackSheepResearch/aliro/database/ExtendedDatabase.php:143Copy
  • SELECT `path`, `link` FROM `jos_menu` WHERE `link` LIKE '%remository%' AND `published` > 0 AND `client_id` = 0298μs608BsameCopy
  • SELECT f.id, f.containerid, f.filetitle, f.realname FROM jos_downloads_files AS f WHERE f.containerid = 123321μs944BsameCopy
  • SELECT `config_key`,`config_value` FROM jos_osmembership_configs348μs3.06KB/administrator/components/com_osmembership/libraries/mpf/config/config.php:42Copy
  • SELECT * FROM `jos_languages` WHERE `published` = 1 ORDER BY `ordering` ASC183μs1.59KB/libraries/src/Language/LanguageHelper.php:177Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `jos_template_styles` AS `s` LEFT JOIN `jos_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1262μs832B/administrator/components/com_templates/src/Model/StyleModel.php:775Copy
  • SELECT role, subject_id, action FROM jos_permissions WHERE subject_type = 'remosFolder' AND action IN('download','edit')317μs2.38KBsameCopy
  • SELECT NOW()118μs536B/components/com_userpoints/src/Problems/SQL.php:31Copy
  • SELECT UNIX_TIMESTAMP(NOW())94μs536B/components/com_userpoints/src/Problems/SQL.php:74Copy
  • SELECT COUNT(`id`) FROM `jos_usergroups`137μs536B/libraries/src/Helper/UserGroupsHelper.php:207Copy
  • SELECT * FROM `jos_usergroups` ORDER BY `lft` ASC225μs976B/libraries/src/Helper/UserGroupsHelper.php:266Copy
  • SELECT NOW()73μs536BsameCopy
  • SELECT f.*, AVG(l.value) AS vote_value, COUNT(l.value) AS vote_count, CASE WHEN fv.user_id IS NULL THEN 0 WHEN fv.user_id = 0 THEN 0 ELSE 1 END AS favourite FROM jos_downloads_files AS f LEFT JOIN jos_downloads_log AS l ON l.type=3 AND l.fileid=f.id LEFT JOIN jos_downloads_favour AS fv ON fv.file_id = f.id AND fv.user_id = 0 WHERE f.id = 734 AND published=1 GROUP BY f.id918μs9.72KBsameCopy
  • SELECT c.*, CASE WHEN c.type = 'ProductLines' THEN 0 WHEN c.type = 'Services' THEN 1 ELSE 9 END AS typseq FROM jos_downloads_classify AS c INNER JOIN jos_downloads_file_classify AS fc ON c.id = fc.classify_id WHERE c.published != 0 AND c.hidden = 0 AND fc.file_id = 734 ORDER BY typseq, c.name1.05ms1.44KB/libraries/BlackSheepResearch/aliro/database/ExtendedDatabase.php:173Copy
  • SELECT COUNT(*) FROM jos_downloads_log WHERE type=3 AND ipaddress='3.144.8.165' AND fileid=734303μs536B/libraries/BlackSheepResearch/aliro/database/ExtendedDatabase.php:143Copy
  • SELECT COUNT(*) FROM jos_downloads_log WHERE type=3 AND ipaddress='3.144.8.165' AND fileid=734220μs0BsameCopy
  • SELECT c.id, c.title, c.comment, c.date, c.imgcount, u.id as userid, u.name, u.username FROM jos_downloads_reviews AS c INNER JOIN jos_users AS u ON c.userid=u.id WHERE c.itemid=734 ORDER BY c.date DESC404μs960B/libraries/BlackSheepResearch/aliro/database/ExtendedDatabase.php:173Copy
  • SHOW FULL COLUMNS FROM `jos_users`1.05ms1.58KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • SELECT * FROM `jos_users` WHERE `id` = :userid260μs3.16KBParams/libraries/src/Table/User.php:106Copy
  • SELECT `g`.`id`,`g`.`title` FROM `jos_usergroups` AS `g` INNER JOIN `jos_user_usergroup_map` AS `m` ON `m`.`group_id` = `g`.`id` WHERE `m`.`user_id` = :muserid303μs1.37KBParams/libraries/src/Table/User.php:134Copy
  • SELECT avatar FROM jos_osmembership_subscribers WHERE user_id = 369 AND avatar != ''214μs520BsameCopy
  • SELECT email FROM jos_users WHERE id = 369107μs536BsameCopy
  • SELECT * FROM `jos_users` WHERE `id` = :userid225μs5.66KBParams/libraries/src/Table/User.php:106Copy
  • SELECT `g`.`id`,`g`.`title` FROM `jos_usergroups` AS `g` INNER JOIN `jos_user_usergroup_map` AS `m` ON `m`.`group_id` = `g`.`id` WHERE `m`.`user_id` = :muserid262μs1.38KBParams/libraries/src/Table/User.php:134Copy
  • SELECT avatar FROM jos_osmembership_subscribers WHERE user_id = 388 AND avatar != ''232μs520BsameCopy
  • SELECT email FROM jos_users WHERE id = 388165μs536BsameCopy
  • SELECT * FROM `jos_users` WHERE `id` = :userid297μs3.16KBParams/libraries/src/Table/User.php:106Copy
  • SELECT `g`.`id`,`g`.`title` FROM `jos_usergroups` AS `g` INNER JOIN `jos_user_usergroup_map` AS `m` ON `m`.`group_id` = `g`.`id` WHERE `m`.`user_id` = :muserid300μs1.38KBParams/libraries/src/Table/User.php:134Copy
  • SELECT avatar FROM jos_osmembership_subscribers WHERE user_id = 385 AND avatar != ''255μs520BsameCopy
  • SELECT email FROM jos_users WHERE id = 385137μs536BsameCopy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `jos_modules` AS `m` LEFT JOIN `jos_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `jos_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`1.55ms1.89KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `jos_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42,:preparedArray43,:preparedArray44)803μs7.81KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `jos_scheduler_tasks` AS `a` WHERE `a`.`state` = 1300μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `session_id` FROM `jos_session` WHERE `session_id` = ?322μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `jos_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?3.6ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy