Доработка подсчета набранных символов.

Smarty error: [in evaluated template line 25]: syntax error: unrecognized tag: $max = Config::read('max_lenght', $tr[0]);
Smarty error: [in evaluated template line 25]: syntax error: unrecognized tag ''
Smarty error: [in evaluated template line 25]: syntax error: unrecognized tag: $max = Config::read('description_lenght', $tr[0]);
Smarty error: [in evaluated template line 25]: syntax error: unrecognized tag ''
Smarty error: [in evaluated template line 31]: syntax error: unrecognized tag: [ИМЯ СНИППЕТА]
Smarty error: [in evaluated template line 31]: syntax error: unrecognized tag ''

Итак, не так давно я заморочился и сделал, удобный для меня, скрипт подсчета введенных или набранных символов в текстовое поле. 
Это очень удобно для тех кто хотел бы знать какого объема он пишет статьи. Более подробно можно почитать вот в этой статье: Подсчет набранных символов для Fapos

Но мне не давало покоя то что приходится в скрипте руками задавать количество максимально возможных символов. 
Так как в программировании я не шарю ну совсем ничего то я решил мучить людей на официальном форуме фапоса. На мои призывы в помощи любезно откликнулся r00t_sanи вот с помощью него было создано то что меня удовлетворило полностью.

В частности было реализовано взятие цифры максимально возможного размера поста из настроек в админке фапоса.

Ну а теперь от лирики перейдем к реализации.

Насколько вы помните, а если не помните то посмотрите тут, мы разнесли код на 2 составляющие. 

Первая составляющая кода по подсчету набранных символов это файл с джава скриптами.
Идем в этот файл и меняем всего 1 параметр.
раньше переменная var max у нас задавалась явным образом и выглядела вот так:

var max = 10000;

Теперь ее необходимо заменить следующей строкой:

var max = document.getElementById('maxcount').innerHTML;

Сохраняем изменения и на этом с джава скриптом окончено.

Далее идем в админку своего сайта на фапосе, в верхнем меню выбираем снипеты -> создать снипет.
Название задавайте сами какое хотите, главное что бы снипета с таким названием у вас еще не было.

В него вносим следующий код:

$cat = substr($_SERVER['REQUEST_URI'], 1, strlen($_SERVER['REQUEST_URI'])-1);  $tr = explode("/", $cat); if ($tr[0] !== "foto")  else  echo "<div style='display:none;' id='maxcount'>".$max."</div>"; ?> <span id="count"></span> <span id="counto"></span> <?

Это по сути и код для считывания параметров максимальной длинны сообщения и вывод строки в которой написано сколько символов набрано и сколько осталось.

Далее идем в файлики addform.html и editform.html во всех модулях где будем ставить подсчет набранных символов.
Находим строку где раньше мы вводили код 

<span id="count"></span> <span id="counto"></span>

и вместо нее вставляем свой снипет, что то типа того

Вот в принципе и все, все должно работать.

Если кого то интересует обсуждение по созданию данного снипета то вот ссылка на первое сообщение.

Оставляйте свои комментарии и приятного использования. 

Размещено: 10.10.2011