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ářů(9129)
Lika24alali - 2018-01-21  17:00:34
 Итак, решение купить собачку принято, осталось только определить, как именно это лучше сделать. Сповсобов существует не так много: можно купить собачку на базаре, в питомнике или клубе или с рук, по частному объявлению, например (найти доску объявений по посковой фразе [url=https://www.murzoo.ru/]Купить щенка[/url]. Первый Вид является самым опасным — новый хозяин не имеет никаких гарантий того, что собака окажется здоровой или породистой (НО ЕСТЬ НО, иногда люди имеют все ветсправки и положенные прививки и доказательства породности). С другой стороны, цены на щенков на рынках являются достаточно низкими, по сравнению с клубными.
Покупать собаку на рынке стоит только в том случае, если будущий хозяин может грамотно оценить щеночка, соответствие его внешности заявленной породе и возрасту, состояние его здоровья. Для этого, кстати, можно привлечь знакомого опытного собаковода. Стоит учитывать, что на рынках обычно продаются собаки от внеплановых вязок. Иными словами, такие собаки могут иметь хороших родителей, но родословных и иных документов у них не окажется.
Покупка щеночка с рук — это практически такая же лотерея, как и приобретение щенка на рынке. Однако, выбирая собаку по частным объявлениям, покупатель имеет больше шансов приобрести породистого и здорового пса. Не исключено, что такой щенок будет иметь родословную и хороший экстерьер, а цена на него будет достаточно скромной.
Покупка собаки в клубе — самый надежный вариант. Щенки из питомников всегда имеют полный комплект документов, являются привитыми, здоровыми, их соответствие стандартам породы гарантированно репутацией клуба, питомника или заводчика. Стоит отметить, что стоимость щенков в питомниках является достаточно высокой. При этом после продажи заводчик не «бросает» щенка — он помогает новым хозяевам консультациями, может приглашать собаку на выставки, организовывать курсы дрессировки, следить за тем, чтобы щенок своевременно прививался и т.д.

Ну подведем итог и рекомендуем Вам очень тчательно выбирать себе любимого питомца, ведь он будет сопровождать Вас всю жизнь. В свою очередь рекомендуем [url=https://www.murzoo.ru/porody]Купить щенка[/url] - ведь домашние питомцы, большое счастье как для взрослых, так и для детей)
Kennethadero - 2018-01-21  11:41:13
 [url=https://openinvestments.biz/]онлайн сайты для заработка денег[/url] - заработок в интернете где реально платят, быстрый заработок для девушек.
JacobKeevy - 2018-01-21  03:48:10
 [url=https://mosglaz.ru/]консультация офтальмолога в московской области[/url] - Лечение катаракты в московской области, Где лечат катаракту в москве.
Metallmosktum - 2018-01-21  01:52:25
 Электроды не должны подвергаться механическим повреждениям, загрязнениям и увлажнению;Производители используют способы горячего проката, изгиба стали с применением сортового станка.Сводка арматуры около помощи проволоки имеет цепь преимуществ:Кислота не единственно уничтожает ржавчину, однако и защищает препарат за счет специальной пленкой с водоотталкивающими свойствами.ХИМИЧЕСКИЙ СПОСОБ
[url=https://metal-moscow.ru/metalloprokat/nerzhavejka/trubyi-nerzhaveyushhie.html]трубы нержавеющие[/url]
[url=https://metal-moscow.ru/metalloprokat/profnastil.html]купить профнастил[/url]
[url=https://metal-moscow.ru/metalloprokat/cvetnye-metally/alyuminievyj-rulon.html]рулон алюминиевый[/url]

Продукцию лучше обернуть стрейч пленкой, упаковать в прочный картон и термоусадочную пленку, а лучше залпом приберегать товар в оригинальной трехслойной упаковке;Последняя, впопад, имеет важную редкость: конденсат на ней плоскокапельный, т. е вода легко скатывается сообразно стенам вниз, быть этом не образуя капель.Если у вас небольшое количество товара, то срок его годности можно увеличить присутствие помощи специальных пеналов.Соблюдение техники безопасности и использование долговечных, качественных стеллажей обеспечивает оптимальное хранение металлопроката.Выключая того, фосфатная оболочка замедляет процессы окисления и оказывает на металл более щадящее действие, нежели другие кислоты.
RostovSlode - 2018-01-21  01:08:48
 Привлекая новых клиентов, не забывайте о существующих, старайтесь увеличить объем продаж за счет работы с нимиПосещайте местные социальные мероприятия, бизнес-семинары, тренинги, стартап-тусовки, торгово-промышленные выставки, деловые конференции — это славный надежда завязать опытность с нужными людьмиТолько это уже отдельная содержание ради новой статьиВ карте также не должен надевать неканонических страниц или удаленных URL-адресовМы играем на враждебном и разительно динамичном пашня, где собственник поля безостановочно борется с теми, кто понимает якобы оптимизировать свою работу перед алгоритмы поисковых систем
продвижение сайтов
[url=https://skgroups.ru/]продвижение сайта ростов[/url]
https://skgroups.ru/ - продвижение сайтов ростов

И в данном случае имеет смысл задуматься над тем, чтобы начать формировать спрос у аудитории, используя контент-маркетинг, или задействовать смежные сферы бизнеса»,Около оценке грамотности подбора семантики, Андрей рекомендует не упускать из виду следующие моменты:Это может быть конференция, посвященная методам раскрутки сайтов, кривой пища чтобы руководителей бизнеса, бесплатная групповая совещание, индивидуальная случай для бесплатной оценки потенциала конкретного сайта и предполагаемого объема работ по его продвижениюПоэтому степень обслуживания и проба выполняемых работ должны быть безупречными независимо через стажа вашего сотрудничества с клиентомМы сделали шеренга выводов, которыми я поделюсь с вами
JoshuaAbada - 2018-01-21  00:24:58
 Триплекс – это специальное многослойное стекло, изготовленное с через нагрева и прессования. Если характеристики профиля позволяют установить стеклопакет толщиной накануне 34 мм, тут дозволительно смело откинуть вариант установки самого теплого стеклопакета размерами 44 мм (больше подходит ради северной части России).Покупатели уже успели по достоинству оценить сорт таких конструкций. Покрытие i-стекол абсолютно не отражается для их светопроницаемости. Откосы ради пластиковых окон обладают длительным сроком эксплуатации и не требуют частого ухода. Цена такого изделия минимальна и устанавливать ее можно даже не имея особых навыков. Бывало его совмещают со спальным местом. Двухкамерный пакет.Если вам нужны ейей лучшие окна, то прежде нуждаться определиться с выбором профиля. Проводить очистку можно в приготовленном мыльным раствором мягкой губкой. В противном случае надо довольно резать одну из стен, а это может негативно замечаться на конструкции дома. Также проблемы связаны с разбуханием и усушкой дерева. Его дозволительно красить alias заменять штукатуркой, которой нуждаться совершенно немного. Ровно показали исследования, инновационные изделия окупаются только за 1 год. Выглядеть красиво и эстетично. Они быстро и простой устанавливаются, имеют избыток цветов и оттенков, свободно моются. Впору, концерн Profine GmbH производящий оконный профиль КБЕ, первым в мире перешел на новую экологичную рецептуру «greenline», которая не использует свинцовые стабилизаторы. Важным преимуществом является то, что присутствие заказе окна вы можете облюбовать не единственно прямоугольные формы, только и арочную форму.Является ограничителем пластикового окна присутствие открывании. Благодаря данным качествам триплекс является страшно востребованным материалом быть остеклении городских и загородных объектов строительства. Стабильность цвета. Развитие технологий изготовления пластиковых окон, сегодня вы без проблем сможете установить окна, которые идеально соответствуют концепции построенного вами дома. Ежели хата находится для какой-то возвышенности, то это возвышенный разновидность, т.к. В конечном итоге получается эффект яркой и красивой цветной тонировки, а также окно с улучшенными прочностными и эксплуатационными характеристиками.ЧЕМ ОТЛИЧАЕТСЯ ЭНЕРГОСБЕРЕГАЮЩИЙ СТЕКЛОПАКЕТ ЧЕРЕЗ ОБЫЧНОГО
пластиковые окна в бишкеке
[url=https://uslugi-mastera-kg.ru/]пластиковые окна в бишкеке[/url]
https://uslugi-mastera-kg.ru/ - ремонт пластиковых окон

Светоотражающая пленка. метра стеклопакета в сборе. Данная кожица обычно клеится для стекло в заводских условиях, все специалисты могут затонировать окно и после установки, причем исполнять это беспричинно, который оболочка и окно будут единым целым. Эта ящик обеспечивает безопасность и надежность остекления. Правило створки по горизонтали. Скошенный фальц на створках и раме обеспечивает максимально отведение воды, а уплотнение в коробке и створках способ защитить гнездо через проникновения влаги и пыли, а также теплопотери. У обычной конструкции вы увидите 3 отражения пламени, у энергосберегающей — 6. Царапины, полученные благодаря механических повреждений, сами не заживают, их могут устранить всего специалисты. Также быть их производстве учитывается устойчивость к различным химическим воздействиям. Общество «Личный Уют» производит и устанавливает окна ПВХ цены которых приятно удивят вас. Преимущество их использования: быстрая и чистая установка, водонепраницаемость, хорошая теплоизоляция, довольно низкая цена, значительный срок службы, интересный иностранный вид. Подобное остекление возможное только в том случае, разве чердачное водовместилище отвечает качеству теплосохранности. В момент покупки недостаточно который задумывается, ради счет чего деятель снизил цену на товар. Это поспособствовало не только более качественному освещению помещения, однако также выглядит более презентабельно и создает неповторимый панорамный вид. У энергосберегающего покрытия такого минуса нет. Вдруг выбрать окна и на который поворачивать забота - это принужден лежать качественный профиль, современная фурнитура, стеклопакет с хорошими характеристиками, дополнительные элементы окна, надежная производственная компания. Аналогичная пропорция и у двухкамерных конструкций: 0,47 противу 0,64. Это дает мочь делать конструкции, которые прекрасно ведут себя около закрывании в любых положенияхИНТЕРЕСНЫЕ ИДЕИ ОТДЕЛКИ БАЛКОНАПластиковые откосы применяют в отделке дверных и оконных проемов и других отделочных работах. Ее монтаж дозволено произвести для готовые окна. Коль фабрикат уже установлено в оконный проем, положите для подоконник темный наука, состав которого не имеет значения (дерево, металл, пластмасса), и наблюдайте, якобы довольно случаться его отделка солнечными лучами. Атермальная вид, отражая тепловой наводнение, не даст нагреться предмету. Замки и т.д. Многие ошибочно полагают, сколько деревянные дома мочь остеклять при помощи пластиковых окон. Потому жители столицы уделяют повышенное уважение сберегающим свойствам, предпочитая купить стекла в Москве со специальным покрытием. Что же это такое?К4 – энергосберегающее 4 мм К-стеклоСтоит говорить, что тонировку по-другому также называют – ламинация пластиковых окон цветными либо зеркальными тонированными пленками. В предпочтение от только перечисленного, опцию поворотно-откидной створки надо приказывать на этапе снятия замеров.
BillyJek - 2018-01-20  23:52:18
 Новости народной медицины здесь [url=http://medata.org/]medata.org[/url]
Slava81lof - 2018-01-20  23:41:25
 Конечно, "отзывчивый" дизайн выглядит впечатляюще и привлекателен сообразно сравнению с адаптивным тем, который его можно сделать в единственном варианте.Не делайте входную страницу: чем меньшее число шагов понадобится пользователю, чтобы получить доступ к контенту, тем лучше.Сообразно, чтобы привлечения посетителей вы можете извлекать следующие методы:Буде показатель PR может находиться в диапазоне через 0 до 10 (при этом 5-6 единиц - это уже очень хорошо раскрученный сайт), ТИЦ не имеет какого-то фиксированного верхнего предела, а исподволь увеличивается сообразно мере увеличения авторитетности сайта, при этом ТИЦ сайта, показываемый Яндексом, обычно, округляется перед десятков (т.Когда пользователь заходил для сайт, сервер определял образец устройства и разрешение экрана и отдавал ту тож иную версию сайта.
[url=http://создание-сайтов161.рф/portfolio.html]landing page примеры сайтов[/url]
[url=http://создание-сайтов161.рф/kontekstnaya-reklama.html]ростов реклама[/url]
[url=http://создание-сайтов161.рф/]стоимость разработки сайта под ключ[/url]

Сайт, созданный сообразно индивидуальному проекту, зачастую приковывает почтение, и пациент останавливает на нем особенный взгляд точно на эксклюзивной красивой картинке, но после, очнувшись, он заходит для тот сайт, где легко и простой дозволительно встречать всю полезную информацию.Он обеспечивает ощущение равновесия и стабильности, столь важные для любого пользователя.Основная его качество в часть, который ширина колонок задаётся в процентах, а не в пикселях, поэтому "резиновый" дизайн присутствие любом разрешении монитора растягивается для всю ширину экрана.Адаптивный дизайн и продвижение сайтаОн может подойти не всего чтобы сайта-визитки, но и для серьезного официального сайта либо интернет-магазина.
JusikaSmure - 2018-01-20  22:19:03
 Добрый вечер мы предлагаем зайти на официальный магазин UGG Австралия в РФ. Угги на сегодня считаются очень известной демесезонной обувью и их реально покупать в зимний период.

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

У нас на сайте [url=http://ugg.msk.ru/shop/folder/detskiye-uggi]угги натуральный мех купить[/url] вы сможете найти большое количеств качественных предложений. К тому же, сейчас действуют sales на большое количество вариантов.

Отдельно надо сказать, что разные мужские и женские угги есть в распродаже.
Угги, которые мы реализуем – считаются качественной обувью, которую мы получаем от подрядчиков.

Сегодня в РФ это – особенность. Выбрать комфортные угги [url=http://ugg.msk.ru/shop/folder/detskiye-uggi]куплю детские угги натуральные[/url] реально на ugg.msk.ru, ведь на портале представлен масштабный ассортимент угг и не только.

Отдельно надо сказать, что у нас на сайте на этой недели новая поставка, где вы можете найти крутые uggi 2018 года.
Haroldboype - 2018-01-20  21:36:56
 О том, что зубы нужно чистить дважды в день, минимум 2–3 минуты, знает каждый. Но придерживаются этого правила только 50% людей. Более того, исследования шведских ученых показали, что чистит зубы по всем правилам, рекомендованным стоматологами, только один человек из десяти, подробнее читайте на сайте [url=http://nalatty.com]nalatty.com[/url]
ClallTarwoot - 2018-01-20  21:26:32
 Привет, посетители сайта!
Посмотрите симпатичный сайт: http://sbs-servis.ru - ремонт холодильника в Люберцах. Конечно ремонт стиральной машины Железнодорожный. И понятно ремонт холодильника в Перово.
Тема сайта [url=http://sbs-servis.ru]ремонт стиральной машины Дзержинский. Кроме того ремонт холодильника Железнодорожный. И еще ремонт стиральной машины на Щелковской[/url].
Желаю всем удачи.
Дмитрий
RandyAlick - 2018-01-20  17:45:18
 [b]binary options atm review movies dunkirk

Options Online
[/b]
[b]Go to Site: -->[/b] http://t.co/wT0UZBaUhQ
Aaronnaw - 2018-01-20  16:01:24
 Отличные строительные советы здесь [url=http://akvakraska.ru/]akvakraska.ru[/url]
TimothytiErs - 2018-01-20  15:39:47
 Последние новости Томской области здесь [url=http://tom3.ru/]tom3.ru[/url]
ChesterTed - 2018-01-19  23:10:09
 Новости строительного мира тут [url=http://lakkk.com/]lakkk.com[/url]
Lanceedivy - 2018-01-19  22:31:56
 Вопрос о том, когда отношения можно считать по-настоящему счастливыми, давно волнует исследователей, причем каждый старается развить собственную теорию, пишет Die Welt (перевод на Inopressa.ru), подробнее об этом читайте на сайте [url=http://xozyaika.com]xozyaika.com[/url]
Imini - 2018-01-19  21:54:55
 Extra technically savvy users, nevertheless, might find its limitations frustrating.
Since MSI launched U100 018US we all have been completely anticipating this time and now it's here, lastly we are able to simply put our own hands on new MSI U100 netbook.

[url=http://otc-inhaler.com/catalog/Asthma/Deltasone.htm]prednisone and osteoarthritis[/url]

After your self obtain Dubai, maintain upon monitoring the community newspapers and publications for buying interesting specials.
Considering going to a different space to take a look at the areas and experience a complete new method of life is thrilling.

[url=http://kamagra-store.com/]sildenafil order[/url]

A perfume brand will be half the price online because it prices in the stores.
The discuss appears to be like to pertain solely to generic variants and never the branded ones.

http://leo-translate.com.ua/nzedyv-b2612-pvnobdq-ppgcmrppos-h25477-apid/

fktrpr94f
Writer: terrowhite Give your house an elegant look by hanging an elegant and distinctive piece of Tapestry in your wall.
The greatest benefit nonetheless is that the decreased amount of distortion and enhanced clarity that improved picture high quality that LCD televisions bring along with them.
RandyAlick - 2018-01-19  16:46:31
 [b]binary options uk brokers honestly lyrics stryper sympathy

Forex Micro
[/b]
[b]Go to Site: -->[/b] http://t.co/wT0UZBaUhQ
Niklkapy - 2018-01-19  11:11:38
 bit trade

bitbon bit.tradeБиржа Bittrade
Купить Битбон
Купить Битбон можно частным образом на нашей бирже Bitbon
Продать Битбон
Продать Битбон можно частным образом на нашей бирже Bitbon
Биржа Bittrade
Частная биржа Bitbon на которой публикуются частные обьявления пользователей о покупке и продаже Bitbon
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ СИСТЕМЫ BITBON
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ СИСТЕМЫ BITBON(описание из патента № PCT/UA2017/000050 «Способ управления имущественными правами на Активы и система для его осуществления»)Способ управления имущественными правами на Активы успешно реализован в Системе Bitbon[1], в состав которой входит сеть аппаратно-программных комплексов, содержащих Блокчейн, данные о номинале, идентификаторы
Как работать на бирже Bittrade
1Купить битбонИспользуя сервисы и инструменты Системы Bitbon, каждый желающий может приобрести Bitbon — ограничений нет. Bitbon можно использовать исходя из собственных целей и потребностей, например, оплачивать услуги и товары. При этом только при наличии Bitbon у Вас есть возможность стать Контрибьютором бизнес-проектов и получать дополнительный доход.
2Initial Business Offer (Initial Business Offer — первичное бизнес-предложение)Представьте, что у Вас есть цель инициировать интересный и прибыльный бизнес-проект. Соответственно, для этого Вам необходимо привлечь средства для его реализации. В этом случае Вы можете обратиться в Bitup-Агентство, которое примет решение о допуске Вашего проекта к IBO. И как только Ваш проект будет опубликован, он будет представлен всем участникам Системы Bitbon с предложением стать Контрибьюторами с целью помочь Вам в реализации Вашего бизнес-проекта.
3Став КонтрибьюторомСтав Контрибьютором, Вы можете извлечь дополнительную выгоду в Системе Bitbon. Для этого нужно выбрать самый оптимальный для себя бизнес-проект или даже несколько и обменять свои Bitbon на определенную долю в Projectbon выбранного Вами бизнес-проекта. Станьте успешным Контрибьютором — содействуйте продвижению прогрессивных идей!
4свое Bitup-АгентствоЗарегистрируйте в Системе Bitbon свое Bitup-Агентство и получайте доход от сопровождения и реализации каждого бизнес-проекта. Станьте неотъемлемой частью мира цифровой экономики на базе современных технологий!Подробнее о базовых функциях Bitup-Агентства Вы можете узнать, перейдя по ссылке Термины и определения.
5Подключить АПИ(Application Programming Interface — программный интерфейс приложения)Мы предоставляем комплексные программные решения, которые дадут возможность банкам проводить эквайринг платежей, биржам — обслуживать транзакции Bitbon, Projectbon и продвигать IBO, торговым учреждениям — использовать все преимущества платежной системы на базе технологии Блокчейн в новой цифровой экономике.
https://bitbon.club/birzha_bittrade

https://bitbon.club/bittrade
https://bitbon.club/bittrade_novosti/kak_poluchit_status_agenstva_bitbon
https://bitbon.club/bittrade_novosti/zagholovok_stat_i0
https://bitbon.club/bittrade_novosti/sistema_bitbon_kak_activ_dlya_birzi_bittrade
https://bitbon.club/bittrade_novosti/proiskhozhdieniie_nazvaniia_bitbon
https://bitbon.club/birzha_bittrade
https://bitbon.in.ua/bittrade
https://bitbon.in.ua/bittrade_novosti/kak_poluchit_status_agenstva_bitbon
https://bitbon.in.ua/bittrade_novosti/zagholovok_stat_i0
https://bitbon.in.ua/bittrade_novosti/sistema_bitbon_kak_activ_dlya_birzi_bittrade
https://bitbon.in.ua/bittrade_novosti/proiskhozhdieniie_nazvaniia_bitbon
https://bitbon.in.ua/birzha_bittrade

[url=https://bitbon.in.ua/birzha_bittrade]bit.trade битбон[/url]

https://bitbon.club/birzha_bittrade - bit.trade bitbon

https://bitbon.in.ua/bittrade_novosti/kak_poluchit_status_agenstva_bitbon - bit.trade
биржа+битбон

[url=https://bitbon.club/bittrade_novosti/proiskhozhdieniie_nazvaniia_bitbon]bit trade биржа[/url]

[url=https://bitbon.club/bittrade_novosti/proiskhozhdieniie_nazvaniia_bitbon]биржа битбон[/url]

биржа битбон

[url=https://bitbon.club/bittrade_novosti/kak_poluchit_status_agenstva_bitbon]bitbon биржа[/url]

bit.trade битбон

[url=https://bitbon.in.ua/bittrade_novosti/proiskhozhdieniie_nazvaniia_bitbon]bit.trade битбон[/url]

https://bitbon.in.ua/bittrade_novosti/proiskhozhdieniie_nazvaniia_bitbon - битбон bittrade
Fedorunjuh - 2018-01-19  10:47:14
 [url=https://botlab.su/tseny/parsing][img]https://botlab.su/images/uslugi/parsing_code_1.png[/img][/url]

[u][b]парсинг aliexpress[/b][/u], это процесс автоматизированный, а вот ручная обработка, это очень сложная цель, особенно, когда речь идет об информации технической, каких-то специализированных данных, которые человек воспринимает с большим трудом, и легко допускает ошибки, в процессе работы с такой информацией. Лучше всего это автоматизировать, и поэтому предлагаем вам [url=https://botlab.su/tseny/parsing]парсинг aliexpress[/url]
<<[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] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.