diff --git a/actions/fix_auto_join.php b/actions/fix_auto_join.php new file mode 100644 index 00000000..e4662a29 --- /dev/null +++ b/actions/fix_auto_join.php @@ -0,0 +1,60 @@ + "user", + "relationship" => "member_of_site", + "relationship_guid" => $CONFIG->site_guid, + "inverse_relationship" => true, + "limit" => false, + "callback" => "group_tools_guid_only_callback" + ); + + if($user_guids = elgg_get_entities_from_relationship($options)){ + // make sure we can add user to group acl + register_plugin_hook("access:collections:write", "user", "group_tools_add_user_acl_hook"); + $GROUP_TOOLS_ACL = $group->group_acl; + + foreach($user_guids as $user_guid){ + if(!is_group_member($group->getGUID(), $user_guid)){ + if(join_group($group->getGUID(), $user_guid)){ + $new++; + } else { + $failure++; + } + } else { + $already++; + } + + // cleanup cache, to be sure + invalidate_cache_for_entity($user_guid); + } + + // cleanup hook + unregister_plugin_hook("access:collections:write", "user", "group_tools_add_user_acl_hook"); + } + + system_message(sprintf(elgg_echo("group_tools:action:fix_auto_join:success"), $new, $already, $failure)); + } else { + register_error(elgg_echo("group_tools:action:error:entity")); + } + } else { + register_error(elgg_echo("group_tools:action:error:input")); + } + + forward(REFERER); \ No newline at end of file diff --git a/languages/en.php b/languages/en.php index 77efc13e..76d39822 100644 --- a/languages/en.php +++ b/languages/en.php @@ -87,6 +87,7 @@ // auto join form 'group_tools:auto_join:add' => "%sAdd this group%s to the auto join groups. This will mean that new users are automaticly added to this group on registration.", 'group_tools:auto_join:remove' => "%sRemove this group%s from the auto join groups. This will mean that new users will no longer automaticly join this group on registration.", + 'group_tools:auto_join:fix' => "To make all site members a member of this group, please %sclick here%s.", // group admins 'group_tools:multiple_admin:group_admins' => "Group admins", @@ -198,6 +199,9 @@ 'group_tools:action:toggle_auto_join:error:save' => "An error occured while saving the new settings", 'group_tools:action:toggle_auto_join:success' => "The new settings were saved successfully", + // group fix auto_join + 'group_tools:action:fix_auto_join:success' => "Group membership fixed: %s new members, %s were already a member and %s failures", + ); add_translation("en", $english); diff --git a/languages/nl.php b/languages/nl.php index 148cb6a8..bb977b00 100644 --- a/languages/nl.php +++ b/languages/nl.php @@ -1,72 +1,74 @@ 'Uitnodiging opnieuw versturen naar gebruikers die al zijn uitgenodigd', - 'group_tools:clear_selection' => 'Selectie wissen', - 'group_tools:all_members' => 'Alle leden', - 'group_tools:mail:form:recipients' => 'Aantal geselecteerde ontvangers', - 'group_tools:mail:form:members:selection' => 'Selecteer individuele leden', - 'group_tools:mail:form:js:members' => 'Selecteer minstens één lid om het bericht aan te versturen', - 'group_tools:mail:form:js:description' => 'Geef een bericht op', - 'group_tools:remove' => 'Verwijder', - 'group_tools:settings:auto_join' => 'Automatisch groepslidmaatschap', - 'group_tools:settings:auto_join:description' => 'Nieuwe gebruikers worden automatisch lid van de volgende groepen', - 'group_tools:auto_join:add' => '%sVoeg deze groep toe%s om automatisch lid van te worden. Dit betekend dat nieuwe gebruikers automatisch lid worden van deze groep.', - 'group_tools:auto_join:remove' => '%sVerwijder deze groep%s uit de automatische lidmaatschappen. Dit betekend dat nieuwe gebruikers niet langer automatisch lid worden van deze groep.', - 'group_tools:action:toggle_auto_join:error:save' => 'Er is een fout opgetreden tijdens het opslaan van de instellingen', - 'group_tools:action:toggle_auto_join:success' => 'De nieuwe instellingen zijn succesvol opgeslagen', - 'group_tools:notify:transfer:subject' => 'Beheer van de groep %s is aan je overgedragen', +$language = array ( + 'widgets:group_river_widget:edit:no_groups' => 'Je moet van minstens ��n groep lid zijn om gebruik te kunnen maken van deze widget', + 'group_tools:auto_join:fix' => 'Om alle leden van de site lid te maken van deze groep, %sklik hier%s.', + 'group_tools:mail:form:js:members' => 'Selecteer minstens ��n lid om het bericht aan te versturen', + 'group_tools:action:fix_auto_join:success' => 'Groep lidmaatschap gerepareerd: %s nieuwe leden, %s waren reeds lid en %s fouten', + 'group_tools:group:invite:resend' => 'Uitnodiging opnieuw versturen naar gebruikers die al zijn uitgenodigd', + 'group_tools:clear_selection' => 'Selectie wissen', + 'group_tools:all_members' => 'Alle leden', + 'group_tools:mail:form:recipients' => 'Aantal geselecteerde ontvangers', + 'group_tools:mail:form:members:selection' => 'Selecteer individuele leden', + 'group_tools:mail:form:js:description' => 'Geef een bericht op', + 'group_tools:remove' => 'Verwijder', + 'group_tools:settings:auto_join' => 'Automatisch groepslidmaatschap', + 'group_tools:settings:auto_join:description' => 'Nieuwe gebruikers worden automatisch lid van de volgende groepen', + 'group_tools:auto_join:add' => '%sVoeg deze groep toe%s om automatisch lid van te worden. Dit betekend dat nieuwe gebruikers automatisch lid worden van deze groep.', + 'group_tools:auto_join:remove' => '%sVerwijder deze groep%s uit de automatische lidmaatschappen. Dit betekend dat nieuwe gebruikers niet langer automatisch lid worden van deze groep.', + 'group_tools:action:toggle_auto_join:error:save' => 'Er is een fout opgetreden tijdens het opslaan van de instellingen', + 'group_tools:action:toggle_auto_join:success' => 'De nieuwe instellingen zijn succesvol opgeslagen', + 'group_tools:notify:transfer:subject' => 'Beheer van de groep %s is aan je overgedragen', 'group_tools:notify:transfer:message' => 'Beste %s, %s heeft het beheer van de groep %s aan je overgedragen. Om de groep te bezoeken klik op onderstaande link: -%s', - 'widgets:group_invitations:title' => 'Groep uitnodigingen', - 'widgets:group_invitations:description' => 'Toont de uitstaande groep uitnodigingen voor de huidige gebruiker', - 'widgets:group_members:title' => 'Groep leden', - 'widgets:group_members:description' => 'Toont de leden van de huidige groep', - 'widgets:group_members:edit:num_display' => 'Hoeveel leden moeten er getoond worden', - 'widgets:group_members:view:no_members' => 'Geen groep leden gevonden', - 'widgets:group_river_widget:title' => 'Groep activiteit', - 'widgets:group_river_widget:description' => 'Toont de activiteit van een groep in de widget', - 'widgets:group_river_widget:edit:num_display' => 'Aantal activiteiten om te tonen', - 'widgets:group_river_widget:edit:group' => 'Selecteer een groep', - 'widgets:group_river_widget:edit:no_groups' => 'Je moet van minstens één groep lid zijn om gebruik te kunnen maken van deze widget', - 'widgets:group_river_widget:view:not_configured' => 'Deze widget is nog niet geconfigureerd', - 'widgets:group_river_widget:view:more' => 'Activiteit in de \'%s\' groep', - 'group_tools:decline' => 'Afwijzen', - 'group_tools:revoke' => 'Intrekken', - 'group_tools:add_users' => 'Gebruikers toevoegen', - 'group_tools:in' => 'in', - 'group_tools:menu:mail' => 'E-mail leden', - 'group_tools:menu:membership' => 'Lidmaatschap goedkeuring', - 'group_tools:settings:admin_transfer' => 'Sta groep eigenaar overdracht toe', - 'group_tools:settings:admin_transfer:admin' => 'Alleen site beheerders', - 'group_tools:settings:admin_transfer:owner' => 'Groep eigenaren en site beheerder', - 'group_tools:settings:multiple_admin' => 'Sta meerdere groep beheerders toe', - 'group_tools:settings:invite' => 'Mogen alle gebruikers worden uitgenodigd (niet alleen vrienden)', - 'group_tools:settings:invite_email' => 'Nodig gebruikers uit op basis van e-mail adres', - 'group_tools:settings:invite_csv' => 'Nodig gebruikers uit op basis van een CSV-bestand', - 'group_tools:settings:mail' => 'Groep beheerders mogen alle leden een e-mail sturen', - 'group_tools:settings:listing' => 'Standaard groep overzicht tab', - 'group_tools:settings:search_index' => 'Mogen besloten groepen worden geïndexeerd door zoekmachines', - 'group_tools:settings:auto_notification' => 'Schakel groeps notificaties automatisch in bij het lid worden van een groep', +%s', + 'widgets:group_invitations:title' => 'Groep uitnodigingen', + 'widgets:group_invitations:description' => 'Toont de uitstaande groep uitnodigingen voor de huidige gebruiker', + 'widgets:group_members:title' => 'Groep leden', + 'widgets:group_members:description' => 'Toont de leden van de huidige groep', + 'widgets:group_members:edit:num_display' => 'Hoeveel leden moeten er getoond worden', + 'widgets:group_members:view:no_members' => 'Geen groep leden gevonden', + 'widgets:group_river_widget:title' => 'Groep activiteit', + 'widgets:group_river_widget:description' => 'Toont de activiteit van een groep in de widget', + 'widgets:group_river_widget:edit:num_display' => 'Aantal activiteiten om te tonen', + 'widgets:group_river_widget:edit:group' => 'Selecteer een groep', + 'widgets:group_river_widget:view:not_configured' => 'Deze widget is nog niet geconfigureerd', + 'widgets:group_river_widget:view:more' => 'Activiteit in de \'%s\' groep', + 'group_tools:decline' => 'Afwijzen', + 'group_tools:revoke' => 'Intrekken', + 'group_tools:add_users' => 'Gebruikers toevoegen', + 'group_tools:in' => 'in', + 'group_tools:menu:mail' => 'E-mail leden', + 'group_tools:menu:membership' => 'Lidmaatschap goedkeuring', + 'group_tools:settings:admin_transfer' => 'Sta groep eigenaar overdracht toe', + 'group_tools:settings:admin_transfer:admin' => 'Alleen site beheerders', + 'group_tools:settings:admin_transfer:owner' => 'Groep eigenaren en site beheerder', + 'group_tools:settings:multiple_admin' => 'Sta meerdere groep beheerders toe', + 'group_tools:settings:invite' => 'Mogen alle gebruikers worden uitgenodigd (niet alleen vrienden)', + 'group_tools:settings:invite_email' => 'Nodig gebruikers uit op basis van e-mail adres', + 'group_tools:settings:invite_csv' => 'Nodig gebruikers uit op basis van een CSV-bestand', + 'group_tools:settings:mail' => 'Groep beheerders mogen alle leden een e-mail sturen', + 'group_tools:settings:listing' => 'Standaard groep overzicht tab', + 'group_tools:settings:search_index' => 'Mogen besloten groepen worden geïndexeerd door zoekmachines', + 'group_tools:settings:auto_notification' => 'Schakel groeps notificaties automatisch in bij het lid worden van een groep', 'group_tools:groups:invite:body' => 'Beste %s, %s heeft je uitgenodigd om lid te worden van de groep \'%s\'. %s Klik op onderstaande link om je uitnodigingen te zien: -%s', - 'group_tools:groups:invite:add:subject' => 'Je bent toegevoegd aan de groep %s', +%s', + 'group_tools:groups:invite:add:subject' => 'Je bent toegevoegd aan de groep %s', 'group_tools:groups:invite:add:body' => 'Beste %s, %s heeft jou toegevoegd aan de groep %s. %s Om naar de groep te gaan klik op onderstaande link: -%s', - 'group_tools:groups:invite:email:subject' => 'Je bent uitgenodigd voor de groep %s', +%s', + 'group_tools:groups:invite:email:subject' => 'Je bent uitgenodigd voor de groep %s', 'group_tools:groups:invite:email:body' => 'Hallo, %s heeft je uitgenodigd om lid te worden van de groep %s op %s. @@ -79,71 +81,71 @@ %s Je kunt ook gaan naar Alle groepen -> Groep uitnodigingen en daar de volgende code invoeren: -%s', - 'group_tools:admin_transfer:transfer' => 'Draag groep eigendom over naar', - 'group_tools:admin_transfer:myself' => 'Mijzelf', - 'group_tools:admin_transfer:submit' => 'Overdragen', - 'group_tools:admin_transfer:no_users' => 'Geen leden of vrienden om eigendom naar over te dragen', - 'group_tools:admin_transfer:confirm' => 'Weet je zeken dat je het eigendom wilt overdragen?', - 'group_tools:multiple_admin:group_admins' => 'Groep beheerders', - 'group_tools:multiple_admin:profile_actions:remove' => 'Verwijder groep beheerder', - 'group_tools:multiple_admin:profile_actions:add' => 'Maak groep beheerder', - 'group_tools:multiple_admin:group_tool_option' => 'Mogen groep beheerders andere groep beheerder aanmaken', - 'group_tools:group_kick:profile_actions:kick' => 'Verwijder uit de groep', - 'group_tools:mail:message:from' => 'Van groep', - 'group_tools:mail:title' => 'Stuur een e-mail naar de groepsleden', - 'group_tools:mail:form:title' => 'Onderwerp', - 'group_tools:mail:form:description' => 'Bericht', - 'group_tools:groups:invite' => 'Nodig gebruikers uit', - 'group_tools:group:invite:users' => 'Zoek gebruiker(s)', - 'group_tools:group:invite:users:description' => 'Vul een naam of gebruikersnaam van een lid in en selecteer hem/haar uit de lijst', - 'group_tools:group:invite:email' => 'Obv e-mail adres', - 'group_tools:group:invite:email:description' => 'Geef een geldig e-mail adres op en selecteer het uit de lijst', - 'group_tools:group:invite:csv' => 'Obv CSV bestand', +%s', + 'group_tools:admin_transfer:transfer' => 'Draag groep eigendom over naar', + 'group_tools:admin_transfer:myself' => 'Mijzelf', + 'group_tools:admin_transfer:submit' => 'Overdragen', + 'group_tools:admin_transfer:no_users' => 'Geen leden of vrienden om eigendom naar over te dragen', + 'group_tools:admin_transfer:confirm' => 'Weet je zeken dat je het eigendom wilt overdragen?', + 'group_tools:multiple_admin:group_admins' => 'Groep beheerders', + 'group_tools:multiple_admin:profile_actions:remove' => 'Verwijder groep beheerder', + 'group_tools:multiple_admin:profile_actions:add' => 'Maak groep beheerder', + 'group_tools:multiple_admin:group_tool_option' => 'Mogen groep beheerders andere groep beheerder aanmaken', + 'group_tools:group_kick:profile_actions:kick' => 'Verwijder uit de groep', + 'group_tools:mail:message:from' => 'Van groep', + 'group_tools:mail:title' => 'Stuur een e-mail naar de groepsleden', + 'group_tools:mail:form:title' => 'Onderwerp', + 'group_tools:mail:form:description' => 'Bericht', + 'group_tools:groups:invite' => 'Nodig gebruikers uit', + 'group_tools:group:invite:users' => 'Zoek gebruiker(s)', + 'group_tools:group:invite:users:description' => 'Vul een naam of gebruikersnaam van een lid in en selecteer hem/haar uit de lijst', + 'group_tools:group:invite:email' => 'Obv e-mail adres', + 'group_tools:group:invite:email:description' => 'Geef een geldig e-mail adres op en selecteer het uit de lijst', + 'group_tools:group:invite:csv' => 'Obv CSV bestand', 'group_tools:group:invite:csv:description' => 'Je kunt een CSV bestand uploaden om gebruikers uit te nodigen
-Het formaat moet zijn: weergave naam;e-mail adres. Er mag geen kopregel zijn.', - 'group_tools:group:invite:text' => 'Persoonlijk bericht (optioneel)', - 'group_tools:group:invite:add:confirm' => 'Weet je zeker dat je deze gebruikers direct wilt toevoegen?', - 'group_tools:groups:invitation:code:title' => 'Groep uitnodiging via e-mail', - 'group_tools:groups:invitation:code:description' => 'Als je een uitnodiging hebt ontvangen via e-mail om lid te worden van een groep, kun je hieronder de uitnodigingscode invoeren om te accepteren. Als je op de link klikt die in de e-mail staat wordt de code voor je ingevuld.', - 'group_tools:groups:membershipreq:requests' => 'Lidmaatschap verzoeken', - 'group_tools:groups:membershipreq:invitations' => 'Uitstaande uitnodigingen', - 'group_tools:groups:membershipreq:invitations:none' => 'Geen uitstaande uitnodigingen', - 'group_tools:groups:membershipreq:invitations:revoke:confirm' => 'Weet je zeker dat je deze uitnodiging wilt terug trekken', - 'group_tools:group:invitations:request' => 'Uitstaande lidmaatschap verzoeken', - 'group_tools:group:invitations:request:revoke:confirm' => 'Weet je zeker dat je dit lidmaatschap verzoek wilt terugtrekken?', - 'group_tools:group:invitations:request:non_found' => 'Er zijn geen uitstaande lidmaatschap verzoeken op dit moment', - 'group_tools:groups:sorting:alfabetical' => 'Alfabetisch', - 'group_tools:action:error:input' => 'Ongeldige invoer om deze actie uit te voeren', - 'group_tools:action:error:entities' => 'De opgegeven GUIDs resulteren niet in de correctie entities', - 'group_tools:action:error:entity' => 'De opgegeven GUID resulteert niet in de juiste entity', - 'group_tools:action:error:edit' => 'Je hebt geen toegang tot de opgegeven entity', - 'group_tools:action:admin_transfer:error:access' => 'Je bent niet geautoriseerd om het groep eigendom over te dragen', - 'group_tools:action:admin_transfer:error:self' => 'Je kunt het eigendom niet overdragen aan jezelf, je bent al de eigenaar', - 'group_tools:action:admin_transfer:error:save' => 'Er is een onbekende fout opgetreden tijdens het opslaan van de groep, probeer het nogmaals', - 'group_tools:action:admin_transfer:success' => 'Groep eigendom is succesvol overgedragen aan %s', - 'group_tools:action:toggle_admin:error:group' => 'De opgegeven invoer resulteerde niet in een groep, of je kunt de groep niet bewerken of de gebruiker is geen lid', - 'group_tools:action:toggle_admin:error:remove' => 'Er is een onbekend fout opgetreden tijdens het verwijderen van de gebruiker als groep beheerder', - 'group_tools:action:toggle_admin:error:add' => 'Er is een onbekende fout opgetreden tijdens het toevoegen van de gebruiker als groep beheerder', - 'group_tools:action:toggle_admin:success:remove' => 'De gebruiker is succesvol verwijderd als groep beheerder', - 'group_tools:action:toggle_admin:success:add' => 'De gebruiker is succesvol toegevoegd als groep beheerder', - 'group_tools:action:kick:error' => 'Er is een onbekende fout opgetreden tijdens het verwijderen van de gebruiker uit de groep', - 'group_tools:action:kick:success' => 'De gebruiker is succesvol verwijderd uit de groep', - 'group_tools:action:mail:success' => 'Bericht succesvol verzonden', - 'group_tools:action:group:invite:success' => 'Succesvol %s gebruikers uitgenodigd via CSV om lid te worden van de groep', - 'group_tools:action:group:invite:success:other' => 'Succesvol %s gebruikers uitgenodigd via CSV om lid te worden van de groep (%s waren al lid, %s waren al uitgenodigd)', - 'group_tools:action:group:invite:error:no_invites' => 'Geen uitnodigingen verzonden (%s waren al lid, %s waren al uitgenodigd)', - 'group_tools:action:groups:invite:add:success' => 'Succesvol %s gebruikers toegevoegd', - 'group_tools:action:groups:invite:add:success:other' => 'Succesvol %s gebruikers toegevoegd (%s waren al lid)', - 'group_tools:action:groups:invite:add:error:no_add' => 'Geen gebruikers toegevoegd (%s waren al lid)', - 'group_tools:action:group:invite:email:success' => 'Succesvol %s gebruikers via email uitgenodigd om lid te worden van deze group', - 'group_tools:action:group:invite:email:success:other' => 'Succesvol %s gebruikers via email uitgenodigd om lid te worden van deze group (%s waren al uitgenodigd', - 'group_tools:action:group:invite:email:error:no_invites' => 'Geen e-mail uitnodigingen verzonden (%s waren al uitgenodigd)', - 'group_tools:action:group:invite:csv:error:no_invites' => 'Geen uitnodigingen verzonden via CSV (%s waren al lid, %s waren al uitgenodigd)', - 'group_tools:action:groups:email_invitation:error:input' => 'Geef een uitnodigingscode op', - 'group_tools:action:groups:email_invitation:error:code' => 'De opgegeven uitnodiginscode in niet meer geldig', - 'group_tools:action:groups:email_invitation:error:join' => 'Er is een onbekende fout opgetreden tijdens het lid worden van de groep %s, misschien ben je al lid', - 'group_tools:action:groups:email_invitation:success' => 'Je bent lid geworden van de groep', +Het formaat moet zijn: weergave naam;e-mail adres. Er mag geen kopregel zijn.', + 'group_tools:group:invite:text' => 'Persoonlijk bericht (optioneel)', + 'group_tools:group:invite:add:confirm' => 'Weet je zeker dat je deze gebruikers direct wilt toevoegen?', + 'group_tools:groups:invitation:code:title' => 'Groep uitnodiging via e-mail', + 'group_tools:groups:invitation:code:description' => 'Als je een uitnodiging hebt ontvangen via e-mail om lid te worden van een groep, kun je hieronder de uitnodigingscode invoeren om te accepteren. Als je op de link klikt die in de e-mail staat wordt de code voor je ingevuld.', + 'group_tools:groups:membershipreq:requests' => 'Lidmaatschap verzoeken', + 'group_tools:groups:membershipreq:invitations' => 'Uitstaande uitnodigingen', + 'group_tools:groups:membershipreq:invitations:none' => 'Geen uitstaande uitnodigingen', + 'group_tools:groups:membershipreq:invitations:revoke:confirm' => 'Weet je zeker dat je deze uitnodiging wilt terug trekken', + 'group_tools:group:invitations:request' => 'Uitstaande lidmaatschap verzoeken', + 'group_tools:group:invitations:request:revoke:confirm' => 'Weet je zeker dat je dit lidmaatschap verzoek wilt terugtrekken?', + 'group_tools:group:invitations:request:non_found' => 'Er zijn geen uitstaande lidmaatschap verzoeken op dit moment', + 'group_tools:groups:sorting:alfabetical' => 'Alfabetisch', + 'group_tools:action:error:input' => 'Ongeldige invoer om deze actie uit te voeren', + 'group_tools:action:error:entities' => 'De opgegeven GUIDs resulteren niet in de correctie entities', + 'group_tools:action:error:entity' => 'De opgegeven GUID resulteert niet in de juiste entity', + 'group_tools:action:error:edit' => 'Je hebt geen toegang tot de opgegeven entity', + 'group_tools:action:admin_transfer:error:access' => 'Je bent niet geautoriseerd om het groep eigendom over te dragen', + 'group_tools:action:admin_transfer:error:self' => 'Je kunt het eigendom niet overdragen aan jezelf, je bent al de eigenaar', + 'group_tools:action:admin_transfer:error:save' => 'Er is een onbekende fout opgetreden tijdens het opslaan van de groep, probeer het nogmaals', + 'group_tools:action:admin_transfer:success' => 'Groep eigendom is succesvol overgedragen aan %s', + 'group_tools:action:toggle_admin:error:group' => 'De opgegeven invoer resulteerde niet in een groep, of je kunt de groep niet bewerken of de gebruiker is geen lid', + 'group_tools:action:toggle_admin:error:remove' => 'Er is een onbekend fout opgetreden tijdens het verwijderen van de gebruiker als groep beheerder', + 'group_tools:action:toggle_admin:error:add' => 'Er is een onbekende fout opgetreden tijdens het toevoegen van de gebruiker als groep beheerder', + 'group_tools:action:toggle_admin:success:remove' => 'De gebruiker is succesvol verwijderd als groep beheerder', + 'group_tools:action:toggle_admin:success:add' => 'De gebruiker is succesvol toegevoegd als groep beheerder', + 'group_tools:action:kick:error' => 'Er is een onbekende fout opgetreden tijdens het verwijderen van de gebruiker uit de groep', + 'group_tools:action:kick:success' => 'De gebruiker is succesvol verwijderd uit de groep', + 'group_tools:action:mail:success' => 'Bericht succesvol verzonden', + 'group_tools:action:group:invite:success' => 'Succesvol %s gebruikers uitgenodigd via CSV om lid te worden van de groep', + 'group_tools:action:group:invite:success:other' => 'Succesvol %s gebruikers uitgenodigd via CSV om lid te worden van de groep (%s waren al lid, %s waren al uitgenodigd)', + 'group_tools:action:group:invite:error:no_invites' => 'Geen uitnodigingen verzonden (%s waren al lid, %s waren al uitgenodigd)', + 'group_tools:action:groups:invite:add:success' => 'Succesvol %s gebruikers toegevoegd', + 'group_tools:action:groups:invite:add:success:other' => 'Succesvol %s gebruikers toegevoegd (%s waren al lid)', + 'group_tools:action:groups:invite:add:error:no_add' => 'Geen gebruikers toegevoegd (%s waren al lid)', + 'group_tools:action:group:invite:email:success' => 'Succesvol %s gebruikers via email uitgenodigd om lid te worden van deze group', + 'group_tools:action:group:invite:email:success:other' => 'Succesvol %s gebruikers via email uitgenodigd om lid te worden van deze group (%s waren al uitgenodigd', + 'group_tools:action:group:invite:email:error:no_invites' => 'Geen e-mail uitnodigingen verzonden (%s waren al uitgenodigd)', + 'group_tools:action:group:invite:csv:error:no_invites' => 'Geen uitnodigingen verzonden via CSV (%s waren al lid, %s waren al uitgenodigd)', + 'group_tools:action:groups:email_invitation:error:input' => 'Geef een uitnodigingscode op', + 'group_tools:action:groups:email_invitation:error:code' => 'De opgegeven uitnodiginscode in niet meer geldig', + 'group_tools:action:groups:email_invitation:error:join' => 'Er is een onbekende fout opgetreden tijdens het lid worden van de groep %s, misschien ben je al lid', + 'group_tools:action:groups:email_invitation:success' => 'Je bent lid geworden van de groep', ); add_translation("nl", $language); ?> \ No newline at end of file diff --git a/lib/events.php b/lib/events.php index bb6cd5c6..849e2644 100644 --- a/lib/events.php +++ b/lib/events.php @@ -55,4 +55,21 @@ function group_tools_join_site_handler($event, $type, $relationship){ elgg_set_ignore_access($ia); } } - } \ No newline at end of file + } + + function group_tools_multiple_admin_group_leave($event, $type, $params){ + + if(!empty($params) && is_array($params)){ + if(array_key_exists("group", $params) && array_key_exists("user", $params)){ + $entity = $params["group"]; + $user = $params["user"]; + + if(($entity instanceof ElggGroup) && ($user instanceof ElggUser)){ + if(check_entity_relationship($user->getGUID(), "group_admin", $entity->getGUID())){ + return remove_entity_relationship($user->getGUID(), "group_admin", $entity->getGUID()); + } + } + } + } + } + \ No newline at end of file diff --git a/lib/hooks.php b/lib/hooks.php new file mode 100644 index 00000000..3fd29f5d --- /dev/null +++ b/lib/hooks.php @@ -0,0 +1,35 @@ +isMember($user) && check_entity_relationship($user->getGUID(), "group_admin", $entity->getGUID())){ + $result = true; + } + } + } + } + + return $result; + } + \ No newline at end of file diff --git a/manifest.xml b/manifest.xml index 31f090c6..e188a3fd 100644 --- a/manifest.xml +++ b/manifest.xml @@ -54,6 +54,10 @@ ToDo ==================== Version History ==================== +x.x: + - added: option to make all site users a member of an auto join group + - changed: moved some functions + 1.6 (2011-10-05): - added: option to resend invites to already invited users - changed: name of robots view to be less generic diff --git a/start.php b/start.php index 30244679..b92cb8ff 100644 --- a/start.php +++ b/start.php @@ -2,6 +2,7 @@ require_once(dirname(__FILE__) . "/lib/functions.php"); require_once(dirname(__FILE__) . "/lib/events.php"); + require_once(dirname(__FILE__) . "/lib/hooks.php"); function group_tools_init(){ @@ -126,41 +127,6 @@ function group_tools_pagesetup(){ } - function group_tools_multiple_admin_can_edit_hook($hook, $type, $return_value, $params){ - $result = $return_value; - - if(!empty($params) && is_array($params) && !$result){ - if(array_key_exists("entity", $params) && array_key_exists("user", $params)){ - $entity = $params["entity"]; - $user = $params["user"]; - - if(($entity instanceof ElggGroup) && ($user instanceof ElggUser)){ - if($entity->isMember($user) && check_entity_relationship($user->getGUID(), "group_admin", $entity->getGUID())){ - $result = true; - } - } - } - } - - return $result; - } - - function group_tools_multiple_admin_group_leave($event, $type, $params){ - - if(!empty($params) && is_array($params)){ - if(array_key_exists("group", $params) && array_key_exists("user", $params)){ - $entity = $params["group"]; - $user = $params["user"]; - - if(($entity instanceof ElggGroup) && ($user instanceof ElggUser)){ - if(check_entity_relationship($user->getGUID(), "group_admin", $entity->getGUID())){ - return remove_entity_relationship($user->getGUID(), "group_admin", $entity->getGUID()); - } - } - } - } - } - function group_tools_version_1_3(){ global $CONFIG, $GROUP_TOOLS_ACL; @@ -192,20 +158,6 @@ function group_tools_version_1_3(){ } - function group_tools_add_user_acl_hook($hook, $type, $return_value, $params){ - global $GROUP_TOOLS_ACL; - - $result = $return_value; - - if(!empty($GROUP_TOOLS_ACL) && is_array($result)){ - if(!array_key_exists($GROUP_TOOLS_ACL, $result)){ - $result[$GROUP_TOOLS_ACL] = "temp group"; - } - } - - return $result; - } - // default elgg event handlers register_elgg_event_handler("init", "system", "group_tools_init"); register_elgg_event_handler("pagesetup", "system", "group_tools_pagesetup"); @@ -216,6 +168,7 @@ function group_tools_add_user_acl_hook($hook, $type, $return_value, $params){ register_action("group_tools/kick", false, dirname(__FILE__) . "/actions/kick.php"); register_action("group_tools/mail", false, dirname(__FILE__) . "/actions/mail.php"); register_action("group_tools/toggle_auto_join", false, dirname(__FILE__) . "/actions/toggle_auto_join.php", true); + register_action("group_tools/fix_auto_join", false, dirname(__FILE__) . "/actions/fix_auto_join.php", true); register_action("groups/email_invitation", false, dirname(__FILE__) . "/actions/groups/email_invitation.php"); -?> \ No newline at end of file + \ No newline at end of file diff --git a/views/default/group_tools/forms/auto_join.php b/views/default/group_tools/forms/auto_join.php index 9abda4aa..9e3f6c76 100644 --- a/views/default/group_tools/forms/auto_join.php +++ b/views/default/group_tools/forms/auto_join.php @@ -12,6 +12,26 @@ if(in_array($group->getGUID(), $auto_join_groups)){ $lang_key = "group_tools:auto_join:remove"; + + // check if all users are member of this group + $options = array( + "type" => "user", + "relationship" => "member_of_site", + "relationship_guid" => $group->site_guid, + "inverse_relationship" => true, + "count" => true + ); + + $user_count = elgg_get_entities_from_relationship($options); + $member_count = $group->getMembers(0, 0, true); + + if($user_count != $member_count){ + + $link_start = ""; + $link_end = ""; + + $fix_members = "

" . sprintf(elgg_echo("group_tools:auto_join:fix"), $link_start, $link_end); + } } else { $lang_key = "group_tools:auto_join:add"; } @@ -19,6 +39,9 @@ $link_start = ""; $link_end = ""; - echo elgg_view("page_elements/contentwrapper", array("body" => sprintf(elgg_echo($lang_key), $link_start, $link_end))); + $body = sprintf(elgg_echo($lang_key), $link_start, $link_end); + $body .= $fix_members; + + echo elgg_view("page_elements/contentwrapper", array("body" => $body)); } } \ No newline at end of file