Вторник, 25 Июня 2024, 06:33

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск, критика приветсвтуется
biohazardoДата: Суббота, 05 Мая 2012, 15:33 | Сообщение # 21
участник
Сейчас нет на сайте
Quote (Тритон)
То есть это вообще отдельная прилада? А нафига мне ещё энное количество мегабайт? Только ради дополнительных ограничений и зависимости моих скриптов от чужих представлений? Классная независимость скрипта от представления!


Мой собственный мини-фреймворк с MVC-архитектурой весит 20 килобайт, и состоит только из PHP-скриптов. Вообщем я понял, ничего не докажешь. Будто по Поповским урокам учился....

Добавлено (05.05.2012, 15:32)
---------------------------------------------
Quote (Тритон)
Нифига себе! Для каждой страницы делать и php файл, и ещё отдельно заполнять запись в базе. Финиш.


У меня слов нет. 1 ФАЙЛ НА ВСЁ!!!!! ОДИН!!!!!!!!!!!!!! финиш будет в твоих скриптах, когда их масштабировать не сможешь.

Добавлено (05.05.2012, 15:33)
---------------------------------------------
Быстрей познавать основы на http://irbis-team.com/


web-developer, который хочет делать игры хотя-бы чуть-чуть

Сообщение отредактировал biohazardo - Суббота, 05 Мая 2012, 15:33
ТритонДата: Суббота, 05 Мая 2012, 15:54 | Сообщение # 22
постоянный участник
Сейчас нет на сайте
У меня только wamp безо всего лишнего. Если ввести адрес существующего файла, то его сразу хватает апач и на странице будет только этот файл, а каждый раз прописывать реквай на темплейт - лишняя работа. К тому же получится, что шаблон внутри контента, а по логике наоборот. Завести каталог pages тоже не вариант, так как могут ввести и такой адрес. У меня же есть index.php и это единственный файл на сайте. А раз единственный, то он по
Code
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
отрабатывает все урлы. А где ещё хранить страницы, если файл ровно один? Каждый раз менять index.php тоже не дело. Так вот, всё в базе. Чужих phpшников там не валяется, так что евал безопастность не нарушает. Но как ещё можно выполнить php из базы? Но у меня не десять страниц с задачей собирать статьи в ленту. У меня отдельная страница с собственным адресом для каждой записи.

Добавлено (05.05.2012, 15:43)
---------------------------------------------

Quote (biohazardo)
У меня слов нет. 1 ФАЙЛ НА ВСЁ!!!!! ОДИН!!!!!!!!!!!!!! финиш будет в твоих скриптах, когда их масштабировать не сможешь.
Кого я масштабировать не смогу? У меня один файл. У меня. И он поддерживает столько страниц, сколько влезет в базу на MySQL. Причём, ни каких явных ограничений на длину ключа я не вводил, таблица страниц вообще ключа не имеет, а url - просто text. А где ты у себя нашёл один файл?

Добавлено (05.05.2012, 15:44)
---------------------------------------------

Quote (Тритон)
require (template.php);
что делает? Обращается к другому файлу.

Добавлено (05.05.2012, 15:46)
---------------------------------------------
И сам

Quote
<?php
$content = "Здесь статья, вытащенная из базы, или что нибудт другое. Вообщем контент";
//Далее прямо с помощью require() запросим html шаблон, внутри него в блоке контента должна быть строка: <?php echo $content; ?>
ob_start(); Начинаем кеширование вывода
require (template.php);
$view = ob_get_contents();
ob_end_clean();
echo $view;
- тоже файл. Причём, без
Code
<?php
$url=$_SERVER["REQUEST_URI"];
это может быть только файл конкретной страницы.

Добавлено (05.05.2012, 15:47)
---------------------------------------------
Мне не нужна новостная лента, дрёгающая случайные статьи из формируемой другим ботосайтом базы.

Добавлено (05.05.2012, 15:48)
---------------------------------------------
Если же файл действительно один, то приходим к тому, что он занимается только оформлением, а сам сайт целиком в базе.

Добавлено (05.05.2012, 15:54)
---------------------------------------------

Code
<?php
$url=$_SERVER["REQUEST_URI"];
if ($url=="/")
{
  $url="index";
}
$s1=trim($url, "/");
$s2=implode("?",array_slice(explode("?", $s1), 0, 1));
$s3=implode("?",array_slice(explode("?", $s1), 1));
if ($s3!="")
{
  $url="/".$s2."/";
}
mysql_connect("localhost", "admin", password);
mysql_select_db("site");
mysql_set_charset("cp1251");
$site="codesite";
$query="SELECT * FROM `site`;";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$query="SELECT * FROM `page` INNER JOIN `site` ON `page`.`site`=`site`.`id` INNER JOIN `type` ON `page`.`type`=`type`.`id` WHERE (`site`.`site`='".$site."' AND `page`.`url`='".$s2."');";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
$type=$row["type"];
$title=$row["title"];
$header=$row["header"];
$body=$row["body"];
$include=$row["include"];
echo "<html>\n";
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n";
echo "<META HTTP-EQUIV=\"Content-Type\" content=\"text/html; charset=windows-1251\">\n";
echo "<title>";
echo $title;
echo "</title>\n";
echo "<td valign=\"top\" width=100%>\n";
echo "<body>\n";
echo "<table border=1 cellpadding=0 cellspacing=0 width=100% height=100%>\n";
echo "<tr height=100%>\n";
echo "<td width=20% valign=\"top\">\n";
echo "<div style=\"width:100%; height:100%; overflow:auto\">\n";
OutputIndex($url, $site);
echo "</div>\n";
echo "</td>\n";
echo "<td width=80% valign=\"top\">\n";
echo "<div style=\"width:100%; height:100%; overflow:auto\">\n";
echo "<h1><center>";
echo $header;
echo "</center></h1>";
switch ($type)
{
  case "html": echo "\n", $body;
  break;
  case "php" : echo "\n";
               eval ($body);
  break;
}
echo "\n";
OutputSubLinks($url, $site, $include);
echo "</div>\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td colspan=2>\n";
echo "<table border=0 cellpadding=0 cellspacing=0 width=100%>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Атавин<br>\n";
echo "Тарас<br>\n";
echo "Александрович</p>\n";
echo "</td>\n";
echo "<td width=100% align=\"center\">\n";
echo "<img src=\"";
if ($url!="index")
{
  echo ReseatSubString("../", HeaderLevel($url)-1);
}
echo "admin.jpg\" width=75 height=75>\n";
echo "</td>\n";
echo "<td>\n";
echo "<p>к.т.н.,<br>\n";
echo "администратор,<br>\n";
echo "<a href=\"mailto:codesite@yandex.ru?subject=from_site\">написать мне</a>.</p>\n";echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</body>\n";
echo "</html>\n";
function OutputIndex($url, $site)
{
  echo "<h1><center>";
  if ($url!="index")
  {
    echo "<a href=\"";
    echo ReseatSubString("../", HeaderLevel($url)-1);
    echo "\">";
    echo "Оглавление";
    echo "</a>";
  }
  else
  {
   echo "Оглавление";
  }
  echo "</center></h1>\n";
  $query="SELECT * FROM `page` INNER JOIN `site` ON `page`.`site`=`site`.`id` WHERE (`site`.`site`='".$site."' AND `url`<>'index' AND `url`<>'find') ORDER BY `url`;";
  $result=mysql_query($query);
  while ($row=mysql_fetch_array($result))
  {
   $link="/".$row["url"]."/";
   $header=$row["header"];
   $level=HeaderLevel($link);
   echo "<h",$level,">";
   if ($link!=$url)
   {
    echo "<a href=\"", LocalLink(Correct($url), $link), "\">", $header, "</a>";
   }
   else
   {
    echo $header;
   }
   echo "</h", $level, ">\n";
  }
  echo "<h2><a href=\"/phpMyAdmin-3.2.5-all-languages/\" target=_blank>Администирование</a></h2>\n";
}
function HeaderLevel($url)
{
  return substr_count($url, "/");
}
function LocalLink($url, $link)
{
  $l1=HeaderLevel($url);
  $l2=HeaderLevel($link);
  if ($l1<$l2)
  {
   if ($url==BeginOfUrl($link, $l1))
   {
    return EndOfUrl($link, $l1);
   }
  }
  if ($l2<$l1)
  {
   if ($link==BeginOfUrl($url, $l2))
   {
    return ReseatSubString("../", $l1-$l2);
   }
  }
  $g=1;
  for ($i=min($l1, $l2); $i>=1; $i--)
  {
   if (BeginOfUrl($url, $i)==BeginOfUrl($link, $i))
   {
    $g=$i;
    break;
   }
  }
  return ReseatSubString("../", $l1-$g).EndOfUrl($link, $g);
}
function BeginOfUrl($url, $Sleshes)
{
  return implode("/",array_slice(explode("/", $url), 0, $Sleshes))."/";
}
function EndOfUrl($url, $Sleshes)
{
  return implode("/",array_slice(explode("/", $url), $Sleshes));
}
function Correct($url)
{
  if ($url=="index")
  {
   return "/";
  }
  return $url;
}
function ReseatSubString($s, $n)
{
  $r="";
  for ($i=1; $i<=$n; $i++)
  {
   $r=$r.$s;
  }
  return $r;
}
function OutputSubLinks($url, $site, $include)
{
  if ($url=="index")
  {
   $s1="";
   $s2="index";
   $level=1;
  }
  else
  {
   $s1=trim($url, "/");
   $s2=$s1;
   $level=HeaderLevel(correct($url));
  }
  $query="SELECT * FROM `page` INNER JOIN `site` ON `page`.`site`=`site`.`id` INNER JOIN `type` ON `page`.`type`=`type`.`id` WHERE (`site`.`site`='".$site."' AND `url` LIKE '".$s1."%' AND `url`<>'".$s2."' AND `url`<>'find') ORDER BY `url`;";
  $result=mysql_query($query);
  while ($row=mysql_fetch_array($result))
  {
   $link=$row["url"];
   $header=$row["header"];
   $SubLevel=HeaderLevel("/".$link)-$level+2;
   if ($SubLevel-2<$include)
   {
    echo "<h", $SubLevel, "><center>", "<a href=\"", LocalLink($s1."/", $link), "/\">", $header, "</a></center></h", $SubLevel, ">\n";
   }
  }
}
?>
. Всё. И не надо полчаса качать друпал, потом ещё ставить его, мучаться с его настройкой и ограниченностью оформления. У меня много уже, но попадает идеально, так как это своё, а что писать - ограничений нет.


Не всё так плохо, как оно есть на самом деле.
biohazardoДата: Суббота, 05 Мая 2012, 15:54 | Сообщение # 23
участник
Сейчас нет на сайте
Можно все обращения делать через index.php, а параметры маршрута передавать ему в виде GET. Например index.php?search будет означать вывод формы, а index.php?results будут означать вывод (если форму передать в виде POST).

Далее index.php ищет роутер, который определяет, что нужно вызывать - вывод формы, или поиск с выводом результатов. Он отправляет скрипт в другие классы, которые и обрабатывают действия (форма или поиск). Класс вывода формы просто эхает шаблон формы в браузер, а класс поиска ищет все в базе, и потом, используя файл вида результатов поиска, эхает опять же обратно в браузер.

Доступ прямой только к index.php, ко всему остальному доступа быть не должно. Если нам надо поправить html-код, мы будем править HTML-код, а не пхп вперемежку с хтмл. Если мы хотим изменить логику поиска, мы будет править именно PHP-код, а не кашу. Это всё можно всунуть и в 1 файл скрипта, и 2 файла шаблона. И это будет гораздо легче читаться, чем то, что в шапке темы.

Quote (Тритон)
У меня один файл.

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


web-developer, который хочет делать игры хотя-бы чуть-чуть
ТритонДата: Суббота, 05 Мая 2012, 15:55 | Сообщение # 24
постоянный участник
Сейчас нет на сайте
5 335 байт.

Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Суббота, 05 Мая 2012, 15:55
lvovandДата: Суббота, 05 Мая 2012, 15:55 | Сообщение # 25
старожил
Сейчас нет на сайте
Тритон, за что такая нелюбовь к темплейтам? вот скажем сдал проект заказчику, и он захотел немного стили и оформление поменять, теги и css он уж пропишет, а лазать в базе и искать нужный код далеко не каждому под силу

Разработка и продвижение сайтов. Дизайн
ТритонДата: Суббота, 05 Мая 2012, 15:56 | Сообщение # 26
постоянный участник
Сейчас нет на сайте
Quote (biohazardo)
Ну когда надо будет усложнить приложение, она станет файлом из 100000000000 тысяч строк.
С какой стати?


Не всё так плохо, как оно есть на самом деле.
biohazardoДата: Суббота, 05 Мая 2012, 16:00 | Сообщение # 27
участник
Сейчас нет на сайте
Code

echo "\n";  
OutputSubLinks($url, $site, $include);  
echo "</div>\n";  
echo "</td>\n";  
echo "</tr>\n";  
echo "<tr>\n";  
echo "<td colspan=2>\n";  
echo "<table border=0 cellpadding=0 cellspacing=0 width=100%>\n";  
echo "<tr>\n";  
echo "<td>\n";  
echo "<p>Атавин<br>\n";  
echo "Тарас<br>\n";  
echo "Александрович</p>\n";  
echo "</td>\n";  
echo "<td width=100% align=\"center\">\n";  
echo "<img src=\"";  
if ($url!="index")  

И что это такое? Говнокод плачет по этому куску....

Quote (Тритон)
Всё. И не надо полчаса качать друпал, потом ещё ставить его, мучаться с его настройкой и ограниченностью оформления. У меня много уже, но попадает идеально, так как это своё, а что писать - ограничений нет

1) Друпал - это CMS!!!!!!!!!!!!!! Он тут вообще не нужен.
2) Мучаться в таком коде придется годами потом.
3) Ограничений по оформлению у фреймворков нет абсолютно никаких.

Добавлено (05.05.2012, 16:00)
---------------------------------------------

Quote (Тритон)
Quote (biohazardo)
Ну когда надо будет усложнить приложение, она станет файлом из 100000000000 тысяч строк.
С какой стати?


Захочется сделать еще один поиск, потом регистрацию пользователей, потом добавить туда статьи, потом админку, потом комментарии... Сколько будет файл занимать?

Да даже для простейшего поиска без наворотов такая структура не подходит.


web-developer, который хочет делать игры хотя-бы чуть-чуть
ТритонДата: Суббота, 05 Мая 2012, 16:01 | Сообщение # 28
постоянный участник
Сейчас нет на сайте
Quote (lvovand)
Тритон, за что такая нелюбовь к темплейтам? вот скажем сдал проект заказчику, и он захотел немного стили и оформление поменять, теги и css он уж пропишет, а лазать в базе и искать нужный код далеко не каждому под силу
Зачем? Всё оформление в одном файле. Это во-первых. А во-вторых база - она база и есть, там лазить просто и удобно. В отличие от каталога на диске со страницами в отдельных фалах. Причём, кому не то что это, а даже диск не под силу, тот темплейты не освоит и сайт в любом случае не сделает. И о каком таком заказчике речь?


Не всё так плохо, как оно есть на самом деле.
biohazardoДата: Суббота, 05 Мая 2012, 16:05 | Сообщение # 29
участник
Сейчас нет на сайте
Quote (Тритон)
А во-вторых база - она база и есть, там лазить просто и удобно.

А в базе легко поправить html-код какой нибудь странички, которая там лежит?

Добавлено (05.05.2012, 16:05)
---------------------------------------------
Обычно такие сайты, в которых много статичных страниц (а именно они ТУТ в БД и хранятся), и нет никаких наворотов с комментариями, регистрацией, делают статическими без всяких баз и PHP. А поисковик втыкают от гугла.


web-developer, который хочет делать игры хотя-бы чуть-чуть

Сообщение отредактировал biohazardo - Суббота, 05 Мая 2012, 16:05
ТритонДата: Суббота, 05 Мая 2012, 16:10 | Сообщение # 30
постоянный участник
Сейчас нет на сайте
Quote (biohazardo)
Захочется сделать еще один поиск, потом регистрацию пользователей, потом добавить туда статьи, потом админку, потом комментарии... Сколько будет файл занимать?
У меня уже есть админка, блоги - это только для журналистов, а всякие там "пошёл в ванную, вернусь через полчаса" для сетки вообще не предназначены, размещать такую фигню - дибилизм. И кого можно регистрировать, если это не форум? Тем более зачем мне десять поисков? А если даже и делать их хоть 100, мой индекс вырастет всего на насколько байт. И какие нафиг комментарии? Что за бред? Этот файл может быть изменён только в том случае, если я захочу поменять адрес обратной связи, или оформление. Например, прилепить логотип в угол, или переписать низ, или фон раскрасить. А 100 концепций одновременно мне поддерживать не надо, это не друпал. Файл мой и в неём только то оформление, которое мне нужно, единое для всех страниц. Там нечего масштабировать и усложнять.

Добавлено (05.05.2012, 16:10)
---------------------------------------------

Quote (biohazardo)
А в базе легко поправить html-код какой нибудь странички, которая там лежит?
Нет, конечно. В базе это сделать элементарно.


Не всё так плохо, как оно есть на самом деле.
biohazardoДата: Суббота, 05 Мая 2012, 16:14 | Сообщение # 31
участник
Сейчас нет на сайте
Quote (Тритон)
Файл мой и в неём только то оформление, которое мне нужно, единое для всех страниц. Там нечего масштабировать и усложнять.


Какой файл имеет оформление для всех страниц? Тот что в базе лежит? Тоесть в базе все записи с одинаковым оформлением находятся???

Добавлено (05.05.2012, 16:14)
---------------------------------------------

Quote (Тритон)
Quote (biohazardo)
А в базе легко поправить html-код какой нибудь странички, которая там лежит?
Нет, конечно. В базе это сделать элементарно.


В базе это сделать ахренительно трудно по той причине, что это надо править через какой нибудь phpmyadmin, который в 1000 раз хуже самого тухлого блокнота. Там так чудестно править html код...


web-developer, который хочет делать игры хотя-бы чуть-чуть

Сообщение отредактировал biohazardo - Суббота, 05 Мая 2012, 16:12
ТритонДата: Суббота, 05 Мая 2012, 16:15 | Сообщение # 32
постоянный участник
Сейчас нет на сайте
Quote (biohazardo)
А поисковик втыкают от гугла.
Который через два месяца не находит страницу по точному кейводу. Мой же поиск не требует отдельного ведения ещё и кейводов.
Quote (biohazardo)
Обычно такие сайты, в которых много статичных страниц (а именно они ТУТ в БД и хранятся), и нет никаких наворотов с комментариями, регистрацией, делают статическими без всяких баз и PHP.
Во-первых конкретные страницы могут быть php. А во-вторых статика как раз и не масштабируема на столько, что за 10 страниц вышел = забудь о возможности хоть как то менять оформление.

Добавлено (05.05.2012, 16:15)
---------------------------------------------
Quote (biohazardo)
В базе это сделать ахренительно трудно по той причине, что это надо править через какой нибудь phpmyadmin, который в 1000 раз хуже самого тухлого блокнота. Там так чудестно править html код...
Не рассказывай сказки. Я правлю в блокноте. А трудно тому, кто html не знает. Ну так он и не сделает сайт.


Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Суббота, 05 Мая 2012, 16:16
biohazardoДата: Суббота, 05 Мая 2012, 16:17 | Сообщение # 33
участник
Сейчас нет на сайте
Quote (Тритон)
А во-вторых статика как раз и не масштабируема на столько, что за 10 страниц вышел = забудь о возможности хоть как то менять оформление.


Ну так а зачем в БД хранить эту статику? В БД храниться только код/текст КОНКРЕТНОЙ СТАТЬИ, а не хедер, футер, навигация и прочее, что к ней не относится.

Добавлено (05.05.2012, 16:17)
---------------------------------------------

Quote (Тритон)
Не рассказывай сказки. Я правлю в блокноте.

Это как? Зашел в пхпмайадмин, скопировал из поля значение ячейки текста, потом в блокнот, и потом обратно?


web-developer, который хочет делать игры хотя-бы чуть-чуть
ТритонДата: Суббота, 05 Мая 2012, 16:17 | Сообщение # 34
постоянный участник
Сейчас нет на сайте
Quote (biohazardo)
Ну так а зачем в БД хранить эту статику? В БД храниться только код/текст КОНКРЕТНОЙ СТАТЬИ, а не хедер, футер, навигация и прочее, что к ней не относится.
А у меня там что по-твоему? Вся оформистика в файле index.php.


Не всё так плохо, как оно есть на самом деле.
biohazardoДата: Суббота, 05 Мая 2012, 16:19 | Сообщение # 35
участник
Сейчас нет на сайте
Quote (Тритон)
А у меня там что по-твоему? Вся оформистика в файле index.php.


Ну так index.php и есть шаблон, о котором мы вторую страницу уже исписали, но только с засунутой в него логикой, которая там не нужна.


web-developer, который хочет делать игры хотя-бы чуть-чуть
ТритонДата: Суббота, 05 Мая 2012, 16:22 | Сообщение # 36
постоянный участник
Сейчас нет на сайте
Quote (biohazardo)
Какой файл имеет оформление для всех страниц? Тот что в базе лежит?
Совсем дурак? index.php в корне сайта.
Quote (biohazardo)
Тоесть в базе все записи с одинаковым оформлением находятся???
Ну точно. Сколько раз можно повторять? В базе контент, оформление в файле.

Добавлено (05.05.2012, 16:22)
---------------------------------------------
Кстати, и phpmyadmin не обязателен, я могу написать и свою админку и разместить в той же базе.


Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Суббота, 05 Мая 2012, 16:24
biohazardoДата: Суббота, 05 Мая 2012, 16:24 | Сообщение # 37
участник
Сейчас нет на сайте
Quote (Тритон)
Кстати, и phpmyadmin не обязателен, я могу написать и свою админку и разместить в той же базе.

И это тоже будет в индексном файле? Вот и начинается масштабирование, о котором я говорил, для этого и надо создавать продуманную архитектуру, и отделять виды от логики.


web-developer, который хочет делать игры хотя-бы чуть-чуть
ТритонДата: Суббота, 05 Мая 2012, 16:25 | Сообщение # 38
постоянный участник
Сейчас нет на сайте
Quote (biohazardo)
И это тоже будет в индексном файле?
Ты не отличаешь базу от файла? Админка - такая же страница, она будет в базе.


Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Суббота, 05 Мая 2012, 16:25
SpihexДата: Суббота, 05 Мая 2012, 16:26 | Сообщение # 39
Моргающий Гемо-Брат
Сейчас нет на сайте
Кто над кем стебётся, я не пойму? *ROFL*
ТритонДата: Суббота, 05 Мая 2012, 16:29 | Сообщение # 40
постоянный участник
Сейчас нет на сайте
Quote (biohazardo)
Вот и начинается масштабирование, о котором я говорил, для этого и надо создавать продуманную архитектуру,
Ничего не начнётся, файл тянет ровно столько же страниц, как и весь сервер.

Добавлено (05.05.2012, 16:29)
---------------------------------------------
Quote (biohazardo)
Ну так index.php и есть шаблон, о котором мы вторую страницу уже исписали, но только с засунутой в него логикой, которая там не нужна.
Самый быстрый, лёгкий, маленький и понятный шаблон - тот, который на логике основан, ею делается и написан на языке программирования, а не разметки.


Не всё так плохо, как оно есть на самом деле.

Сообщение отредактировал Тритон - Суббота, 05 Мая 2012, 16:29
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг