Форум программистов, компьютерный форум CyberForum.ru
С наступающим Новым годом!
CyberForum.ru - форум программистов и сисадминов > >
Восстановить пароль Регистрация
 
ПростоЯ
Форумчанин
183 / 100 / 1
Регистрация: 30.05.2009
Сообщений: 729
07.06.2010, 11:13     Проверка кода   #1
Подскажите плз.
Есть код календаря:
Код HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<SCRIPT LANGUAGE="JavaScript">
var nowdate
function setToday() {
var now   = new Date();
var day   = now.getDate();
var month = now.getMonth();
var year  = now.getYear();
var anameday=new Array("Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота")
var nameday=anameday[now.getDay()]
 
if (year < 2000)   
year = year + 1900;
this.focusDay = day;
document.calControl.month.selectedIndex = month;
document.calControl.year.value = year;
displayCalendar(month, year);
nowdate=day+"."+(parseInt(month)+1)+"."+year
document.all.previousYear2.value=nowdate+" "+nameday
}
function isFourDigitYear(year) {
if (year.length != 4) {
alert ("Год должен содержать 4 цифры");
document.calControl.year.select();
document.calControl.year.focus();
} else { return true; }
}
function selectDate() {
var year  = document.calControl.year.value;
if (isFourDigitYear(year)) {
var day   = 0;
var month = document.calControl.month.selectedIndex;
displayCalendar(month, year);
    }
}
 
function setPreviousYear() {
var year  = document.calControl.year.value;
if (isFourDigitYear(year)) {
var day   = 0;
var month = document.calControl.month.selectedIndex;
year--;
document.calControl.year.value = year;
displayCalendar(month, year);
   }
}
function setPreviousMonth() {
var year  = document.calControl.year.value;
if (isFourDigitYear(year)) {
var day   = 0;
var month = document.calControl.month.selectedIndex;
if (month == 0) {
month = 11;
if (year > 1000) {
year--;
document.calControl.year.value = year;
}
} else { month--; }
document.calControl.month.selectedIndex = month;
displayCalendar(month, year);
   }
}
function setNextMonth() {
var year  = document.calControl.year.value;
if (isFourDigitYear(year)) {
var day   = 0;
var month = document.calControl.month.selectedIndex;
if (month == 11) {
month = 0;
year++;
document.calControl.year.value = year;
} else { month++; }
document.calControl.month.selectedIndex = month;
displayCalendar(month, year);
   }
}
function setNextYear() {
var year = document.calControl.year.value;
if (isFourDigitYear(year)) {
var day = 0;
var month = document.calControl.month.selectedIndex;
year++;
document.calControl.year.value = year;
displayCalendar(month, year);
   }
}
function displayCalendar(month, year) {       
month = parseInt(month);
year = parseInt(year);
var i = 0;
var days = getDaysInMonth(month+1,year);
var firstOfMonth = new Date (year, month, 1);
var startingPos = firstOfMonth.getDay()-1;
if (startingPos<0) startingPos=6
days += startingPos;
document.calButtons.calPage.value  =   " Пн Вт Ср Чт Пт Сб Вс";
document.calButtons.calPage.value += "\n ————————————————————";
for (i =0; i < startingPos; i++) {
if ( i%7 == 0 ) document.calButtons.calPage.value += "\n ";
document.calButtons.calPage.value += "   ";
}
for (i = startingPos; i < days; i++) {
if ( i%7 == 0 ) document.calButtons.calPage.value += "\n ";
if (i-startingPos+1 < 10)
document.calButtons.calPage.value += "0";
document.calButtons.calPage.value += i-startingPos+1;
document.calButtons.calPage.value += " ";
}
for (i=days; i<42; i++)  {
if ( i%7 == 0 ) document.calButtons.calPage.value += "\n ";
document.calButtons.calPage.value += "   ";
}
document.calControl.Go.focus();
}
function getDaysInMonth(month,year)  {
var days;
if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31;
else if (month==4 || month==6 || month==9 || month==11) days=30;
else if (month==2)  {
if (visYear(year)) { days=29; }
else { days=28; }
}
return (days);
}
function visYear (Year) {
if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
return (true);
} else { return (false); }
}
</SCRIPT>
<!BODY onLoad="setToday()">
<FORM NAME="calControl" onSubmit="return false;">
<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0>
<TR><TD COLSPAN=7>
 
<CENTER>
<SELECT   NAME="month" onChange="selectDate()">
<OPTION>Январь
<OPTION>Февраль
<OPTION>Март
<OPTION>Апрель
<OPTION>Май
<OPTION>Июнь
<OPTION>Июль
<OPTION>Август
<OPTION>Сентябрь
<OPTION>Октябрь
<OPTION>Ноябрь
<OPTION>Декабрь
</SELECT>
<INPUT   NAME="year" TYPE=TEXT SIZE=4 MAXLENGTH=4 onChange="selectDate()">
<INPUT TYPE="button" NAME="Go" value="  ОК " onClick="selectDate()" TITLE="Если изменили год, щелкните здесь">
 
</TD>
</TR>
</FORM>
<FORM NAME="calButtons">
<TR><TD align="center">
    <textarea   width: 185px; height: 140px;" FONT="Courier"   NAME="calPage" WRAP=no ></textarea></TD><TR><TD><CENTER>
<INPUT TYPE=BUTTON NAME="previousYear" VALUE="<<" style="font-size:9" onClick="setPreviousYear()" TITLE="Год -">
<INPUT TYPE=BUTTON NAME="previousYear" VALUE="< " style="font-size:9" onClick="setPreviousMonth()" TITLE="Месяц -">
<INPUT TYPE=BUTTON NAME="previousYear2" VALUE=""  style="font-size:9" onClick="setToday()" TITLE="Календарь на текущую дату">
<INPUT TYPE=BUTTON NAME="previousYear" VALUE=" >" style="font-size:9" onClick="setNextMonth()" TITLE="Месяц +">
<INPUT TYPE=BUTTON NAME="previousYear" VALUE=">>" style="font-size:9" onClick="setNextYear()" TITLE="Год +">
</CENTER></TD></TR></center>
</TABLE></FORM></FONT>
 
<SCRIPT>setToday()</SCRIPT>
При отображении календаря дни недели (Пн Вт Ср и т.д.) в самом календаря почему-то подчеркиваются красным. Где надо подправить, что бы не было этого подчеркивания?
Название: 1.JPG
Просмотров: 140

Размер: 5.9 Кб
Так же просьба написать, как можно сделать кнопки красивыми, да и вообще придать всему календарю красивый вид.
AdAgent
Объявления
07.06.2010, 11:13     Проверка кода
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2010, 11:13     Проверка кода
Посмотрите здесь:

HTML, CSS Распознавание кода
HTML, CSS Валидация кода
HTML, CSS валидность кода
HTML, CSS автоформатирование кода
HTML, CSS Чистка кода
ПростоЯ
Форумчанин
183 / 100 / 1
Регистрация: 30.05.2009
Сообщений: 729
07.06.2010, 12:02  [ТС]     Проверка кода   #2
и скажите, плз, как к определенному дню месяца добавить ссылку на страницу, что б при выборе даты в календаре открывалась конкретная страничка?
etalord
работяга
362 / 340 / 34
Регистрация: 23.05.2010
Сообщений: 943
07.06.2010, 12:23     Проверка кода   #3
подчеркивается красным - из-за проверки браузером синтаксиса ) Как в ворде, когда печатаешь слово неправильно )) . Попробуйте реализовать календарь иначе. Сделайте вывод не в текстовом поле, а, например, в диве. На кнопки можно картинки натянуть. Вообще у вас столько требований к этому календарю, может лучше поискать другой скрипт, который бы вам подошел? )) Вот я, например, не совсем понимаю - вы хотите 365 разных страничек в зависимости от даты?
ПростоЯ
Форумчанин
183 / 100 / 1
Регистрация: 30.05.2009
Сообщений: 729
07.06.2010, 13:06  [ТС]     Проверка кода   #4
да, наверное не подходящий шаблон выбрала...отставим его....
вот есть более красивый
Код HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<form name="kalendar">
  <TABLE width="175" height="210" cellspacing="0" cellpadding="0" bgcolor="#dedfd1" border="0" align="center" valign="center">
<TR><TD height="20" colspan="7">
<TABLE width="160" border="0" align="center" valign="center" cellspacing="0" cellpadding="0">
<TR><TD><CENTER><p align=center>
    <select id="montsel" name="mons" onchange="calculate();" size=1>
<option value="1">Январь</option>
<option value="2">Февраль</option>
<option value="3">Март</option>
<option value="4">Апрель</option>
<option value="5">Май</option>
<option value="6">Июнь</option>
<option value="7">Июль</option>
<option value="8">Август</option>
<option value="9">Сентябрь</option>
<option value="10">Октябрь</option>
<option value="11">Ноябрь</option>
<option value="12">Декабрь</option>
    </select></p></CENTER>
    <TD><CENTER><p align=center>
    <select id="yersel" name="yers" onchange="calculate();">
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
    </select></p></CENTER></TD>
</TR>
</table>
</TD></TR>
  <TR height="22" bgcolor="#e7d2b3" align="center" valign="center">
    <TD width="25" align="center" valign="center"><font stile="font-weight: 700" face="Arial" size="2" color="#3d3d3d" style="font-size: 10pt"><CENTER><B><span class="result" id="k1"></span></b></CENTER></TD>
    <TD width="25" align="center" valign="center"><font stile="font-weight: 700" face="Arial" size="2" color="#3d3d3d" style="font-size: 10pt"><CENTER><B><span class="result" id="k2"></span></b></CENTER></TD>
    <TD width="25" align="center" valign="center"><font stile="font-weight: 700" face="Arial" size="2" color="#3d3d3d" style="font-size: 10pt"><CENTER><B><span class="result" id="k3"></span></b></CENTER></TD>
    <TD width="25" align="center" valign="center"><font stile="font-weight: 700" face="Arial" size="2" color="#3d3d3d" style="font-size: 10pt"><CENTER><B><span class="result" id="k4"></span></b></CENTER></TD>
    <TD width="25" align="center" valign="center"><font stile="font-weight: 700" face="Arial" size="2" color="#3d3d3d" style="font-size: 10pt"><CENTER><B><span class="result" id="k5"></span></b></CENTER></TD>
    <TD width="25" align="center" valign="center"><font stile="font-weight: 700" face="Arial" size="2" color="#3d3d3d" style="font-size: 10pt"><CENTER><B><span class="result" id="k6"></span></b></CENTER></TD>
    <TD width="25" align="center" valign="center"><font stile="font-weight: 700" face="Arial" size="2" color="#fe1a1a" style="font-size: 10pt"><CENTER><B><span class="result" id="k7"></span></b></CENTER></TD>
  </TR>
  <TR height="20" align="center" valign="center">
    <TD id="td01"><a id="doc0" href="open.fixdoc" target="new" onclick="arhiv(0);"><span id="dy01"></span></a></TD>
    <TD id="td02"><a id="doc1" href="open.fixdoc" target="new" onclick="arhiv(1);"><span id="dy02"></span></a></TD>
    <TD id="td03"><a id="doc2" href="open.fixdoc" target="new" onclick="arhiv(2);"><span id="dy03"></span></a></TD>
    <TD id="td04"><a id="doc3" href="open.fixdoc" target="new" onclick="arhiv(3);"><span id="dy04"></span></a></TD>
    <TD id="td05"><a id="doc4" href="open.fixdoc" target="new" onclick="arhiv(4);"><span id="dy05"></span></a></TD>
    <TD id="td06"><a id="doc5" href="open.fixdoc" target="new" onclick="arhiv(5);"><span id="dy06"></span></a></TD>
    <TD id="td07"><a id="doc6" href="open.fixdoc" target="new" onclick="arhiv(6);"><span id="dy07"></span></a></TD>
  </TR>
  <TR height="20" align="center" valign="center">
    <TD id="td08"><a id="doc7" href="open.fixdoc" target="new" onclick="arhiv(7);"><span id="dy08"></span></a></TD>
    <TD id="td09"><a id="doc8" href="open.fixdoc" target="new" onclick="arhiv(8);"><span id="dy09"></span></a></TD>
    <TD id="td10"><a id="doc9" href="open.fixdoc" target="new" onclick="arhiv(9);"><span id="dy10"></span></a></TD>
    <TD id="td11"><a id="doc10" href="open.fixdoc" target="new" onclick="arhiv(10);"><span id="dy11"></span></a></TD>
    <TD id="td12"><a id="doc11" href="open.fixdoc" target="new" onclick="arhiv(11);"><span id="dy12"></span></a></TD>
    <TD id="td13"><a id="doc12" href="open.fixdoc" target="new" onclick="arhiv(12);"><span id="dy13"></span></a></TD>
    <TD id="td14"><a id="doc13" href="open.fixdoc" target="new" onclick="arhiv(13);"><span id="dy14"></span></a></TD>
  </TR>
  <TR height="20" align="center" valign="center">
    <TD id="td15"><a id="doc14" href="open.fixdoc" target="new" onclick="arhiv(14);"><span id="dy15"></span></a></TD>
    <TD id="td16"><a id="doc15" href="open.fixdoc" target="new" onclick="arhiv(15);"><span id="dy16"></span></a></TD>
    <TD id="td17"><a id="doc16" href="open.fixdoc" target="new" onclick="arhiv(16);"><span id="dy17"></span></a></TD>
    <TD id="td18"><a id="doc17" href="open.fixdoc" target="new" onclick="arhiv(17);"><span id="dy18"></span></a></TD>
    <TD id="td19"><a id="doc18" href="open.fixdoc" target="new" onclick="arhiv(18);"><span id="dy19"></span></a></TD>
    <TD id="td20"><a id="doc19" href="open.fixdoc" target="new" onclick="arhiv(19);"><span id="dy20"></span></a></TD>
    <TD id="td21"><a id="doc20" href="open.fixdoc" target="new" onclick="arhiv(20);"><span id="dy21"></span></a></TD>
  </TR>
  <TR height="20" align="center" valign="center">
    <TD id="td22"><a id="doc21" href="open.fixdoc" target="new" onclick="arhiv(21);"><span id="dy22"></span></a></TD>
    <TD id="td23"><a id="doc22" href="open.fixdoc" target="new" onclick="arhiv(22);"><span id="dy23"></span></a></TD>
    <TD id="td24"><a id="doc23" href="open.fixdoc" target="new" onclick="arhiv(23);"><span id="dy24"></span></a></TD>
    <TD id="td25"><a id="doc24" href="#" target="new" onclick="arhiv(24);"><span id="dy25"></span></a></TD>
    <TD id="td26"><a id="doc25" href="open.fixdoc" target="new" onclick="arhiv(25);"><span id="dy26"></span></a></TD>
    <TD id="td27"><a id="doc26" href="open.fixdoc" target="new" onclick="arhiv(26);"><span id="dy27"></span></a></TD>
    <TD id="td28"><a id="doc27" href="open.fixdoc" target="new" onclick="arhiv(27);"><span id="dy28"></span></a></TD>
  </TR>
  <TR height="20" align="center" valign="center">
    <TD id="td29"><a id="doc28" href="open.fixdoc" target="new" onclick="arhiv(28);"><span id="dy29"></span></a></TD>
    <TD id="td30"><a id="doc29" href="open.fixdoc" target="new" onclick="arhiv(29);"><span id="dy30"></span></a></TD>
    <TD id="td31"><a id="doc30" href="open.fixdoc" target="new" onclick="arhiv(30);"><span id="dy31"></span></a></TD>
    <TD id="td32"><a id="doc31" href="open.fixdoc" target="new" onclick="arhiv(31);"><span id="dy32"></span></a></TD>
    <TD id="td33"><a id="doc32" href="open.fixdoc" target="new" onclick="arhiv(32);"><span id="dy33"></span></a></TD>
    <TD id="td34"><a id="doc33" href="open.fixdoc" target="new" onclick="arhiv(33);"><span id="dy34"></span></a></TD>
    <TD id="td35"><a id="doc34" href="open.fixdoc" target="new" onclick="arhiv(34);"><span id="dy35"></span></a></TD>
  </TR>
  <TR height="20" align="center" valign="center">
    <TD id="td36"><a id="doc35" href="open.fixdoc" target="new" onclick="arhiv(35);"><span id="dy36"></span></a></TD>
    <TD id="td37"><a id="doc36" href="open.fixdoc" target="new" onclick="arhiv(36);"><span id="dy37"></span></a></TD>
    <TD id="td38"><a id="doc37" href="open.fixdoc" target="new" onclick="arhiv(37);"><span id="dy38"></span></a></TD>
    <TD id="td39"><a id="doc38" href="open.fixdoc" target="new" onclick="arhiv(38);"><span id="dy39"></span></a></TD>
    <TD id="td40"><a id="doc39" href="open.fixdoc" target="new" onclick="arhiv(39);"><span id="dy40"></span></a></TD>
    <TD id="td41"><a id="doc40" href="open.fixdoc" target="new" onclick="arhiv(40);"><span id="dy41"></span></a></TD>
    <TD id="td42"><a id="doc41" href="open.fixdoc" target="new" onclick="arhiv(41);"><span id="dy42"></span></a></TD>
  </TR>
  <TR height="20">
    <TD colspan="7" id="dy44"><font stile="font-weight: 700" face="Verdana" size="2" style="font-size: 10pt"><CENTER><B><I><span id="dy43"></span></i></b></CENTER></TD>
  </TR>
  </TABLE>
  </form>
вот конкретно по этому шаблону - тут отображение дней в календаре задано ячейками <td>...каждой ячейке присвоена ссылка. А надо, что бы ссылка была на конкретном дне, и что бы она сохранялась. То есть, к примеру, была ссылка 25-го мая на страничку с новостями. Сейчас июнь, но при пролистывании календаря на май, ссылка так и была на 25-м числе. Как так сделать с приложенным кодом? Понятно хоть написала, что мне требуется? А то может не понятно формулирую...
etalord
работяга
362 / 340 / 34
Регистрация: 23.05.2010
Сообщений: 943
07.06.2010, 13:39     Проверка кода   #5
я бы сделал так: завел бы 1 страничку с новостями. а календарь бы обращался бы к этой страничке, передавая какой-нибудь параметры - например день, месяц, год. Страничка бы на основании этих параметров вытаскивала из базы нужные новости. С пхп дружишь?
AdAgent
Объявления
07.06.2010, 13:39     Проверка кода
ПростоЯ
Форумчанин
183 / 100 / 1
Регистрация: 30.05.2009
Сообщений: 729
07.06.2010, 13:57  [ТС]     Проверка кода   #6
Цитата Сообщение от etalord Посмотреть сообщение
я бы сделал так: завел бы 1 страничку с новостями. а календарь бы обращался бы к этой страничке, передавая какой-нибудь параметры - например день, месяц, год. Страничка бы на основании этих параметров вытаскивала из базы нужные новости. С пхп дружишь?
знать, как бы это еще сделать...
было бы вообще здорово, что бы календарь сам отслеживал добавление новостей, и помечал бы у себя в календаре этот день, что в этот день что-то произошло....
У меня новости на нескольких страничках, но я так понимаю, что можно сделать одну страничку на все новости и прописать в календаре обращение именно к ней? А как?
etalord
работяга
362 / 340 / 34
Регистрация: 23.05.2010
Сообщений: 943
07.06.2010, 15:18     Проверка кода   #7
хм, тогда могу предложить следующий вариант - называй странички соответственно дате ) для первого января 2010 года - 01012010.html или "2010/01/01.html" (по папкам и подпапкам) . А в календаре ссылки на странички генерируй на основе даты )

Добавлено через 48 секунд
но это тебе на каждый день по страничке создавать придется оО
ПростоЯ
Форумчанин
183 / 100 / 1
Регистрация: 30.05.2009
Сообщений: 729
07.06.2010, 16:12  [ТС]     Проверка кода   #8
Цитата Сообщение от etalord Посмотреть сообщение
хм, тогда могу предложить следующий вариант - называй странички соответственно дате ) для первого января 2010 года - 01012010.html или "2010/01/01.html" (по папкам и подпапкам) . А в календаре ссылки на странички генерируй на основе даты )

Добавлено через 48 секунд
но это тебе на каждый день по страничке создавать придется оО
создание для каждой даты странички не проблема. Вот только как странички привязать к календарю....ведь в коде календаря прописаны не все дни по годам. то есть там задано правило отображения в календаре чисел в зависимости от месяца и года. соответственно если я код поправлю - 2-го числа сделать ссылку на такую-то страничку, то в каждом месяце на 2-м числе будет эта ссылка..надо как-то условием что ль....задать определенно 2-го числа такого-то месяца и года ссылка...а как?

Добавлено через 45 минут
Пожалуй создам отдельную тему под мой вопрос, потому что эта тема - Правка кода, а речь уже идет конкретно о добавлении в календарь чего-то.
etalord
работяга
362 / 340 / 34
Регистрация: 23.05.2010
Сообщений: 943
07.06.2010, 16:20     Проверка кода   #9
надо получить значения выбранных года, месяца и дня, слепить их вместе - и вуаля, ссылка готова )) у меня сейчас просто нет времени, в javascript-форуме должны помочь )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2010, 16:27     Проверка кода
Еще ссылки по теме:

HTML, CSS Проверка на практике кода семинара по адаптивной верстке
HTML, CSS Проверка на валидность
HTML, CSS Нужна проверка кода верстки

Или воспользуйтесь поиском по форуму:
ПростоЯ
Форумчанин
183 / 100 / 1
Регистрация: 30.05.2009
Сообщений: 729
07.06.2010, 16:27  [ТС]     Проверка кода   #10
Цитата Сообщение от etalord Посмотреть сообщение
надо получить значения выбранных года, месяца и дня, слепить их вместе - и вуаля, ссылка готова )) у меня сейчас просто нет времени, в javascript-форуме должны помочь )
ну а мне не прям срочно, так что если будет время и не будет сложно, скиньте пример кода. Куда надо и что добавлять.
Заранее спасибки.
Yandex
Объявления
07.06.2010, 16:27     Проверка кода
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Опции темы

Текущее время: 03:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Яндекс.Метрика