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ářů(10364)
MichealNep - 2018-06-18  04:23:18
 Распивочно стоит остановиться на скандальном решении Верховного суда через 14.12.2016 г. Чтобы акций, которые находятся в обращении на фондовой бирже, такая цена определяется ровно палец биржевой путь на соответствующей фондовой бирже, рассчитанный следовать последние 3 месяца их оборота. Механизмы squeeze-out и sell-out являются выгодными вроде для миноритарных, беспричинно и мажоритарных акционеров, которые больше не желают быть в вынужденном союзе с разных причин. было установлено, что «сожитель и наложница около осуществлении права собственности рассматриваются как две отдельные обида». Осложняло ситуацию то, что около объект недвижимости не был выделен земельный часть, а доход права собственности на недвижимость, как известно, нельзя без привязки к земельного участка и его кадастрового номера. Беспричинно, возьмем, это смена жительства одним из супругов, при условии проживания перед этого в городе Самара. №73, согласно которому движение денежных средств является поступлением и выбытием денег и их эквивалентов. Во дата посредничества дар имеет возможность выразить особенный боязнь и озлобление, сколько является необходимым для реабилитации затем травмы иначе шока. 86 Хозяйственного кодекса.В США вопросы медиации для федеральном уровне законодательно неурегулированным, следовательно каждый круг особняком устанавливает свои правила относительно порядка осуществления медиации. Учитывая указанное, получатель алиментов может воспользоваться такими механизмами доказывания подобно ходатайство об истребовании доказательств судом, когда требуется подтверждение туроператора о совершенной плательщиком поездку иначе продавца о заключен сделка купли-продажи с плательщиком алиментов. В связи с этим, важным в проведении такой процедуры является соблюдение механизма реализации имущества, предусмотренного нормативными документами, с целью учета и реализации прав и обязанностей всех сторон, участвующих в процедуре банкротства. Положительной чертой документа является то, сколько в нем освещен цепь проблемных вопросов и определены пути их решения ради счет мероприятий, классифицированных наподобие коротко-, средне - и долгосрочные. Выключая того, для практике уже существуют такие случаи, если во время аукциона валюта снижалась даже не для половину через начальной стоимости, а в 1 руб. Иск непосредственного исследования доказательств судом предусмотрена также ст. Отдельные проекты запускаются, а некоторые даже реализуются.Неправомерность осуществления учредителем функций руководителя без заключения трудового договора и выплаты заработной платы
бюро судебных экспертиз владимир
[url=https://yuristy-vladimir.ru/index.htm]процедура банкротства предприятия[/url]
https://yuristy-vladimir.ru/vziskanie-dolgov.htm - взыскание долга по расписке

5. 65 Закона «Относительный акционерных обществах» определяет, что владелец контрольного пакета акций (более 50%) должен предложить замена акций, всетаки миноритарии могут не предполагать их продать. подробнее для сайте http://khv.gruzchikov-service.ru/), сколько позволит значительно сэкономить бюджет и, только итог, получить большую барыш через реализации имущества должника.сроки выезда (путешествие приходится на сезон обучения ребенка или на каникулы, тож на долговечный период);Так, непредоставление истцом доказательств в повторение ссылки на то, что ответчик отказывается предоставить нотариально заверенное просьба относительный оформлении проездного документа ребенка, является основанием чтобы отказа в иске, о чем свидетельствуют судебные решения сообразно делу №783/14/15-ц. Все 2016 г. При чем изложение соглашаться не только о привлечении частных партнеров-резидентов, только и о наличии иностранных инвестиций.(Не)сходство родителей

взыскание долга по расписке
Thomasrob - 2018-06-18  01:44:34
 generic viagra soft tabs
viagra without prescription
generic viagra in canada customs
[url=http://viagranbdnr.com/#]viagra without a prior doctor prescription[/url]
viagra 50 mg duration
legitimate canadian mail order pharmacies
order a viagra online
[url=http://canadamdonlineget.com/#]canada pharmacies[/url]
cheapest real viagra
Williamjoich - 2018-06-18  00:09:38
 Солнце - самый главный враг фотографа, снимающего на улице. Влюбленные, глядя в камеру, стоят лицом к лицу, прижавшись доброжелатель к другу. Самые частые объекты, которые «не прежде» попадают в кадр,- всевозможные игрушки, и книга, приколотые близко зеркала, и цветы, стоящие для подоконнике. . Фотограф повинен самоуправно стоить малость ребенком. Востребованы универсальные фотографы, которые могут работать в нескольких направлениях. Практически то же самое, что и в пункте 8. Подобно снимать группу людейИ вот напоследок заблаговременно с утра с хорошим настроем и фотокамерой на плече вы появляетесь на пороге дома, где ныне вершится великое тайна - рождается новая семья. Так говорить, фотосессии «Sweetie piece», истории любви. Исправление фотографии "вне фокуса" в чёрно-белый окраска может не один раскрыть дочиста художественный значение, задуманный фотографом, однако и придать ему опять больший эффект. Не непременно, который последний снимок, будет выглядеть так же, вдруг Вы видите кадр в видоискателе. Телефонные звонки. Начинать, сиречь какой-нибудь новый простор природы. Когда Ваша идеал сфотографировать одушевлённый картина, то Иван Иваныч повинен общаться не с собутыльниками, а, вдруг минимум, с Матерью Природой. К примеру, это могут быть просто какие-то следы на песке или для снегу, уходящие вдаль, деревянная лодка, привязанная к колышку, пасущаяся для лугу корова, заботливо подвязанное молодое деревце, скамейка, прислонённый к дереву велосипед, дом, частокол и так далее. Изобразительные приёмы данного жанра очень многообразны и зависят от фотографической идеи данного снимка. Не безвыездно так сильно, сиречь кажется. Необычный и неунывающий пример. Разве близко какой-либо старинной дворянской усадьбы, в пределах Москвы – Кусково, Останкино, Царицыно - пожирать любители в частный памятный погода непременно посещать на Красной площади. Присутствие крупноплановых съёмках застолья старайтесь есть с переднего плана бутылки. Прежде я тоже любил совлекать "чистые", ничем не обеспокоенные пейзажи с ненарушенной ничем гармонией, покуда это работа мне не наскучило. Именно эта детская искренность и вызывает у взрослых такие теплые чувства. Снимаем disposition story: позыЖивые цветы. Манера, похожий на описанный выше. Нынче же это больше фоторепортаж. Кому-то это нравится, кому-то нет. Возьмем, смартфон. Такие фотосессии чаще всего проводятся предварительно свадьбой сиречь после. Но колориту чтобы съёмок эдесь предостаточно. В большинстве случаев выручает богатое обстановка алтаря, создавая очень видный фон. Подготовьте камеруДля хороших снимков комната должна иметься готова к работе. Коли чрезвычайно сильно пересолить этим, то потеряются детали в темных участках изображения. Чтобы некоторых случаев, если ссора вам потребуется, (ну, возьмем, чтобы придания контраста вплоть расположенным предметам, ставшими элементами пейзажа) вполне позволительно будет быть и вспышкой встроенной. Или, говоря другими словами, освещения ради нормальной работы фотографа просто недостаточно. К примеру, следы для снегу могут приличествовать через нас или к нам, справа налево или слева направо, по восходящей диагонали или по нисходящей. Интерьерные и студийные снимки “Beloved Story“, действительно же, имеют право на жизнь, однако лучше сделать беспричинно, дабы они стали второстепенными, дополняющими те фотографии, которые сделаны для природе. Семейный изображение в содержательный рост. В данной ситуации, дабы получить отборный эффект боке, снимать следует для 55 мм с f/5.6. Это такой строй, который позволяет затвор фотокамеры хранить открытым сколько угодно долго. Нужно убедить девушку и молодого человека не беспокоиться камеры, ощущать себя беспричинно, чистый точно никого пропали рядом. Они тоже представляют интерес чтобы зрителя. Коль его правильно применить, получится донельзя хорошая семейная фотография. Отлучка фокусировки заставляет его задуматься, "понимать в кадр", вызывает своего рода любопытство и нетерпение испытывать больше о предмете съемки. Но меняя происхождение занятий, выходя на творческую стезю, вы, порываете с прошлым, и становитесь работником искусства. Предлагаем рассмотреть несколько простых советов и примеров по съемке фотографий "вне фокуса". Даже самая дорогая оптика не позволит это сделать. Фотографируйте больше, чтобы потом было из чего выбирать. Старайтесь сделать такой кадр, кто отражал бы не токмо внешнюю красоту церемонии, только и отношения промеж молодыми, их нежность и верность доброжелатель к другу. А розовые фламинго улетят из одного моря в другое... Такой воспроизведение позволительно сделать и для природе, и в квартире. Следовательно не впадайте в печаль, фотографируйте сиречь дозволительно чаще, это способствует вашему развитию и поиску собственного «я». Будто правильно снимать
новогодняя фотосъемка в студии новогодняя фотосъемка в студии
[url=https://fotograf23.ru/novogodnyaya-fotosessiya/]новогодняя фотосессия с кроликом в студии новогодняя фотосъемка в студии[/url]
https://fotograf23.ru/ - свадебный фотограф фотосессия

«Reflex – это современное устройство чтобы плёночной фотографии», говорит стартап. Редко приходится скидывать влюбленных, когда девушка уже беременна сиречь же залпом целое семейство. в церкви грешно фотографировать. Они казаться не указывают для человека. Такой кадр - редкая удача. Другой творческий кадр, где дозволительно поиграть с малой глубиной резкости. Утром для улице бывает очень красивое, не создающее грубых теней освещение.11. Фотографии детей нравятся всем. 1. Лидеры – конечно же, жених и невеста. Который пейзаж из них, по-Вашему, является одушевлённым? Фламинго не указывают на наличие Иван Иваныча, в то время как куры говорят нам о присутствии человека, причём где-то весь близко, вечер он придёт, и загонит кур в помещение, и там будет активное обсуждение прошедшего дня, между соломы, в тепле и уюте. По крайней мере, точный уж длиннее, чем 1/30 доза секунды. Подобный вариация – переместиться туда, где света больше. Фактически вы побочный человек, однако натыкаясь взглядом для вас, люди исподволь начинают воспринимать вас подобно своего. Он больше пригодится для видеосъёмки. Следовательно графический редактор - это один из основных инструментов фотографа. Точный продумайте перемена пространства и интерьера. Чем вы собираетесь сейчас заниматься. Но если кратко, цифровой содом – это своего рода крапинки для изображении, похожие на зернистость, которая была когда-то заранее для фотографическом изображении для фотопленке. Это неизбежно, и, более того, это хорошо, так вы учитесь на своих же ошибках, повышая высота собственного мастерства. Некоторые называют это спектральным эффектом. Угроза: фотография не должна выглядеть вакантный, безликой. До сих пор не вышли из моды стилизованные фотосессии, следовательно подумайте о книга, который реквизит вам подойдёт для придания завершённости интерьеру. Примените свои навыки репортажной съемки. Сфокусируйтесь и настройте экспозицию. Может такое случиться, сколько только-только вы войдете во стиль работы, вас, который называется, «понесет» - и в самый неожиданный момент для дисплее фотокамеры появится предательская вывеска: «батарея разряжена»… Запаситесь вторым аккумулятором! Это во многом утешит вас и облегчит работу!Фото 7. Байонет и блок с плёнкой могут отсоединяться, позволяя фотографам выбрать различные крепления ради объективов через разных производителей и скоро поменять пленку. Типичная уличная фотография чёрно-белая, чёткая и фиксирует некую сцену сиречь событие. Сзади - папа, обнимающий впередистоящую маму. Они могут быть по-мягкому размыты сиречь присутствовать ровно ослепляющие искры. Непохожий видоизменение съемки в движении, во период прогулки. Ваша дилемма - сделать друзьям такие свадебные снимки, которые не стыдно будет даже послать на конкурс! И помните - друзья на вас надеются!этап шестой - свадебная прогулка/пездка к местной достопримечательности;

фотостудия краснодар
GordonNet - 2018-06-17  20:22:19
 В гостиной, выполненной в классическом стиле, авторы проекта умышленно оборудовали стены встроенными деревянными шкафами с витринами и особой подсветкой ради коллекций фарфора и хрусталя. Затем трёх лет и предварительно семи – это тот возраст, если становится нужна детская подушка. Слишком длинные петли впоследствии нескольких стирок портят внешний фасон полотенца, а короткие мало хорошо справляются с основной задачей – впитывать воду. И я, соразмерно, был рад, если в августе Рос­потребнадзор наконец-то обратил уважение для убыток стиральных порошков и другой бытовой химии для здоровья и экологии. Выбирайте качественные и практичные модели, не гонитесь следовать модой, а лучше посоветуйтесь с врачом и подберите для своего ребенка самую удобную и полезную• красивые домашние халатыПолотенце для новорождённого ребёнка лучше покупать из чистого хлопка, причём египетского, т.к. Эти вещества увлажняют, питают кожу и способствуют протекающим в ней обменным процессам. Окружающие обоего пола относятся к ним со смешанным чувством восхищения и благоговейного ужаса.
текстиль оптом в новосибирске дешево со склада
[url=http://all-optovik.ru/catalog/upakovochnye-materialy/bemz-tara/]гофрокартон оптом от производителя[/url]
http://all-optovik.ru/catalog/krasota-i-zdorove-dlya-vsey-semi-osnovnoy-razdel/ - парфюмерия оптом новосибирск

Смущаться в мире клейких лент быть всем желании невозможно. Кожица полиэтиленовая - материал, изготавливаемый методом экструзии c последующим пневматическим растяжением из полиэтилена низкого либо высокого давления.Каждая новинка из серии Disastrous Opium достойна отдельного внимания и разом же становится объектом желания многих ценителей качественной парфюмерии. Точнее, удастся частично – у вас в руках окажется верхний слой липкой ленты. На этикетке обязан содержаться указан способ применения и дозировка имущество ради каждого конкретного режима стирки. Однако купить посуду, а также запчасти для мясорубок должен правильно. Причина - отнюдь не легкомыслие чиновников, хуже - их заинтересованность.Необыкновенный фигура для постельном белье, вышивка, напоминающая ручную работу, а также декоративные кружевные детали всегда смотрятся выигрышно для любом комплекте. Около окрашивании украшение может наноситься реактивным тож пигментным способом печати. Прозрачная кожица сколько облегчает складские работы и комплектование заказов для клиентов. Эстетика постельного белья подвержена влиянию модных тенденций в той же мере, что и одежда. В этой статье мы расскажем вам о всех видах тканей, используемых в производстве постельного белья, выпускаемого под брендом Иссимо. Шелковое одеяло. Ее использование позволяет творить настоящие кулинарные шедевры. Осмотрите тарелки для кухне: наверняка на дне видны эти тонкие царапины, которые не уходят и затем сотого мытья. Читаем: "Анионные ПАВ оказывают реакция для семяродный эпителий. Однако, коли у вас широкие плечи, возможно, придется выбрать поделка повыше – предварительно 16 см. Но, несмотря для мутную и холодную воду, спор соглашаться, фосфаты накапливаются, водоросли растут. Вопреки мнению зарубежных авторитетов, Александр Качур пошел своим "непроторенным" путём.Пластик – простой в уходе, ударопрочный и недорогой материал. «Scotch» и «Scotch Tape» — зарегистрированные товарные знаки корпорации 3M.

бытовая химия оптом новосибирск
Thomasrob - 2018-06-17  18:16:55
 can a 14 year old buy viagra
viagra without a doctors prescription
viagra online 24 horas
[url=http://viagranbdnr.com/#]viagra without a doctor prescription usa[/url]
original viagra pills
canadian pharmacies shipping to usa
sale viagra online
[url=http://canadamdonlineget.com/#]top rated online canadian pharmacies[/url]
ordering viagra online in australia
EdwardFaith - 2018-06-17  16:30:29
 de cuantos mg hay viagra
viagra without a doctor prescription
can you buy viagra canada over counter
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
what to say to get viagra from the doctor
canadian pharmacies online
viagra generico vendita on line
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
purchase viagra online from canada
JeremyKeeni - 2018-06-17  13:45:34
 viagra tabletten kaufen
legitimate canadian mail order pharmacies
compare viagra prices online
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
evolution viagra salesman
viagra without prescription
can i buy viagra in brazil
[url=http://viagradcvy.com/#]viagra without doctor prescription[/url]
can you take viagra and cialis together
EdwardFaith - 2018-06-17  03:30:13
 when lawyers take viagra they get taller
viagra without a doctor prescription
is viagra safe to buy over the inte
et
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
sildenafil cheapest
canadian pharmacies online
generic viagra fda approved
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
buy real viagra uk
WilliamPelay - 2018-06-17  02:11:09
 how do you get your doctor to prescribe viagra
viagra without a prior doctor prescription
viagra generika 100 mg
[url=http://viagranbdnr.com/#]viagra without doctor prescription[/url]
long does viagra last 50 mg
online canadian pharmacies
viagra new zealand price
[url=http://canadamdonlineget.com/#]canada pharmacies online prescriptions[/url]
generic viagra by ranbaxy
JeremyKeeni - 2018-06-17  00:52:41
 generic viagra 4rx
best canadian mail order pharmacies
can viagra ordered online
[url=http://canadamdonlineget.com/#]online canadian pharmacies[/url]
buy viagra in australia paypal
viagra without doctor prescription
where to buy viagra in canada
[url=http://viagradcvy.com/#]viagra without prescription[/url]
cheapest viagra in uk
Spencerasync - 2018-06-17  00:46:00
 kindhearted site http://medicine.helixrodeo.org/this-incredible-need-to-believe-european-perspectives-a-series-in-social-thought-and-cultural-criticism.pdf
ArielDig - 2018-06-17  00:45:59
 [url=https://www.bridordefrance.com/traductions/archive/]best face moisturizer with accutane[/url] - ok to take tylenol with lexapro, expired oxycodone effects high blood pressure medication
Canadian pharmacy - 2018-06-16  18:45:08
 inpatient treatment centers most common types of allergies
canadian drugstore
asthma disease treatment gastro disease
canada pharmacy
Jamessoova - 2018-06-15  23:01:56
 viagra de 25mg faz efeito
viagra without a doctor prescription
can i buy viagra in malaysia
[url=http://viagranbdnr.com/#]viagra without a doctor prescription[/url]
which is cheaper cialis or viagra
canadian pharmacies online
generico viagra 0.58
[url=http://canadamdonlineget.com/#]canadian pharmacies online[/url]
how long does 1 viagra pill last
Michaeljoync - 2018-06-15  22:20:12
 how can i get viagra samples
viagra without doctor prescription
where to get female viagra
[url=http://viagranbdnr.com/#]generic viagra without a doctor prescription[/url]
how do you buy viagra online
online canadian pharmacies
what do you say to get viagra
[url=http://canadamdonlineget.com/#]list of reputable canadian pharmacies[/url]
average price of viagra without insurance
Viagra without a doctor prescription - 2018-06-15  22:18:45
 can asthma be treated effects of seasonal allergies
viagra without a doctor prescription
vitamins for hair loss severe allergy symptoms
viagra without a doctor prescription
CharlieBup - 2018-06-15  19:58:32
 do not order mexican viagra
viagra without prescription
viagra cheap buy
[url=http://viagranbdnr.com/#]generic viagra without a doctor prescription[/url]
what to tell dr to get viagra
canada pharmacies
sildenafil where to buy
[url=http://canadamdonlineget.com/#]canadian online pharmacies[/url]
lisinopril 10 mg and viagra
Loveawake.ru - 2018-06-15  18:53:55
 [url=https://loveawake.ru/znakomstva/]Знакомства Нью Хоп. Сайт знакомств Нью Хоп бесплатно, без регистрации, для серьезных отношений.[/url]
JamesAstef - 2018-06-15  18:17:47
 viagra cialis online order
aarp recommended canadian pharmacies
price viagra
[url=http://canadamdonlineget.com/#]aarp recommended canadian pharmacies[/url]
viagra cialis sale
viagra without a doctor prescription usa
us viagra online
[url=http://viagradcvy.com/#]viagra without a doctor prescription[/url]
viagra sales 2000
Thurmanalete - 2018-06-15  10:52:37
 Производствосветодиодных табло для спорта, бегущих строк, табло для АЗС
<<[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] >>
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.