{"id":20961838,"url":"https://github.com/heimrichhannot/contao-notification_center_plus","last_synced_at":"2026-03-04T04:01:11.340Z","repository":{"id":56983900,"uuid":"42504223","full_name":"heimrichhannot/contao-notification_center_plus","owner":"heimrichhannot","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-16T09:47:26.000Z","size":88,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-10-19T15:59:28.510Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heimrichhannot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-09-15T08:08:45.000Z","updated_at":"2022-09-28T06:23:48.000Z","dependencies_parsed_at":"2025-05-14T07:35:16.242Z","dependency_job_id":"a1d9d5dd-3240-4f92-b7b8-fe1e40955974","html_url":"https://github.com/heimrichhannot/contao-notification_center_plus","commit_stats":null,"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/heimrichhannot/contao-notification_center_plus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimrichhannot%2Fcontao-notification_center_plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimrichhannot%2Fcontao-notification_center_plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimrichhannot%2Fcontao-notification_center_plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimrichhannot%2Fcontao-notification_center_plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heimrichhannot","download_url":"https://codeload.github.com/heimrichhannot/contao-notification_center_plus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heimrichhannot%2Fcontao-notification_center_plus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30071670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T03:25:38.285Z","status":"ssl_error","status_checked_at":"2026-03-04T03:25:05.086Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T02:17:50.441Z","updated_at":"2026-03-04T04:01:11.319Z","avatar_url":"https://github.com/heimrichhannot.png","language":"PHP","readme":"# Notification Center Plus\n\nExtends the notification center with additional features.\n\n## General features\n- header and inline css can be defined (automatic inlining support)\n- additional salutation tokens for the currently logged in frontend user and the form (##salutation_user##, ##salutation_form##)\n- the lost password module now has a separate jumpTo for changing the password\n- ics files can be generated on the fly out of notification center tokens and will then be added to the attachments\n\n## Tokens\n\n### Adding an automatically generated ICS file to the attachment of a notification\n\n1. Create your notification as usual.\n1. Add the token `##ics_attachment_token##` to the attachment tokens in the message's `tl_nc_language` record and activate the option at the bottom of the form.\n1. Now you can add the tokens to the different fields to your wishes.\n\n### context tokens\n\nNotification center plus adds context tokens, like environment variables, and page information to the token array, as these\nare not available if sending later per cron.\n\n| Token        | Example\n| ------------- |:-------------:|\n| ##context_tokens## | true\n| ##env_host##      | www.example.com |\n| ##env_http_host## | www.example.com  | \n| ##env_url## | https://www.example.com  | \n| ##env_path## | https://www.example.com  | \n| ##env_request## | https://www.example.com/en/testpage?query=test\u0026submit=true  | \n| ##env_request_path## | https://www.example.com/en/testpage  |\n| ##env_ip## | 216.58.212.131  |\n| ##env_referer## | https://www.example.com/en/home |\n| ##env_files_url## | TL_FILES_URL |\n| ##env_plugins_url## | TL_ASSETS_URL |\n| ##env_script_url## | TL_ASSETS_URL |\n| ##date## | 30.03.2017 |\n| ##last_update## | 29.03.2017 17:05 |\n| ##page_id## | 2 |\n| ##page_pid## | 1 |\n| ##page_sorting## | 1056 |\n| ##page_tstamp## | 1490106980 |\n| ##page_title## | Home |\n| ##page_alias## | /en/home |\n| ##page_type## | regular |\n| ##page_pageTitle## | Homepage |\n| ##page_language## | en |\n| ##page_robots## | index,follow |\n| ##page_description## | null |\n| ##page_redirect## | permanent |\n| ##page_jumpTo## |  |\n| ##page_url## |  |\n| ##page_target## |  |\n| ##page_dns## | www.example.com |\n| ##page_staticFiles## |  |\n| ##page_staticPlugins## |  |\n| ##page_fallback## |  |\n| ##page_adminEmail## |  |\n| ##page_dateFormat## | d.m.Y |\n| ##page_timeFormat## | H.i |\n| ##page_datimFormat## | d.m.Y H.i |\n| ##page_createSitemap## |  |\n| ##page_sitemapName## |  |\n| ##page_useSSL## | |\n| ##page_autoforward## |  |\n| ##page_protected## | false |\n| ##page_groups## | false |\n| ##page_includeLayout## |  |\n| ##page_layout## | 1 |\n| ##page_mobileLayout## | 0 |\n| ##page_includeCache## |  |\n| ##page_cache## | false |\n| ##page_includeChmod## |  |\n| ##page_cuser## | 0 |\n| ##page_cgroup## | 0 |\n| ##page_chmod## |  |\n| ##page_noSearch## |  |\n| ##page_cssClass## |  |\n| ##page_sitemap## | map_default |\n| ##page_hide## |  |\n| ##page_guests## |  |\n| ##page_tabindex## | 0 |\n| ##page_accesskey## |  |\n| ##page_published## | 1 |\n| ##page_start## | |\n| ##page_stop## |  |\n| ##page_newsCategories_param## |  |\n| ##page_youtube_template## |  |\n| ##page_youtubePrivacy## |  |\n| ##page_youtubePrivacyTemplate## |  |\n| ##page_dlh_googlemaps_apikey## |  |\n| ##page_mainAlias## | home |\n| ##page_mainTitle## | Home |\n| ##page_mainPageTitle## | Homepage |\n| ##page_parentAlias## | home |\n| ##page_parentTitle## | Homepage |\n| ##page_parentPageTitle## | Homepage |\n| ##page_folderUrl## | home/ |\n| ##page_rootId## | 1 |\n| ##page_rootAlias## | example-website |\n| ##page_rootTitle## | Example Website |\n| ##page_rootPageTitle## | Example Website |\n| ##page_domain## |  |\n| ##page_rootLanguage## | en |\n| ##page_rootIsPublic## | true |\n| ##page_rootIsFallback## | true |\n| ##page_rootUseSSL## |  |\n| ##page_rootFallbackLanguage## | en |\n| ##page_trail## | [1]|\n| ##page_hasJQuery## | 1 |\n| ##page_hasMooTools## |  |\n| ##page_isMobile## | false |\n| ##page_template## | fe_page |\n| ##page_templateGroup## | templates/example.com |\n| ##page_outputFormat## | html5 |\n| ##pageTitle## | Homepage |\n\n\n### if, then, else\n\nIf you want to check for a condition inside your message, you can use the following example:\n\n```\nAssociation: {if form_association!=''}##form_association##\n{else}unknown\n{endif}\n```\n\n**Hints:**\n\n{if form_association!=''}\n- must use no quote for the L-Value\n- must have no space between the L-Value and the oparator\n- must have no space between the operator and the R-Value\n- the L-Value or R-Value represent the key within the token array $arrData['form_association'] = 'heimrichhannot'\n\n## Using overridable haste_plus properties\n\nYou now have the option to use overridable properties available in [heimrichhannot/contao-haste_plus](https://github.com/heimrichhannot/contao-haste_plus) also in this module. Simply add code similiar to the following to a \"sendNotificationMessage\"-Hook\n\n```\npublic static function sendNotificationMessage(Message $objMessage, \u0026$arrTokens, $strLanguage, $objGatewayModel)\n{\n    $arrTokens['overridableProperties'] = ['email_sender_address', 'email_sender_name', 'email_replyTo', 'email_subject'];\n    $arrTokens['overridableEntities'] = [['tl_calendar_events', $intEventId]];\n}\n```\n\n```$objEvent``` is the entity in whose dca you called General::addOverridableFields() in order to add overridable fields from other dca's. Please see ```General::addOverridableFields()``` and ```General::getOverridableProperty()``` in [heimrichhannot/contao-haste_plus](https://github.com/heimrichhannot/contao-haste_plus) for more details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheimrichhannot%2Fcontao-notification_center_plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheimrichhannot%2Fcontao-notification_center_plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheimrichhannot%2Fcontao-notification_center_plus/lists"}