Jump to content

Community

(RSyvarth) Social Groups


rsyvarth

Recommended Posts

Well, my simple solution/hack for this atm. is that I've changed the permission check. So if a group is hidden and the member viewing the group is NOT a member and does not have an active invitation, then they will get an permission error.

That means that the two modes "Open" and "Administrator approval" won't really work for hidden groups, but in my use case that is not a problem. It's more important for me that the groups truly are hidden.

If you would consider any sort of collaboration when you rebuild this for the 4.0-version then I'm interested (for free, as long as I would get the application for free :tongue: ). I think that long term I would either have to maybe develop something on my own that is more suited for my particular use case or continue to use this, but then continue to do certain modifications to it. I have already found myself doing quite some changes both in skins and logic)

But I do believe this is an application that could better support my use case out of the box, while still being built upon the same idea as today.

Feel free to add me on skype (rsyvarth) or to send me an email (robert@syvarth.com). I would be glad to talk over changes with you as I start to update the app for IPB 4.0

Is it possible for posts made in social groups to count towards the forums overall total post count?

I've always wanted to use this app but worried it would sort of slow discussion on the forum itself.

Social group forums function as normal forums so post counts will increase as they do elsewhere on your site.

I have a question here.

When I try to change someone from ordinary member of the group to admin or moderator of the group, then I get this SQL error:

But it goes beyond me what sort of information ban_start should actually contain and what it is used for...

I cannot reproduce if I change the member type for the same member in a hidden closed group. Then it works just fine and is appearantly trying to insert another number in ban_start.

The weird thing is that the value it's trying to insert is m_rank, which has nothing to do with bans?

Here is the code:

So how does this column work and how do I resolve the issue?

To be honest, I don't quite remember what I was thinking upon creating that table schema, it has been a few years. It seems like it storing integer values in there but the schema is a tinyint so presumably that is wrong. I am updating it to int(10) in the next release which should take care of the issue. I'll release a new version of the app with this fixed shortly.

I need to know the steps on how to properly UNINSTALL this application. Thank you!

ACP -> Manage Applications & Modules -> Click on the dropdown next to social groups -> Remove Application.

-------

So as you all have probably heard IPB 4.0 is going to be available in beta soon. Since I am going to need to do a complete rewrite of social groups for 4.0 please be aware that it may take some time for it to be ready. If social groups is important to your site do not upgrade to 4.0 as soon as it comes out because it may take a few months for social groups to be fully ready for use again. At the moment I do not have any plans for charging extra for the 4.0 upgrade (other than standard renewals), so you shouldn't have to worry about that.

I am also planning on putting out a few more bug fixes soon. I know that mass pm is still not working for some of you and I know this is a point of frustration. At this point I am still not able to reproduce the issue on any environment that I have access to. With 4.0 coming out soon it seems unlikely that I will find a solution, so for now I am going to leave some instructions for how to disable the mass pm feature if you want.

If you wish to remove Mass PM from your installation of social groups go to admin/applications_addon/other/groups/addons/official/core/xml/navigation.xml

Find and remove

<element>
	<id>g_mass_pm_list</id>
	<name>g_mass_pm_list</name>
	<link>app=groups&amp;module=view&amp;section=manage&amp;gid=%g_id%&amp;app_id=core&amp;do=message</link>
	<type>utilities</type>
</element>

Save and Mass PM should no longer appear as an option in the GroupCP

-------

Also a note to a very few of you: If you have pirated my application please do not ask for support. I respond to all support requests since I know for many of you the account that is licensed isn't the same as the one you use from day to day but if you are stealing my software please do not also try to steal my time.

Link to comment
Share on other sites

Feel free to add me on skype (rsyvarth) or to send me an email (robert@syvarth.com). I would be glad to talk over changes with you as I start to update the app for IPB 4.0

So as you all have probably heard IPB 4.0 is going to be available in beta soon. Since I am going to need to do a complete rewrite of social groups for 4.0 please be aware that it may take some time for it to be ready. If social groups is important to your site do not upgrade to 4.0 as soon as it comes out because it may take a few months for social groups to be fully ready for use again. At the moment I do not have any plans for charging extra for the 4.0 upgrade (other than standard renewals), so you shouldn't have to worry about that.

I am also planning on putting out a few more bug fixes soon. I know that mass pm is still not working for some of you and I know this is a point of frustration. At this point I am still not able to reproduce the issue on any environment that I have access to. With 4.0 coming out soon it seems unlikely that I will find a solution, so for now I am going to leave some instructions for how to disable the mass pm feature if you want.

I can reproduce the mass PM issue. I'll try to come back to you with more details tomorrow and attempt to figure it out more myself.

I do have a few more ANSI_QUOTES fixes for you... I also have included two other changes for you. It's "quick and dirty" so you might want to change them a bit. I also added more of a feature change so that when you click on the invite link a PM you're sent to be added to the group right away, instead of having to click the "join"-link. Feel free to add any of the fixes you'd like.

--- a/www/admin/applications_addon/other/groups/modules_admin/settings/settings.php
+++ b/www/admin/applications_addon/other/groups/modules_admin/settings/settings.php
@@ -109,7 +109,7 @@ class admin_groups_settings_settings extends ipsCommand
                                
                                foreach( $setting as $k => $v ){
                                        if( $v != $this->settings[ $k ] ){
-                                               $this->DB->update( 'core_sys_conf_settings', array( 'conf_value' => $v ), 'conf_key="' . $k . '"' );
+                                               $this->DB->update( 'core_sys_conf_settings', array( 'conf_value' => $v ), "conf_key='" . $k . "'" );
                                        }
                                }
Date:   Mon Jun 16 16:53:02 2014 +0200

    Quick fix so we get an error message when the image failed to be uploaded

diff --git a/www/admin/applications_addon/other/groups/addons/official/core/manage.php b/www/admin/applications_addon/other/groups/addons/official/core/manage.php
index a947036..d19fa82 100644
--- a/www/admin/applications_addon/other/groups/addons/official/core/manage.php
+++ b/www/admin/applications_addon/other/groups/addons/official/core/manage.php
@@ -1174,10 +1174,13 @@ class manage_core
 
                        $uploads = $this->registry->groupLib->getImageUploadArray( $this->group['g_id'] );
 
+                       $img_responses = array();
+
                        if( is_array( $uploads ) ){
                                foreach( $uploads as $k => $v ){
                                        $_img = $this->registry->groupLib->uploadImage( $v['field'], $v['file'], $v['max_size'], $v['height'], $v['width'] );
 
+                                       $img_responses[] = $_img; # HW_CUSTOM debug
                                        //We are error free
                                        if( !$_img['error'] ){
                                                //Direct the group to the new file
@@ -1187,10 +1190,17 @@ class manage_core
                                                if( $this->group[ $k ] && file_exists( $this->settings['upload_dir'] . '/groups/' . $this->group[ $k ] ) ){
                                                        @unlink($this->settings['upload_dir'] . '/groups/' . $this->group[ $k ]);
                                                }
+                                       } else {
+                                               # HW_CUSTOM have to do something with errors... 
+                                               /* Ignore the error message No upload, since members can choose not to use all of them */
+                                               if ( strpos($_img['error'], 'No upload') === false ) {
+                                                       $this->registry->output->showError('We could not upload one or more of the images. Go back and try again with smaller images. Error message were: ' . $_img['error'] );
+                                               }
                                        }
                                }
                        }
--- a/www/admin/applications_addon/other/groups/modules_admin/addons/setup.php
+++ b/www/admin/applications_addon/other/groups/modules_admin/addons/setup.php
@@ -431,7 +431,7 @@ class admin_groups_addons_setup extends ipsCommand
                // Remove Modules
                //-----------------------------------------             
 
-               $this->DB->delete( 'social_groups_apps', 'app_id="' . $application['app_id'] . '"' );
+               $this->DB->delete( 'social_groups_apps', "app_id='" . $application['app_id'] . "'" );
                
                $this->cache->rebuildCache( 'settings', 'global' );
--- a/www/admin/applications_addon/other/groups/modules_admin/addons/setup.php
+++ b/www/admin/applications_addon/other/groups/modules_admin/addons/setup.php
@@ -175,7 +175,7 @@ class admin_groups_addons_setup extends ipsCommand
                //-----------------------------------------
                // Got an application?
                //-----------------------------------------
-               $application = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'social_groups_apps', 'where' => 'app_id="' . $this->request['directory'] . '"' ) );
+               $application = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'social_groups_apps', 'where' => "app_id='" . $this->request['directory'] . "'" ) );
                
                if ( ! $application['app_id'] )
                {
@@ -1254,7 +1254,7 @@ class admin_groups_addons_setup extends ipsCommand
                                                 'latest'  => array( 0, '' ) );
                
 
-               $currentVersion = $this->DB->buildAndFetch( array ( 'select' => '*', 'from' => 'social_groups_apps', 'where' => 'app_id = "' . $app['app_id'] . '"' ) );
+               $currentVersion = $this->DB->buildAndFetch( array ( 'select' => '*', 'from' => 'social_groups_apps', 'where' => "app_id = '" . $app['app_id'] . "'" ) );
 
                $versions = $this->fetchXmlAppVersions( $app ); 
--- a/www/admin/applications_addon/other/groups/modules_admin/addons/setup.php
+++ b/www/admin/applications_addon/other/groups/modules_admin/addons/setup.php
@@ -175,7 +175,7 @@ class admin_groups_addons_setup extends ipsCommand
                //-----------------------------------------
                // Got an application?
                //-----------------------------------------
-               $application = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'social_groups_apps', 'where' => "app_id='" . $this->request['directory'] . "'" ) );
+               $application = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'social_groups_apps', 'where' => 'app_id="' . $this->request['directory'] . '"' ) );
                
                if ( ! $application['app_id'] )
                {
Date:   Sun Jun 15 14:10:13 2014 +0200

    Return member list if no social groups member is found

diff --git a/www/admin/applications_addon/other/groups/addons/official/core/manage.php b/www/admin/applications_addon/other/groups/addons/official/core/manage.php
index 356499f..5bd4219 100644
--- a/www/admin/applications_addon/other/groups/addons/official/core/manage.php
+++ b/www/admin/applications_addon/other/groups/addons/official/core/manage.php
@@ -1399,6 +1399,11 @@ class manage_core
                        {
                                $member = $row;
                        }
+
+                       # HW_CUSTOM return member list if member is not in group member list
+                       if( ! isset( $member['member_id'] ) ){
+                               return $this->memberList();
+                       }
                        
                        if ( $member['is_owner'] == 1 ){
                                $this->registry->groupLib->showError( $this->lang->words['g_error_manage_owner_edit'], 1, $this->group );
Date:   Wed Jun 11 17:17:52 2014 +0200

    Automatically join the group when clicking on link in sent PM

diff --git a/www/admin/applications_addon/other/groups/addons/official/core/section.php b/www/admin/applications_addon/other/groups/addons/official/core/section.php
index d61b319..cd05a4e 100644
--- a/www/admin/applications_addon/other/groups/addons/official/core/section.php
+++ b/www/admin/applications_addon/other/groups/addons/official/core/section.php
@@ -99,6 +100,10 @@ class public_groups_view_page extends ipsCommand
                // Init Vars
                //-----------------------
                $this->group =& $this->registry->groupLib->getGroup( $this->request['gid'] );
+
+               # HW_CUSTOM
+               $this->ipsMember = $this->member;
+
                $this->member =& $this->registry->groupLib->getMember( $this->group['g_id'], $this->memberData['member_id'] );
                $_pageinfo = ( intval( $this->request['pid'] ) > 0 ) ? intval( $this->request['pid'] ) : array( 'g_id' => $this->group['g_id'], 'title' => $this->request['pid']);
                $this->page  = $this->registry->pageLib->getPageInfo( $_pageinfo );
@@ -140,6 +145,16 @@ class public_groups_view_page extends ipsCommand
 
                $join = $this->registry->groupLib->getJoinButton( $this->group, $this->member );
 
+               # HW_CUSTOM join immediately when clicking on invite link from PM
+               if( isset($this->request['inv_key']) ) {
+                       # We get redirect loop if we do not check g_section is not set
+                       if( isset( $join['activeInvitation'] ) && $join['activeInvitation'] && ! isset( $this->request['g_section'] ) ) 
+                       {
+                               $redirect_url = $this->registry->getClass('output')->buildSEOUrl('app=groups&module=view&gid='.$this->group['g_id'].'&g_section=section&app_id=core&do=join&inv_key=' . $this->request['inv_key'] .'&s=' . $this->ipsMember->form_hash, 'public');
+                               $this->registry->output->silentRedirect( $redirect_url );
+                       }
+               }
+

I also think you should be using &app=core&module=ajax&section=findnames&do=get-member-names&secure_key=***&name=displayname for the ajax member search when you invite. Currently I see that you use your own solution.

There is a problem inviting members with some special chars in your app right now and having it use the default system would probably resolve some issues and make it easier for me to fix the remaining bugs in IPB itself.

But I'll take a closer look at the invite issues and mass PM tomorrow or early next week aswell.

Edited by TSP
Link to comment
Share on other sites

  • 2 weeks later...

If a group is public so anyone can join or try to join, I would still expect the content of the group to be hidden until a member joins it. How cam I change that?

To me, the only difference between public and hidden should be, that you cannot join a hidden group unless you get an invitation while the public group appears on a list, but content of the group should still not be visible for non-members.

Link to comment
Share on other sites

  • 2 weeks later...

Suddenly I am getting a driver error when trying to approve a new member to a group. How can I see what is wrong and how to fix it?

There appears to be an error with the database.

If you are seeing this page, it means there was a problem communicating with our database. Sometimes this error is temporary and will go away when you refresh the page. Sometimes the error will need to be fixed by an administrator before the site will become accessible again.

You can try to refresh the page by clicking here

Link to comment
Share on other sites

I have this in my sql_error_log:

-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------
 Date: Sun, 13 Jul 2014 07:27:01 +0000
 Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for
 the right syntax to use near ')' at line 1
 IP Address: xyz - /index.php?app=groups&module=view&section=manage&gid=1&app_id=core&do=saveValidateMembers
 ----------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------
 mySQL query error: UPDATE IPB_social_group_members SET is_approved=1,m_rank=3,join_date=1405236421 WHERE g_id = 1 and 
member_id IN(  )
 .---------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------.
 | File                                                                       | Function                               
                                       | Line No.          |
 |----------------------------------------------------------------------------+----------------------------------------
---------------------------------------+-------------------|
 | admin/applications_addon/other/groups/addons/official/core/manage.php      | [db_main_mysql].update                 
                                       | 1712              |
 '----------------------------------------------------------------------------+----------------------------------------
---------------------------------------+-------------------'
 | admin/applications_addon/other/groups/addons/official/core/manage.php      | [manage_core].saveValidateMembers      
                                       | 219               |
 '----------------------------------------------------------------------------+----------------------------------------
---------------------------------------+-------------------'
 | admin/applications_addon/other/groups/modules_public/view/manage.php       | [manage_core].doExecute                
                                       | 185               |
 '----------------------------------------------------------------------------+----------------------------------------
---------------------------------------+-------------------'
 | admin/applications_addon/other/groups/modules_public/view/manage.php       | [public_groups_view_manage].getManageSe
ction                                  | 128               |
 '----------------------------------------------------------------------------+----------------------------------------
---------------------------------------+-------------------'
 | admin/sources/base/ipsController.php                                       | [public_groups_view_manage].doExecute  
                                       | 306               |
 '----------------------------------------------------------------------------+----------------------------------------
---------------------------------------+-------------------'
Link to comment
Share on other sites

Suddenly I am getting a driver error when trying to approve a new member to a group. How can I see what is wrong and how to fix it?

There appears to be an error with the database.

If you are seeing this page, it means there was a problem communicating with our database. Sometimes this error is temporary and will go away when you refresh the page. Sometimes the error will need to be fixed by an administrator before the site will become accessible again.

You can try to refresh the page by clicking here

Ooops! Nevermind this one ... just realised that it was because I didn't mark the member before trying to approve as a member.


If a group is public so anyone can join or try to join, I would still expect the content of the group to be hidden until a member joins it. How cam I change that?

To me, the only difference between public and hidden should be, that you cannot join a hidden group unless you get an invitation while the public group appears on a list, but content of the group should still not be visible for non-members.

This one I would still like to be able to change though :)

Link to comment
Share on other sites

If a group is public so anyone can join or try to join, I would still expect the content of the group to be hidden until a member joins it. How cam I change that?

To me, the only difference between public and hidden should be, that you cannot join a hidden group unless you get an invitation while the public group appears on a list, but content of the group should still not be visible for non-members.

You can change the permission on each part of the group. To make it so users who are not a member of the group can't view the group content all you need to do is go to the GroupCP and change the permissions for guests so they can't view anything in the group. Let me know if you need more detailed instructions. (Note: this would have to be done on a per-group basis, not globally)

Link to comment
Share on other sites

Hi, i got some more SQL errors:

mySQL query error: UPDATE ibf_social_group_members SET is_approved=1,m_rank=181,join_date=1402238374 WHERE g_id = 37 and member_id IN( )
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File | Function | Line No. |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| C:inetpubwwwrootadminapplications_addonothergroupsaddonsofficialcoremanage.php| [db_main_mysql].update | 1712 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| C:inetpubwwwrootadminapplications_addonothergroupsaddonsofficialcoremanage.php| [manage_core].saveValidateMembers | 219 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| C:inetpubwwwrootadminapplications_addonothergroupsmodules_publicviewmanage.php| [manage_core].doExecute | 185 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| C:inetpubwwwrootadminapplications_addonothergroupsmodules_publicviewmanage.php| [public_groups_view_manage].getManageSection | 128 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| C:inetpubwwwrootadminsourcesbaseipsController.php | [public_groups_view_manage].doExecute | 306 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Date: Sun, 08 Jun 2014 14:43:24 +0000
Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
IP Address: 193.126.175.111 - /index.php?app=groups&module=view&section=manage&gid=37&app_id=core&do=saveValidateMembers
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: UPDATE ibf_social_group_members SET is_approved=1,m_rank=181,join_date=1402238604 WHERE g_id = 37 and member_id IN( )
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File | Function | Line No. |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| C:inetpubwwwrootadminapplications_addonothergroupsaddonsofficialcoremanage.php| [db_main_mysql].update | 1712 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| C:inetpubwwwrootadminapplications_addonothergroupsaddonsofficialcoremanage.php| [manage_core].saveValidateMembers | 219 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| C:inetpubwwwrootadminapplications_addonothergroupsmodules_publicviewmanage.php| [manage_core].doExecute | 185 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| C:inetpubwwwrootadminapplications_addonothergroupsmodules_publicviewmanage.php| [public_groups_view_manage].getManageSection | 128 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| C:inetpubwwwrootadminsourcesbaseipsController.php | [public_groups_view_manage].doExecute | 306 |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
Link to comment
Share on other sites

  • 2 weeks later...

OK - I need some help here:

First problem - partially "fixed", but I am wondering:

- I have to social groups on my new forum - mainly testing it still.

- I had created a lot of (sub)forums on my forums, but decided to dele a bunch of them again.

- Today when I created a new thread in my forums after the cleaning, something weird happened: The thread showed in the right forum on the index, but when I clicked to read it, it showed as if it existed in one of the social group discussion groups! I though I might have made a mistake creating it, so I copy'n pasted it and created a new thread, this time making sure I created it the right place. Same thing happened. Thread in right forum on index, but in social group when clicked. Breadcrumb showed the social group as well.

- I decided to delete the forum in the social group through the ACP, moving some threads to a temp created forum - and now my thread showed correctly

Problem is now:

- Then I wanted to create a new forum for the social group, moving the threads back. It seems like the deleted forum is still showing in the discussion group list in the social group and I cannot delete it. I can create a new one, but it's not showing, probably because the deleted forum is the main discussion forum and it does not exist anymore?

So the question is now:

1. what happened? I assume something must have gone wrong with forum/group id's or something when I deleted some old forums?

2. how do I fix this problem?

Link to comment
Share on other sites

I don't know... it's not me who uses the app, i am just the community admin, is the users themselves... if it happens then a check should be made to avoid that situation. It may not be a technical error, but a usability error.

I agree ... would be nice if the checkbox was automatically checked - or at least the error message clear, since I was confused myself as an admin who knows mysql :P - have not tested with users yet, since forum is still in test mode and no users have created a group yet.

Link to comment
Share on other sites

Just purchased Social Groups. When I add "Text Block" in the Manage Addons section and it's installed, the block is not available in the Group "Edit Page". It's just doesn't show. All the other blocks do. (Example Addon doesn't show either, but I didn't need that one.)

Any ideas?

Link to comment
Share on other sites

Just purchased Social Groups. When I add "Text Block" in the Manage Addons section and it's installed, the block is not available in the Group "Edit Page". It's just doesn't show. All the other blocks do. (Example Addon doesn't show either, but I didn't need that one.)

Any ideas?

Never mind... I just needed to select the blocks to be used in the categories. :)

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

1. At the moment a lot of the social groups postings is appear on the main forums new content lists for all forums-members. Is it possible so that I can change this so that they do not appear in the new content unless the member is actually a member of the group?

2. How can I go about changing the groups default permissions so that at creation only members can view, read and post to the group content?

I have the exact same problem...

Link to comment
Share on other sites

ok i added a second page and edit yet can not move news etc into the template its hard to get the move cursor yet still wont move the news text navigation etc in to the main template.. what am i doing wrong?

it wont work on the main page either when trying to move to the template the types of boxes news text etc

Link to comment
Share on other sites

ok tried it with different browsers got that part to work on other browsers i was useing chrome but worked on fire fox with one major exception

it most the time wont save

i got it to save twice is all

click the save button nothing happens dead button most all the time

trying OPERA still didnt work wont save

Link to comment
Share on other sites

ok found a browser it works with it will save in Opera browser ONLY if you open the browser do the edit and save.. it wont work if you have done anything else on the browser must be the first and only thing you do right after opening a new opera browser thank goodness opera goes to the last page you looked at so that is why it works no other browsers can i get to work right wont save or wont move objects (chrome)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy