Systém komentářů pomocí jQuery a Ajax.

 2012-10-27 00:00:00
 Dmitry Burobin

Dnes vytvoříme systém komentářů s automatickou kontrolou vstupních dat pomocí technologie Ajax a přidáváním nového komentáře s použitím jQuery bez znovunačtení stránky.

Série článků:
1) Systém komentářů pomocí jQuery a Ajax.
2) Lajkování neboli karma u komentářů.
3) Strankování.

Vytvoření tabulky a připojení k databázi.

Vytvoříme si tabulku comments, do které budeme ukládat: identifikátor komentáře ( id ), identifikátor rodičovského komentáře ( parent_id ), jméno ( name ), text komentáře ( text ) a datum přidání komentáře ( date ).

CREATE TABLE `comments` (
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT,
`parent_id` INT ( 5 ) NOT NULL,
`name` VARCHAR ( 255 ) NOT NULL,
`komentar` TEXT,
`date` DATETIME,
PRIMARY KEY(`id`)
)ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci

Taktéž si vytvořte soubor db.php, pro připojení k databázi.
<?php
$DBSERVER 'localhost'//server, který bude použít pro navázáníspojení s DB 
$DBUSER 'root'//Váš mysql login, nejspíš je stejný jako u mě pro localhost, tudiž root 
$DBPASS '****'//heslo, které jste zadaval při instalaci MySQL 

$DB 'test'//databáze, s kterou budeme pracovat 

//navazení spojení pomoci mysql_connect  
$link mysql_connect($DBSERVER$DBUSER$DBPASS)  or die("Could not connect: " mysql_error()); 
//vybírame databázi 
mysql_select_db($DB$link) or die ('Can\'t use test : ' mysql_error()); 
//řekněme MySQL, že všechná data jsou ve formatu UTF-8 
mysql_query("SET NAMES UTF8");
?>

index.php

Hlavní stránka bude obsahovat formulář pro přidávání komentářů s polem pro jméno, zprávu a skryté pole, do kterého budeme ukálát identifikátor rodičovského komentáře, pokud někdo bude odpovídat na nějaký komenář. Soubor index.php vypadá takto:

<?php
/*Soubor pro vybírání komentářů z databáze*/
require_once 'comment.php';
?>
<!DOCTYPE html>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

<
head>
    <
title>Systém komentářů.</title>
    <
meta charset="utf-8" >
    
    <
link rel="stylesheet" href="style.css"> <!-- soubor se styly -->
    <
script src="jquery-1.7.1.min.js"></script> <!-- připojení jquery -->
    <script src="comment.js"></script> <!-- funkce potřebné pro přidávání komentářů -->
    
</head>
<body>
<ul id="commentWrapper">
<?php
/*Zde v proměnné $comments jsou komentáře*/
echo $comments;
?>
<!-- formulář pro přidávání komentářů -->
</
ul>    
    <
div id="commentBox">
        <
input class="validate" type="text" name="name" >
        <
input id="parent" type="hidden" name="parent_id" value="">
        <
div class="commentText">
            <
textarea name="text"></textarea>
        </
div>
        <
button>Přidat</button><img class="loader" src="loader.gif">
    </
div>
</
body>
</
html>

Styly a knihovna jQuery

Pro správné fungování potřebujeme připojit knihovnu jQuery. Tu buď stáhnete z oficiálního webu nebo z archivu s tímto článkem. Pak, aby komentáře líp vypadali přidáme styly, nic složitého v nich není, proto je nebudu popisovat:

body
{
    
margin:0;
    
padding:0;
}
ulli
{
    list-
style-type:none;
}
.
loader
{
    
display:none;
}
#commentBox
{
    
width:400px;
    
padding:10px;
}
#commentBox input
{
    
width:250px;
    
height:25px;
    
padding0 5px;
    
margin:5px;
    
bordersolid 1px #ccc;
    
background:#f1f1f1 url(bg_input.png) no-repeat;
    
font400 12pt/14pt Ume Gothic O5;
}
#commentBox textarea
{
    
width:250px;
    
height:100px;
    
margin5px;
    
padding5px;
    
bordersolid 1px #ccc;
    
background:#f1f1f1 url(bg_koment.png) no-repeat;
    
font400 12pt/14pt Ume Gothic O5;
}
#commentBox button
{
    
height:30px;
    
width:85px;
    
margin-left183px;
    
margin-top:0px;
    
font:700 12pt/14pt Ume Gothic O5;
}
#commentWrap
{
    
width:350px;
    
padding:10px;
    
padding-bottom:3px;
    
margin:10px;
    
border1px solid #ccc;
    
border-radius:10px;
    
background:#f7f7f7;
}
#commentWrap .komentar
{
    
padding:5px;
    
padding-left:0px;
    
border-top:1px solid #ccc;
    
margin-bottom:10px;
    
font:400 12pt/14pt Times New Roman;
}
#commentWrap .replay
{
    
margin-left:270px;
    
font:700 10pt/12pt Ume Gothic O5;
}
#commentWrap a
{
    
text-decoration:none;
}
#commentWrap .commentName
{
    
font:700 10pt/12pt Ume Gothic O5;
}
#commentWrap .commentDate
{
    
font:400 11pt/13pt Times New Roman;
}
.
repName
{
    
font:400 12pt/14pt Times New Roman;
    
font-style:italic;
}
.
repText
{
    
font:700 10pt/12pt Ume Gothic O5;
}
.
repDate
{
    
font:400 9pt/11pt Times New Roman;
    
font-style:italic;
}

comment.php

Tento soubor je určen pro vybírání dat z databáze a vkládání těchto dat do šablony.

<?php
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce ) 
require_once 'db.php';

// Vybereme komentáře z databáze
$query mysql_query("
         SELECT `id`,`parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments` ORDER BY `id` ASC 
         "
);
         
// Pokud při vykonání příkazu nastané chyba vypišeme ji
if(!$query) { echo mysql_error() . " - " mysql_errno(); }
else {

// Jinak pomocí cyklusu projdeme všechny záznamy v tabulce
        
while($result mysql_fetch_assoc($query))
        {
            
// a uložíme je do pole $data  
            
$data[$result['id']] = $result;
        }

// Funkce pro vkládání dat ( komentářů ) do šablony
function commentsToTemplate($comment)
{
// $comment - pole komentáře - id, parent_id, name, text, date 
    
// Zapneme bufferování výstupu, aby šablona nebyla zobrazená v místě volání funkce
    
ob_start();  
      
// Připojíme šablonu comment_template.php, do které vložíme data z pole $comment
    
require_once 'comment_template.php';                     
  
// Získáváme obsah bufferu jako řetězec   
    
$comments_string =  ob_get_contents(); 

// Vymažeme všechno z bufferu
    
ob_end_clean();

// Vrácíme komentář jako řetězec   
    
return $comments_string;    
}

// Funkce pro zpracování pole $data, které
// bude rozděleno do jednotlivých komentářů a odesláno funkci 
// commentsToTemplate
function commentsString($data)
{
    foreach(
$data as $w
    {
        
$string .= commentsToTemplate($w);
    }
 
return 
$string
}  

// proměnná $comments obsahuje naše komentáře, které zobrazujeme na hlavní stránce
$comments commentsString($data);

// vynulujeme proměnnou $data 
$data null;
}
?>

comment_template.php

Toto je vlastně šablona jednotlivého komentáře.

<?php
// Do této šablony se načítají data z pole $data, která jsou odesláná funkci commentsToTemplate
echo '<li id="comment'.$comment['id'].'">
    <div id="commentWrap">'
;
        
// Pokud existuje parent_id, pak zobrazíme, že se jedna o odpověď
        
if($comment['parent_id']!=0)
        {
// Vybereme z DB jméno a datum rodičovského komentáře
            
$q mysql_query("SELECT `name`, DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add FROM `comments_my` WHERE `id`='".$comment['parent_id']."'");
            
$r mysql_fetch_assoc($q);
            echo 
'<span class="repText">Odpověď na komentář</span> <span class="repName">
            '
.$r['name'].'
            </span> <span class="repText">from</span> <span class="repDate">
            '
.$r['date_add'].'
            </span><br>'
;
        }
        
// Zobrazíme jméno a datum přidání
echo    '<span class="commentName">'.$comment['name'].'</span> - <span class="commentDate">'.$comment['date_add'].'</span>
        <div class="komentar">
<!--Zobrazíme text komentáře-->
            '
.$comment['komentar'].'
        </div>
<!--Pokud zmačkneme na tento odkaz, pak se do skrýteho pole s názvem parent_id přidá
identifikátor tohoto komentáře. 
Použil jsem zde JS událost onClick, tzn. pokud je tlačítko zmačknuté, pak najdi prvek s 
id parent ( což je skrýte pole parent_id ) a do hodnoty přidej id komentáře, na který chcete odpovědět-->
        <a class="replay" href="javascript:;"
        onClick="document.getElementById(\'parent\').value='
.$comment['id'].';">Odpovědět</a>
    </div>
</li>'
;
?>

comment.js

Tento soubor je určen pro odesílaní dat na server a přidávání do databáze

$(document).ready(function(){
    
// Objekt commentBox bude obsahovat data pro odesílání na server
    
var commentBox = {};
    
// Po kliknutí na tlačítko přidat      
     
$('#commentBox button').live('click',function(){
         
// Do objektu commentBox bude přidána hodnota skrýteho pole input s názvem parent_id,
// které obsahuje id rodičovského komentáře a pokud je prázdné tak bude 0, což znamená, že
// se jedná o nový komentář bez reakci na něj ( toto se bude ověřovat až odešleme data na server ).   
        
commentBox.parent_id = $('#commentBox').find("input[name='parent_id']").val();
        
// Taktéž přidáme do objektu commentBox hodnotu pole name a zprávu
        
commentBox.name = $('#commentBox').find("input[name='name']").val();        
        
commentBox.text = $('#commentBox').find("textarea").val();
// Abyste to lépe pochopili syntaxe toho, jak přidáváme hodnoty do objektu je:
// Objekt.název_proměnné = hledáme input nebo textarea.hodnota pole

// Funkce pro odesílání dat na server        
        
sendData();
     });
    

function 
sendData()
{
// Najdeme tlačítko schováme jej a zobrazíme loader ( ten si můžete stáhnout z archivu )
    
$('#commentBox').find('button').hide().next().show();

// Odešleme    data metodou post na server
    
$.post(
// Soubor, ve kterém se provádí ověřování dat a přidávání komentářů     
        
"addkoment.php",
// Objekt s proměnnými (parent_id, name a text)
        
commentBox,
        function(
data){
// Pokud jsou nějaka data, to znamená, že nastala chyba
            
if(data)
            {
// Převedeme tento řetězec JSON do objektu JS
                
data = $.parseJSON(data);
                
// Vytvoříme proměnnou errors, která bude obsahovat název chyby
                
var errors '';

// Použijeme cyklus pro zobrazení všech chyb najednou.
// Použil jsem tuto konstrukci, protože nejprvé jsem zobrazoval všechny chyby, ale
// nakonec jsem to změnil a teď se bude zobrazovat jenom jedna konkretní chyba     
// Kdybyste chtěli zobrazit všechny chyby tak použijte konstrukci
// errors += val+'\n'; - každá chyba se zobrazí na samostatném řádku.
// i - obsahuje název chybného pole a val - popis chyby
            
                
$.each(data, function(ival)
                {
                    
errors += i;
                });

// Uložil jsem do proměnné errors jenom název chybného pole a
// cyklusem switch procházim všechny varianty a přidávam červený rámeček 
// pokud pole je prázdné nebo jestli komentář nebyl přidan tak zobrazim hlášení                    
                   
switch (errors
                   {
                      case 
'name':
                        $(
'#commentBox').find("input[name='name']").css('border','2px solid red');
                        break
                      case 
'text':
                        $(
'#commentBox').find("textarea").css('border','2px solid red');
                        break
                      case 
'not_add':
                        
alert('Komentář nebyl přidan.')
                        break
                      default:
                        
alert('Něco je špatně')
                  }

// Najdeme loader ( ten si můžete stáhnout z archivu ) schováme jej a zobrazíme tlačítko přidat     
                
$('#commentBox').find('button').show().next().hide();

// Jinak, pokud žadná chyba nenastala, tak voláme funkci addComment, která zobrazí
// komentář bez znovunačtení stránky a vynuluje hodnoty vstupních poli
            
} else {
                
addComment();        
            }
        }
    
    )

}


function 
addComment()
{
// Na konec prvků s id commentWrapper ( což je ul ) přidame tag <li></li>,
// ve kterém se bude nacházet nový komentář
    
$("#commentWrapper").append('<li></li>');

// Najdeme poslední tag <li>, který jsme teď vytvořili a
// načteme do něj poslední komentář
    
$("#commentWrapper li:last").load('new_comment.php');
// Najdeme loader ( ten si můžete stáhnout z archivu ) schováme jej a zobrazíme tlačítko přidat     
    
$('#commentBox').find('button').show().next().hide();

// Vynulujeme hodnoty vstupních poli
    
$('#commentBox input').val('');
    $(
'#commentBox textarea').val('');

}


});

addkoment.php

Tento skript zpracovává data poslána na server pro zpracování.

<?php
// Ověříme, zda se jedna o odeslána POST data nebo si člověk jen tak otevřel tuto stránku
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

// Pokud ano, pomocí funkci sleep přidame efekt zpoždění, abyste 
// viděl loader, jinak, protože pracujeme na lokálním serveru
// se ten loader hned schová  
     
sleep(2);

// Ověříme vstupní data     
// Pokud je pole name nebo textové pole prázdné do pole $error uložíme text chyby
// ukončíme skript a odešleme tuto chybu v JSON formátu  
     
if(!isset($_POST['name']) OR empty($_POST['name']))
     {
        
$error['name'] = "Zadejte jméno.";
        exit(
json_encode($error));
     } else {
        
$name htmlspecialchars(stripslashes(trim($_POST['name'])));
     }
     
     if(!isset(
$_POST['text']) OR empty($_POST['text']))
     {
        
$error['text'] = "Zadejte zprávu.";
        exit(
json_encode($error));
     } else {
        
$text stripslashes(htmlspecialchars(trim($_POST['text'])));
     }
     
// V tomto případě, když parent_id je prázdné pole tak mu přiřadime hodnotu 0
// to znamená, že se jedná o nový komentář, který není odpovědí na něčí jiný  
     
if(!isset($_POST['parent_id']) OR empty($_POST['parent_id']))
     {
        
$parent_id 0;
     } else {
        
$parent_id stripslashes(htmlspecialchars(trim($_POST['parent_id'])));
     }
     
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce )  
     
require_once 'db.php';
     
// Přidame komentář do databáze a vrátíme false, tzn.
// že chyba nenastala a komentář byl přidán.
     
$q mysql_query("
     INSERT INTO `comments`(`parent_id`,`name`,`komentar`,`date`)
     VALUES('"
.$parent_id."','".$name."','".$text."', NOW())
     "
);
     if(!
$q) { $error['not_add'] = "Komentář nebyl přidan."; exit(json_encode($error));}
     else { exit(
false); }

}
?>

new_comment.php

V tomto souboru vybírame poslední komentář, abysme ho následně zobrazili po úspěšnem ověření vstupních dat.

<?php
// Vložíme soubor s připojením k databázi. ( musí se nacházet ve stejné složce ) 
require_once 'db.php';
// Vybereme maximální ( poslední přidáný ) id
$max mysql_query("SELECT MAX(`id`) FROM `comments_my`");
// Pak vybereme všechny související údaje s tímto identifikátorem
$query mysql_query("
         SELECT `parent_id`,`name`,`komentar`, 
         DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add
         FROM `comments_my` WHERE `id` = '"
.mysql_result($max,0)."'
         "
);
$comment mysql_fetch_assoc($query);

// A stejně, jak jsme zobrazovali komentáře před tím, zobrazíme poslední přidáný
echo '<li id="comment'.mysql_result($max,0).'">
    <div id="commentWrap">'
;
        
        if(
$comment['parent_id']!=0)
        {
            
$q mysql_query("SELECT `name`, DATE_FORMAT(date, '%d %M %Y %H:%i') as date_add FROM `comments_my` WHERE `id`='".$comment['parent_id']."'");
            
$r mysql_fetch_assoc($q);
            echo 
'<span class="repText">Odpověď na komentář</span> <span class="repName">
            '
.$r['name'].'
            </span> <span class="repText">from</span> <span class="repDate">
            '
.$r['date_add'].'
            </span><br>'
;
        }
        
echo    
'<span class="commentName">'.$comment['name'].'</span> - <span class="commentDate">'.$comment['date_add'].'</span>
        <div class="komentar">
            '
.$comment['komentar'].'
        </div>
        <a class="replay" href="javascript:;"
        onClick="document.getElementById(\'parent\').value='
.mysql_result($max,0).';">Odpovědět</a>
    </div>
</li>'
;
?>

Závěr

Probrali jsme, jak můžeme zpracovávát formuláře bez znovunačtení stránky. Doufám, že se Vám tento článek líbil a byl pro Vás přínosný.

Systém Orphus
Napište komentář.
Celkem komenrářů(10301)
MichaelAgery - 2018-06-09  02:10:47
 buying viagra australia online
canadian pharmacies online
buy viagra online australia paypal
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
viagra from boots online
viagra without a doctor prescription
women viagra pills in india
[url=http://viagradcvy.com/#]viagra without a doctor prescription[/url]
buy female viagra uk online
TeresaBoago - 2018-06-08  09:40:34
 [b]Тренер фильм 2018 премьера e j p[/b]

[url=http://bit.ly/2vPapaY][IMG]http://i105.fastpic.ru/big/2018/0427/a8/c5e7b4b78b2e7fd0a288bbb8fbf948a8.jpg[/IMG][/url]

[url=http://bit.ly/2vPapaY][b]Смотреть фильм Тренер[/b][/url]
[url=http://bit.ly/2vPapaY][b][color=red]Смотреть фильм Тренер[/color][/b][/url]
[url=http://bit.ly/2vPapaY][b][color=green]Смотреть фильм Тренер[/color][/b][/url]

















Новые фильмы весны 2017 года. Здесь собраны новые фильмы весны 2017 года. Для каждого фильма указана дата релиза и рейтинг. Можно почитать рецензии критиков, оставить отзыв, посмотреть трейлеры или кадры из фильма.Собачья жизнь. A Dog's Purpose. 67. 450 копий
Альбертович. Бекетова Ольга Сергеевна. Шобонов Владимир Сергеевич. Приказчиков Олег боевое, спортивное самбо 8-910-141-28-96Ефимович старший тренер отделения самбо, тренер-преподаватель высшей категории, Заслуженный мастер спорта, 6-ти кратный Чемпион Мира по самбо
9 Oct 2008 - 24 min Универ, Серия 28 - Хомяки. Аллочка в очередной раз западает наолигарха, который при ближайшем рассмотрении оказываетсябезработным
макс пейн 3 трейнер, max payne 3 коды, макс пейн 3 трейнер. Inotaq (Сочи, Росс). 27102017 um 15:5727102017 um 09:58. Dwigi hydrauliczne dziea postanowiliскачать через торрент игру tes 5 skyrim, the elder scrolls v skyrim торренты, tes v skyrim скачать. Ekuriraj (Bartoszyce, USA). 26102017 um
Хотите узнать какую драгоценность обнаружили Барбоскины, у кого из Сказочного патруля наступает день рождения и куда решили полететь фиксики? Ответы Вы найдёте в юбилейном 60-м выпуске МУЛЬТ в кино в свежих эпизодах мультсериалов Барбоскины, Фиксики, Сказочный патруль,
7 главных признаков хорошего онлайн тренера. С чего начинается знакомство и сотрудничество с онлайн тренером по фитнесу? Почему нужна комплексная программа.
7 Sep 2013 - 6 min Смотрите бесплатно отечественные и зарубежные сериалы со всегоинтернета прямо на Яндексе. Удобный выбор сезона и серии для просмотра
Тренер (2018) - информация о фильме - российские фильмы и сериалы - Кино.19 апреля 2018. Жанр. драма, спортивный фильм. Футболист национальной сборной Юрий Столешников в ответственный момент не забивает пенальти. После GORTENZIA 76- 14:44.
p Тренер СМОТРЕТЬ Тренер ОНЛАЙН , , , , , , Тренер смотреть в hd 720 качестве 208 952 Тренер 2018 1 095 249 смотреть фильм Тренер 67 079Тренер 2018 год смотреть трейлер Тренер с хорошим переводом 43 840 Тренер hd торрент 19 876 Тренер режиссер Тренер выход 37 309
Nov 28, 2017 - 3 min - Uploaded by i VideosВторой русский трейлер фильма Лед 2018 года Русские трейлеры кфильмам и сериалам! Интересные ролики о фильмах и их съёмках
15 Feb 2016 - 48 min Сериал Молодежка 33 серия в хорошем качестве HD720 на официальномсайте СТС.
Я видела про Боброва фильмотвратный,заявила Валентина Яшина. Имея в виду, судя по всему, ленфильмовскую ленту Виктора Садовского Moй Главными действующими лицами тех событий были ленинградцыглавный тренер баскетбольного Спартака и сборной Владимир
г. Хабаровск, ул. Амурский бульвар, 56а. Телефон: +7 (4212) 21-10-86 (касса, бронирование билетов), +7(4212) 46-02-22 (единая служба бронирования). Кинотеатр Дружба — один из самых популярных кинотеатров Хабаровска. Он начал свою работу в мае 2008 года после капитального ремонта.


April 18, 2018, 07:57:40 AM. Welcome, Guest. Please login or register скачать фильм Тренер торрент в хорошем качестве 2018 СМОТРЕТЬ фильм ЗДЕСЬ Тренер 2018 смотреть онлайн hd 1080p смотреть фильм Тренер онлайн и без регистрации скачать Тренер через торрент чистый звук кинотеатр спартак симферополь Тренер смотреть фильми 2018 года новинки Тренер скачать тему Тренер скачать фильм Тренер на андроид на русском скачать good lifeиз фильма Тренер g-eazy kehlani Тренер скачать через медиа.
Смотреть онлайн Тренер (2018) онлайн. Плеер. Смотреть Тренер (2018) онлайн бесплатно в хорошем качестве и с русской озвучкой можно на любом удобном для Вас устройстве, это может быть ПК или мобильный телефон, а так же планшет, айфон и андроид (OK Google). Рекомендуем к просмотру: Идеальные (2018) Дмитрий. тупейший фильм с хорошими актерами. Полицейский с рублевки 3 сезон (2018). Роман.
Однако его подопечные не спешат увидеть в нем авторитета, а некоторые прямым текстом отказываются исполнять указания тренера. Актеры из фильма. Данила Козловский Владимир Ильин Андрей Смоляков Ольга Зуева Ирина Горбачева Виктор Вержбицкий. Скачать через торрент Тренер (2018) бесплатно. Поиск торрент раздач, пожалуйста подождите! Наш сайт является аналогом таких сайтов, как kinogo, baskino, kinokrad и прочих, поэтому Вы можете смотреть любимые фильмы с любых устройств! Вернуться. Инфо.
Гугл-он мой. Чью ты там бабу собрался портить? : D А это судя по всему TRAP. раскрыть ветку 12. +12. Me4ta Idiota. 561 день назад. Гугл-чан же. раскрыть ветку 11 I swear she was 18!) раскрыть ветку 1. +62. BardMaliwan. 561 день назад. Don't swear, we're in the decent society! +49.
Год выпуска: 2014 Страна: США Жанр: Драма, Спортивный Продолжительность: 02:09:00 Кинопоиск: 7,6 (12502) IMDB: 7,4 (24973) Бюджет: 17 000 000 Премьера: 9 февраля 2015. Режиссер: Марк Кьярди. Смотреть онлайн Действительно гениальный герой был тренер. Ответить. Denis97 21 марта 2017 10:52Комментов: 295.
Трейлер. Режиссер: Данила Козловский. В ролях: Данила Козловский, Владимир Ильин, Андрей Смоляков и др. Язык: RU.
Mc Farland, USA Trailer HD Год выпуска: 2015 Страна: США Жанр: драма, биография, спорт Режиссер: Ники Каро В ролях: Кевин Костнер, Рамиро Родригес
Режиссер: Данила Козловский. Все любят футбол и обожают в него играть. Многие люди играют в него на компьютере или же на приставке. Кто-то играет и в реальной жизни. Наша история начинается с футболиста, которого зовут Юрий Столешников и он в очень важный момент не забивает пенальти. Наш главный герой совершил очень роковую ошибку и из-за этого, покидает сборную. Юрий завершает карьеру игрока и переходит на другую сторону и становится тренером маленькой команды.
Развлекательные. Русское кино. Все. Советские фильмы Вместе с трейлером Тренер Трейлер смотрят. 00:51 Тренер Трейлер Трейлер. 02:19 50 оттенков серого Трейлер Трейлер. 02:08 С пяти до семи Трейлер Трейлер. 01:50 Крыша Трейлер Трейлер. 01:57 Стать Джоном Ленноном Трейлер Трейлер. 01:40 Поддубный Трейлер Трейлер. 02:07 Больше Бена Трейлер Трейлер 01:56 Дикарь Трейлер Трейлер. 02:46 Величайший шоумен Трейлер Трейлер. 02:26 Замерзшая из Майами Трейлер Трейлер.
Для всей семьи, драмы, зарубежные. Режиссер: Ники Каро. В ролях: Кевин Костнер, Рамиро Родригес, Карлос Праттс и др. История повествует о профессиональном футбольном тренере Джиме Уайте. В 1987 ему приходиться оставить любимую работу и переехать вместе с семьей в маленький городок Мак Фарланд, 90% населения которого составляют латиноамериканцы.
торрент поисковик по популярным торрент трекерам. Находить и скачивать новинки кино в HDRip и BDRip качестве через tparser намного проще! Добро пожаловать на крупный торрент архив фильмов и игр . Вам больше не придется искать торренты на основных торрент трекерах в поисках нужной раздачимы предлагаем найти и скачать фильмы в хорошем качестве прямо на нашем сайте. Наш сервис поиска торрентов в реальном времени собирает информацию с крупных торрент трекеров и сортирует полученные результаты в удобную таблицу Начните скачивать торрент тренер прямо сейчас! Показать больше результатов.
Смотреть Тренер (2018) онлайн фильм в HD720p Cмотреть Тренер (2018) фильм онлайн бесплатно. Также советуем посмотреть: 3%Три процента (2018) 2 сезон 1, 2, 3 серия. Аквамен, фильм 2018. Гаррисон 7 фильм, 2018. Час пик - 4. Мег: Монстр глубины (2018).


Релевантные слова:
Тренер фильм трейлер
кино Тренер смотреть онлайн
Тренер фильм 2018 смотреть онлайн
фильмы онлайн Тренер 2018
Тренер онлайн hd


Хиты:
[url=http://interdance.ru/forum/viewtopic.php?f=1&t=1090]Хан Соло: Звёздные Войны. Истории кино онлайн e c f[/url]
[url=http://thebookforum.net/phpBB3/viewtopic.php?f=4&t=442909]Секса не будет!!! 2018 смотреть онлайн в хорошем качестве b c l[/url]
[url=https://counterstrikedudes.com/showthread.php?tid=649]Невидимый гость фильм онлайн 2018 a c s[/url]
[url=http://hanadayori.net/bbs_0/yybbs/yybbs.cgi?list=thread]Невидимый гость фильм онлайн c g r[/url]
[url=http://old.26sp.ru/viewtopic.php?f=2&t=5427&p=680471#p680471]Невидимый гость фильм 2018 смотреть онлайн полностью o j t[/url]













































































































































.
Viagra without a doctor prescription - 2018-06-08  03:18:22
 asma spray arthritis joint inflammation
viagra without a doctor prescription
jou
al endoscopy severe rheumatoid arthritis
viagra without a doctor prescription
Edwardfaw - 2018-06-08  01:38:46
 where can you buy real viagra
viagra without a doctor prescription
100 mg dose viagra
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
how much does viagra cost per pill at walgreens
canadian pharmacies online
viagra pill cut
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
viagra kaufen generika
SteveBuppy - 2018-06-08  00:46:19
 viagra buy now
viagra without a doctor prescription
viagra online germany
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
can you buy viagra mexico
canadian pharmacies online
viagra 100 mg ou cialis 20mg
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
viagra virginia budget
EnglewGof - 2018-06-07  23:34:17
 Интересно[url=http://jap.education-uk.ru/]:)[/url]
Most reliable canadian pharmacies - 2018-06-07  19:27:50
 mail order prescriptions from canada
http://canadianonlinexyz.com/
[url=http://canadianonlinexyz.com/]canadian online pharmacies[/url]
Canadian pharmacies - 2018-06-07  16:32:25
 mail order prescriptions from canada
http://canadianonlinexyz.com/
[url=http://canadianonlinexyz.com/]canada pharmacies online prescriptions[/url]
Canadian pharmacy - 2018-06-07  14:59:51
 online pharmacy canada
http://canadianonlinexyz.com/
[url=http://canadianonlinexyz.com/]pharmacy without dr prescriptions[/url]
Canadian pharmacy - 2018-06-07  13:52:11
 canadian pharmacies shipping to usa
http://canadianonlinexyz.com/
[url=http://canadianonlinexyz.com/]online pharmacies canada[/url]
International pharmacies that ship to the usa - 2018-06-07  13:24:59
 rx online no prior prescription
http://canadianonlinexyz.com/
[url=http://canadianonlinexyz.com/]best online inte
ational pharmacies[/url]
Canadian pharmacy - 2018-06-07  07:01:23
 how to diagnose digestive problems cure and treatment
canada pharmacy
herbal hair loss products arthritis and diet
canadian drugstore
Martingop - 2018-06-07  04:55:13
 discount viagra for sale
viagra without a doctor prescription
viagra 100mg faq
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
how to get viagra today
canadian pharmacies online
avoid buying fake viagra
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
sildenafil citrate 100mg and dapoxetine 60mg
Edwardfaw - 2018-06-07  03:35:43
 prescription price viagra
viagra without a doctor prescription
viagra pillen waar te koop
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
did viagra become generic
canadian pharmacies online
viagra new zealand buy online
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
cheapest place viagra
Donnykig - 2018-06-07  00:39:18
 generic viagra problems
canadian pharmacies online
taking viagra and l-arginine together
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
get viagra spam
viagra without a doctor prescription
buying viagra in philippines
[url=http://viagradcvy.com/#]viagra without a doctor prescription[/url]
what is a good site to buy viagra online
Martingop - 2018-06-06  18:00:20
 migliore viagra generico
viagra without a doctor prescription
generic viagra benefits
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
cheapest viagra in sydney
canadian pharmacies online
can buy viagra over counter us
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
viagra online sales in canada
Donnykig - 2018-06-06  12:28:27
 where to buy viagra in canada
canadian pharmacies online
how do you get viagra without seeing a doctor
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
long will 100 mg viagra last
viagra without a doctor prescription
is it illegal to order viagra from canada
[url=http://viagradcvy.com/#]viagra without a doctor prescription[/url]
medicamentos viagra generico
AndrewKidge - 2018-06-06  04:53:28
 where can you get viagra from
viagra without a doctor prescription
does viagra make u last longer just get hard
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
there any over counter pills like viagra
canadian pharmacies online
buy viagra paypal accepted
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
price viagra india 2010
Online pharmacy - 2018-06-06  02:32:46
 how hair fall uncontrolled asthma
online drugstore
arthritis supplements best allergy treatment
canadian pharmacy
DuaneWer - 2018-06-06  01:46:13
 generic viagra uk online
viagra without a doctor prescription
uses viagra tablete
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
order viagra in australia
canadian pharmacies online
viagra pillen kopen
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
viagra original online
<<[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] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450] [451] [452] [453] [454] [455] [456] [457] [458] [459] [460] [461] [462] [463] [464] [465] [466] [467] [468] [469] [470] [471] [472] [473] [474] [475] [476] [477] [478] [479] [480] [481] [482] [483] [484] [485] [486] [487] [488] [489] [490] [491] [492] [493] [494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508] [509] [510] [511] [512] [513] [514] [515] [516] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.