{"id":15726672,"url":"https://github.com/grasmash/drupal-message","last_synced_at":"2025-03-31T01:41:01.232Z","repository":{"id":66224316,"uuid":"292437605","full_name":"grasmash/drupal-message","owner":"grasmash","description":null,"archived":false,"fork":false,"pushed_at":"2020-09-03T02:03:04.000Z","size":1069,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"2.x","last_synced_at":"2025-02-06T06:49:46.894Z","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/grasmash.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2020-09-03T01:46:39.000Z","updated_at":"2020-09-03T01:50:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"f0624ac9-068a-4bf6-8a44-7453ec78eb54","html_url":"https://github.com/grasmash/drupal-message","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grasmash%2Fdrupal-message","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grasmash%2Fdrupal-message/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grasmash%2Fdrupal-message/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grasmash%2Fdrupal-message/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grasmash","download_url":"https://codeload.github.com/grasmash/drupal-message/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246403893,"owners_count":20771526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-10-03T22:40:20.096Z","updated_at":"2025-03-31T01:41:01.189Z","avatar_url":"https://github.com/grasmash.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://api.travis-ci.org/Gizra/message.svg?branch=8.x-1.x)](https://travis-ci.org/Gizra/message)\n\nOverview\n========\nA general logging utility that can be used as activity module.\n\n* In message module, the arguments of a sentence can use tokens, custom\n  callbacks or be hard-coded. Making the arguments dynamic means that the\n  rendering time is slower than activity, on the other hand you can use\n  callback functions to render the final output (see message_example module).\n* Thanks to the dependency on the Entity API, the messages are exportable and\n  integrated with the Features module.\n* Message can use (but not as a dependency) the Rules module, to create message\n  instances via the \"Entity create\" action, whereas the text replacement\n  arguments can be set via the \"Set data value\" action.\n* For displaying messages, the modules comes with Views support.\n\nTokens\n======\n* \"Dynamic\" tokens\n  When defining a message template, it is possible to use Drupal tokens in any of the\n  message fields, in order to inject certain content into the field on the fly.\n  E.g. Entering the string \"[current-date:short]\" to the message text will\n  display the current request time instead of the token.\n  E.g. [message:user:mail] will be replaced with the message author's username\n  (When displaying the message).\n  If the message has fields (e.g field_node_ref), its contents will accessible\n  by the token system as well under [message:field_node_ref].\n  (For instance: [message:field_node_ref:title]).\n  This relies on \"Entity token\" module that ships with Entity API.\n  Enabling \"Token\" module is also recommended, as it provides more tokens\n  and shows a token browser in the message template creation page.\n\n* \"Single use\" tokens\n  The single-use tokens are similar to the dynamic tokens, except they're\n  being replaced by their content as the message is created; Meaning this\n  content will not get updated if it's reference gets changed.\n  E.g. \"@{message:user:name}\" - Will be replaced by the message author's name\n  (When creating the message).\n  You can use this for example when you know the user's name is not going\n  to change, so there is no reason for re-checking all the time the user\n  name -- hard coding it makes more sense.\n\n* Custom message arguments (Custom callbacks)\n  When creating a message, it's possible to store custom arguments that will be\n  replaced when presenting the message.\n  E.g. If the message was created with an argument called \"@sometext\", it will\n  get inserted to the message text (On display time) whenever the string\n  \"@sometext\" is encountered.\n  This method also supports custom call-back functions with optional arguments\n  stored on the message; In order to use a callback, create the message with\n  an argument such as:\n  '!replaced-by-foo' =\u003e [\n    'callback' =\u003e 'foo',\n    'callback arguments' =\u003e ['x', 'z']\n  ]\n  That will get the string '!replaced-by-foo' in the message body to be replaced\n  by the output of calling foo('x', 'z').\n\nPartials\n========\nThe message body has multiple cardinality, allowing to separate html markup\nfrom the actual message content, and also, allowing to only render a selected\npart of the message.\nThe partials are reflected in the \"Manage display\" page of every message template,\nallowing the administrator to re-order and hide them per view mode.\nFurthermore, if Views and Panels module are enabled, it is possible to render\nthe message \"partials\" using the views module's \"Panel fields\" format.\nEnable the Message-example module to see it in action.\n\nView modes\n==========\nMessage module exposes the \"message-text\" field(s) and allows an\nadministrator to set visibility and order via \"Manage display\" page, e.g.\nadmin/structure/messages/manage/[YOUR-MESSAGE-TEMPLATE]/display\n\nAuto-purging\n============\nMessage supports deletion on Cron of messages according to quota and age\ndefinition.\n\n* Global purging definition\n  Under admin/config/message it is possible to set purging definition by\n  maximal quota or maximal message age in days.\n\n* Message template purging definition\n  Each message template my override the global purging settings. Under\n  admin/structure/messages/manage/[YOUR-MESSAGE-TEMPLATE], clicking the\n  \"Override global settings\" checkbox will make the global settings ignore the\n  current message template and will allow to set purging definitions for the current\n  template.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrasmash%2Fdrupal-message","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrasmash%2Fdrupal-message","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrasmash%2Fdrupal-message/lists"}