Название Вашего форума
Май 24, 2012, 11:56:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
   Начало   Помощь Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: About engine  (Прочитано 12497 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« : Июнь 15, 2005, 06:26:43 »

Портальная система, предназначена для информационных web-проектов. Написана на популярном языке PHP совместно с СУБД MySQL.



Требования к Web-Серверу:

1. Операционная система ЛЮБАЯ;
2. Apache 1.3.* или выше;
3. PHP 4.3.* или выше;
4. MySQL 3.* или выше.


Возможности:

- Полное Администрирование через Web-браузер;
- Многоязыковая поддержка;
- Управление Многоязыковой системой через Web-браузер;
- Управление Навигацией;
- Доступ модераторов;
- Удобная Система Шаблонов;
- Модули: Новости, Гостевая Книга, Каталог Статей, Поиск, Рассылка, Баннерная Система;
- Внутренняя почта;
- Встроенный счетчик и статистика;
- Возможность установки дополнительных модулей;
- Деинсталяция Модулей;
- Аудентификация пользователей по средствам сессий и куков;
- Работает при register_globals = off;
- Используется GZIP сжатие..

Официальный Сайт - http://wcps.ru/
« Последнее редактирование: Июнь 15, 2005, 06:28:37 от Tycoon » Записан
Lazy Badger
Барсук, Ленивый и Злобный
Оф. поддержка CMS
Hero Member
*****

Karma: 5
Офлайн Офлайн

Сообщений: 647

2667465
« Ответ #1 : Июнь 15, 2005, 07:42:28 »

Не может незнающий родного (предположительно) языка быть нормальным программером - у него мозги не так устроены...
Записан

Quis custodiet ipses custodies?
Сергей
Full Member
***

Karma: 8
Офлайн Офлайн

Сообщений: 218

Просто БОСС

141467
WWW
« Ответ #2 : Июнь 15, 2005, 08:10:49 »

Tycoon, Я возможно не против такого продвижения этой системы как создание отдельного форума. но тогда тебе придется много писать интересного о этой системе. Можешь приступать.
Записан
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« Ответ #3 : Июнь 15, 2005, 10:13:35 »

Не может незнающий родного (предположительно) языка быть нормальным программером - у него мозги не так устроены...
Это в смысле? Лично я не руский , но какое это имеет отношение к теме лэйзи?
Записан
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« Ответ #4 : Июнь 15, 2005, 10:23:33 »

Tycoon, Я возможно не против такого продвижения этой системы как создание отдельного форума. но тогда тебе придется много писать интересного о этой системе. Можешь приступать.
Данная система развивается давольно то давно, с ней я познакомился еще далеко до таких опусов как пхп-нюке и подобных, данный енжин является российско разработкой, и представляет даволно интересный проект. Я не являюсь автором данного движка, но постоянно следил за этой разработкой, проект вырос из версии 0.0.1 и уже на этой версии зарекомендовал себя как полноценный смс, или идеальная система шаблонов, где даже начинаюему программисту необходимы знания  PHP на уровне COPY-PASTE  afro
Записан
Виктор
Оф. поддержка CMS
Full Member
***

Karma: 101
Офлайн Офлайн

Сообщений: 109


85248100
WWW E-mail
« Ответ #5 : Июнь 16, 2005, 02:10:03 »

Я хоть и не любитель критику разводить, но что-то меня подход разработчиков не вдохновил.
Записан

- Багира, а вон то яблоко я достану?
- Маугли, ты кого хочешь достанешь!..
[/size]
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« Ответ #6 : Июнь 16, 2005, 06:24:46 »

Эмитация Разных Порталов
В этой статье я хочу немного рассказать, о том, как можно, легко и просто на ПЛАТНОМ хостинге сделать "эмитацию" различных порталов, работающих на WCPS.

Предположим, у Вас есть 2 домена, но 1 БД, вы можете использовать для разных порталов, разные префиксы страниц:

<?
$BDHostName="localhost";
$BDUserName="wcps_beta";
$BDPassword="wcps_beta";
$dbname="wcps_beta";
if(getenv("HTTP_HOST")=="domain.ru"){
$wcpref="wc_";
}
elseif(getenv("HTTP_HOST")=="domain.com"){
$wcpref="awc_";
}
?>

Мы получим: если домен равен domain.ru, то используем одни таблицы, если домен domain.com, то совсем другие.

Если есть 2 БД, то можно все это дело просто разделить:
<?
if(getenv("HTTP_HOST")=="domain.ru"){
$BDHostName="localhost";
$BDUserName="wcps_beta";
$BDPassword="wcps_beta";
$dbname="wcps_beta";
$wcpref="wc_";
}
elseif(getenv("HTTP_HOST")=="domain.com"){
$BDHostName="localhost";
$BDUserName="wcps_tests";
$BDPassword="wcps_tests";
$dbname="wcps_tests";
$wcpref="wc_";
}
?>

Хочу отметить, что будут использоваться ОДНИ итеже ФАЙЛЫ, но разные БД, поэтому все настройки будут различные, будут использоваться те модули, которые установленны именно в данной БД и не будет происходить наслоение информации.

Все это было написанно, просто, от нечего делать, если интересно Вы это используете, если нет - Ваше право.
Записан
HaMiL
Newbie
*

Karma: 0
Офлайн Офлайн

Сообщений: 2


« Ответ #7 : Июнь 16, 2005, 06:55:54 »

C первого взяглада мне понравился двиг... Что у него под капотом  huh

Как с безопасностью?!
Нагрузкой на сервер?!
Записан
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« Ответ #8 : Июнь 16, 2005, 09:11:25 »

C первого взяглада мне понравился двиг... Что у него под капотом  huh

Как с безопасностью?!
Нагрузкой на сервер?!

Защита от SQL инъекции

SQL инъекция - это внедрение "опасных" или зловредных SQL запросов, через поля форм, таких как Гостевой, Комментариев и прочих. Т.е. если PHP сценарий, получающий и обрабатывающий данные из формы, не подготовлен к SQL инъекциям, то можно просто "убить" таблицу.

Если БЫ,  это не предусмотрели, то введя вместо комментария команду DROP TABLE wc_information, можно было бы уничтожить таблицу со всеми настройками портала.

Мы от этого защищены, но для обеспечения большей надежности, мы рекомендуем Вам пользоваться не стандартным префиксов (wc_), а своим уникальным. Для Вашего удобства у нас есть утилита, позволяющая Вам произвести изменение уже работающего портала.

Подборка Пароля

Одной, из возможностью взлома портала, это подбор пароля. Как правило, портальные системы используют для идентификации пользователя на портале его Логин,  с версии 0.0.2, перестали использовать Логин, как идентификатор пользователя, теперь Логин, так же как и Пароль, скрыт от "глаз" посетителей, для этого используется Ник, который пользователь указывает при регистрации.

Так же у нас используется проверка, если администратор её включит, то пользователь, указавший не верно Логин+Пароль N количество раз, попадает в Бан-Лист, после чего он вообще не может попасть на портал, ему остается просить админа снять блокировку.
« Последнее редактирование: Июнь 16, 2005, 09:17:41 от Tycoon » Записан
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« Ответ #9 : Июнь 16, 2005, 09:40:39 »

Недостатки:
нет встроенного редактора
нет возможности управления блоками
(т.е. отображение блоков только в том или ином модуле)
Записан
KAdot
Оф. поддержка CMS
Newbie
*

Karma: 0
Офлайн Офлайн

Сообщений: 14

6609600
« Ответ #10 : Июнь 16, 2005, 10:32:12 »

Цитировать
о введя вместо комментария команду DROP TABLE wc_information, можно было бы уничтожить таблицу со всеми настройками портала.
Мда, это они называют защитой от SQL инъекций... любой разумный человек не допустит такого в своих скриптах...

Систему шаблонов, где в самих шаблонах присутствуют SQL запросы я бы не стал называть идельной, да и ктому-же большая часть дизайна находится не в "шаблонах", а в скриптах вместе с кодом...
« Последнее редактирование: Июнь 16, 2005, 11:37:53 от KAdot » Записан

Все говорят, что мы в-месте...
Все говорят, но немногие знают, в каком. © В. Цой / группа "Кино"
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« Ответ #11 : Июнь 16, 2005, 12:44:31 »

Цитировать
о введя вместо комментария команду DROP TABLE wc_information, можно было бы уничтожить таблицу со всеми настройками портала.
Мда, это они называют защитой от SQL инъекций... любой разумный человек не допустит такого в своих скриптах...

Систему шаблонов, где в самих шаблонах присутствуют SQL запросы я бы не стал называть идельной, да и ктому-же большая часть дизайна находится не в "шаблонах", а в скриптах вместе с кодом...
Шаблоны полностью отделены от кода!
Записан
KAdot
Оф. поддержка CMS
Newbie
*

Karma: 0
Офлайн Офлайн

Сообщений: 14

6609600
« Ответ #12 : Июнь 16, 2005, 02:11:54 »

Цитировать
Шаблоны полностью отделены от кода!
как так? Smiley
установил я себе этот wcps. В папочке thema\wcps2.0.rel1, допустим лежит templates_menu.php в нем такой код:
Код:
<?
if(!defined('L_MOD')) {echo "<meta http-equiv='refresh' content='0; url=/?nma=error&act=403'>";exit;}

$query="SELECT lg.name, lg.value, md.mforreg FROM ".$wcpref."language AS lg, ".$wcpref."modules AS md  WHERE md.mforreg>='1' AND md.murl=lg.name AND  lang='$portal_lang' ORDER BY md.npp ASC LIMIT 0,50";
$result = MYSQL_QUERY($query);
wctableup();
echo "<div class=menu>"._NAVIGATION_."</div>";
wctablecenter();
    print "<a href=$portal_subdir/index.php class=mainmenu>» "._INDEXURLS_."</a><br>";
while ($line=mysql_fetch_array($result)){
    if(@$GLOBALS['nma']==$line[0]){$line[1]="<b>$line[1]</b>";}
    $echos = "<a href=\"".linc_get($line[0],'index','')."\" class=mainmenu>»$line[1]</a><br>\n";
if($line['2']=="1" or $line['2']=="2"){
print $echos;
}elseif($line['2']=="3" and $urov=="1"){
print $echos;
}elseif($line['2']=="4" and $urov=="1" or $urov=="2"){
print $echos;
}
}
wctabledown();
?>
и где тут полное отделение дизайна от кода? Smiley
« Последнее редактирование: Июнь 16, 2005, 02:14:04 от KAdot » Записан

Все говорят, что мы в-месте...
Все говорят, но немногие знают, в каком. © В. Цой / группа "Кино"
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« Ответ #13 : Июнь 16, 2005, 02:27:30 »

Код:
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY leftMargin=1 topMargin=1><BR><META http-equiv=EXPIRES content=0>
<META content=DOCUMENT name=RESOURCE-TYPE><META content=GLOBAL name=DISTRIBUTION>
<META content="" name=KEYWORDS>
<META content="" name=DESCRIPTION>
<META content="INDEX, FOLLOW" name=ROBOTS>
<META content="1 DAYS" name=REVISIT-AFTER>
<META content=GENERAL name=RATING>
   <?meta_tegs();?>
   <LINK title=RSS href="backend.php" type=application/rss+xml
   rel=alternate>
   <LINK href="thema/shiaprogrammer1/image/style.css" type=text/css rel=StyleSheet>
   <TABLE class=bodyline cellSpacing=0 cellPadding=0 width="100%" border=0>
   <TBODY><TR><TD vAlign=top align=middle><TABLE class=topbkg cellSpacing=0 cellPadding=0
    width="100%" border=0><TBODY><TR><TD width="60%" height=110>&nbsp;</TD>
    <TD width="40%" height=110>&nbsp;</TD></TR></TBODY></TABLE>
    <TABLE cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR>
    <TD class=topnav noWrap width=165>
            <DIV align=center> <FONT class=content>&nbsp;&nbsp;</FONT></DIV>
          </TD><TD class=topnav noWrap>
            <DIV align=center><FONT class=content>• &nbsp; <A href="index.php">Home</A>
              &nbsp;• &nbsp; <A href="index.php?nma=download">Downloads</A> &nbsp;•
              &nbsp; <A href="index.php?nma=user&fla=accaunt">Your Account</A>
              &nbsp;• &nbsp; <A href="forum">Forums</A> &nbsp;•</FONT></DIV>
          </TD>
     <TD class=topnav noWrap width=165><DIV align=center><FONT class=content>
     <SCRIPT type=text/javascript><!--   // Array ofmonth Names
var monthNames = new Array( "Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа",
"Сентября","Октября","Ноября","Декабря");
var now = new Date();
thisYear = now.getYear();
if(thisYear < 1900) {thisYear += 1900}; // corrections if Y2K display problem
document.write(monthNames[now.getMonth()] + " " + now.getDate() + ", " + thisYear);
// --></SCRIPT></FONT></DIV></TD></TR></TBODY>
</TABLE><TABLE class=tbl cellSpacing=0 cellPadding=0 border=0>
<TBODY><TR><TD class=tbll><IMG height=4 alt="" src="" width=8></TD>
<TD class=tblbot><IMG height=4 alt="" src="" width=8></TD>
<TD class=tblr><IMG height=4 alt="" src="" width=8></TD></TR>
</TBODY></TABLE><TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
<TBODY><TR vAlign=top><TD><IMG height=1 alt="" src="" width=1 border=0></TD></TR></TBODY>
</TABLE><TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
<TBODY><TR vAlign=top><TD vAlign=top width=7 background="">
<TABLE cellSpacing=0 cellPadding=4 width=170 border=0>
<TBODY><TR><TD><TABLE cellSpacing=0 cellPadding=1 width="100%" border=0>
<TBODY><TR><TD bgColor=#006699><TABLE cellSpacing=0 cellPadding=0 width="100%"
border=0><TBODY><TR><TD bgColor=#ffffff><TABLE cellSpacing=1 cellPadding=0 width="100%"
 border=0><TBODY><TR><TD background=thema/shiaprogrammer1/image/cellpic1.gif bgColor=#eaedf4 height=27>
 <TABLE cellSpacing=0 cellPadding=4 width="100%" border=0><TBODY><TR><TD>
 <FONT class=block-title></FONT></TD></TR></TBODY></TABLE></TD></TR><TR><TD bgColor=#eaedf4>
 <TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
 <TBODY><TR>
                                        <TD>
                                          <?connect_my_blocks("m");?>
                                          <?connect_my_blocks("l");?>
                                        </TD>
                                      </TR></TBODY></TABLE></TD></TR>
 </TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
 </TD></TR></TBODY></TABLE></TD>
          <TD vAlign=top width="100%">
            <TABLE cellSpacing=0 cellPadding=4 width="100%" border=0><TBODY><TR><TD>
 <TABLE cellSpacing=0 cellPadding=1 width="100%" border=0><TBODY><TR><TD bgColor=#006699>
 <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0><TBODY><TR><TD bgColor=#ffffff>
 <TABLE cellSpacing=1 cellPadding=0 width="100%" border=0><TBODY><TR><TD bgColor=#ffffff>
 <TABLE cellSpacing=0 cellPadding=4 width="100%" border=0><TBODY><TR>
                                        <TD>
                                          <div align="left">
                                            <?body_text();?>
                                          </div>
                                        </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
 </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
 </TD></TR></TBODY></TABLE></TD><TD vAlign=top width=170>
 <TABLE cellSpacing=0 cellPadding=4 width=170 border=0>
 <TBODY><TR><TD><TABLE cellSpacing=0 cellPadding=1 width="100%" border=0><TBODY>
 <TR><TD bgColor=#006699><TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
 <TBODY><TR><TD bgColor=#ffffff><TABLE cellSpacing=1 cellPadding=0 width="100%"
 border=0><TBODY><TR><TD background=thema/shiaprogrammer1/image/cellpic1.gif bgColor=#eaedf4 height=27>
 <TABLE cellSpacing=0 cellPadding=4 width="100%" border=0><TBODY><TR><TD>
 <FONT class=block-title></FONT></TD></TR></TBODY></TABLE></TD></TR><TR><TD bgColor=#eaedf4>
 <TABLE cellSpacing=0 cellPadding=4 width="100%" border=0><TBODY><TR>
                                        <TD> <FONT class=content>
                                          <?connect_my_blocks("r");?>
                                          </FONT></TD>
                                      </TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
 </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
 </TBODY></TABLE>
      <FONT class=footmsg><B> by <a href="http://www.shianet.ru" target="_blank">Shiaprogrammer</a></B>
      <?echo$portal_opis;?>
      <?echo$copyright;?>
      <BR>
      <BR>
      </FONT>
      <TABLE cellPadding=4 width="100%" border=0><TBODY><TR></TR></TBODY>
 </TABLE></TR></TBODY></TABLE></BODY></HTML>

Эта тема сделана мной на основе элитного шаблона, разве код не отделен? А ваш  код , это шаблон навигации, который не обязательно должен присутствовать
Записан
KAdot
Оф. поддержка CMS
Newbie
*

Karma: 0
Офлайн Офлайн

Сообщений: 14

6609600
« Ответ #14 : Июнь 16, 2005, 02:37:43 »

Tycoon
Всеравно это не дело... много дизайна в самих скриптах - взять, допустим /mod/news/index.php и остальные модули...
Записан

Все говорят, что мы в-месте...
Все говорят, но немногие знают, в каком. © В. Цой / группа "Кино"
Tycoon
CMS Obzor Resident
Full Member
***

Karma: 0
Офлайн Офлайн

Сообщений: 245


338769284
WWW
« Ответ #15 : Июнь 16, 2005, 03:46:31 »

Tycoon
Всеравно это не дело... много дизайна в самих скриптах - взять, допустим /mod/news/index.php и остальные модули...
Во первых хотелось бы заметить, что нападок больше чем разговоров по сути! Во вторых хочу пояснить что я не являюсь ни косвенно ни фактически имеющий отношения к этому движку, только как пользовател, то да.
В третьих считаю что все выпадки просто безосновательны, и не думаю что движки приведенные тут на форуме чем то сильно превосходят WebCodePortalSystem.
 Для сокращения времени генерации страниц авторы  создали «Сканер Шаблонов» т.е при первом заходе пользователя производится считывание директории с темой и производится внесение в сессию информации о найденных шаблонах. В дальнейшем не происходит обращения к серверу на проверку наличия шаблона, идет простая проверка переменной и при необходимости подключения шаблона. Например Пхп-Нюка этим хвастатся не может:)
Кстати имеется возможность создание отдельных шаблонов конкретно тех или иных элементов , таких как новости, блоки, и.т.д.
Насчет генерации страниц, то помоему не больше 20 запросов
П.С. Вся информация почерпнута из мануала http://wcps.ru/
Записан
KAdot
Оф. поддержка CMS
Newbie
*

Karma: 0
Офлайн Офлайн

Сообщений: 14

6609600
« Ответ #16 : Июнь 16, 2005, 03:52:54 »

Tycoon
да нет никаких нападок, просто назывть шаблонную систему этого движка идельной немного неправильно..., я просто выскзал свое мнение по поводу этого движка и не более Smiley
Записан

Все говорят, что мы в-месте...
Все говорят, но немногие знают, в каком. © В. Цой / группа "Кино"
WCPS
Оф. поддержка CMS
Newbie
*

Karma: 0
Офлайн Офлайн

Сообщений: 3


« Ответ #17 : Июнь 16, 2005, 07:04:21 »

Здравствуйте...

Ну раз тут эта категория появилась, то буду участвовать.

Я основатель данного проекта, поэтому прошу все что Вас интересует адресовывать мне.

Хочу сразу отметить, что мы не считаем наш проект "завершенным" или "стабильным", т.к. постоянно вносим большие изменения, которые влекут за собой и новые ошибки.

Да, согласен с нападками по поводу шаблонов.

Много кода вписанно в сам движок, я полностью согласен, но давайте возьмем тот же /mod/news/index.php, который был тут указан. И так, если Вы не создали отдельный файл шаблона для данного модуля templates_news.php, то что использовать? А в нем вписан вариант "по умолчанию".

templates_menu.php - предназначен для возможности изменения ПОЛНОГО шаблона основной навигации. Что хотите, то там и пишите. Да, он не идеален, но учитывая, что проект только развивается, допустимы любые изменения, пока не будет найден универсальный вариант.
 
Мы пытаемся улучшать систему, но при этом следим за нагрузкой, ей создаваемую, за безопасностью...

Проблема в том, что очень мало желающих искать ошибки, в основном просто использует. Вот были случаи, когда пару хакер заинтересовались нашим двигом, было чудесное время - постоянные восстановления БД и т.п. Но "все, что нас не убивает, делает сильнее". Мы с удовольствием (но не без боли) встречаем взломщиков.

Проблым у двига много, скрывать не стану, но безопасен ли PHP-Nuke или Mambo? Я с увереностью скажу - нет. Если есть система защиты, значит её можно сломать.

И так, все что Вас интересует по данной системе, пишите.

Наш форум: http://support.wcps.ru
Записан
S
Оф. поддержка CMS
Full Member
***

Karma: 1
Офлайн Офлайн

Сообщений: 167

91630277
WWW
« Ответ #18 : Июнь 17, 2005, 12:01:42 »

Цитировать
Для сокращения времени генерации страниц авторы  создали «Сканер Шаблонов» т.е при первом заходе пользователя производится считывание директории с темой и производится внесение в сессию информации о найденных шаблонах. В дальнейшем не происходит обращения к серверу на проверку наличия шаблона, идет простая проверка переменной и при необходимости подключения шаблона. Например Пхп-Нюка этим хвастатся не может:)
Да. Это просто супер-фича =) Я например одну новость читаю по 10 раз и при этом использую каждый раз новый шаблон (тему, скин).
Записан

WCPS
Оф. поддержка CMS
Newbie
*

Karma: 0
Офлайн Офлайн

Сообщений: 3


« Ответ #19 : Июнь 18, 2005, 12:21:02 »

Если Вас устраивает смотреть по 10 раз одну новость с разными скинами, то пожалуйста. Вот давайте возьмем теже новости: на странице 10 новостей, нужно 10 раз проверить, есть ли шаблон к отображению. 10 запросов по файловой системе - это все время, а скинов (части скина) могут встречаться в нескольких местах на странице.
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0.038 секунд. Запросов: 21.