{"id":31124166,"url":"https://github.com/cleantalk/contacts-encoder","last_synced_at":"2026-01-20T16:39:58.910Z","repository":{"id":149117495,"uuid":"621313869","full_name":"CleanTalk/contacts-encoder","owner":"CleanTalk","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-04T09:08:07.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-05T23:24:36.536Z","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/CleanTalk.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-30T12:17:38.000Z","updated_at":"2025-08-05T10:06:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"32bbce1c-8e5f-4173-a81b-f1a7adf11169","html_url":"https://github.com/CleanTalk/contacts-encoder","commit_stats":null,"previous_names":["cleantalk/contacts-encoder"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/CleanTalk/contacts-encoder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleanTalk%2Fcontacts-encoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleanTalk%2Fcontacts-encoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleanTalk%2Fcontacts-encoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleanTalk%2Fcontacts-encoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CleanTalk","download_url":"https://codeload.github.com/CleanTalk/contacts-encoder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleanTalk%2Fcontacts-encoder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275650063,"owners_count":25503216,"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","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-09-17T19:38:01.042Z","updated_at":"2026-01-20T16:39:58.901Z","avatar_url":"https://github.com/CleanTalk.png","language":"PHP","readme":"# Contacts Encoder - Quick Start Guide\n\n## Overview\n\nThe Contacts Encoder protects email addresses and phone numbers from spam bots. It requires **4 essential components** to work properly.\n\n## 🚀 Complete Setup in 4 Steps\n\n### Step 1: PHP Backend Setup\n\n#### 1.1 Configure Parameters (Params)\n\n```php\nuse Cleantalk\\Common\\ContactsEncoder\\Dto\\Params;\n\n$params = new Params();\n$params-\u003eapi_key = 'your_cleantalk_api_key';  // REQUIRED for encryption\n$params-\u003eobfuscation_mode = Params::OBFUSCATION_MODE_BLUR;\n$params-\u003edo_encode_emails = true;\n$params-\u003edo_encode_phones = true;\n$params-\u003eis_logged_in = false;  // Set true for admin users\n```\n#### 1.2 Create Platform-Specific Class\n\n```php\nuse Cleantalk\\Common\\ContactsEncoder\\ContactsEncoder as BaseEncoder;\n\nclass YourPlatformContactsEncoder extends BaseEncoder\n{\n    // REQUIRED: Add request validation\n    protected function checkRequest()\n    {\n        // Anti-Spam protection for $_POST here\n        return true;\n    }\n\n    // OPTIONAL: Customize messages\n    protected function getTooltip()\n    {\n        return 'Click to decode protected contact';\n    }\n}\n```\n\n### Step 2: Encoding Content\n\n```php\n// Initialize encoder\n$encoder = YourPlatformContactsEncoder::getInstance($params);\n\n// Process your content\n$protectedHtml = $encoder-\u003erunEncoding($yourHtmlContent);\n\n// Output to browser\necho $protectedHtml;\n```\n\n### Step 3: Frontend Assets\n\n#### 3.1 Include CSS\n\n```html\n\u003clink rel=\"stylesheet\" href=\"/path/to/contacts-encoder.css\"\u003e\n```\n\n#### 3.2 Include JavaScript\n\n```html\n\u003cscript src=\"/path/to/ContactsEncoder.js\"\u003e\u003c/script\u003e\n```\n\n### Step 4: JavaScript Configuration\n\n#### 4.1 Create Config Object\n\n```javascript\nconst encoderConfig = {\n    // REQUIRED: AJAX endpoint\n    decodeContactsRequest: (encodedNodes) =\u003e {\n        return fetch('/your-ajax-endpoint', {\n            method: 'POST',\n            body: encodedNodes\n        }).then(r =\u003e r.json());\n    },\n\n    // OPTIONAL: Custom texts\n    texts: {\n        waitForDecoding: 'Decoding contact...',\n        gotIt: 'Continue',\n        blocked: 'Access denied'\n    },\n    \n    serviceData: {\n        brandName: 'Your Site Name'\n    }\n};\n```\n\n### 4.2 Initialize on Frontend\n\n```javascript\ndocument.addEventListener('DOMContentLoaded', () =\u003e {\n    new ContactsEncoder(encoderConfig);\n});\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleantalk%2Fcontacts-encoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcleantalk%2Fcontacts-encoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleantalk%2Fcontacts-encoder/lists"}