[Skip to main content](#vessel-content)

#   Custom User Plugin - Hikashop Address

##

- **[Billymb3](/forum/user/8027-billymb3 "View Billymb3's Profile")**
- [![Billymb3's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/8027-billymb3 "View Billymb3's Profile") Topic Author
- [ Offline](/forum/user/8027-billymb3)

Less More

- Posts: 8
- Thank you received: 3
-
-

13 years 1 month ago [\#125937](#125937) by [Billymb3](/forum/user/8027-billymb3 "View Billymb3's Profile")  *[Custom User Plugin - Hikashop Address](/forum/31-development/862478-custom-user-plugin-hikashop-address#125937 "-- url of the page with the problem -- : Localhost - Testing -- HikaShop version -- : HikaShop Business: 2.2.1 -- Joomla version -- : 3.1.5 -- PHP version -- : 5.3.8 -- Browser(s) name and version -- : Not Applicable -- Error-message(debug-mod must be tuned on) -- : Lots so far  Hello, I am looking for a little bit of help. I have tried a few different components for managing users that integrate with Hikashop and have not liked what was available for various reasons. I created a user component that allows me to customize the Login page, Registration page, and Profile pages more the way I want them. I have also created a User Plugin so I can choose what fields show on all of these pages (address1, address 2, email, etc.)  I am now working on the Profile Page and would like to show the Hikashop address instead of the Joomla one. I am using code from the standard user - profile plugin in my own and it works like the original shows address1 and updates the table #&#95;&#95;user&#95;profiles when updating the user information.  The original onContentPrepareData function is as follows.  After doing a few searches I am close but have not been able to come up with the best query to get the hikashop (address&#95;street and address&#95;street2 from the table #&#95;&#95;hikashop&#95;address) and inject it into the $data-&gt;profile array.  I believe I have to get the user&#95;id from #&#95;&#95;hikashop&#95;user where the field user&#95;cms&#95;id matches the current users id.  And then use this user&#95;id to query the #&#95;&#95;hikashop&#95;address table and get the address&#95;street and address&#95;street2 fields that match the current user.  Does anyone know if I can write one query to get all the user&#95;profile info, and the hikashop&#95;address info?  After that query is figured out I need to figure out how to inject it all into the $data-&gt;profile array that the user profile plugin will display for editing in the profile, and also change the onUserAfterSave function to update both the hikashop&#95;address table and user&#95;profile table.  Any help would be great, I am ok with standard sql queries but these ones are making my head spin.")* was created by *[Billymb3](/forum/user/8027-billymb3 "View Billymb3's Profile")*

-- url of the page with the problem -- : Localhost - Testing
-- HikaShop version -- : HikaShop Business: 2.2.1
-- Joomla version -- : 3.1.5
-- PHP version -- : 5.3.8
-- Browser(s) name and version -- : Not Applicable
-- Error-message(debug-mod must be tuned on) -- : Lots so far

Hello, I am looking for a little bit of help. I have tried a few different components for managing users that integrate with Hikashop and have not liked what was available for various reasons. I created a user component that allows me to customize the Login page, Registration page, and Profile pages more the way I want them. I have also created a User Plugin so I can choose what fields show on all of these pages (address1, address 2, email, etc.)

I am now working on the Profile Page and would like to show the Hikashop address instead of the Joomla one. I am using code from the standard user - profile plugin in my own and it works like the original shows address1 and updates the table #__user_profiles when updating the user information.

The original onContentPrepareData function is as follows.
Code:

public function onContentPrepareData($context, $data) { // Check we are manipulating a valid form. if (!in_array($context, array('com_users.profile', 'com_users.user', 'com_users.registration', 'com_usermod.profile', 'com_usermod.notlogged', 'com_admin.profile'))) { return true; } if (is_object($data)) { $userId = isset($data-&gt;id) ? $data-&gt;id : 0; if (!isset($data-&gt;profile) and $userId &gt; 0) { // Load the profile data from the database. $db = JFactory::getDbo(); $db-&gt;setQuery( 'SELECT profile_key, profile_value FROM #__user_profiles' . ' WHERE user_id = ' . (int) $userId . " AND profile_key LIKE 'profile.%'" . ' ORDER BY ordering' ); try { $results = $db-&gt;loadRowList(); } catch (RuntimeException $e) { $this-&gt;_subject-&gt;setError($e-&gt;getMessage()); return false; } // Merge the profile data. $data-&gt;profile = array(); foreach ($results as $v) { $k = str_replace('profile.', '', $v[0]); $data-&gt;profile[$k] = json_decode($v[1], true); if ($data-&gt;profile[$k] === null) { $data-&gt;profile[$k] = $v[1]; } } } if (!JHtml::isRegistered('users.url')) { JHtml::register('users.url', array(__CLASS__, 'url')); } if (!JHtml::isRegistered('users.calendar')) { JHtml::register('users.calendar', array(__CLASS__, 'calendar')); } if (!JHtml::isRegistered('users.tos')) { JHtml::register('users.tos', array(__CLASS__, 'tos')); } } return true; }

After doing a few searches I am close but have not been able to come up with the best query to get the hikashop (address_street and address_street2 from the table #__hikashop_address) and inject it into the $data-&gt;profile array.

I believe I have to get the user_id from #__hikashop_user where the field user_cms_id matches the current users id.
Code:

// Get a db connection. $hikashop_user_id = JFactory::getDbo(); // Create a new query object. $hikashop_query = $hikashop_user_id-&gt;getQuery(true); $hikashop_user_id-&gt;setQuery('SELECT user_id, user_cms_id FROM #__hikashop_user WHERE user_cms_id = ' . (int) $userId); // Set $hikashop_id as the id we matched up in the hikashop_user_id query $hikashop_id = $hikashop_user_id_results['user_id'];

And then use this user_id to query the #__hikashop_address table and get the address_street and address_street2 fields that match the current user.
Code:

// Load the users hikashop address that matches the correct id $hikashop_db = JFactory::getDbo(); $hikashop_db-&gt;setQuery('SELECT address_id, address_user_id FROM #__hikashop_address WHERE address_user_id =' . (int) $hikashop_id);

Does anyone know if I can write one query to get all the user_profile info, and the hikashop_address info?

After that query is figured out I need to figure out how to inject it all into the $data-&gt;profile array that the user profile plugin will display for editing in the profile, and also change the onUserAfterSave function to update both the hikashop_address table and user_profile table.

Any help would be great, I am ok with standard sql queries but these ones are making my head spin.

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtL2RldmVsb3BtZW50Lzg2MjQ3OC1jdXN0b20tdXNlci1wbHVnaW4taGlrYXNob3AtYWRkcmVzcz90bXBsPW1hcmtkb3du) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[nicolas](/forum/user/63-nicolas "View nicolas's Profile")**
- [![nicolas's Avatar](https://www.hikashop.com/media/kunena/avatars/resized/size144/users/avatar63.png?1793428657)](/forum/user/63-nicolas "View nicolas's Profile")
- [ Away](/forum/user/63-nicolas)

Less More

- Posts: 86541
- Thank you received: 14304
-
-

13 years 1 month ago [\#126065](#126065) by [nicolas](/forum/user/63-nicolas "View nicolas's Profile")  Replied by *[nicolas](/forum/user/63-nicolas "View nicolas's Profile")* on topic *[Custom User Plugin - Hikashop Address](/forum/31-development/862478-custom-user-plugin-hikashop-address#126065 "-- url of the page with the problem -- : Localhost - Testing -- HikaShop version -- : HikaShop Business: 2.2.1 -- Joomla version -- : 3.1.5 -- PHP version -- : 5.3.8 -- Browser(s) name and version -- : Not Applicable -- Error-message(debug-mod must be tuned on) -- : Lots so far  Hello, I am looking for a little bit of help. I have tried a few different components for managing users that integrate with Hikashop and have not liked what was available for various reasons. I created a user component that allows me to customize the Login page, Registration page, and Profile pages more the way I want them. I have also created a User Plugin so I can choose what fields show on all of these pages (address1, address 2, email, etc.)  I am now working on the Profile Page and would like to show the Hikashop address instead of the Joomla one. I am using code from the standard user - profile plugin in my own and it works like the original shows address1 and updates the table #&#95;&#95;user&#95;profiles when updating the user information.  The original onContentPrepareData function is as follows.  After doing a few searches I am close but have not been able to come up with the best query to get the hikashop (address&#95;street and address&#95;street2 from the table #&#95;&#95;hikashop&#95;address) and inject it into the $data-&gt;profile array.  I believe I have to get the user&#95;id from #&#95;&#95;hikashop&#95;user where the field user&#95;cms&#95;id matches the current users id.  And then use this user&#95;id to query the #&#95;&#95;hikashop&#95;address table and get the address&#95;street and address&#95;street2 fields that match the current user.  Does anyone know if I can write one query to get all the user&#95;profile info, and the hikashop&#95;address info?  After that query is figured out I need to figure out how to inject it all into the $data-&gt;profile array that the user profile plugin will display for editing in the profile, and also change the onUserAfterSave function to update both the hikashop&#95;address table and user&#95;profile table.  Any help would be great, I am ok with standard sql queries but these ones are making my head spin.")*

Hi,

You should do like that: Code:

// Get a db connection. $db = JFactory::getDbO(); $db-&gt;setQuery('SELECT user_id FROM #__hikashop_user WHERE user_cms_id = ' . (int) $userId); $hikashop_id = $db-&gt;loadResult(); $db-&gt;setQuery('SELECT * FROM #__hikashop_address WHERE address_user_id =' . (int) $hikashop_id); $address = $db-&gt;loadObject(); //then you can do like that to get the address_street for example: echo $address-&gt;address_street;

The following user(s) said Thank You: [cb75ter](/forum/user/7364-cb75ter "View cb75ter's Profile"), [Billymb3](/forum/user/8027-billymb3 "View Billymb3's Profile")

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtL2RldmVsb3BtZW50Lzg2MjQ3OC1jdXN0b20tdXNlci1wbHVnaW4taGlrYXNob3AtYWRkcmVzcz90bXBsPW1hcmtkb3du) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[Billymb3](/forum/user/8027-billymb3 "View Billymb3's Profile")**
- [![Billymb3's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/8027-billymb3 "View Billymb3's Profile") Topic Author
- [ Offline](/forum/user/8027-billymb3)

Less More

- Posts: 8
- Thank you received: 3
-
-

13 years 1 month ago [\#126076](#126076) by [Billymb3](/forum/user/8027-billymb3 "View Billymb3's Profile")  Replied by *[Billymb3](/forum/user/8027-billymb3 "View Billymb3's Profile")* on topic *[Custom User Plugin - Hikashop Address](/forum/31-development/862478-custom-user-plugin-hikashop-address#126076 "-- url of the page with the problem -- : Localhost - Testing -- HikaShop version -- : HikaShop Business: 2.2.1 -- Joomla version -- : 3.1.5 -- PHP version -- : 5.3.8 -- Browser(s) name and version -- : Not Applicable -- Error-message(debug-mod must be tuned on) -- : Lots so far  Hello, I am looking for a little bit of help. I have tried a few different components for managing users that integrate with Hikashop and have not liked what was available for various reasons. I created a user component that allows me to customize the Login page, Registration page, and Profile pages more the way I want them. I have also created a User Plugin so I can choose what fields show on all of these pages (address1, address 2, email, etc.)  I am now working on the Profile Page and would like to show the Hikashop address instead of the Joomla one. I am using code from the standard user - profile plugin in my own and it works like the original shows address1 and updates the table #&#95;&#95;user&#95;profiles when updating the user information.  The original onContentPrepareData function is as follows.  After doing a few searches I am close but have not been able to come up with the best query to get the hikashop (address&#95;street and address&#95;street2 from the table #&#95;&#95;hikashop&#95;address) and inject it into the $data-&gt;profile array.  I believe I have to get the user&#95;id from #&#95;&#95;hikashop&#95;user where the field user&#95;cms&#95;id matches the current users id.  And then use this user&#95;id to query the #&#95;&#95;hikashop&#95;address table and get the address&#95;street and address&#95;street2 fields that match the current user.  Does anyone know if I can write one query to get all the user&#95;profile info, and the hikashop&#95;address info?  After that query is figured out I need to figure out how to inject it all into the $data-&gt;profile array that the user profile plugin will display for editing in the profile, and also change the onUserAfterSave function to update both the hikashop&#95;address table and user&#95;profile table.  Any help would be great, I am ok with standard sql queries but these ones are making my head spin.")*

Nicolas, thank you so much! I tried it out and it is working perfectly! Now time to make some more coffee and continue on with this little adventure.

Cheers!

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtL2RldmVsb3BtZW50Lzg2MjQ3OC1jdXN0b20tdXNlci1wbHVnaW4taGlrYXNob3AtYWRkcmVzcz90bXBsPW1hcmtkb3du) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[Fit\_webmaster](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")**
- [![Fit&#95;webmaster's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")
- [ Offline](/forum/user/33004-fit-webmaster)

Less More

- Posts: 6
- Thank you received: 0
-
-

12 years 5 months ago [\#160031](#160031) by [Fit\_webmaster](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")  Replied by *[Fit\_webmaster](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")* on topic *[Custom User Plugin - Hikashop Address](/forum/31-development/862478-custom-user-plugin-hikashop-address#160031 "-- url of the page with the problem -- : Localhost - Testing -- HikaShop version -- : HikaShop Business: 2.2.1 -- Joomla version -- : 3.1.5 -- PHP version -- : 5.3.8 -- Browser(s) name and version -- : Not Applicable -- Error-message(debug-mod must be tuned on) -- : Lots so far  Hello, I am looking for a little bit of help. I have tried a few different components for managing users that integrate with Hikashop and have not liked what was available for various reasons. I created a user component that allows me to customize the Login page, Registration page, and Profile pages more the way I want them. I have also created a User Plugin so I can choose what fields show on all of these pages (address1, address 2, email, etc.)  I am now working on the Profile Page and would like to show the Hikashop address instead of the Joomla one. I am using code from the standard user - profile plugin in my own and it works like the original shows address1 and updates the table #&#95;&#95;user&#95;profiles when updating the user information.  The original onContentPrepareData function is as follows.  After doing a few searches I am close but have not been able to come up with the best query to get the hikashop (address&#95;street and address&#95;street2 from the table #&#95;&#95;hikashop&#95;address) and inject it into the $data-&gt;profile array.  I believe I have to get the user&#95;id from #&#95;&#95;hikashop&#95;user where the field user&#95;cms&#95;id matches the current users id.  And then use this user&#95;id to query the #&#95;&#95;hikashop&#95;address table and get the address&#95;street and address&#95;street2 fields that match the current user.  Does anyone know if I can write one query to get all the user&#95;profile info, and the hikashop&#95;address info?  After that query is figured out I need to figure out how to inject it all into the $data-&gt;profile array that the user profile plugin will display for editing in the profile, and also change the onUserAfterSave function to update both the hikashop&#95;address table and user&#95;profile table.  Any help would be great, I am ok with standard sql queries but these ones are making my head spin.")*

Did not want to open a new ticket for it as it is very similar... I am trying to get the address from the registration form too, but I it not coming through. I am even getting a empty array. ![:(](/media/kunena/emoticons/22.png ":(")

function onAfterUserCreate(&amp;$element){
$user_id = $element-&gt;user_id;
$db = JFactory::getDbO();
$db-&gt;setQuery('SELECT * FROM #__hikashop_address WHERE address_user_id =' . (int) $user_id);
$address = $db-&gt;loadObjectList();

JLog::add('User ID: ' print_r($user_id, true));
JLog::add('Address Obj: '.print_r($address, true));
JLog::add('Street is: '.print_r($address-&gt;address_street, true));
JLog::add('Email is: '.print_r($element-&gt;user_email, true));
}
Output

User ID: 153
Address Obj: Array ( )
Street is:
Email is: 123@test.com

Any Idea? This is driving me insane.

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtL2RldmVsb3BtZW50Lzg2MjQ3OC1jdXN0b20tdXNlci1wbHVnaW4taGlrYXNob3AtYWRkcmVzcz90bXBsPW1hcmtkb3du) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[Xavier](/forum/user/4105-xavier "View Xavier's Profile")**
- [![Xavier's Avatar](https://www.hikashop.com/media/kunena/avatars/resized/size144/users/avatar4105.png)](/forum/user/4105-xavier "View Xavier's Profile")
- [ Offline](/forum/user/4105-xavier)

Less More

- Posts: 13201
- Thank you received: 2322
-
-
-
- [](http://www.kidiweb.fr)
-

12 years 5 months ago [\#160032](#160032) by [Xavier](/forum/user/4105-xavier "View Xavier's Profile")  Replied by *[Xavier](/forum/user/4105-xavier "View Xavier's Profile")* on topic *[Custom User Plugin - Hikashop Address](/forum/31-development/862478-custom-user-plugin-hikashop-address#160032 "-- url of the page with the problem -- : Localhost - Testing -- HikaShop version -- : HikaShop Business: 2.2.1 -- Joomla version -- : 3.1.5 -- PHP version -- : 5.3.8 -- Browser(s) name and version -- : Not Applicable -- Error-message(debug-mod must be tuned on) -- : Lots so far  Hello, I am looking for a little bit of help. I have tried a few different components for managing users that integrate with Hikashop and have not liked what was available for various reasons. I created a user component that allows me to customize the Login page, Registration page, and Profile pages more the way I want them. I have also created a User Plugin so I can choose what fields show on all of these pages (address1, address 2, email, etc.)  I am now working on the Profile Page and would like to show the Hikashop address instead of the Joomla one. I am using code from the standard user - profile plugin in my own and it works like the original shows address1 and updates the table #&#95;&#95;user&#95;profiles when updating the user information.  The original onContentPrepareData function is as follows.  After doing a few searches I am close but have not been able to come up with the best query to get the hikashop (address&#95;street and address&#95;street2 from the table #&#95;&#95;hikashop&#95;address) and inject it into the $data-&gt;profile array.  I believe I have to get the user&#95;id from #&#95;&#95;hikashop&#95;user where the field user&#95;cms&#95;id matches the current users id.  And then use this user&#95;id to query the #&#95;&#95;hikashop&#95;address table and get the address&#95;street and address&#95;street2 fields that match the current user.  Does anyone know if I can write one query to get all the user&#95;profile info, and the hikashop&#95;address info?  After that query is figured out I need to figure out how to inject it all into the $data-&gt;profile array that the user profile plugin will display for editing in the profile, and also change the onUserAfterSave function to update both the hikashop&#95;address table and user&#95;profile table.  Any help would be great, I am ok with standard sql queries but these ones are making my head spin.")*

Hi,

The code seem to be correct. The issue is maybe due to the fact that the user is created before the address, so when getting data in "onAfterUserCreate()", the address is potentially not yet created, that's why you get an empty array.

You maybe have to use an address trigger, like "onAfterAddressCreate()".

The following user(s) said Thank You: [Fit\_webmaster](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtL2RldmVsb3BtZW50Lzg2MjQ3OC1jdXN0b20tdXNlci1wbHVnaW4taGlrYXNob3AtYWRkcmVzcz90bXBsPW1hcmtkb3du) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[Fit\_webmaster](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")**
- [![Fit&#95;webmaster's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")
- [ Offline](/forum/user/33004-fit-webmaster)

Less More

- Posts: 6
- Thank you received: 0
-
-

12 years 4 months ago [\#160330](#160330) by [Fit\_webmaster](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")  Replied by *[Fit\_webmaster](/forum/user/33004-fit-webmaster "View Fit&#95;webmaster's Profile")* on topic *[Custom User Plugin - Hikashop Address](/forum/31-development/862478-custom-user-plugin-hikashop-address#160330 "-- url of the page with the problem -- : Localhost - Testing -- HikaShop version -- : HikaShop Business: 2.2.1 -- Joomla version -- : 3.1.5 -- PHP version -- : 5.3.8 -- Browser(s) name and version -- : Not Applicable -- Error-message(debug-mod must be tuned on) -- : Lots so far  Hello, I am looking for a little bit of help. I have tried a few different components for managing users that integrate with Hikashop and have not liked what was available for various reasons. I created a user component that allows me to customize the Login page, Registration page, and Profile pages more the way I want them. I have also created a User Plugin so I can choose what fields show on all of these pages (address1, address 2, email, etc.)  I am now working on the Profile Page and would like to show the Hikashop address instead of the Joomla one. I am using code from the standard user - profile plugin in my own and it works like the original shows address1 and updates the table #&#95;&#95;user&#95;profiles when updating the user information.  The original onContentPrepareData function is as follows.  After doing a few searches I am close but have not been able to come up with the best query to get the hikashop (address&#95;street and address&#95;street2 from the table #&#95;&#95;hikashop&#95;address) and inject it into the $data-&gt;profile array.  I believe I have to get the user&#95;id from #&#95;&#95;hikashop&#95;user where the field user&#95;cms&#95;id matches the current users id.  And then use this user&#95;id to query the #&#95;&#95;hikashop&#95;address table and get the address&#95;street and address&#95;street2 fields that match the current user.  Does anyone know if I can write one query to get all the user&#95;profile info, and the hikashop&#95;address info?  After that query is figured out I need to figure out how to inject it all into the $data-&gt;profile array that the user profile plugin will display for editing in the profile, and also change the onUserAfterSave function to update both the hikashop&#95;address table and user&#95;profile table.  Any help would be great, I am ok with standard sql queries but these ones are making my head spin.")*

That was it!

Thanks so much for replying/helping.

Cheers Xavier

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtL2RldmVsb3BtZW50Lzg2MjQ3OC1jdXN0b20tdXNlci1wbHVnaW4taGlrYXNob3AtYWRkcmVzcz90bXBsPW1hcmtkb3du) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

Board Categories HikaShop Install &amp; Update Product &amp; Category Display Content Creation Sales and Orders Orders management Reports &amp; Statistics Customers Checkout Payment Methods Shipping Methods Import &amp; Export (CSV, XLS…) Specific Features Affilation Taxes Wishlist Vote Carousel &amp; Slider Mass Actions Filters &amp; Search Discount &amp; Coupon Feature Request Integrations Showcase General Talk about HikaShop Development HikaShop 3.0 Beta Translation Commercial Jobs HikaShop Components HikaMarket Market: Feature requests Market: How to? Market: Bug Report HikaSerial General talk about HikaSerial Serial: Bug Report Serial: How to? Support en Français de HikaSerial (French Support) HikaSubscription HikaAuction Auction: Feature requests Auction: How to? Auction: Bug report Hikashop around the world Support en Français (French Support) Russian FAQ. Курс выживания с Hikashop. Частые вопросы и о Расширения Hikashop Наши сайты на Hikashop 日本語版サポート(Japanese Support) Thai German Archives Bug Report How to?

[](/forum/topics/feed/mode-topics?format=feed&type=rss)

Time to create page: 0.053 seconds

[Powered by](/forum/credits) [Kunena Forum](https://www.kunena.org)
