-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve documentation #86
Open
TychoSchottelius
wants to merge
5
commits into
master
Choose a base branch
from
external/24194
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 3 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,9 +3,10 @@ | |
## Scope | ||
|
||
This extension provides a lot of additional features to CiviCRM's events. In | ||
particular, you will be able to configure events in CiviCRM, display/use that | ||
information in other remote systems and submit registrations for those events | ||
back to CiviCRM. | ||
particular, you will be able to | ||
+ configure events in CiviCRM | ||
+ display/use that information in other remote systems and | ||
+ submit registrations for those events back to CiviCRM. | ||
|
||
The general idea is that your organization's staff can do all relevant event | ||
configurations in CiviCRM. CiviCRM will then make this information available via | ||
|
@@ -17,157 +18,75 @@ detailed event information, registration forms etc. (this could be a remote | |
system or the CMS your CiviCRM runs on) and also submit information entered by | ||
your constituents back to CiviCRM. | ||
|
||
All of this requires that you have or set up an external system to act as a | ||
All of this requires that you set up an external system to act as a | ||
frontend for your event listings, registration forms etc. In case you would like | ||
to build your system based on Drupal 8 you will most likely want to have a look | ||
and/or use the CiviRemote Drupal module which includes a lot of pre-built | ||
features (https://github.com/systopia/civiremote). | ||
to build your system based on Drupal 10 you will most likely want to have a look | ||
and/or use the **CiviRemote Drupal module** [which includes a lot of pre-built | ||
features](https://github.com/systopia/civiremote). | ||
|
||
Note that this extension may be used alongside regular CiviCRM event | ||
registrations - you can choose whether you would like to use the remote features | ||
or not for each event. | ||
registrations - you can choose for each event whether you would like to use the | ||
remote features or not. | ||
|
||
### Why this Extension? | ||
|
||
In many cases you may not want or be able to use CiviCRM's built in forms e.g.: | ||
In many cases you may not want or be able to use CiviCRM's built-in forms e.g.: | ||
|
||
* For security reasons your CiviCRM runs within a VPN | ||
* The built in forms and processing logic do not provide enough options to be | ||
* The builtin forms and processing logic do not provide enough options to be | ||
customized to your needs | ||
* You may already have an external system for your constituents (such as a | ||
member area on your website or a collaboration platform) which cannot easily | ||
be connected to CiviCRM | ||
|
||
This extension is licensed | ||
under [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0). | ||
This extension is licensed under | ||
[AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0). | ||
|
||
## Features | ||
|
||
* Connect another (remote) system to CiviCRM that can handle highly customizable | ||
* Connect a (remote) system to CiviCRM that can handle highly customizable | ||
event listings and registration features | ||
* Pre-defined registration profiles including a "one click registration" for | ||
authenticated users (additional profiles can be added fairly easy) | ||
* Use different registration profiles withn the same event | ||
authenticated users | ||
* Use different registration profiles within the same event | ||
* Allow participants to modify and/or cancel their own registrations | ||
* Alternative approach for defining an event's location | ||
|
||
TODO: Complete Feature List | ||
* Event registration/update profiles to be configured using an UI with the | ||
[Remote Event Form Editor](https://github.com/systopia/remoteeventformeditor) | ||
extension | ||
* Have Sessions/Workshops within your event | ||
* Registering additional participants (coming) | ||
* Localizing event registration profiles with a locale given in the get_form | ||
request (e.g. the current language of the frontend) | ||
|
||
## Requirements | ||
|
||
* PHP v7.0+ | ||
* CiviCRM 5.61 | ||
* Dependency on CiviCRM Extension "Remote Tools" (de.systopia.remotetools) | ||
* Dependency on CiviCRM Extension "Extended Contact Matcher" (de.systopia.xcm) | ||
* Dependency on CiviCRM Extension | ||
**[Remote Tools](https://github.com/systopia/de.systopia.remotetools)** | ||
* Dependency on CiviCRM Extension | ||
**[Extended Contact Matcher](https://github.com/systopia/de.systopia.xcm)** | ||
* A system that will serve as your public system such as an external website | ||
|
||
TODO: List extensions that integrate with Remote Event Extensions | ||
|
||
## Configuration | ||
|
||
After installing the extension, make sure your Remote Tool settings are | ||
according to your needs (refer to docmunentation provided in | ||
de.systopia.remotetools). Then head on to the general configuration: | ||
|
||
* Navigate to >>Administer >>Remote Events - General Configuration. | ||
* Define which participant statuses will block a re-registration to your | ||
events (e.g. rejected) and which roles you would like to assign to speakers. | ||
* Configure which default matcher profile you would like to use (XCM-Extension). | ||
If using registration updates, make sure the XCM profile has the *Match | ||
contacts by contact ID* activated, as otherwise duplicate contacts might be | ||
created when updating event registrations. | ||
* Enter the urls to be used for registrations, modifications of registrations | ||
and cancellations which will depend on the external system you use. In case | ||
you use the CiviRemote Drupal module you may | ||
use https://yourdomain.org/d8civiremote/, | ||
https://yourdomain.org/d8civiremote/modify/, | ||
https://yourdomain.org/d8civiremote/cancel/ | ||
|
||
After general configuration visit the new tab "Remote Online Registration" | ||
within CiviCRM's event configuration UI. It will provide you with several | ||
options and settings, most noteably if you would like to use the remote event | ||
features, if you would like to disable native CiviCRM online registration and | ||
which registration profiles to use. | ||
|
||
The "Registration Restrictions" allow you configurations regarding when | ||
registration is available, if a registration requires manual review and if | ||
participants can cancel or modify their own registrations. | ||
|
||
The "Public Event Text Blocks" may be used by your external system to display | ||
the information at the appropriate places during the registration process. How | ||
and when this information is presented to your constituents will depend on the | ||
design of your external system. | ||
|
||
CiviCRM's other basic event settings still apply and may be used in your | ||
external system, e.g. it's title, descriptions, start and end dates, max. number | ||
of participants, waitlist settings etc.. | ||
|
||
### Alternative Event Location Settings | ||
|
||
As the the default event location feature is somewhat limited you can choose to | ||
use a feature for alternative event locations. If you do so CiviCRM's regular | ||
event location tab will be hidden and a custom tab will appear in which you can | ||
choose a contact that has the subtype "event location" (the subtype is created | ||
when installing the extension). Also, you can provide information on the event | ||
location that applies for that particular event (such as the room number or | ||
travel instructions). | ||
|
||
The API will then make the choosen event locations basic data availabe, | ||
including it's name, address, geodata and the additional information for this | ||
event. This information can be displayed and used in other ways by the external | ||
system. | ||
|
||
## Remote Event API | ||
|
||
The extension exposes a new API to remote event listings or registration | ||
systems: | ||
|
||
1. ``RemoteEvent.get`` allows querying for remotely available events in the same | ||
way ``Event.get`` would | ||
1. ``RemoteEvent.create`` allows creating remotely available events in the same | ||
way ``Event.create`` would | ||
1. ``RemoteParticipant.get_form`` returns a default specification fo the | ||
registration form required for signing up/cancel/update | ||
1. ``RemoteParticipant.create`` sign somebody up for an event by providing the | ||
necessary form data (as requested by ``RemoteParticipant``) | ||
1. ``RemoteRegistration.validate`` ask the system for validating the given | ||
signup data before the actual registration | ||
1. ``RemoteRegistration.cancel`` cancel an existing registration, identified by | ||
remote_contact_id or token | ||
1. ``RemoteRegistration.update`` update an existing registration, identified by | ||
remote_contact_id or token | ||
|
||
Please note that all these API actions come with an independent set of | ||
permissions. | ||
|
||
## Extensibility and Interoperability | ||
|
||
This extension uses a series of Symfony events to extend and customise the | ||
behaviour of these calls: | ||
|
||
1. ``civi.remoteevent.get.params`` modify / restrict query parameters to event | ||
information | ||
1. ``civi.remoteevent.get.result`` modify / extend event information | ||
1. ``civi.remoteevent.spawn.params`` modify / extend parameters for creating or | ||
updating a remote event | ||
1. ``civi.remoteevent.registration.validate`` modify / extend signup data | ||
1. ``civi.remoteevent.registration.submit``modify / extend signup process | ||
1. ``civi.remoteevent.registration.cancel``modify / extend cancellation process | ||
1. ``civi.remoteevent.registration.getform``modify / extend registration form | ||
1. ``civi.remoteevent.cancellation.getform``modify / extend cancellation form | ||
1. ``civi.remoteevent.registration_update.getform``modify / extend update form | ||
1. ``civi.remoteevent.label`` modify or override certain labels (e.g. workshop | ||
groups) | ||
## extensions that integrate with the Remote Event Extensions | ||
* [Remote Event Form Editor](https://github.com/systopia/remoteeventformeditor) | ||
A drag&drop form editor for event-registration | ||
* [Event Invitations](https://github.com/systopia/de.systopia.eventinvitation) | ||
* [Custom Event Communication](https://github.com/systopia/de.systopia.eventmessages) | ||
* [Event-Checkin](https://github.com/systopia/de.systopia.eventcheckin) | ||
|
||
## Documentation | ||
- EN: https://docs.civicrm.org/remoteevent/en/latest (automatic publishing) | ||
|
||
## We need your support | ||
This CiviCRM extension is provided as Free and Open Source Software, | ||
and we are happy if you find it useful. However, we have put a lot of work into it | ||
(and continue to do so), much of it unpaid for. So if you benefit from our software, | ||
please consider making a financial contribution so we can continue to maintain and develop it further. | ||
|
||
If you are willing to support us in developing this CiviCRM extension, | ||
please send an email to [email protected] to get an invoice or agree a different payment method. | ||
Thank you! | ||
This CiviCRM extension is provided as Free and Open Source Software, and we are | ||
happy if you find it useful. However, we have put a lot of work into it (and | ||
continue to do so), much of it unpaid for. So if you benefit from our software, | ||
please consider making a financial contribution, so we can continue to maintain | ||
and develop it further. | ||
|
||
If you are willing to support us in developing this CiviCRM extension, please | ||
email to [info\@systopia.de](mailto:[email protected]?subject=supportSYSTOPIA) | ||
to get an invoice or agree a different payment method. | ||
Thank you! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
## Remote Event API | ||
|
||
The extension exposes a new API to remote event listings or registration | ||
systems: | ||
|
||
+ ``RemoteEvent.get`` allows querying for remotely available events in the same | ||
way ``Event.get`` would | ||
+ ``RemoteEvent.create`` allows creating remotely available events in the same | ||
way ``Event.create`` would | ||
+ ``RemoteParticipant.get_form`` returns a default specification fo the | ||
registration form required for signing up/cancel/update | ||
+ ``RemoteParticipant.create`` sign somebody up for an event by providing the | ||
necessary form data (as requested by ``RemoteParticipant``) | ||
+ ``RemoteRegistration.validate`` ask the system for validating the given | ||
signup data before the actual registration | ||
+ ``RemoteRegistration.cancel`` cancel an existing registration, identified by | ||
remote_contact_id or token | ||
+ ``RemoteRegistration.update`` update an existing registration, identified by | ||
remote_contact_id or token | ||
|
||
Please note that all these API actions come with an independent set of | ||
permissions. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
## Configuration | ||
|
||
After installing the extension, make sure your **Remote Tool settings** are | ||
according to your needs (refer to documentation provided in | ||
[de.systopia.remotetools](https://github.com/systopia/de.systopia.remotetools)). | ||
Then head on to the general configuration: | ||
|
||
* Navigate to >>Administer >>CiviEvent >>Remote Events - General Configuration | ||
(/civicrm/admin/remoteevent/settings). | ||
* Define which participant status will block a re-registration to your | ||
events (e.g. rejected) and which roles you would like to assign to speakers. | ||
* Suppress workshop/session data if you do not use this feature | ||
* Select activity-type for changes in participation data | ||
* Configure which default matcher profile you would like to use (XCM-Extension). | ||
If using registration updates, make sure the XCM profile has the *Match | ||
contacts by contact ID* activated, as otherwise duplicate contacts might be | ||
created when updating event registrations. | ||
* Enter the urls to be used for registrations, modifications of registrations | ||
and cancellations which will depend on the external system you use. In case | ||
you use the CiviRemote Drupal module you may | ||
use https://yourdomain.org/civiremote/event/update/{token}, | ||
https://yourdomain.org/civiremote/event/cancel/{token} | ||
|
||
After general configuration visit the new tab "Remote Online Registration" | ||
within CiviCRM's event configuration UI. It will provide you with several | ||
options and settings, under the tabs "Online-Registration (CiviRemote)" and | ||
"Workshops". Most notably if you would like to use the remote event features at | ||
all, or to disable native CiviCRM online registration, use alternative | ||
event-locations or external identification to your event. | ||
|
||
Beneath you find two segments for registration profiles. One for the initial | ||
registration and the other for editing registrations. We think that the labels | ||
and help-pop-ups are telling you enough to understand your options. | ||
|
||
The "Registration Restrictions" allow you configurations regarding when | ||
registration is available, if a registration requires manual review and if | ||
participants can cancel or modify their own registrations. | ||
|
||
The section "Additional Participants" is a new feature, that allows you to add a | ||
group of people by just one single registration. Resulting in a form, where the | ||
participant is able to multiply the desired registration-information until a | ||
maximum of up to 9 further participants using increase/decrease buttons. | ||
|
||
The "Public Event Text Blocks" may be used by your external system to display | ||
the information at the appropriate places during the registration process. How | ||
and when this information is presented to your constituents will depend on the | ||
design of your external system. | ||
|
||
CiviCRM's other basic event settings still apply and may be used in your | ||
external system, e.g. it's title, descriptions, start and end dates, max. number | ||
of participants, waitlist settings etc... | ||
|
||
### Alternative Event Location Settings | ||
|
||
As the default event location feature is somewhat limited you can choose to | ||
use a feature for alternative event locations. If you do so CiviCRM's regular | ||
event location tab will be hidden and a custom tab will appear in which you can | ||
choose a contact that has the subtype "event location" (the subtype is created | ||
when installing the extension). Also, you can provide information on the event | ||
location that applies for that particular event (such as the room number or | ||
travel instructions). | ||
|
||
The API will then make the chosen event locations basic data available, | ||
including its name, address, geo data and the additional information for this | ||
event. This information can be displayed and used in other ways by the external | ||
system. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
## Extensibility and Interoperability | ||
|
||
This extension uses a series of Symfony events to extend and customise the | ||
behaviour of these calls: | ||
|
||
+ ``civi.remoteevent.get.params`` modify / restrict query parameters to event | ||
information | ||
+ ``civi.remoteevent.get.result`` modify / extend event information | ||
+ ``civi.remoteevent.spawn.params`` modify / extend parameters for creating or | ||
updating a remote event | ||
+ ``civi.remoteevent.registration.validate`` modify / extend signup data | ||
+ ``civi.remoteevent.registration.submit``modify / extend signup process | ||
+ ``civi.remoteevent.registration.cancel``modify / extend cancellation process | ||
+ ``civi.remoteevent.registration.getform``modify / extend registration form | ||
+ ``civi.remoteevent.cancellation.getform``modify / extend cancellation form | ||
+ ``civi.remoteevent.registration_update.getform``modify / extend update form | ||
+ ``civi.remoteevent.label`` modify or override certain labels (e.g. workshop | ||
groups) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This could go into a table. But it would also be okay to keep it as it is |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This @ somehow looks broken. Is it needed to escacpe the @ symbol?