// check that we have access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
// register our event. It would be great of joomla had more events
$_MAMBOTS->registerFunction( 'onPrepareContent', 'JoomSEO' );
function JoomSEO($published, &$row, &$params, $page=0) {
global $database, $mainframe, $mosConfig_MetaKeys, $mosConfig_MetaDesc, $mosConfig_sitename;
// perform a published check
if (!$published) {
return;
}
// get our bot parameters
$query = "SELECT id FROM #__mambots WHERE element = 'JoomSEO' AND folder = 'content'";
$database->setQuery($query);
$id = $database->loadResult();
// get our mambot object
$mambot = new mosMambot($database);
$mambot->load($id);
$botParams = new mosParameters($mambot->params);
// load all our vars
//Title
$titleLength = $botParams->get('titleLength', false);
$titleOrder = $botParams->get('titleOrder', 1);
$prependTitle = $botParams->get('prependTitle', false);
$appendTitle = $botParams->get('appendTitle', false);
// site name
$showTitleSiteName = $botParams->get('showTitleSiteName', true);
$overrideSiteName = $botParams->get('overrideSiteName', false);
// content / heading title
$showContentHeading = $botParams->get('showContentHeading', true);
// paragraph
$showFirstParagraph = $botParams->get('showFirstParagraph', false);
$paragraphMinLength = $botParams->get('paragraphMinLength', 20);
$paragraphLength = $botParams->get('paragraphLength', 50);
// keywords
$showTitleKeywords = $botParams->get('showTitleKeywords', true);
$overrideTitleKeywords = $botParams->get('overrideTitleKeywords', false);
$keywordMinCharacters = $botParams->get('keywordMinCharacters', 3);
$titleKeywordQuantity = $botParams->get('titleKeywordQuantity', 5);
// meta
$metaKeywordsCount = $botParams->get('metaKeywordsCount', 50);
$metaDescriptionMinLength = $botParams->get('metaDescriptionMinLength', 80);
$metaDescriptionLength = $botParams->get('metaDescriptionLength', 150);
// filter
// when bot was first installed these were not being added unless bot was *saved*
$defStickWords = "";
$stickyWords = $botParams->get('stickyWords', $defStickWords);
$defBadWords = "0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z about an are as at be by com de en for from how in is it its la of on or that the this to was what when where who will with und the www and all has been your us up youll can if youve do know we not many you our but there they then more";
$badWords = $botParams->get('badWords', $defBadWords);
$defBadCharacters = "0 1 2 3 4 5 6 7 8 9 > < & - , . ; : ) ( ? ! { } [ ] / ' " %";
$badCharacters = $botParams->get('badCharacters', $defBadCharacters);
// bot activation
$disableFrontpage = $botParams->get('disableFrontpage', false);
// activation specific
$disableFrontpageTitle = $botParams->get('disableFrontpageTitle', false);
$disableFrontpageKeywords = $botParams->get('disableFrontpageKeywords', false);
$disableFrontpageDescription = $botParams->get('disableFrontpageDescription', false);
// front page overrides. Front page or corresponding item must be enabled though
$overrideFrontPageTitle = $botParams->get('overrideFrontPageTitle', false);
$overrideFrontPageKeywords = $botParams->get('overrideFrontPageKeywords', false);
$overrideFrontPageDescription = $botParams->get('overrideFrontPageDescription', false);
// SEO / Accessability
// defaulted to false to as not to break existing templates
$addHeadingTags = $botParams->get('addHeadingTags', false);
// current settings
$currentTitle = gettitle();
$currentContentHeading = $row->title;
$currentMetaKeys = $mosConfig_MetaKeys;
$currentMetaDesc = $mosConfig_MetaDesc;
// added to limit sql queries
$isFrontPage = IsFrontPage();
// firstly add our generator tag.
// please leave this here as it will not affect seo
// and gives my countless hours of programming an idea of use.
global $beenHere;
if (!$beenHere) {
// add JoomSEO bot to Generator meta
ReplaceMeta('Generator', ' JoomSEO by Phill Brown (http://www.joomseo.com).');
}
// encompass our headings with hX tags
// added first as we want this active even if the front page is disabled
if ($addHeadingTags) {
$row->title = AddHeadingTags($row->title, $addHeadingTags);
}
// check if we are enabled on the front page
if (($isFrontPage) && ($disableFrontpage)) {
// removed after added front page overrides and specific disabled attributes
// were added after release 0.9
//if ($disabledFrontPageTitle) {
// apply replacement text instead of joomla default
// replacetitle($disabledFrontPageTitle);
//}
// exit from this bot
return;
}
// clean and organise our text
$text = PrepareText($row->text);
// all CleanChars() no longer used as it was stopping other languages from operating proplerly
//$text = CleanChars($text);
$stickyWords = PrepareText($stickyWords);
//$stickyWords = CleanChars($stickyWords);
$badWords = PrepareText($badWords);
//$badWords = CleanChars($badWords);
$badCharacters = PrepareText($badCharacters);
//$badCharacters = CleanChars($badCharacters);
// clear existing meta keywords and descriptions
$mosConfig_MetaKeys = "";
$mosConfig_MetaDesc = "";
// was thinking of adding later a check to use only first article or all articles
// this get the total content from all articles from a com_frontpage
global $botSefText;
$botSefText .= $text;
// get our site name
// added to get the site title once
global $newSiteName;
//$newSiteName = null;
if (!$newSiteName) {
if ($showTitleSiteName) {
$newSiteName = $mosConfig_sitename;
if ($overrideSiteName) {
$newSiteName = $overrideSiteName;
}
}
}
// get our content heading
// added this to get first heading
global $newContentHeading;
//$newContentHeading = null;
if (!$newContentHeading) {
if ($showContentHeading) {
$newContentHeading = $currentContentHeading;
}
}
// get our first paragraph
// added to get the paragraph once only
global $newFirstParagraph;
//$newFirstParagraph = null;
if (!$newFirstParagraph) {
if ($showFirstParagraph) {
$newFirstParagraph = trim(GetDescription($botSefText, $paragraphMinLength, $paragraphLength));
}
}
// get our title keywords
// no global as we need this to parse all keywords
$newTitleKeywords = null;
if ($showTitleKeywords) {
$newTitleKeywords = GlueItems(GetKeywords($botSefText,$keywordMinCharacters,$titleKeywordQuantity,$stickyWords,$badWords,$badCharacters));
if ($overrideTitleKeywords) {
$newTitleKeywords = GlueItems(GetKeywords($overrideTitleKeywords));
}
}
// sort our title
$titleArray = array();
Push($titleArray, $prependTitle);
switch ($titleOrder) {
case 1://
Push($titleArray, $newSiteName);
if ($newContentHeading != null) {
Push($titleArray, ($newFirstParagraph) ? $newContentHeading ." - ". $newFirstParagraph : $newContentHeading);
} else {
Push($titleArray, $newFirstParagraph);
}
Push($titleArray, $newTitleKeywords);
break;
case 2://
Push($titleArray, $newSiteName);
Push($titleArray, $newTitleKeywords);
if ($newContentHeading != null) {
Push($titleArray, ($newFirstParagraph) ? $newContentHeading ." - ". $newFirstParagraph : $newContentHeading);
} else {
Push($titleArray, $newFirstParagraph);
}
break;
case 3://
if ($newContentHeading != null) {
Push($titleArray, ($newFirstParagraph) ? $newContentHeading ." - ". $newFirstParagraph : $newContentHeading);
} else {
Push($titleArray, $newFirstParagraph);
}
Push($titleArray, $newSiteName);
Push($titleArray, $newTitleKeywords);
break;
case 4://
if ($newContentHeading != null) {
Push($titleArray, ($newFirstParagraph) ? $newContentHeading ." - ". $newFirstParagraph : $newContentHeading);
} else {
Push($titleArray, $newFirstParagraph);
}
Push($titleArray, $newTitleKeywords);
Push($titleArray, $newSiteName);
break;
case 5://
Push($titleArray, $newTitleKeywords);
Push($titleArray, $newSiteName);
if ($newContentHeading != null) {
Push($titleArray, ($newFirstParagraph) ? $newContentHeading ." - ". $newFirstParagraph : $newContentHeading);
} else {
Push($titleArray, $newFirstParagraph);
}
break;
case 6://
Push($titleArray, $newTitleKeywords);
if ($newContentHeading != null) {
Push($titleArray, ($newFirstParagraph) ? $newContentHeading ." - ". $newFirstParagraph : $newContentHeading);
} else {
Push($titleArray, $newFirstParagraph);
}
Push($titleArray, $newSiteName);
break;
}
Push($titleArray, $appendTitle);
if ($titleLength) {
$newTitle = substr(implode(' | ', $titleArray),0,$titleLength);
} else {
$newTitle = implode(' | ', $titleArray);
}
// its the front page so do front page specific handling
if ($isFrontPage) {
// get our frontpage title
if ($disableFrontpageTitle) {
// use the joomla generated title
$newTitle = $currentTitle;
} else {
$newTitle = ($overrideFrontPageTitle) ? $overrideFrontPageTitle : $newTitle;
}
// get our frontpage keywords
if ($disableFrontpageKeywords) {
// use the joomla default
$metaKeywords = $currentMetaKeys;
} else {
$metaKeywords = ($overrideFrontPageKeywords) ? $overrideFrontPageKeywords : GlueItems(GetKeywords($botSefText,$keywordMinCharacters,$metaKeywordsCount,$stickyWords,$badWords,$badCharacters));
}
// get our frontpage description
if ($disableFrontpageDescription) {
// use the joomla default
$metaDescription = $currentMetaDesc;
} else {
$metaDescription = ($overrideFrontPageDescription) ? $overrideFrontPageDescription : GetDescription($botSefText, $metaDescriptionMinLength, $metaDescriptionLength);
}
} else {
// we are on any other page so perform normal operations
$metaKeywords = GlueItems(GetKeywords($botSefText,$keywordMinCharacters,$metaKeywordsCount,$stickyWords,$badWords,$badCharacters));
$metaDescription = GetDescription($botSefText, $metaDescriptionMinLength, $metaDescriptionLength);
}
replacetitle($newTitle);
ReplaceMeta('keywords', $metaKeywords);
ReplaceMeta('description', $metaDescription);
// set our been here status
$beenHere = true;
}
/**
* Add an item to our array
*
* @param array $stack
* @param text $var
*/
function Push(&$stack, $var) {
if ($var) {
array_push($stack, $var);
}
}
/**
* Add H1, H2, H3... tags to text
*
* @param string $title
* @param int $num
* @return string
*/
function AddHeadingTags($title, $num) {
return "$title";
}
/**
* Checks if current page is Joomla front page
*
* @return unknown
*/
function IsFrontPage() {
global $database;
global $Itemid;
// if we have no option then we should have arrived at the front page of the site.
// sef url mapping bypasses this but is caught below
if (mosGetParam($_GET,'option','') == '') {
return true;
}
// get the first menu item in mainmenu as this is the front page in joomla
$query = "SELECT * from #__menu WHERE menutype = 'mainmenu' AND published = '1' ORDER BY ordering LIMIT 1";
$database->setQuery($query);
$row = null;
$database->loadObject($row);
if ($Itemid == $row->id) {
return true;
}
return false;
}
/**
* Replaces current Joomla meta tag
* code based from joomla.php
*
* @param string $name
* @param string $content
*/
function ReplaceMeta($name, $content) {
global $mainframe;
$name = trim(htmlspecialchars($name));
$n = count($mainframe->_head['meta']);
for ($i = 0; $i < $n; $i++) {
if ($mainframe->_head['meta'][$i][0] == $name) {
$content = trim(htmlspecialchars($content));
if ($content) {
$mainframe->_head['meta'][$i][1] = $content;
}
return;
}
}
$mainframe->addMetaTag($name, $content);
}
/**
* Get current meta content
* code based from joomla.php
*
* @param string $name
* @return string
*/
function GetMeta($name) {
global $mainframe;
$name = trim(htmlspecialchars($name));
$n = count($mainframe->_head['meta']);
for ($i = 0; $i < $n; $i++) {
if ($mainframe->_head['meta'][$i][0] == $name) {
return $mainframe->_head['meta'][$i][1];
}
}
}
/**
* Get a string of formatted keywords
*
* @param array key=>value $items
* @return string
*/
function GlueItems($items) {
// as format is in a $key=>$value pair extract the keys
$keys = array_keys($items);
// glue our array into a single string
$ret = implode(', ', $keys);
return $ret;
}
/**
* Replace current title
*
* @param string $content
*/
function replacetitle($content) {
global $mainframe;
$mainframe->_head['title'] = $content;
}
/**
* Append to current title
*
* @param string $content
*/
function appendtitle($content) {
global $mainframe;
$mainframe->_head['title'] .= $content;
}
/**
* Get the current title
*
* @return string
*/
function gettitle() {
global $mainframe;
return $mainframe->_head['title'];
}
/**
* Gets the description for the meta description tag
* uses the sentence inside $minLength and $maxLength
* or sentence... if sentence is bigger than $maxLength
*
* @param string $text
* @param int $minLength
* @param int $maxLength
* @return string
*/
function GetDescription($text, $minLength = 100, $maxLength = 250) {
if ($minLength > $maxLength) return;
if (!$text) return;
// previously sentences including 'Joomla 1.0' was stopping at "Joomla 1." therefor the philosophy has changed here.
// we want a minumim of $minLength chars and a max of $maxLength chars, stopping at a sentence inbetween.
// get pos of '.'
$stop = strpos($text,'.');
if (($stop >= $minLength) && ($stop <= $maxLength)) {
// display the full sentence as it is
$desc = trim(substr($text,0,$stop + 1));
} else {
// display the sentence cut short
$desc = trim(substr($text, 0, $maxLength -3))."...";
}
return ucfirst($desc);
}
/**
* Returns an array of keywords
*
* @param string $text
* @param int $keywordMinCharacters
* @param int $top
* @param string $stickyWords
* @param string $badWords
* @param string $badCharacters
* @param bool $capitalise
* @param char $delim
* @return array key=>value
*/
function GetKeywords($text, $keywordMinCharacters = 1, $top = 0, $stickyWords = null, $badWords = null, $badCharacters = null, $capitalise = true, $delim=" ") {
$text = strtolower($text);
// remove any email addresses
$regex = '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*)/iex';
$replacement = ' ';
$text = preg_replace($regex, $replacement, $text);
// remove and unwanted characters
$badCharacters = explode($delim, $badCharacters);
foreach ($badCharacters as $badChar) {
$text = str_replace ($badChar, null, $text);
}
// remove any unwanted words
$badWords = explode($delim,$badWords);
$firstWord = substr($text, 0, (strpos($text, " ")) +1);
$lastWord = substr($text , strrpos($text, " "));
foreach ($badWords as $badWord) {
// remove all instances at the beginning
if (strcasecmp("$badWord ",$firstWord) == 0) {
$text = substr($text, strlen($firstWord));
}
// remove all instances in the middle
$text = Replace(" $badWord ", " ", $text);
// remove all instances at the end
if (strcasecmp(" $badWord", $lastWord) == 0) {
$text = substr($text, 0, strlen($text) - strlen($lastWord));
}
}
// capitalise our text
if ($capitalise == true) {
$text = ucwords($text);
$stickyWords = ucwords($stickyWords);
}
$wordCount = array();
// add our stickywords
$stickyWords = explode($delim,$stickyWords);
foreach ($stickyWords as $stickyWord) {
$wordCount[$stickyWord]=1;
}
// loop through all our words and count instances
$words = explode($delim,$text);
foreach ($words as $word) {
$word = trim($word);
// after all checking was still getting null chars from somewhere
if (($word != null) && (strlen($word) >= $keywordMinCharacters)) {
// check that word already has been added
if (array_key_exists($word,$wordCount)) {
// it does so add to our count
$wordCount[$word] += 1;
} else {
// it doesnt so put it in once
$wordCount[$word] = 1;
}
}
}
// sort the new word array
@arsort($wordCount);
$ret = array();
// return all elements
if ($top == 0) {
return $wordCount;
}
// return the top X number of elements
if ($top < count($wordCount)) {
$ret = array_slice($wordCount, 0, $top);
} else {
$ret = $wordCount;
}
//foreach ($wordCount as $key=>$val) {
// echo "Key: $key Value: $val ";
//}
return $ret;
}
/**
* Clean and prepare text, remove any unwanted tags etc
*
* @param string $text
* @return string
*/
function PrepareText($text) {
// removed as redundant from strip_tags
// and was causing parsing problems due to incorrect regex.
// regex is fixed for the sake of being fixed.
// convert html br to space
/*$regex = '/()/i';*/
//$text = preg_replace($regex, " ", $text);
// remove links
/*$regex = '/()(.*?)(<\/a>)/i';*/
//$text = preg_replace($regex, " $2 ", $text);
// convert html entities to chars
$text = html_entity_decode($text, ENT_QUOTES);
// strip any remaining html tags
$text = strip_tags($text);
// remove any mambot codes
$regex = '(\{.*?\})';
$text = preg_replace($regex, " ", $text);
// convert tabs to spaces
// added below
//$text = str_replace("\t", " ",$text);
// convert newlines and tabs to spaces
$text = str_replace(array("\r\n", "\r", "\n", "\t"), " ", $text);
// remove any extra spaces
while (strchr($text," ")) {
$text = str_replace(" ", " ",$text);
}
// general sentence tidyup
for ($cnt = 1; $cnt < strlen($text); $cnt++) {
// add a space after any full stops or comma's for readability
// added as strip_tags was often leaving no spaces
if (($text{$cnt} == '.') || ($text{$cnt} == ',')) {
if (isset($text{$cnt+1})) {
if ($text{$cnt+1} != ' ') {
$text = substr_replace($text, ' ', $cnt + 1, 0);
}
}
}
}
return trim($text);
}
/**
* Removes any non readable characters
*
* @param string $text
* @return string
*/
function CleanChars($text) {
for ($cnt=0; $cnt < strlen($text); $cnt++) {
$chr = $text{$cnt};
$ord = ord($chr);
if ($ord < 32 or $ord > 126) {
$chr = " ";
$text{$cnt} = $chr;
}
}
return $text;
}
/**
* Case insensitive replace
*
* @param string $search
* @param string $replace
* @param string $subject
* @return string
*/
function Replace($search, $replace, $subject, $word = false) {
if ($word) {
$regex = "/\b$search\b/i";
} else {
$regex = "/$search/i";
}
return preg_replace($regex, $replace, $subject);
}
?>
Сексуальные роли, которые мужчины ненавидят
Автор Administrator
13.12.2008 г.
Итальянский психолог Барбара де Анджелис несколько лет задавала мужчинам разного возраста и социального положения один и тот же вопрос: «Что вам больше всего не нравится в постели?» Результатом ее назойливых приставаний стала классификация самых главных ошибок, которые, по мнению мужчин, могут привести к разрыву отношений.
Как оказалось, мужчинам неприятны весьма примитивные роли, которые женщины могут играть в постели. Итак, первая СЕКСУАЛЬНАЯ РОЛЬ - Ледышка
Мужчины не любят, когда женщины ведут себя так, будто равнодушны к сексу.
почему?
Постель - место, где мужчина уязвим. Он, во-первых, боится получить
отказ. Во-вторых, начинает чувствовать ответственность за сексуальную
жизнь партнерши, а ответственностью он сыт по горло. Мало того,
начинает подозревать женщину в предательстве.
зачем мы делаем это?
Часто это происходит из-за комплекса - «не выглядеть, как проститутка».
А для некоторых из женщин игра в «сексуальный труп» - своеобразная
форма выражения сдерживаемого гнева или недовольства: «Я ничего не
чувствую. У тебя нет никакой власти надо мной». На языке психологов это
называется «пассивно-агрессивной реакцией»: партнерша выглядит
пассивной, а на самом деле отсутствие реакции - это форма агрессивного
поведения.
решение
Заинтересованность в сексе - демонстрация любви к партнеру. Что бы вы
ни говорили в обычной жизни, мужчина прежде всего будет
«прислушиваться» к вашему телу. Спросите себя: «Нравился бы мне секс,
если бы партнер вел себя иначе?» Утвердительный ответ - повод к
разговору со своим мужчиной.
Незнайка
Мужчины не любят, когда женщины не знают их тело.
почему?
Глупо, когда партнер, едва прикоснувшись к груди, ожидает от дамы
высшей точки возбуждения. Мужчины чувствуют то же самое. Они
раздражаются, когда женщина ограничивает прелюдию только пенисом -
просто торопится возбудить его, чтобы «это» поскорее закончилось.
зачем мы делаем это?
Возможно, мы выросли в страхе перед мужским сексуальным органом, на
который переносим часто обиды и раздражение по отношению к партнеру.
решение
Женщины часто стесняются спросить партнера о том, что ему нравится, и
делают все по собственному усмотрению. Но у женщин нет этого органа, и
откуда же им знать, как он устроен. Поэтому в тактичных вопросах нет
ничего постыдного.
Бездельница
Мужчины не любят, когда мы возлагаем на них ответственность за свой оргазм
почему?
Это оказывает на мужчин сильное психологическое давление - они
чувствуют себя неудачниками. Когда партнерша не говорит, что ей больше
нравится и как доставить ей максимальное наслаждение, мужчина чувствует
себя, словно сдает экзамен на умелого любовника.
зачем мы делаем это?
Во-первых, из стеснительности. А во-вторых, многим дамам не хочется
признаваться в том, что они не богини секса и оргазм им достичь
довольно сложно. Большинство женщин предпочитают молча страдать от
неудовлетворенности, чем попросить помощи у партнера.
решение
Он отнюдь не обязан знать, как помочь нам испытать оргазм. Поэтому
придется плюнуть на стыд и поделиться особенностями своего тела. К тому
же «вербальный секс» не менее важен, чем физический.
Регулировщица
Мужчины не любят, когда партнерша ими командует: повернись так, погладь здесь…
почему?
Во-первых, четкие инструкции создают у мужчин ощущение, что им не
доверяют и их контролируют. Во-вторых, постоянные указания вызывают у
мужчин естественное желание вернуть лидерство. Они начинают бороться за
власть в постели, вместо того чтобы просто любить.
зачем мы делаем это?
Многие женщины подсознательно решают, что уж лучше объяснить все, чем
подвергать себя риску очередного разочарования. Иногда такое поведение
связано с большой ответственностью, которую женщины несут в жизни. Они
подходят к сексу, как к проекту, который нужно успешно воплотить.
решение
Чувство, что его постоянно проверяют и им руководят, раздражает любого
мужчину. Попробуйте довериться партнеру и дайте ему возможность
использовать полученную информацию по своему усмотрению.
Недотрога
Мужчины не любят женщин, стесняющихся своего тела
почему?
Такое поведение заставляет мужчин усомниться в правильности
собственного выбора: если она такая страшная, что требует немедленно
выключить свет, что я делаю с ней в этой постели?
зачем мы делаем это?
В постели обостряются комплексы у женщин, глубоко неуверенных в себе.
«Защита» в виде одежды разрушена, а они не готовы предстать перед
партнером в «истинном» виде. Многие просто стесняются лишних
килограммов или целлюлита, считая, что не соответствуют «стандартам»
красоты.
решение
Когда мужчина оказался с вами в постели, ему, поверьте, уже нет дела до
целлюлита. А недостатки партнерши он обнаружит лишь, когда она сама
настойчиво на них укажет. Поэтому смело демонстрируйте свои достоинства.
Болтушка
Мужчины не любят, когда женщины много говорят в постели
почему?
Это мешает мужчинам получать удовольствие. Им сложно слушать и
заниматься любовью одновременно, поскольку это означает одновременную
работу обоих полушарий мозга. Они делают над собой усилие, чтобы
понять, что ему говорит партнерша. Чем больше слов, тем больше
напрягается его сознание, пока он не перестает что-либо чувствовать.
зачем мы делаем это?
Нервничая или испытывая неуверенность в себе, женщины снимают свое
напряжение в разговоре. Во время секса, переживая наиболее сильные
физические ощущения, женщины часто не знают, как расслабиться, и
прибегают к наиболее привычному для них способу разрядки - разговору.
решение
Сконцентрируйте все свои чувства на теле, сфокусируйте свое подсознание
на том, что вы ощущаете, а не на том, что бы вы хотели сказать. А еще
лучше - постарайтесь пережить хотя бы один акт молча.
Куколка
Мужчины не любят, когда женщины в постели озабочены своим внешним видом
почему?
Когда дамы в постели поправляют белье, прическу или проверяют, не
размазался ли макияж, то своим видом дают мужчине сигнал: «Не тронь!»
Вместо того чтобы думать о том, как доставить партнерше удовольствие,
мужчины вынуждены контролировать внимание, чтобы не разрушить ее
внешний вид.
зачем мы делаем это?
От неуверенности в себе. Помимо этого, на женщин влияет постоянная
«промывка мозгов», вдалбливающая стереотипы красоты и привлекательности.
решение
Мужчины высоко ценят уверенность в себе, способность подчеркнуть свою
природную красоту. Партнер должен знать, что любимая чувствует себя
спокойно без косметики и других ухищрений.
Манипуляторша
Мужчины не любят, когда женщины занимаются сексом в обмен на какие-то их услуги
почему?
Когда мужчине предлагают любовь не в дар, а лишь в обмен на его
«хорошее» поведение, он и сам начинает вести себя в постели, как
бизнесмен. Если его устроят подобные отношения, они могут быть
продолжительными. Если нет - с «деловыми» партнершами легко расстаются,
если «плата за услуги» покажется слишком высокой.
зачем мы делаем это?
Секс превращается в «рычаг управления» партнером от осознания
собственного бессилия в других сферах жизни. Для многих женщин постель
- единственное место, в котором они имеют реальную власть над мужчиной,
чем и начинают отчаянно пользоваться.
решение
Постель - плохое место для разборок. И если секс превратится в
«награду» за хорошее поведение партнера, а его отсутствие - в
наказание, то мужчина, скорее всего, убежит от этих отношений.
Перенесите решение проблем на день.
Warning: include_once(/home/mshouse/domains/sdvigov.net/public_html/includes/foot2er.php) [function.include-once]: failed to open stream: No such file or directory in /home/mshouse/domains/sdvigov.net/public_html/templates/sdvigov/index.php on line 194
Warning: include_once() [function.include]: Failed opening '/home/mshouse/domains/sdvigov.net/public_html/includes/foot2er.php' for inclusion (include_path='.:/usr/local/php5/lib/php') in /home/mshouse/domains/sdvigov.net/public_html/templates/sdvigov/index.php on line 194