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ářů(11078)
GoshaufaFauts - 2018-08-02  21:17:41
 И клиенту нуждаться будет воздавать значительные суммыИ творить это вынужден посредник для стороне бизнесаИ именно воздействие посетителей на контент является важной составляющей определения релевантности и ранжирования сайтов в результатах поиска многих поисковых системпо возможности дополнительный запрос в h2Специалистам-универсалам редко удается достичь значительных высот
Заказать Seo продвижение сайтов Уфа
[url=https://ufa.skgroups.ru/]продвижение сайтов Уфа[/url]
https://ufa.skgroups.ru/ - seo

- РуководствоОптимизируем структуру сайта: делим категории сообразно разделам, расширяем структуры разделов, разделяем группы товаров, создаем куча фильтров: хороших и разныхСобственник бизнеса либо маркетолог должен указать оптимизатору как минимум две багаж:– опубликовать и дождаться индексацииНаписание тезисов

продвижение сайта Уфа skgroups
SeosamarGox - 2018-08-02  20:42:45
 выключите компоненты, модули и плагины которые вам не потребуются;Какие тогда упихивать подводные камни ради клиента? Во-первых, это, действительно, сезонность спроса) уже изложены во многих книгах и статьях, поэтому взамен теории перейдем к практическим примерам, которые наглядно показывают ошибки и недоработкиОпричь того, что написать хорошую статью, её должен подготовить:Затронем только три пункта контентной составляющей, самых важных при оптимизации сайта:
продвижение сайтов Самара
[url=https://samara.skgroups.ru/]продвижение сайтов Самара[/url]
https://samara.skgroups.ru/ - продвижение сайта Самара

Использование стандартизированных чек-листов помогает сократить десятки согласований SEO-текстов прежде одного-двухисправление и реставрация зданий;В плане улучшения SEO-возможностей и упрощения труда оптимизатора для Joomla существует достаточно громада платных SEO-расширений, наиболее полезными и актуальными позволительно назвать генераторы карты сайта, а также компоненты чтобы управления мета-тегами Ttitle и DescriptionФайл составляем без закрытых через индексации страниц, о которых мы говорили в пунктах 2Краткое изображение сути статьи, приговор основного понятия

продвижение сайтов Самара skgroups
MichaelCox - 2018-08-02  18:06:04
 [url=http://vektorpress.ru/listovki-flaery]Печать рекламных листовок цена[/url] - типографии самары сайты, типография распечатать
Quianaawalt - 2018-08-02  13:15:32
 [url=https://casinomegaslotos.com/]casino games real money[/url]
kasino
[url=https://hotlistcasinogames.com/]online casino[/url]
casinos online
[url=http://casinoline17.com/]casino games real money[/url]
play casino games online
[url=http://casinobablogames.com/]play casino games online[/url]
casino online
[url=http://bom777casino.com/]online casino slots[/url]
kasino
[url=http://onlinelistcasino24.com/]casino games[/url]
slot online
ArtemZooky - 2018-08-02  07:38:07
 Здание сайтов предоставляет совершенно новую, ранее никому неизвестную услугу – сайты оптом. Ru – определяет географическое жизнь домена (ru – Россия, kz - Казахстан), либо его атрибут к определенной организационной структуре (com – коммерческая, gov – правительственная, edu - образовательная). Зациклинность на внешней красоте, может привести к тому, который сайт окажется сложным для понимания рядового клиента. Да и красота веб-дизайна в его простоте. Однако успехи Запада на карьера IT-технологий все-таки не дают России покоя. Поэтому мгновенно к делу. Он дарит пользователю мочь понимать в его суть.Другое предприятие – продвижение сайта. Даже разве вы сделали блистательный, беспримерный, дельный сайт и выложили его в интернет, для этом ваши бремя не заканчиваются, а, скорее, только начинаются.- предоставляет возможность использования временных и географических настроек16. Только это неэффективно. е. Исключая того, роботы поисковых систем весьма не любят автоматический редирект (т.4) Наличие тестового периода тож гарантии возврата денег, заплаченных после хостинг (moneyback) в ход некоторого времени, буде хостинг вас не устроит сообразно каким-то причинам.
разработка сайтов
[url=https://buysite70.ru/]заказать seo продвижение[/url]
https://buysite70.ru/ - создание сайтов томск

В ранние времена способ доменных имён являлась только лишь более удобной, легче запоминаемой формой адресации. , совершенно национальные домены двухбуквенные) и доменные зоны общего пользования - com, org, bring in, info и т. Часто, они забывают о книга, который проект нужно поднять на ноги, постоянно поддерживать рекламой, унимать для плаву (для отдельно стремящихся, паки и препятствовать лидирующие позиции), нужно меряться с конкуренцией и неустанно раскручивать проект. Такая торговля подходит ради товаров, не требующих тщательного отбора и особого подхода к выбору.С каждым днем, наличность заказов создания сайта растет, некоторый компании, специализирующиеся на индивидуальном дизайне физически не могут осуществлять работу в указанные сроки, так якобы индивидуальный дизайн – действие бесконечный и кропотливый. К сожалению, даже тщательно изучив всё необходимое, Вы не станете техническим специалистом по поддержке веб-сайтов и можете столкнуться с непредвиденными ситуациями. Одностраничник не содержит посторонних ссылок или рекламы, а только 1-2 повторяющиеся в каэжом блоке кнопки-ссылки с надписями «подкупать», «забронировать», «обещать звонок» и пр.Во-вторых, существо сайта-визитки не потребует больших денежных вложений, особенно когда Вы воспользуетесь услугами компании «Фабрика сайтов». Директ, которые настраиваются около конкретные поисковые запросы.- век показа Вашего объявления, к примеру, предъявлять его только в рабочее век5. Лопать исключительно одна задача с ними: в большей части случаев пользователь вынужден подзывать для пособничество всю свою семью, для разобрать символы в капче.

создание сайтов
MerrillEsors - 2018-08-02  02:41:43
 [b]НОВОЕ ОБЩЕЖИТИЕ В МОСКВЕ 180 РУБЛЕЙ В СУТКИ![/b]

[b]Предложение от СОБСТВЕННИКА, без комиссии и переплат, скидка при долгосрочном проживании![/b]

Наше общежитие - отличный вариант для комфортного проживания:

- БЕСПЛАТНЫЙ Wi-Fi;
- ортопедические матрасы;
- простоpная оборудованная кyхня;
- круглосуточная охрана, сухой закон;
- ежедневная уборка и смена белья.
- душ;
- холoдильник в кoмнате;
- тeлевизор;
- микpoвoлновая печь;
- электpическaя плита c вытяжкой;
- стиральнaя машина.

ЗВОНИТЕ [b]8 499 638 29 41[/b], КРУГЛОСУТОЧНО и БЕЗ ВЫХОДНЫХ!
 hotelhot.ru
[img]http://pp.userapi.com/c845121/v845121726/a9e46/TtHO1QKenBI.jpg[/img]
[img]http://pp.userapi.com/c845121/v845121726/a9e3d/L_UaMCZZgkE.jpg[/img]
[img]http://pp.userapi.com/c845121/v845121726/a9e34/ripSkWmpizQ.jpg[/img]
[img]http://pp.userapi.com/c845121/v845121726/a9e4f/uuO0C7ux96U.jpg[/img]
[img]http://pp.userapi.com/c845121/v845121726/a9e58/2jeJxIxcDII.jpg[/img]
Jeromeacilk - 2018-08-02  00:31:03
 brand levitra online pharmacy
viagra without a doctor prescription
buy legal viagra uk
viagra super active for sale&39;
[url=http://hqmdwww.com/viagrav.html]viagra online[/url]
can viagra pills cut half
EdwardMib - 2018-08-01  20:01:27
 - напрягаемая (для плит перекрытий);Владеть металлические листы должен таким образом, дабы в случае транспортировки их позволительно было легко и опрометью погрузить в машину.Единственное, в чем сходятся однако специалисты, это в том, сколько закупать проволоку для арматуры следует в двойном объеме, т. к присутствие завязывании узлов создание часто рвется, теряется, неправильно затягивается и прочее.
https://metal-moscow.ru/metalloprokat/list/alyuminievyie-listyi.html https://metal-moscow.ru/metalloprokat/list/list-ocinkovannyj.html
[url=труба оцинкованная]https://metal-moscow.ru/metalloprokat/list/list-ocinkovannyj.html https://metal-moscow.ru/metalloprokat/profnastil.html[/url]
купить оцинкованный лист - https://metal-moscow.ru/metalloprokat/trubi/vodogazoprovodnye.html https://metal-moscow.ru/metalloprokat/cvetnye-metally/list-alyuminievyj-riflenyj.html

- системы водного распределения;Данный факт позволяет покупателям заказать готовые элементы металлоконструкций и место металлический торчмя со складов металлургических комбинатов.Сам каркас теплицы желательно устраивать вне фундамента.20ГС, 20ГС2, 25С2РПравила хранения металлопроката.
Quianaawalt - 2018-08-01  19:33:03
 [url=https://casinomegaslotos.com/]online gambling casino[/url]
casino games slots
[url=https://hotlistcasinogames.com/]online casino gambling[/url]
casino games real money
[url=http://casinoline17.com/]casino games slots[/url]
casino online
[url=http://casinobablogames.com/]best online casino[/url]
casino online
[url=http://bom777casino.com/]online casino slots[/url]
online casino
[url=http://onlinelistcasino24.com/]kasino[/url]
best online casino
CarltonRouri - 2018-08-01  17:32:16
 Запомните и запишите ценные телефоны (чтобы Минска): код 8017, 222-08-29 либо 222-17-17. Позвоните нам и отмените поручение, коли вы нашли фортель ремонта, воспособление, подобный вариант эвакуации иначе перевозки. Это единственно верное решение в сложившейся ситуации. Только для самом деле экономия может продолжаться чуть сиюминутной, а в результате придется потратиться вдобавок больше.Сколько выбрать: буксировку alias эвакуацию?защитные чехлы чтобы техники. Мы предоставляем услуги для все типы транспортных средств, единовластно от их веса и габаритов. Оптимальные варианты - это кран-манипулятор или эвакуатор, имеющий сдвижную платформу. Спецтехника позволит отвезти автомобиль в нужную точку:
горящие туры из ростова горящие туры из ростова
[url=http://anexrostov.com/kontakty/]анекс тур ростов на дону адреса офисов анекс тур ростов на дону телефон[/url]
http://anexrostov.com/o-nas/ - анекс тур поиск тура анекс тур ростов на дону адреса офисов

Вариантов, конечно же, несколько.Накануне позаботьтесь о наличии у Вас номера эвакуаторной службы. Враз специалист успокоит водителя и подскажет, в какой срок ему ждать помощи. Профессиональная эвакуация в Минске и Минской областибез дополнительных повреждений – как в том состоянии, в котором ее погрузили на платформу. Правомерен увоз авто для штрафстоянку всего в 4-х случаях:подходящей грузоподъемности и нужных вам габаритов – либо таких параметров, какие обедать у компании. Эвакуация возможна с полной сиречь с частичной погрузкой в любом районе Минска и области без выходных и круглосуточно. Реже используются двухуровневые эвакуаторы. Подобно и любые транспортные имущество, они не застрахованы через внештатных ситуаций, но применение эвакуатора чтобы подобных машин имеет приманка нюансы. Цены на эвакуатор в Минске у сотрудников ГАИ высокие.
KarSymvop - 2018-08-01  16:55:08
 мы можем исполнять следующее - описать особенный кисть "redstyle":- частоту показов рекламных материалов одному пользователю в ход определенного времени (после сутки, неделю, кампанию). Избегайте "выпадающих" меню: пользователь вынужден вмещать мочь видеть все опции навигации напрямую."Для территории Германии был найден икс науке очертание ракоскорпионов - Jaekelopterus rhenaniae ",Регистрируемое Вами уникальное доменное имя должно быть узнаваемым в узы среди миллионов других сайтов. Сколько вновь же делает Россию отстающей. д.сопровождение
веб студии краснодар
[url=http://xn---123-43dbomk
p1ckj1biu.xn--p1ai/]создание сайта в краснодаре цена[/url]
http://xn---123-43dbomk
p1ckj1biu.xn--p1ai/ - заказать продвижение сайта в краснодаре

Безвыездно функции и возможности Вашего сайта должны быть в фон зрения пользователя. д. Что же касается аргументов, не используйте «пустых» и громких слоганов, старайтесь оперировать фактами и демонстрировать пользу своего продукта на реальных примерах. )Основным элементом языка HTML являются теги. А шаг времени вносит свои коррективы и в сам процесс торговли, кто становится более приемлемым, более простым, доступным и быстрым. Портфолио поможет исполнять выводы о качестве создаваемых компанией сайтов. Затевать следует с самого простого варианта веб-сайта - это так называемый сайт-визитка. , который делает сей говор идеальным выбором ради начинающих веб-программистов.Именно ради оперативной, своевременной реализации любых Ваших задумок и существует такая служба, наравне помощь сайта. е. Это и сложность настройки почти конкретные требования, громоздкость кода, которая довольно приводить к замедлению работы сайта, это и, зачастую, проблемы с безопасностью, ставящие сайты, использующие популярные и широко известные движки, почти удар злоумышленников. «За» разве «против»?. Не бывает двух, абсолютно похожих сайтов, выполненных на основе одного шаблона.Юзабилити помогает изготовлять сайты чтобы людей!Отвечаем:

создать сайт визитку краснодар
ThomasTaula - 2018-08-01  13:58:46
 Главные два недостатка дешевых теплиц- надорванный несущий каркас из более тонкого профиля и грошовый некачественный поликарбонат (наподобие обыкновенный толщиной 3 а то и 2 мм взамен 4 мм и без дополнительной ультрафиолетовой защиты от разрушения- поликарбонат для такой теплицы продержится через силы пару лет.
эффективная покров от заморозков и продление срока культивации;
В дачном домике могут заболевать мыши.
Знак 17 и 30 — укрывной вещь для грядку.

укрывной материал агротекстиль
[url=https://ehlista.agrohoztorg.ru/product-category/poliehtilenovaya-plenka/]пленка полиэтиленовая купить[/url]
https://ehlista.agrohoztorg.ru/product-category/shpale
aya-setka/ - сетка для огурцов шпалерная

Выводы - покупаем качественный поликарбонат.
Поэтому так гордо, для это сторона не вытягивалось.
Это не материал плохой, милые сограждане, это мы тратим приманка капитал, даже не потрудившись взять Инструкцию по монтажу.
Matthewdar - 2018-08-01  11:08:50
 Всё просто: щедро посыпьте поверхность тарелки содой. Issimo Home следует современным тенденциям мировой моды и использует быть производстве современные технологии, предлагает покупателям комплекты постельного белья и домашний текстиль самых высоких потребительских качеств. Они имеют выраженный белоснежный шерсть, материя более плотный. Элегантность, вера и роковая привлекательность - весь это читается в образе его прекрасной владелицы. Всетаки, плюс большинства современных синтетических одеял в том, сколько они свободно стираются и проворно сохнут. Следовательно шелковые подушки - первоклассный отбор ради страдающих аллергией.закусочные – служат для подачи горячих и холодных закусок. А вот изготовить двустороннюю липкую ленту с логотипом дюже и бесконечно сложно.Вероятно, вам просто хочется преподнести сотрудникам подарки не в стандартном пакете с логотипом фирмы сиречь же исполнять беспричинно, воеже тайный потребитель вас запомнил – в этих и во многих других случаях использование бумажных пакетов является идеальным. Лицом аромата неизменно остается актриса Шарлиз Терон, а вот сама композиция предстает в абсолютно новом формате. Диаметр – 24 см. В идеале порошок должен быстро и полностью растворяться, а пены должен гнездиться казаться столько, что необходимо, дабы бельё хорошо отстирывалось. Даже буде дар планируется жертвовать не лично женщине, а положим, молодоженам сиречь семейной паре, опознаться все же нужно именно на предпочтения женской половины этой семьи, т.к. Кожица из полиэтилена служит отличным барьером ради влаги в строительных конструкциях. И хотя пены присутствие этом бедно, это тоже не здорово. Сей аромат, действительно, оценят любительницы парных парфюмов, которые хотят надевать «для одной волне» со своей следующий половинкой. Зато выглядит очень эффектно. Краски ложатся как, выглядят натурально и придается максимально приближенная к оригиналу цветопередача. Чтобы выработки используются всего 100% хлопковое волокно. Заключение эколога Светланы Смотровой из межрегиональной общественной организации "Экологическая начало "Материк - выше общий дом"" тоже неутешительно:
шанс детская одежда новосибирск шанс детская одежда новосибирск
[url=http://all-optovik.ru/catalog/zhenskaya-odezhda-optom-osnovnoy-razdel/milana_style/]платья оптом платья оптом[/url]
http://all-optovik.ru/catalog/verkhnyaya-odezhda/ - найти зимнюю женскую верхнюю одежду женские плащи оптом

Степень нить – это длина петель, образующих махровую ткань. Разве Вы желаете, что-то оригинальное - атласная лента самое верное решение. Подкупать подушкикаучуковым синтетическим или натуральным. Коли в 1998 году 3АО "Винницабытхим", руководитель среди украинских производителей, имел в общем объеме реализованной продукции удельный значение 52 процента, то уже в 2003-м - всего 5 процентов. Широко используемая черная стретч-пленка позволяет сохранить конфиденциальность груза и его сохранность. Толщина пленки и клеевого слоя скотча может быть разной и зависит от типа применения липкой ленты.Сделана эта лента из ткани, ламинированной полиэтиленом, тож же из полиэтилена, армированного стекловолокнами. Вот чего хотят потребители: приятную чистую стирку без проблем!Из меди для нынешний число изготавливают практически все: сковородку, кастрюлю, чайник, сотейник и т.д. Достохвальный стиральный лекарство не обязан харчить фосфаты. 3. Недочет его в часть, сколько летом около ним немного жарковато, а зимой немного прохладно. Фосфаты "благотворно" влияют не лишь для водоросли. После исключительно полезные свойства армированный скотч также называют «техническим пластырем». У нас в стране ПЕРЕВЕЛИСЬ стандартов безопасности, точнее, они устарели. Должен учитывать порядком моментов, зная которые позволительно выбрать именно тот подарок, которому будут рады в этом доме. Чистый же стирать такое постельное платье правильно — дабы не повредить структуру волокон и не допустить усадки хлопковой ткани?
Orurigosum - 2018-08-01  10:36:30
 [url=http:///].ankor[/url] .ankor
Okijujagobiki - 2018-08-01  10:15:18
 [url=http:///].ankor[/url] .ankor
TVPencully - 2018-08-01  01:45:01
 Спецводсервис диагностирует скважины, производит Обслуживание систем водоснабжения.
У нас вы найдете Обратноосмотические системы очистки воды, а также Смотровые колодцы, мы можем произвести Насосы для скважин. Бурение неглубоких скважин, Оценка запасов подземных вод, Водоснабжение частного дома.
В ООО Спецводсервисе имеется к продаже ЁМКОСТНОЕ И РЕЗЕРВУАРНОЕ ОБОРУДОВАНИЕ, Емкости пожарные, топливные, химические, для пищевой промышленности, для питьевой воды, для кислот и т.д., Мешалки складные под еврокуб, Шнековые обезвоживатели осадка, Распределительные колодцы, Тонущая загрузка, Флотационные системы (Флотаторы), ОДЪЕМНЫЕ УСТРОЙСТВА И МЕТАЛЛОКОНСТРУКЦИИ Нестандартные металлоконструкции, ВОДООЧИСТНОЕ ОБОРУДОВАНИЕ Комплексы реагентного хозяйства (КРХ), ПОДЪЕМНЫЕ УСТРОЙСТВА И МЕТАЛЛОКОНСТРУКЦИИ Шнековые дозаторы, ОЧИСТКА ЛИВНЕВЫХ СТОЧНЫХ ВОД Пескоуловитель, НАСОСНОЕ И КОМПРЕССОРНОЕ ОБОРУДОВАНИЕ (Грунфос, КСБ, Вило, КИТ, Взлёт) Компрессоры диафрагменные, ВОДОПОДГОТОВКУ Мембраны и реагенты для осмоса, а также все для автомойки Автомойки на базе флотации.

Обсадка труб скважин - [url=https://woobe.ru] Бурение скважин на воду[/url]
TimothyGat - 2018-08-01  01:22:21
 viagra originale online italia
viagra online blog
[url=http://viagranbdnr.com/viagra-buy-australia.html}]buy sildenafil no prescription[/url]
easiest way get viagra prescription
Carlosunupt - 2018-07-31  23:00:10
 Знание тематического блога;Коммерческая недвижимость - это офисные, торговые, производственные, складские и иные тому подобные помещения. Далее обратите внимание, из какого материала сделаны стены, требуют ли замены окна. Разумеется, и нанимателю следует четко соблюдать все пункты договора, прописываемые с целью защиты интересов арендодателя. Вторичный рынок:izbejat_moshennichestva1.jpgЕстественное хотение приобрести выбранную квартиру поскорее, покамест противоположный не перехватил, периодически приводит к плачевным результатам. Требования придирчивых клиентов к инфраструктуре, расположению и состоянию таких квартир, качеству ремонта будут зело высокими, разве инвестор планирует приобретать горний степень прибыли с аренды такой категории жилья. Это понятно, беспричинно только изза эту услугу дозволительно получить кладезь денег. Мощности электро-розеток обычно не хватает для питания всех бытовых приборов, а состояние трубопровода нуждается в проверке. Обратите забота на цена дома. Такой путь выбирает большинство инвесторов. Но учтите, что некоторые риэлторы специально не указывают в объявлении, кто они такие, и вы думаете, который квартиру сдает собственник. Такую возможность предоставляет агентство недвижимости «СИТИ». Причем загородные дома больше ищут весной, осенью часто наступает дождливая пора, продавцы и покупатели не хотят ездить по мокрому загородному бездорожью. Именно поэтому определенный лик имущества покупают при первой возможности и физические, и юридические лица. А значит, вероятно, придется подряжать профессионалов, который повлечет существенные расходы. И никаких ксерокопий — вам должны предоставить лишь оригиналы. Вариант второй. Вариант третий. Когда в доме лопать погреб иначе подвал, проверьте, сухо ли там. Коль частые поездки в город не планируются, для удаленность позволительно не поворачивать внимания. Фундамент. Именно эта особенность работы риелтором делает наших сотрудников счастливыми, способными легко воплощать свои мечты в реальность. д.) не могут обижаться для наследство, если жрать кто-нибудь из предыдущей. У солидного агентства развиты партнерские отношения с рядом надежных банков. Попросите у продавца предъявить однако необходимые документы. Такая услуга зависит от вашей фантазии. Получил ли он эти документы законным через alias самопроизвольно стал жертвой обмана, выяснит суд. Достоинство жилья, подобно и цена аренды, неуклонно (быстрее либо медленнее), однако растет. Фонд занимается накоплением средств инвесторов, приобретением недвижимости, поиском арендаторов и распределением выручки промеж собственниками паев. И должен красоваться заключен разом, подобно вы вселились. Результатом становятся потерянные аржаны и время, иначе же люди внезапно оказываются для улице. Однако в ситуации с недвижимостью всё намного сложнее. В качестве довода к тому, который они должны падать, обычно приводится соперничество из учебников 10 класса сообразно экономике. Человек клюют для объявления в газетах, в которых предлагаются услуги по составлению списка сдающихся квартир после небольшую плату. Строительство может прекратиться вместе в связи с банкротством застройщика либо по иным причинам, оно может затянуться на порядочно лет. Окрыленные скорым вселением, люди обычно этот сделка не читают накануне подписанием. Возможно, вы никогда не сможете встречать отдельную квартиру следовать желаемую цену, один комнату. Допустим, вам поручено продать квартиру, вы ищете покупателя. Но существуют изрядно секретов правильной расклейки. Озвучим их. Несмотря на то сколько продажа квартир в Москве ведется по очень существенным ценам, от этого желающих приобрести их не становится меньше. Ради минимизации рисков можно обращаться изза помощью в специализированные агентства недвижимости либо исполнять инвестиции в трастовые фонды. Если дом не нравится, то и заводить диалог о его покупке бессмысленно. А который твердить о нынешних временах, если кризисом и не пахнет? А спад цен на рынке недвижимости без общего экономического кризиса в стране начаться не может!
строительство домов под ключ проекты
[url=https://vk.com/stroitelstvo_domov_knd]Строительство домов[/url]
https://vk.com/stroitelstvo_domov_knd - строительство домов под ключ проекты

Поэтому каждому продавцу безразлично, что говорят про кризис или падение цен – ему важно продать квартиру в Москве за ту цену, которую он назначил. Во избежание проблем внимательно изучите все документышестая — двоюродные правнуки и правнучки, двоюродные племянницы и племянники, двоюродные дяди и тети;Вспомните: в 2008 году ожидали сильного снижения цен на российскую недвижимость, но этого не случилось. Собственник нуждается в быстром получении наличных средств в связи со сложившейся жизненной ситуацией. Наиболее популярны дома с прилежащими участками от 5 до 15 соток. У нас предусмотрена возможность карьерного роста, которая непременно будет реализована вами, если вы человек целеустремленный и настроенный на успех, способный эффективно продавать недвижимость. Хорошим решением было бы провести косметический ремонт квартиры или комнаты. 3) «Он выглядит гораздо старше возраста в паспорте»

строительство частных домов
Andrewsok - 2018-07-31  21:06:33
 kamagra gold 100 mg sildenafil citrate
viagra without a doctors prescription
good website to buy viagra
[url=http://prayforeaste
canada.com/]http://prayforeaste
canada.com/[/url]
buy cheap viagra online
Uyoxefiia - 2018-07-31  19:26:33
 [url=http://doxycycline-cheapbuy.site/]doxycycline-cheapbuy.site.ankor[/url] onlinebuycytotec.site.ankor
<<[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] [517] [518] [519] [520] [521] [522] [523] [524] [525] [526] [527] [528] [529] [530] [531] [532] [533] [534] [535] [536] [537] [538] [539] [540] [541] [542] [543] [544] [545] [546] [547] [548] [549] [550] [551] [552] [553] [554] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.