FastComments.com

Add Comments to GoHighLevel Sites


ืขื FastComments ื ื•ื›ืœ ืœื”ื•ืกื™ืฃ ื‘ืงืœื•ืช ืžืขืจื›ืช ืชื’ื•ื‘ื•ืช ื‘ื–ืžืŸ ืืžืช ืœื›ืœ ืืชืจ ืฉื ื‘ื ื” ื‘ืืžืฆืขื•ืช GoHighLevel.

ืฉื™ื ืœื‘ ืฉืžื“ืจื™ืš ื–ื” ื“ื•ืจืฉ ื—ืฉื‘ื•ืŸ FastComments. ืžื•ืžืœืฅ ืœื”ื™ืจืฉื ืงื•ื“ื ื•ืื– ืœื—ื–ื•ืจ ืœื›ืืŸ. ืืคืฉืจ ืœื™ืฆื•ืจ ื—ืฉื‘ื•ืŸ ื›ืืŸ.

ื”ื”ืชื—ื‘ืจื•ืช ืžืจืืฉ ืชื•ื•ื“ื ืฉืงื˜ืขื™ ื”ืงื•ื“ ืฉื ื•ืฆืจื• ื›ื‘ืจ ืžืงื•ืฉืจื™ื ืœื—ืฉื‘ื•ื ืš.

ืืชืจื™ ืžื ื•ื™ื™ื ื‘-GoHighLevel ื•ืืชืจื™ื ืื—ืจื™ื

ื”ืžื“ืจื™ืš ื”ื–ื” ืžื—ื•ืœืง ืœืฉืชื™ ืงื˜ื’ื•ืจื™ื•ืช: ืืชืจื™ ืžื ื•ื™ื™ื ื•ืืชืจื™ GoHighLevel ืจื’ื™ืœื™ื.

ื ืชื—ื™ืœ ืขื ื”ื”ื•ืจืื•ืช ืœืืชืจื™ ืžื ื•ื™ื™ื.


ืฉืœื‘ 1: ืขืจื™ื›ืช ื”ืงื•ืจืก Internal Link


ืจืืฉื™ืช, ื ืฉื ื” ืืช ื”ื”ื’ื“ืจื•ืช ืฉืœ ื”ืงื•ืจืก ืฉืœื ื•.

ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืคืชื— ืืช ื”ืงื•ืจืก ื•ืœื—ืฅ ืขืœ Edit Details.

ืขืจื•ืš ืืช ืคืจื˜ื™ ื”ืงื•ืจืก
ืขืจื•ืš ืืช ืคืจื˜ื™ ื”ืงื•ืจืก

ืฉืœื‘ 2: ืคืชื— ื”ื’ื“ืจื•ืช ืžืชืงื“ืžื•ืช Internal Link

ื›ืขืช ืขืœื™ื ื• ืœืคืชื•ื— ืืช ื”ื”ื’ื“ืจื•ืช ืฉืœ Advanced:

ืคืชื— ืืช ื”ื”ื’ื“ืจื•ืช ื”ืžืชืงื“ืžื•ืช
ืคืชื— ืืช ื”ื”ื’ื“ืจื•ืช ื”ืžืชืงื“ืžื•ืช

ื ื•ืกื™ืฃ ืืช ื”ืงื•ื“ ืฉืœื ื• ืœืงื˜ืข Tracking Code. ืขื‘ื•ืจ ืืœ ืื•ืชื• ืงื˜ืข ื•ืœื—ืฅ ืขืœ Footer Code.

ืฉืœื‘ 3: ื”ืขืชืง ืงื•ื“ Internal Link

ืขื›ืฉื™ื• ืื ื—ื ื• ื”ื•ืœื›ื™ื ืœื™ืฆื•ืจ ืืช ืงื•ื“ FastComments ื”ืžื•ืชืื ืขื‘ื•ืจืš. ื”ืฉืชืžืฉ ื‘ืขื•ื–ืจ ืœืžื˜ื” ื›ื“ื™ ืœื”ื’ื“ื™ืจ ื›ื™ืฆื“ ืชืจืฆื” ืฉ-FastComments ื™ืขื‘ื•ื“ ื‘ืืชืจ GoHighLevel ืฉืœืš:

FastComments Configuration Wizard

Choose the type of commenting experience you want
How should the widget be placed on your pages?
Comma-separated URL patterns (leave empty for all pages)
Your FastComments tenant ID (use "demo" for testing)

ืกื•ื’ื™ ืชื™ื‘ื•ืช ืชื’ื•ื‘ื”

You can configure the TYPE = 'commenting' line to switch the product used (for example you can change it to live for streaming chat or collab for collab chat).

ื”ืฆื‘ืช ืชื™ื‘ืช ื”ืชื’ื•ื‘ื•ืช ื‘ืžืงื•ื ื”ืจืฆื•ื™

ื ื ื™ื— ืฉื‘ืจืฆื•ื ืš ืœืฉื™ื ืชื™ื‘ื•ืช ืชื’ื•ื‘ื” ื‘ื—ืœืงื™ื ืกืคืฆื™ืคื™ื™ื ืฉืœ ื”ื“ืฃ ื•ืœื ื‘ืžื™ืงื•ืžื™ื ื‘ืจื™ืจืช ื”ืžื—ื“ืœ. ืฉื ื” ืฉื•ืจื” ื–ื•:

const TARGET_ELEMENT_ID = ''; // ืงื‘ืข ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืžืฆื‘ div ืฉืœ ื”ื™ืขื“

ืืœ:

const TARGET_ELEMENT_ID = 'fc_box'; // ืงื‘ืข ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืžืฆื‘ div ืฉืœ ื”ื™ืขื“

ืœืื—ืจ ืžื›ืŸ ื‘ืขื•ืจืš GHL, ืœื—ืฅ ืขืœ ื›ืคืชื•ืจ "ืงื•ื“" ื•ื”ื•ืกืฃ ืืช ื”ืžืงื•ื ืฉื‘ื• ืืชื” ืจื•ืฆื” ืฉื”ืชื’ื•ื‘ื•ืช ื™ื•ืคื™ืขื•:

ืชื™ื‘ืช FastComments ืฉืœ GoHighLevel
Copy Copy
1
2<div
3 id="fc_box"
4 type="commenting"
5 urlid="custom-chat-id"
6></div>
7

ืกื•ื’ ืชื™ื‘ืช ืชื’ื•ื‘ื•ืช ืฉื•ื ื” ืœืคื™ ื“ืฃ

ื ื ื™ื— ืฉื‘ืจืฆื•ื ืš ืฉืžืฉืชืžืฉื™ื ื™ืกืžื ื• ื•ื™ื“ื•ื ื• ื‘ืงื˜ืขื™ ื˜ืงืกื˜, ืื• ืฉื™ืฉืชืžืฉื• ื‘ืžืžืฉืง ืฆ'ืื˜ ืฉื™ื“ื•ืจ ื‘ืžืงื•ื ื–ืืช.

ืจืืฉื™ืช ื‘ืฆืข ืืช ื”ืฉืœื‘ื™ื ื”ืžื•ืคื™ืขื™ื ืœืขื™ืœ ื‘'ื”ืฆื‘ืช ืชื™ื‘ืช ื”ืชื’ื•ื‘ื•ืช ื‘ืžืงื•ื ื”ืจืฆื•ื™'.

ืฉื™ืžื• ืœื‘ ืฉื‘ืงื˜ืข ื”ืงื•ื“ ื”ืงื˜ืŸ ื™ืฉ type="commenting".

ืœื“ื•ื’ืžื”, ืื ื‘ืจืฆื•ื ืš ืœื”ืคืขื™ืœ ืฆ'ืื˜ collab, ืฉื ื” ืืช type ืœ- type="collab".

ื”ืฆื’ื” ืจืง ื‘ืขืžื•ื“ื™ื ืกืคืฆื™ืคื™ื™ื

ืื ืื™ื ืš ืžื’ื“ื™ืจ ืืช TARGET_ELEMENT_ID, ืชื•ื›ืœ ื‘ืžืงื•ื ื–ืืช ืœื”ื’ื“ื™ืจ ืืช ื”ืžืฉืชื ื” VALID_PATTERNS ื›ื“ื™ ืœืงื‘ื•ืข ื‘ืื™ืœื• ืžืกืœื•ืœื™ URL ืชื•ืคืขื ื” ื”ืชื’ื•ื‘ื•ืช. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืŸ ื™ื•ืคื™ืขื• ื‘ืขืžื•ื“ื™ื ืฉืžื›ื™ืœื™ื /post ื‘-URL.

ื”ื’ื“ืจืช ืฆ'ืื˜ Collab

ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืฉืฆ'ืื˜ Collab ื™ื•ืกื™ืฃ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉื™ืชื•ืคื™ืช ืจืง ืกื‘ื™ื‘ HTML ื‘ืชื•ืš ืื–ื•ืจ ืžืกื•ื™ื. ืœื“ื•ื’ืžื”, ื ื ื™ื— ืฉื”ื•ืกืคืช ืืช ืงื•ื“ ื”-footer ืฉืœืžืขืœื” ื•ืื– ื”ื•ืกืคืช ืืช ื”-div ื”ื–ื” ื‘ืชื•ื›ืŸ ื”ืคื•ืกื˜/ื”ืขืžื•ื“ ื›ื“ื™ ืœืืคืฉืจ ืืช ืฆ'ืื˜ Collab:

ืฆืื˜ Collab ืขื ืชื•ื›ืŸ ืžื•ื’ื“ืจ
Copy Copy
1
2<div
3 id="fc_box"
4 type="collab"
5 urlid="custom-chat-id"
6><p>This content will have collab chat!</p></div>
7

ืื– ืืœืžื ื˜ ื”ืคืกืงื” ืฉื‘ืชื•ืš ื”-<div> ื™ืงื‘ืœ ืฆ'ืื˜ Collab ืžื•ืคืขืœ, ื•ืฉื•ื ื“ื‘ืจ ืื—ืจ ื‘ื“ืฃ ืœื ื™ื•ืฉืคืข. ืื ืœื ืชื›ื ื™ืก ืฉื•ื ืชื•ื›ืŸ ืœ-<div> ืื– ื–ื” ื™ืคืขื™ืœ ืืช ืฆ'ืื˜ Collab ืขืœ ื›ืœ ื’ื•ืฃ ื”ืคื•ืกื˜.

ืฉืœื‘ 4: ื”ื“ื‘ืง ืงื•ื“ Internal Link


ื›ืขืช, ืœืื—ืจ ืฉื”ืขืชืงื ื• ืืช ืงื˜ืข ื”ืงื•ื“ ืฉืœื ื•, ื”ื“ื‘ืง ืื•ืชื• ื‘ืกืขื™ืฃ Footer Code ื›ืคื™ ืฉืžื•ืฆื’:

ื”ื“ื‘ืง ืงื•ื“
ื”ื“ื‘ืง ืงื•ื“
---

ืืชืจ ื—ื‘ืจื™ื ื”ื•ืชืงืŸ ื‘ื”ืฆืœื—ื” Internal Link


ื–ื”ื•! ื›ืขืช ื ื•ืกืคื• ืชื’ื•ื‘ื•ืช ื—ื™ื•ืช ืœืงื•ืจืก GoHighLevel ืฉืœืš.

ื”ืฆืœื—ื”
ื”ืฆืœื—ื”

ืื ื ืชืงืœืช ื‘ืฉื’ื™ืืช permission denied, ืื• ืื ื‘ืจืฆื•ื ืš ืœื”ืชืื™ื ืื™ืฉื™ืช ืืช FastComments, ื”ืžืฉืš ืœืงืจื•ื.


ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ืืชืจ ื—ื‘ืจื™ื Internal Link


FastComments ืžื™ื•ืขื“ ืœื”ื™ื•ืช ืžื•ืชืื ื›ืš ืฉื™ืชืื™ื ืœืืชืจ ืฉืœืš.

ืื ื‘ืจืฆื•ื ืš ืœื”ื•ืกื™ืฃ ืขื™ืฆื•ื‘ ืžื•ืชืื ืื™ืฉื™ืช ืื• ืœื›ื•ื•ื ืŸ ืืช ื”ืชืฆื•ืจื”, ืขื™ื™ืŸ ื‘ืชื™ืขื•ื“ ื”ื”ืชืืžื” ืฉืœื ื• ื›ื“ื™ ืœืœืžื•ื“ ื›ื™ืฆื“.

ืฉืœื‘ 1: ื”ื•ืกืฃ ืืœืžื ื˜ ืงื•ื“ ืžื•ืชืื ืื™ืฉื™ืช Internal Link

ืจืืฉื™ืช, ื ืคืชื— ืืช ื”ืขื•ืจืš ืขื‘ื•ืจ ื”ื“ืฃ ื‘ืืชืจ ืฉืœื ื• ืฉืืœื™ื• ื ืจืฆื” ืœื”ื•ืกื™ืฃ ืชื’ื•ื‘ื•ืช.

ืคืชื— ืืช ื”ืขื•ืจืš
ืคืชื— ืืช ื”ืขื•ืจืš

ืขื›ืฉื™ื• ืžืฆืื• ืืช ื”ืžืงื•ื ื‘ื“ืฃ ืฉื‘ื• ืืชื ืจื•ืฆื™ื ืœื”ื•ืกื™ืฃ ืชื’ื•ื‘ื•ืช. ื”ื–ื™ื–ื• ืืช ืกืžืŸ ื”ืขื›ื‘ืจ ืœืงืฆื” ืื•ืชื• ืื–ื•ืจ. ื™ื•ืคื™ืข ืกืžืœ +:

ื”ื•ืกืฃ ืžืงื˜ืข
ื”ื•ืกืฃ ืžืงื˜ืข

ืื ื ืœื—ืฅ ืขืœ ื›ืš, ื™ื™ืฉืืœื ื• ื›ืžื” ืขืžื•ื“ื•ืช ื™ื”ื™ื• ื‘ืžืงื˜ืข ื”ื—ื“ืฉ. ื ื‘ื—ืจ ื‘-1 COLUMN:

ื”ื•ืกืฃ ืขืžื•ื“ื”
ื”ื•ืกืฃ ืขืžื•ื“ื”

ืขื›ืฉื™ื•, ืื ืชืขื‘ื™ืจื• ืืช ืกืžืŸ ื”ืขื›ื‘ืจ ืžืขืœ ืฉื•ืจืช ื”ืขืžื•ื“ื” ื”ื—ื“ืฉื” ื‘ืช 1 ืขืžื•ื“ื”, ืชื”ื™ื” ืœื›ื ืืคืฉืจื•ืช ืœื”ื•ืกื™ืฃ ืืœืžื ื˜. ืœื—ืฆื• ืขืœ ื›ืš:

ื”ื•ืกืฃ ืืœืžื ื˜
ื”ื•ืกืฃ ืืœืžื ื˜

ื’ืœืœื• ืœืžื˜ื” ื•ื‘ื—ืจื• ื‘-CUSTOM JS/HTML:

ื‘ื—ืจ CUSTOM JS/HTML
ื‘ื—ืจ CUSTOM JS/HTML

ื›ืขืช ื‘ื—ืจื• ืืช ื”ืืœืžื ื˜ ื”ื—ื“ืฉ ื•ืœื—ืฆื• ืขืœ Open Code Editor ืžืฆื“ ืฉืžืืœ:

ืคืชื— ืืช ืขื•ืจืš ื”ืงื•ื“
ืคืชื— ืืช ืขื•ืจืš ื”ืงื•ื“

ืฉืœื‘ 2: ื”ืขืชืง ื•ื”ื“ื‘ืง ืืช ื”ืงื•ื“ Internal Link

ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ืขืชื™ืง ืืช ื”ืงื•ื“ ืฉืœื ื•. ื”ืขืชืง ืืช ื”ืงื•ื“ ื”ื‘ื:

ืงื•ื“ ืชื’ื•ื‘ื•ืช ืœืืชืจ GoHighLevel
Copy Copy
1
2<script src="https://cdn.fastcomments.com/js/embed-v2.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 (function () {
6 const tenantId = 'demo';
7 const SCRIPT_ID = 'fastcomments-embed';
8 const WIDGET_ID = 'fastcomments-widget';
9
10 let lastInstance;
11 let currentUrlId;
12 let rendered = false;
13
14 // ืฉื™ื ื•ื™ื™ื ื‘-History API ืœืชืžื™ื›ื” ื‘-SPA
15 const oldPushState = history.pushState;
16 history.pushState = function pushState() {
17 const ret = oldPushState.apply(this, arguments);
18 window.dispatchEvent(new Event('pushstate'));
19 window.dispatchEvent(new Event('locationchange'));
20 return ret;
21 };
22
23 const oldReplaceState = history.replaceState;
24 history.replaceState = function replaceState() {
25 const ret = oldReplaceState.apply(this, arguments);
26 window.dispatchEvent(new Event('replacestate'));
27 window.dispatchEvent(new Event('locationchange'));
28 return ret;
29 };
30
31 window.addEventListener('popstate', () => {
32 window.dispatchEvent(new Event('locationchange'));
33 });
34
35 function getContainer() {
36 return document.getElementById(WIDGET_ID);
37 }
38
39 // ืคื•ื ืงืฆื™ื” ืœื”ื‘ื˜ื—ืช ื˜ืขื™ื ืช ื”ืกืงืจื™ืคื˜
40 function ensureScriptLoaded() {
41 return new Promise((resolve) => {
42 // ื‘ื“ื•ืง ืื ืชื’ ื”ืกืงืจื™ืคื˜ ื›ื‘ืจ ืงื™ื™ื
43 let scriptTag = document.getElementById(SCRIPT_ID);
44
45 if (!scriptTag) {
46 console.log('FastComments: Script tag not found, adding dynamically...');
47 scriptTag = document.createElement('script');
48 scriptTag.id = SCRIPT_ID;
49 scriptTag.src = 'https://cdn.fastcomments.com/js/embed-v2.min.js';
50 scriptTag.async = true;
51
52 scriptTag.onload = () => {
53 console.log('FastComments: Script loaded successfully');
54 resolve();
55 };
56
57 scriptTag.onerror = () => {
58 console.error('FastComments: Failed to load script');
59 resolve(); // Resolve anyway to prevent hanging
60 };
61
62 document.head.appendChild(scriptTag);
63 } else if (window.FastCommentsUI) {
64 // ืชื’ ื”ืกืงืจื™ืคื˜ ืงื™ื™ื ื•ื›ื‘ืจ ื ื˜ืขืŸ
65 console.log('FastComments: Script already loaded');
66 resolve();
67 } else {
68 // ืชื’ ื”ืกืงืจื™ืคื˜ ืงื™ื™ื ืืš ืขื“ื™ื™ืŸ ืœื ืžื•ื›ืŸ
69 console.log('FastComments: Waiting for script to initialize...');
70 scriptTag.addEventListener('load', () => {
71 resolve();
72 });
73
74 // ืคืชืจื•ืŸ ื—ืœื•ืคื™ ื‘ืžืงืจื” ืฉื”ืกืงืจื™ืคื˜ ื›ื‘ืจ ื‘ื˜ืขื™ื ื”
75 const checkInterval = setInterval(() => {
76 if (window.FastCommentsUI) {
77 clearInterval(checkInterval);
78 resolve();
79 }
80 }, 100);
81
82 // ืคืกืง ื–ืžืŸ ืœืื—ืจ 10 ืฉื ื™ื•ืช
83 setTimeout(() => {
84 clearInterval(checkInterval);
85 console.warn('FastComments: Script load timeout');
86 resolve();
87 }, 10000);
88 }
89 });
90 }
91
92 // ืคื•ื ืงืฆื™ื™ืช ืจื™ื ื“ื•ืจ ืจืืฉื™ืช
93 async function render() {
94 rendered = false;
95
96 // ื•ื“ื ืฉื”ืกืงืจื™ืคื˜ ื ื˜ืขืŸ ืœืคื ื™ ืฉืžืžืฉื™ื›ื™ื
97 await ensureScriptLoaded();
98
99 function tryNext() {
100 if (rendered) {
101 return;
102 }
103
104 const container = getContainer();
105
106 if (container) {
107 // ื‘ื“ื™ืงื” ื›ืคื•ืœื” ืื FastCommentsUI ื–ืžื™ืŸ
108 if (!window.FastCommentsUI) {
109 console.log('FastComments: not ready, waiting...');
110 setTimeout(tryNext, 300);
111 return;
112 }
113
114 console.log('FastComments: Target element found, initializing...');
115
116 // ืงื‘ืœ ืืช ื”-URL ื”ื ื•ื›ื—ื™ ื›-urlId
117 const newUrlId = window.location.pathname;
118
119 // ื‘ื“ื•ืง ืื ื™ืฉ ืฆื•ืจืš ื‘ืจื™ื ื“ื•ืจ ืžื—ื“ืฉ (urlId ื”ืฉืชื ื” ืื• ืจื™ื ื“ื•ืจ ืจืืฉื•ืŸ)
120 if (currentUrlId !== newUrlId || !lastInstance) {
121 currentUrlId = newUrlId;
122
123 // ื”ืฉืžื“ ืžื•ืคืข ืงื•ื“ื ืื ืงื™ื™ื
124 if (lastInstance) {
125 lastInstance.destroy();
126 // ื ืงื• ืืช ืชื•ื›ืŸ ื”ืžื™ื›ืœ
127 container.innerHTML = '';
128 }
129
130 // ื”ื›ืŸ ืืช ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื”
131 const config = {
132 tenantId: tenantId,
133 urlId: newUrlId
134 };
135
136 console.log('FastComments: Using urlId:', newUrlId);
137
138 // ืืชื—ืœ ืืช FastComments
139 lastInstance = window.FastCommentsUI(container, config);
140 rendered = true;
141 } else {
142 console.log('FastComments: Already rendered with same urlId');
143 rendered = true;
144 }
145
146 // ืžืขืงื‘ ื”ืื ื”ืžื™ื›ืœ ื”ื•ืกืจ ืื• ืฉื”-URL ืžืฉืชื ื”
147 const interval = setInterval(function () {
148 const currentContainer = getContainer();
149 if (!currentContainer) {
150 console.log('FastComments: Container removed, will retry...');
151 rendered = false;
152 currentUrlId = null;
153 tryNext();
154 clearInterval(interval);
155 } else {
156 const newUrlId = window.location.pathname;
157 if (newUrlId !== currentUrlId) {
158 console.log('FastComments: URL changed, re-rendering...');
159 rendered = false;
160 tryNext();
161 clearInterval(interval);
162 }
163 }
164 }, 1000);
165 } else {
166 console.log('FastComments: Target element not found, waiting...');
167 setTimeout(tryNext, 300);
168 }
169 }
170
171 tryNext();
172 }
173
174 // Initial render when DOM is ready
175 if (document.readyState === 'loading') {
176 document.addEventListener('DOMContentLoaded', render);
177 } else {
178 render();
179 }
180
181 // Re-render on location change (for SPAs)
182 window.addEventListener('locationchange', function () {
183 console.log('FastComments: Location changed, updating...');
184 render();
185 });
186 })();
187</script>
188

ื”ื“ื‘ืง ืืช ื–ื” ื‘ื—ืœื•ืŸ ื”ืขื•ืจืš ืฉืคืชื—ื ื•:

ื”ื“ื‘ืง ืงื•ื“
ื”ื“ื‘ืง ืงื•ื“

ื›ืขืช ื ื•ื›ืœ ืœืœื—ื•ืฅ ืขืœ Yes, Save ื‘ืคื™ื ื” ื”ื™ืžื ื™ืช ื”ืชื—ืชื•ื ื” ืฉืœ ืื•ืชื• ื—ืœื•ืŸ.

ื‘ื—ืœืง ื”ืขืœื™ื•ืŸ ืฉืœ ื”ื“ืฃ, ืœื—ืฆื• ืขื›ืฉื™ื• ืขืœ Save ื•ืื– ืขืœ Preview.

ื”ืืชืจ ื”ื•ืชืงืŸ ื‘ื”ืฆืœื—ื” Internal Link


ื–ื”ื•! ื›ืขืช ื ื•ืกืคื• ืชื’ื•ื‘ื•ืช ื—ื™ื•ืช ืœืืชืจ GoHighLevel ืฉืœืš.

ื”ืฆืœื—ื”
ื”ืฆืœื—ื”

ืื ื ืชืงืœืช ื‘ืฉื’ื™ืืช 'permission denied', ืื• ื‘ืจืฆื•ื ืš ืœื”ืชืื™ื ืื™ืฉื™ืช ืืช FastComments, ื”ืžืฉืš ืœืงืจื•ื.


ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ืืชืจ Internal Link


FastComments ืชื•ื›ื ืŸ ื›ืš ืฉื ื™ืชืŸ ืœื”ืชืื™ืžื• ื›ื“ื™ ืฉื™ืชืื™ื ืœืืชืจ ืฉืœืš.

ืื ื‘ืจืฆื•ื ืš ืœื”ื•ืกื™ืฃ ืขื™ืฆื•ื‘ ืžื•ืชืื ืื™ืฉื™ืช ืื• ืœืฉื ื•ืช ืชืฆื•ืจื”, ืขื™ื™ืŸ ื‘ืชื™ืขื•ื“ ื”ื”ืชืืžื” ื•ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืฉืœื ื• ื›ื“ื™ ืœืœืžื•ื“ ื›ื™ืฆื“.

ืœืกื™ื›ื•ื

ืื ืžืกื™ื‘ื” ื›ืœืฉื”ื™ ื”ืฆืขื“ื™ื ืื• ื”ืงื•ื“ ืฉืกื•ืคืงื• ืื™ื ื ืคื•ืขืœื™ื, ืื ื ื”ื•ื“ื™ืขื• ืœื ื•.