### Copy Skill Folder for Project Setup (Agent) Source: https://www.ucoz.ru/ai/skills/ucoz-landing-skill Instructions for placing the skill folder within a project's .agents directory for agent-based integration. ```bash # Скопируйте папку скилла в проект: your-project/ └── .agents/ └── skills/ └── ucoz-landing-agent/ ├── SKILL.md └── references/ └── PLAYBOOK.md ``` -------------------------------- ### Install Dependencies for uCoz Provisioning Skill (Node.js) Source: https://www.ucoz.ru/ai/skills/ucoz-provisioning-skill Installs project dependencies for the uCoz provisioning skill using npm. Ensure you are in the 'browser-runner' directory. ```bash cd browser-runner && npm install npx playwright install chromium ``` -------------------------------- ### Copy Skill Folder for Project Setup (Claude) Source: https://www.ucoz.ru/ai/skills/ucoz-landing-skill Instructions for placing the skill folder within a project's .claude directory for Claude-based integration. ```bash # Скопируйте папку скилла в проект: your-project/ └── .claude/ └── skills/ └── ucoz-landing-agent/ ├── SKILL.md └── references/ └── PLAYBOOK.md ``` -------------------------------- ### Copy Skill Folder for Project Setup (Cursor) Source: https://www.ucoz.ru/ai/skills/ucoz-landing-skill Instructions for placing the skill folder within a project's .agents/skills/ directory, specifically for Cursor IDE. ```bash # Аналогично Cursor — используйте .agents/skills/: your-project/ └── .agents/ └── skills/ └── ucoz-landing-agent/ ├── SKILL.md └── references/ └── PLAYBOOK.md ``` -------------------------------- ### Install Dependencies for Hermes Browser Runner Source: https://www.ucoz.ru/ai/skills/ucoz-provisioning-skill Installs necessary dependencies for the browser runner script used with the Hermes AI agent. Navigate to the correct directory first. ```bash cd scripts/browser-runner && npm install npx playwright install chromium ``` -------------------------------- ### Project Structure for uCoz Provisioning Skill (Hermes) Source: https://www.ucoz.ru/ai/skills/ucoz-provisioning-skill Illustrates the directory layout for the uCoz provisioning skill when set up for the Hermes AI agent. ```bash # Установите пакет для Hermes: ~/.hermes/ └── skills/ └── mcp/ └── ucoz-site-provision-helper/ ├── SKILL.md ├── scripts/ │ └── browser-runner/ └── references/ ``` -------------------------------- ### Project Structure for uCoz Provisioning Skill (Cursor/Codex/Claude) Source: https://www.ucoz.ru/ai/skills/ucoz-provisioning-skill Shows the directory structure for the uCoz provisioning skill when copied into a project for Cursor, Codex, or Claude. ```bash # Скопируйте пакет в проект: your-project/ └── .agents/ └── skills/ └── ucoz-site-provision-helper/ ├── SKILL.md ├── manifest.json ├── browser-runner/ │ ├── ucoz-provision.cjs │ └── .env.example └── references/ ``` -------------------------------- ### Initialize Pricing Module Source: https://www.ucoz.ru/pricing Initializes the Pricing module from a specific JavaScript file. This is likely used to dynamically load and display pricing information on the page. ```javascript import {Pricing} from '/ucoz/v5/dist/js/Pricing.min.js?v=1'; new Pricing(110); ``` -------------------------------- ### Login Popup Form Initialization Source: https://www.ucoz.ru/ai/content Initializes a modal login form using the uWnd library. It allows for customizable parameters and opens the login form at a specified position. ```javascript function loginPopupForm(params = {}) { new _uWnd('LF', ' ', -250, -100, { closeonesc:1, resize:1 }, { url:'/index/40' + (params.urlParams ? '?'+params.urlParams : '') }) } ``` -------------------------------- ### uCoz Custom View Initialization Source: https://www.ucoz.ru/ai/skills Sets up custom view settings for uCoz elements, potentially for file lists, and hides them initially. ```javascript (function() { var savedView = localStorage.getItem('uc_catalog_view') || 'grid'; document.documentElement.setAttribute('data-initial-view', savedView); var style = document.createElement('style'); style.innerHTML = '.uc-files-list:not(.view-grid):not(.view-list) { opacity: 0; visibility: hidden; }'; document.head.appendChild(style); })(); ``` -------------------------------- ### Initialize Menu Component Source: https://www.ucoz.ru/contact Initializes the menu component for the website. This script is typically used for navigation elements. ```javascript import {Menu} from '/ucoz/v5/dist/js/Menu.min.js?v=1'; window['uMenu'] = new Menu(); ``` -------------------------------- ### FreeScout Widget Initialization Source: https://www.ucoz.ru/ai Initializes the FreeScout chat widget with specified settings. Ensure the 'freescout-w' element is not already present to avoid duplication. ```javascript var FreeScoutW={s:{"color":"#77c2ff","position":"br","locale":"ru","require":["name","email"],"id":2060417939}}; (function(d,e,s){if(d.getElementById("freescout-w"))return; a=d.createElement(e); m=d.getElementsByTagName(e)[0]; a.async=1; a.id="freescout-w"; a.src=s; m.parentNode.insertBefore(a, m) })(document,"script","https://help.ucozmail.com/modules/chat/js/widget.js?v=3872"); ``` -------------------------------- ### Функция обновления элементов рейтинга (updateRateControls) Source: https://www.ucoz.ru/help/start/panel-upravlenija Обновляет отображение рейтинга для конкретной записи, принимая ее идентификатор и новый рейтинг. Удаляет кнопки управления рейтингом после обновления. ```javascript function updateRateControls(id, newRate) { let entryItem = self['entryID' + id] || self['comEnt' + id]; let rateWrapper = entryItem.querySelector('.u-rate-wrapper'); if (rateWrapper && newRate) rateWrapper.innerHTML = newRate; if (entryItem) entryItem.querySelectorAll('.u-rate-btn').forEach(btn => btn.remove()) } ``` -------------------------------- ### uCoz Initialization and Language Switching Source: https://www.ucoz.ru/about Contains initialization code for uCoz, including timing information, alert handling, user interface settings, and a function for switching website language by redirecting to the appropriate domain. ```javascript var WRInitTime=(new Date()).getTime(); _uWnd = { alert(t) { alert(t); } }; window.uCoz = {"sign":{"7226":"Подключить аккаунт","5453":"Другие","5438":"Скрыть"}}; function mnsLngCh(v){ var url = {"de":"https://www.ucoz.de","en":"https://www.ucoz.com","pt":"https://www.ucoz.com.br","hu":"https://www.ucoz.hu","he":"https://www.ucoz.co.il","pl":"https://www.ucoz.pl","ar":"https://www.ucoz.ae","es":"https://www.ucoz.es","uk":"https://www.ucoz.ua","ru":"https://www.ucoz.ru","ro":"https://www.ucoz.com.ro"}; var uri = window.location.href; uri = uri.replace(/^https?:\/\/\[^\/\\\]+/,''); window.location.href = url[v]+uri; } ``` -------------------------------- ### Initialize Contact Form Source: https://www.ucoz.ru/contact Initializes the contact form functionality. This script should be included to enable the form submission process. ```javascript import {ContactUs as Contact} from '/ucoz/v5/dist/js/ContactUs.min.js?v=1.02'; new Contact({bindSubmitHandler:true}); ``` -------------------------------- ### Dynamic Menu and Entry Population Source: https://www.ucoz.ru/help/start/kak-sozdat-svoj-sajt-v-ucoz Builds navigation menus and entry lists dynamically from provided data. Includes functionality to fetch and display detailed entries for specific categories. ```javascript var sid = 0; $('.bar').append(''); $('.bar').append(''); $(uCatsOut).each(function(){ var menuItem = '
  • ' + this[3] + '
  • '; if(this[1] != 0){ if(sid > 0 && this[1] == sid){ menuItem = '
  • ' + this[3] + '
  • '; $('.bar-entries').append(menuItem); } return true; } if(this[3] == ''){ sid = this[0]; menuItem = '
  • ' + this[3] + '
  • '; $('.bar-entries').append('
  • ' + this[3] + '
  • '); } if(this[0] == 2 && ''.length == 0) { menuItem = '
  • ' + this[3] + '
  • '; $('.bar-entries').append('
  • ' + this[3] + '
  • '); insertEntriesHTML(this[0], $('.bar-entries')); } $('.bar-categories').append(menuItem); }); $('.bar-categories li.active a, .bar-entries li.active a').on('click', function(){ $('.bar-categories, .bar-entries').toggleClass('showed'); return false; }); function insertEntriesHTML(cid, node) { $.post('/help/php/cross_entries/get_entries.php', {cid: cid}, function(response){ var data = eval("(" + response + ")"); if(data.length <= 0) { $('.bar-categories, .bar-entries').toggleClass('showed'); return false; } $(node).append(''); $(data).each(function(){ var url = 'https://www.ucoz.ru/help' + this.url.substr(26), menuItem = '
  • ' + this.title + '
  • '; if(url.indexOf('/start/kak-sozdat-svoj-sajt-v-ucoz') !== -1) { menuItem = '
  • ' + this.title + '
  • '; } $(node).children('ul.cat-entries').append(menuItem); }); $('.bar-entries li.active>a>i').attr('class', 'fa fa-long-arrow-left'); }); console.log($('.bar').outerHeight()); } ``` -------------------------------- ### uCoz Site Configuration Object Source: https://www.ucoz.ru/help/module-faq Contains configuration settings for the uCoz site, including module information, site ID, host, and language. ```javascript window.uCoz = {"module":"publ","site":{"id":"enewmanuals","host":"newmanuals.ucoz.net","domain":null},"uLightboxType":2,"sign":{"10075":"Обязательны для выбора","210178":"Замечания","3238":"Опции","7287":"Перейти на страницу с фотографией.","5255":"Помощник"},"country":"US","ssid":"327111445570260012256","layerType":7,"language":"ru"}; ``` -------------------------------- ### Sort and Filter Subscription Plans Source: https://www.ucoz.ru/help/subscription-plans Handles sorting and filtering of subscription plans. It constructs a URL with sort and filter parameters, and redirects the user to the new URL. Supports SEO-friendly URLs. ```javascript function ssorts(p, cu, seo ) { if ( 1 ) { if ( seo&&seo=='1'){var uu=cu+'?sort='+p;var sort=false;var filter1=false;var filter2=false;var filter3=false;var pageX=false;tmp=\[\];var items=location.search.substr(1).split("&");for ( var index=0;index'); $(data).each(function(){ var url = 'https://www.ucoz.ru/help' + this.url.substr(26), menuItem = '
  • ' + this.title + '
  • '; if(url.indexOf('/start/panel-upravlenija') !== -1) { menuItem = '
  • ' + this.title + '
  • '; } $(node).children('ul.cat-entries').append(menuItem); }); $('.bar-entries li.active>a>i').attr('class', 'fa fa-long-arrow-left'); }); console.log($('.bar').outerHeight()); } ``` -------------------------------- ### Smooth Scrolling and Tab Handling Source: https://www.ucoz.ru/ai/skills/ucoz-landing-skill JavaScript for implementing smooth scrolling to anchor links and managing tabbed content display. ```javascript function showSetup(tab) { document.querySelectorAll('.setup-content').forEach(el => el.style.display = 'none'); document.querySelectorAll('.setup-tab').forEach(el => el.classList.remove('active')); document.getElementById('setup-' + tab).style.display = 'block'; event.target.classList.add('active'); } document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { const target = document.querySelector(this.getAttribute('href')); if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); ``` -------------------------------- ### Dynamic Menu and Entry Loading Source: https://www.ucoz.ru/help/start/opisanie-modulej This JavaScript code dynamically builds a navigation menu and loads content entries based on provided data. It uses jQuery to append menu items and fetches entry details via an AJAX POST request. ```javascript var sid = 0; $('.bar').append(''); $('.bar').append(''); $(uCatsOut).each(function(){ var menuItem = '
  • ' + this[3] + '
  • '; if(this[1] != 0){ if(sid > 0 && this[1] == sid){ menuItem = '
  • ' + this[3] + '
  • '; $('.bar-entries').append(menuItem); } return true; } if(this[3] == ''){ sid = this[0]; menuItem = '
  • ' + this[3] + '
  • '; $('.bar-entries').append('
  • ' + this[3] + '
  • '); } if(this[0] == 2 && ''.length == 0) { menuItem = '
  • ' + this[3] + '
  • '; $('.bar-entries').append('
  • ' + this[3] + '
  • '); insertEntriesHTML(this[0], $('.bar-entries')); } $('.bar-categories').append(menuItem); }); $('.bar-categories li.active a, .bar-entries li.active a').on('click', function(){ $('.bar-categories, .bar-entries').toggleClass('showed'); return false; }); function insertEntriesHTML(cid, node) { $.post('/help/php/cross_entries/get_entries.php', {cid: cid}, function(response){ var data = eval("(" + response + ")"); if(data.length <= 0) { $('.bar-categories, .bar-entries').toggleClass('showed'); return false; } $(node).append(''); $(data).each(function(){ var url = 'https://www.ucoz.ru/help' + this.url.substr(26), menuItem = '
  • ' + this.title + '
  • '; if(url.indexOf('/start/opisanie-modulej') !== -1) { menuItem = '
  • ' + this.title + '
  • '; } $(node).children('ul.cat-entries').append(menuItem); }); $('.bar-entries li.active>a>i').attr('class', 'fa fa-long-arrow-left'); }); console.log($('.bar').outerHeight()); } ``` -------------------------------- ### Photo Album Pagination and Sorting Source: https://www.ucoz.ru/help/module-photo Handles pagination and sorting for photo albums. It can either navigate to a new page directly or use AJAX for a smoother transition. Supports SEO-friendly URLs for sorting and filtering. ```javascript function spages(p, s, link ) { if ( 1) return !!location.assign(link.href); ajaxPageController.showLoader(); _uPostForm('', { url:'/publ/modul_fotoalbomy/18-' + p + '-' + s + '-0-0-' + Date.now() } ) } ``` ```javascript function ssorts(p, cu, seo ) { if ( 1 ) { if ( seo&&seo=='1'){var uu=cu+'?sort='+p;var sort=false;var filter1=false;var filter2=false;var filter3=false;var pageX=false;tmp=[];var items=location.search.substr(1).split("&");for ( var index=0;index