Категории форума

Записки CotoДела

Мои записи, как типовые решения разных вопросов с Cotonti

webitproff
webitproff • 29.04.2026 19:18 #537

Второй вариант “предохранителя” на превышение количества символов с показом счетчика: 

<div class="col-12">
   <label for="marketMetaTitle" class="form-label fw-semibold">{PHP.L.market_metatitle}</label>
   <div class="input-group has-validation">
       {MARKETEDIT_FORM_METATITLE|cot_rc_modify($this, 'data-chars-limit="55" id="marketMetaTitle"')}
   </div>
   <div class="form-text text-end">
       <span class="text-muted small" id="marketMetaTitle-counter"></span>
   </div>
</div>
<div class="col-12">
   <label for="marketMetaDesc" class="form-label fw-semibold">{PHP.L.market_metadesc}</label>
   <div class="input-group has-validation">
       {MARKETEDIT_FORM_METADESC|cot_rc_modify($this, 'data-chars-limit="160" id="marketMetaDesc"')}
   </div>
   <div class="form-text text-end">
       <span class="text-muted small" id="marketMetaDesc-counter"></span>
   </div>
</div>

 

и также в самый конец добавить скрипт 

<script>
   document.addEventListener('DOMContentLoaded', function() {
       const fields = document.querySelectorAll('input[data-chars-limit], textarea[data-chars-limit]');
       fields.forEach(function(field) {
           const limit = parseInt(field.getAttribute('data-chars-limit'), 10);
           if (!field.id) return; // если поле без id, пропускаем (но теперь id есть)
           const counter = document.getElementById(field.id + '-counter');
           if (!counter) return;
           function updateCounter() {
               let value = field.value;
               if (value.length > limit) {
                   field.value = value.substring(0, limit);
               }
               const remaining = limit - field.value.length;
               counter.textContent = '{PHP.L.market_metadesc}: ' + remaining + ' симв.';
           }
           field.addEventListener('input', updateCounter);
           updateCounter();
       });
   });
</script>
🗿

🧙‍♂️ Радуйся, странниче добрый и честный! Не понапрасну привела тя стезя в земли сии. Зде бо мужи мудры и искусники дела писменнаго и численнаго, что куют словеса и плетут узоры кода, тайны разгадывают и знанием делятся, летописи множа и ремесло цифровое творя.
⬅️ Аще налево пойдеши — обрящеши грамоты древния, писания старинныя и свитки учения. ⬆️ Аще прямо — слово мудрое и совет от мужей разумеющих, что в деле кодописном искусны, получиши. ➡️ Аще направо — сам в писцы и летописцы внидеши, и в ремесло цифровое, где строки и знаки в дело живое обращаются, слово свое в память веков вложиши.
📝 Не медли же — нареки имя свое, и вниди в чин наш, и стань с нами в братстве, где код есть магия, а строки — заклятия живыя, числом и буквою слово едины суть.
🏰 Не тайно есть собрание сие, и не инициации в нем, но многое сокрыто от пришлых и ступалого, понеже не всякому открывается знание, но токмо ищущим и пребывающим в деле сем.