CrafterCMS рдореЗрдВ Asyntai AI рдЪреИрдЯрдмреЙрдЯ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ
CrafterCMS рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
рдЪрд░рдг 1: рдЕрдкрдирд╛ рдПрдореНрдмреЗрдб рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ Asyntai рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдЬрд╛рдПрдБ рдФрд░ рдиреАрдЪреЗ "Embed Code" рдЕрдиреБрднрд╛рдЧ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВред рдЕрдкрдирд╛ рдпреВрдирд┐рдХ рдПрдореНрдмреЗрдб рдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВ, рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
<script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script>
рдиреЛрдЯ: рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдбреИрд╢рдмреЛрд░реНрдб рд╕реЗ рдЕрдкрдирд╛ рдЕрджреНрд╡рд┐рддреАрдп рдПрдореНрдмреЗрдб рдХреЛрдб рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЖрдкрдХреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рдЬреЗрдЯ ID рд╣реЛрддреА рд╣реИред
рдЪрд░рдг 2: FreeMarker рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдЕрдиреБрд╢рдВрд╕рд┐рдд)
CrafterCMS рдкреГрд╖реНрда рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП FreeMarker (.ftl) рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЪреИрдЯрдмреЙрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЕрдкрдирд╛ рдореБрдЦреНрдп рдкреЗрдЬ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ:
- Crafter Studio рдореЗрдВ, рд╕рд╛рдЗрдЯ рдбреИрд╢рдмреЛрд░реНрдб > рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдкрд░ рдЬрд╛рдПрдБ рдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ
- рдЕрдкрдирд╛ рдореБрдЦреНрдп рдкреЗрдЬ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЦреЛрд▓реЗрдВ (рдЬреИрд╕реЗ,
/templates/web/pages/home.ftlрдпрд╛ рдмреЗрд╕ рд▓реЗрдЖрдЙрдЯ) - рдХреНрд▓реЛрдЬрд╝рд┐рдВрдЧ
</body>рдЯреИрдЧ рдЦреЛрдЬреЗрдВ </body>рдЯреИрдЧ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдЕрдкрдирд╛ Asyntai рдПрдореНрдмреЗрдб рдХреЛрдб рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ:<!-- Asyntai AI Chatbot --> <script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script> </body>- рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ Crafter Studio рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
рд╕реБрдЭрд╛рд╡: рдХреНрд▓реЛрдЬрд╝рд┐рдВрдЧ </body> рдЯреИрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреГрд╖реНрда рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд╛рдж рд▓реЛрдб рд╣реЛ, рдЬреЛ рдЪреИрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рдФрд░ рдЖрдкрдХреА рдкреГрд╖реНрда рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдзреАрдорд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ 1: Crafter рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдмреЗрд╣рддрд░ рд╕рдВрдЧрдарди рдХреЗ рд▓рд┐рдП, рдЪреИрдЯрдмреЙрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдБ:
- Crafter Studio рдореЗрдВ,
/templates/web/components/asyntai-widget.ftlрдкрд░ рдПрдХ рдирдИ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ - рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝реЗрдВ:
<!-- Asyntai AI Chatbot Component --> <script>(function(){var l=function(){var s=document.createElement("script");s.src="https://widget.asyntai.com/static/js/chat-widget.js";s.async=true;s.setAttribute("data-asyntai-id","YOUR_WIDGET_ID");document.head.appendChild(s)};if(document.readyState==="complete"){l()}else{window.addEventListener("load",l)}})();</script> - FreeMarker рдЗрдирдХреНрд▓реВрдб рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдореБрдЦреНрдп рд▓реЗрдЖрдЙрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ:
<#include "/templates/web/components/asyntai-widget.ftl" /> - рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдпрджрд┐ Crafter рдХреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
<@renderComponent component=contentModel.asyntaiWidget /> - рджреЛрдиреЛрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ Crafter Studio рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
рдиреЛрдЯ: рдПрдХ рдЕрд▓рдЧ рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╣реА рдЗрдирдХреНрд▓реВрдб рд▓рд╛рдЗрди рдХреЛ рдХрдореЗрдВрдЯ рдЖрдЙрдЯ рдХрд░рдХреЗ рдЖрдкрдХреА рдкреВрд░реА рд╕рд╛рдЗрдЯ рдкрд░ рдЪреИрдЯрдмреЙрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ 2: Crafter рдХреЗ Head/Scripts рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
CrafterCMS рдЖрдкрдХреЛ рд╕рд╛рдЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
- Crafter Studio рдореЗрдВ, рд╕рд╛рдЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧ > рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ
- Engine рд╕рд╛рдЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (
site-config.xml) рдЦреЛрд▓реЗрдВ - рдПрдХ рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝реЗрдВ:
<site> <!-- Existing configuration... --> <!-- Custom Scripts --> <scripts> <script> <src>https://asyntai.com/static/js/chat-widget.js</src> <async>true</async> <data-asyntai-id>YOUR_WIDGET_ID</data-asyntai-id> </script> </scripts> </site> - рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рд╛рдЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдмреЗрд╕ FreeMarker рд▓реЗрдЖрдЙрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
<#if siteConfig.getString("scripts.script.src", "")?has_content> <script async src="${siteConfig.getString("scripts.script.src")}" data-asyntai-id="${siteConfig.getString("scripts.script.data-asyntai-id")}"></script> </#if> - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
рд╕реБрдЭрд╛рд╡: рд╕рд╛рдЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЪреИрдЯрдмреЙрдЯ рд╡рд┐рдЬреЗрдЯ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдмрд╛рдж рдореЗрдВ рдЕрдкрдбреЗрдЯ рдпрд╛ рд╣рдЯрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ 3: Groovy рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
CrafterCMS рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд▓реЙрдЬрд┐рдХ рдХреЗ рд▓рд┐рдП Groovy рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЪреИрдЯрдмреЙрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
/scripts/pages/рдореЗрдВ рдПрдХ Groovy рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдБ (рдЬреИрд╕реЗ,/scripts/pages/home.groovyрдпрд╛ рдЖрдкрдХрд╛ рд╕рд╛рдЗрдЯ-рд╡реНрдпрд╛рдкреА рдХрдВрдЯреНрд░реЛрд▓рд░)- рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЙрдбрд▓ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ URL рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
// /scripts/pages/home.groovy import org.craftercms.engine.service.context.SiteContext def siteContext = SiteContext.current // Add Asyntai chatbot configuration to the model model.asyntaiEnabled = true model.asyntaiWidgetId = "YOUR_WIDGET_ID" model.asyntaiScriptSrc = "https://asyntai.com/static/js/chat-widget.js" - рдлрд┐рд░ рдЕрдкрдиреЗ FreeMarker рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдореЙрдбрд▓ рдЪрд░реЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдВ:
<#if model.asyntaiEnabled?? && model.asyntaiEnabled> <script async src="${model.asyntaiScriptSrc}" data-asyntai-id="${model.asyntaiWidgetId}"></script> </#if> - Groovy рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рджреЛрдиреЛрдВ рд╕рд╣реЗрдЬреЗрдВ
- Crafter Studio рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
рдиреЛрдЯ: Groovy рдХрдВрдЯреНрд░реЛрд▓рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рддрдм рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рдЖрдкрдХреЛ рд╕рд╢рд░реНрдд рд▓реЙрдЬрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЬреИрд╕реЗ, рдХреЗрд╡рд▓ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреВрдорд┐рдХрд╛рдУрдВ рдпрд╛ рдкреГрд╖реНрда рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЪреИрдЯрдмреЙрдЯ рд╕рдХреНрд╖рдо рдХрд░рдирд╛) рдпрд╛ рдЬрдм рдЖрдк рдмрд╛рд╣рд░реА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЪрд░рдг 3: рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ Crafter Studio рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ:
- Crafter Studio рдореЗрдВ, рд╕рд╛рдЗрдЯ рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдЬрд╛рдПрдБ
- рдореЗрд░реА рд╣рд╛рд▓рд┐рдпрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдпрд╛ рдЕрдиреБрдореЛрджрди рд▓рдВрдмрд┐рдд рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ
- рдЕрдкрдиреЗ рд▓рд╛рдЗрд╡ рд╕рд╛рдЗрдЯ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдПрдХ рдирдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рдпрд╛ рдЗрдирдХреЙрдЧреНрдирд┐рдЯреЛ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЕрдкрдиреА CrafterCMS рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдБ
- рдЖрдкрдХреЛ рдиреАрдЪреЗ рджрд╛рдПрдБ рдХреЛрдиреЗ рдореЗрдВ рдЪреИрдЯ рд╡рд┐рдЬреЗрдЯ рдмрдЯрди рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЦреБрд▓рддрд╛ рдФрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╡рд┐рдЬреЗрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛? рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ Crafter Studio рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдПред рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╕рд╣реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдирд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ рдпрд╛ рдЗрдирдХреЙрдЧреНрдирд┐рдЯреЛ рд╡рд┐рдВрдбреЛ рдореЗрдВ рджреЗрдЦреЗрдВред рдпрджрд┐ Crafter рдХреА рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ Crafter Studio рдбреИрд╢рдмреЛрд░реНрдб рд╕реЗ Engine рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░реЗрдВред
рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдерд╛рди: CrafterCMS рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдерд╛рди рдЖрдкрдХреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдкреЗрдЬ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП /templates/web/pages/, рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП /templates/web/components/, рдФрд░ рд▓реЗрдЖрдЙрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП /templates/web/ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред </body> рдЯреИрдЧ рдХрд╣рд╛рдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ рдпрд╣ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬрд╛рдБрдЪреЗрдВред
Weebly