<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>RSS</title>
		<link>https://ifreework.com/</link>
		<description></description>
		<language>ru</language>
		<copyright>ifreework.com 2009</copyright>
		<ttl>120</ttl>

<item>

<title>Обновление MODX Evolution до версии 1.4.7 и адаптация сайта для работы на современных версиях PHP (7.2 и выше)</title>

<link>https://ifreework.com/blog/other/obnovlenie-modx-evolution-do-versii-1.4.7-i-adaptaciya-sajta-dlya-raboty-na-sovremennyh-versiyah-php-7.2-i-vyshe/</link>

<description><![CDATA[ <h3>Цель</h3>
<ol>
<li>Обновить MODX Evolution до версии 1.4.7, обеспечив совместимость с новыми стандартами PHP.</li>
<li>Сохранить функциональность сайта после обновления.</li>
<li>Обеспечить корректную работу пользовательских сниппетов, плагинов и кастомного функционала.</li>
<li>Устранить проблемы, связанные с устаревшими функциями PHP.</li>
</ol>
<hr />
<h3>Область работ</h3>
<h4>1. <strong>Обновление MODX Evolution</strong></h4>
<ul>
<li>Проведение полного обновления ядра MODX до версии 1.4.7.</li>
<li>Создание резервной копии базы данных и файлов перед обновлением.</li>
<li>Проверка совместимости текущих настроек конфигурации с новой версией MODX.</li>
<li>Обновление пользовательских файлов и стандартных компонентов (сниппеты, чанки, плагины).</li>
</ul>
<h4>2. <strong>Адаптация пользовательских сниппетов</strong></h4>
<ul>
<li>Проверка совместимости кастомных сниппетов с PHP 7.2+.</li>
<li>Исправление устаревших функций:
<ul>
<li>Заменены <code>mysql_*</code> функции на <code>mysqli_*</code> или PDO.</li>
<li>Добавлены проверки типов данных (<code>is_array</code>, <code>is_object</code>) перед использованием функций, таких как <code>count()</code>.</li>
</ul>
</li>
<li>Обновление стандартов кода для соответствия современным версиям PHP.</li>
</ul>
<h4>3. <strong>Обновление плагинов</strong></h4>
<ul>
<li>Проверка актуальности используемых плагинов и их совместимости с MODX 1.4.7.</li>
<li>Адаптация плагинов, использующих устаревшие функции PHP (например, <code>ereg</code>, <code>split</code>, <code>create_function</code>).</li>
<li>Замена плагинов на более современные или исправление их кода.</li>
</ul>
<h4>4. <strong>Обновление дизайна и frontend-части</strong></h4>
<ul>
<li>Проверка и корректировка кода JavaScript (устаревшие библиотеки jQuery, плагины).</li>
<li>Актуализация CSS, если это необходимо.</li>
</ul>
<h4>5. <strong>Тестирование</strong></h4>
<ul>
<li>Полное тестирование всех функций сайта:
<ul>
<li>Формы отправки.</li>
<li>Работу административной панели.</li>
<li>Кэширование и производительность.</li>
<li>Отправку почты.</li>
</ul>
</li>
<li>Исправление всех обнаруженных ошибок.</li>
</ul>
<hr />
<h3>Технические изменения</h3>
<h4>1. <strong>Исправление функций для работы с базой данных</strong></h4>
<ul>
<li>Замена устаревших функций <code>mysql_*</code> на <code>mysqli_*</code>:
<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950">
<div class="flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none">php</div>
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary">&nbsp;</div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-php"><span class="hljs-comment">// Было</span>
<span class="hljs-variable language_">$this</span>-&gt;conn = <span class="hljs-title function_ invoke__">mysql_connect</span>(<span class="hljs-variable">$host</span>, <span class="hljs-variable">$user</span>, <span class="hljs-variable">$password</span>);
<span class="hljs-title function_ invoke__">mysql_select_db</span>(<span class="hljs-variable">$database</span>, <span class="hljs-variable">$this</span>-&gt;conn);

<span class="hljs-comment">// Стало</span>
<span class="hljs-variable language_">$this</span>-&gt;conn = <span class="hljs-title function_ invoke__">mysqli_connect</span>(<span class="hljs-variable">$host</span>, <span class="hljs-variable">$user</span>, <span class="hljs-variable">$password</span>, <span class="hljs-variable">$database</span>);
</code></div>
</div>
</li>
</ul>
<h4>2. <strong>Совместимость с PHP 7.2+</strong></h4>
<ul>
<li>Устранение ошибок:
<ul>
<li><code>count(): Parameter must be an array or an object that implements Countable</code>.</li>
<li><code>Use of undefined constant</code>.</li>
</ul>
</li>
<li>Добавление проверки типов:
<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950">
<div class="flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none">php</div>
<div class="sticky top-9 md:top-[5.75rem]">
<div class="absolute bottom-0 right-2 flex h-9 items-center">
<div class="flex items-center rounded bg-token-sidebar-surface-primary px-2 font-sans text-xs text-token-text-secondary dark:bg-token-main-surface-secondary">&nbsp;</div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-php"><span class="hljs-keyword">if</span> (<span class="hljs-title function_ invoke__">is_array</span>(<span class="hljs-variable">$variable</span>) &amp;&amp; <span class="hljs-title function_ invoke__">count</span>(<span class="hljs-variable">$variable</span>) &gt; <span class="hljs-number">0</span>) {
    <span class="hljs-comment">// Логика</span>
}
</code></div>
</div>
</li>
</ul>
<h4>3. <strong>Использование современных стандартов</strong></h4>
<ul>
<li>Удалены вызовы устаревших функций, таких как <code>create_function</code>, <code>split</code>, <code>ereg</code>.</li>
<li>Обновление кода на современные аналоги, такие как анонимные функции и регулярные выражения.</li>
</ul>
<h4>4. <strong>Обновление структуры MODX</strong></h4>
<ul>
<li>Перенос пользовательских настроек в конфигурационные файлы.</li>
<li>Оптимизация структуры кэша и кэширования.</li>
</ul>
<hr />
<h3>Этапы реализации</h3>
<ol>
<li>
<p><strong>Подготовка</strong></p>
<ul>
<li>Резервное копирование базы данных и файлов.</li>
<li>Сбор информации о текущем окружении (версия PHP, используемые плагины).</li>
</ul>
</li>
<li>
<p><strong>Обновление ядра MODX</strong></p>
<ul>
<li>Загрузка и установка MODX Evolution 1.4.7.</li>
<li>Перенос кастомных настроек в новую структуру MODX.</li>
</ul>
</li>
<li>
<p><strong>Адаптация пользовательских модулей</strong></p>
<ul>
<li>Исправление кастомных сниппетов.</li>
<li>Обновление плагинов до совместимых версий.</li>
</ul>
</li>
<li>
<p><strong>Тестирование</strong></p>
<ul>
<li>Проверка работы всех функций сайта.</li>
<li>Исправление обнаруженных ошибок.</li>
</ul>
</li>
<li>
<p><strong>Финальная оптимизация</strong></p>
<ul>
<li>Настройка кэширования.</li>
<li>Оптимизация скорости работы сайта.</li>
</ul>
</li>
</ol>
<hr />
<h3>Сроки выполнения</h3>
<p>Общая продолжительность работ: <strong>5&ndash;7 рабочих дней</strong> (в зависимости от сложности кастомного кода и плагинов).</p>
<hr />
<h3>Результат</h3>
<ol>
<li>Сайт, работающий на MODX Evolution 1.4.7.</li>
<li>Полная совместимость с PHP 7.2+.</li>
<li>Исправление всех ошибок, связанных с устаревшими функциями.</li>
<li>Тестирование и обеспечение стабильной работы всех компонентов сайта.</li>
</ol> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/other/obnovlenie-modx-evolution-do-versii-1.4.7-i-adaptaciya-sajta-dlya-raboty-na-sovremennyh-versiyah-php-7.2-i-vyshe/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>MODX REVO умный поиск</title>

<link>https://ifreework.com/blog/modx/modx-revo-umnyj-poisk/</link>

<description><![CDATA[ <h3>Техническое задание</h3>
<p><strong>Название проекта:</strong>&nbsp;Доработка сниппета для поиска в MODX Revo</p>
<p><strong>Цель:</strong>&nbsp;Обеспечить корректный поиск по ресурсу MODX с учетом следующих требований:</p>
<ol>
<li>Поиск должен поддерживать множественные слова в запросе.</li>
<li>Все слова запроса должны присутствовать в поле&nbsp;<code>pagetitle</code>.</li>
<li>Для числовых запросов искать только точные совпадения, окруженные пробелами.</li>
</ol>
<p><strong>Основные задачи:</strong></p>
<ol>
<li>
<p><strong>Обработка поисковой фразы:</strong></p>
<ul>
<li>Разделить запрос на слова с помощью&nbsp;<code>explode(" ", $query)</code>.</li>
<li>Для числовых значений добавить проверку через&nbsp;<code>is_numeric</code>&nbsp;и включение точного поиска с использованием регулярных выражений (<code>REGEXP</code>).</li>
</ul>
</li>
<li>
<p><strong>Генерация условий поиска:</strong></p>
<ul>
<li>Формировать массив условий для каждого слова с использованием&nbsp;<code>LIKE</code>&nbsp;для строк и&nbsp;<code>REGEXP</code>&nbsp;для чисел.</li>
<li>Условия должны объединяться через&nbsp;<code>AND</code>.</li>
</ul>
</li>
<li>
<p><strong>Построение SQL-запроса:</strong></p>
<ul>
<li>Использовать API MODX (или прямой SQL-запрос), чтобы сформировать запрос с учетом всех условий.</li>
<li>Включить вывод итогового SQL-запроса с помощью&nbsp;<code>toSQL()</code>&nbsp;или эквивалента.</li>
</ul>
</li>
<li>
<p><strong>Реализация логики в сниппете:</strong></p>
<ul>
<li>Проверить и интегрировать условия в существующий код поиска.</li>
<li>Обеспечить обработку результатов поиска с корректным отображением.</li>
</ul>
</li>
<li>
<p><strong>Дополнительные задачи:</strong></p>
<ul>
<li>Реализовать возможность изменения целевого поля (<code>pagetitle</code>) через параметры сниппета.</li>
<li>Проверить совместимость с существующим функционалом и шаблонами (<code>tpl</code>).</li>
</ul>
</li>
</ol>
<p><strong>Ожидаемый результат:</strong></p>
<ul>
<li>Сниппет, который выполняет поиск по указанным условиям, возвращает корректные результаты и выводит итоговый SQL-запрос для отладки.</li>
</ul>
<p></p>
<p></p>
<p>Шаблон страницы поиска<br /><br /></p>
<p class="code">{if $searchParam != ''}<br /> {set $resources = $_modx-&gt;runSnippet('!mSearch2Strict', [<br /> 'parents' =&gt; 0,<br /> 'limit' =&gt; 0,<br /> 'showLog' =&gt; 1,<br /> 'showSearchLog' =&gt; 1,<br /> 'queryVar' =&gt; 'search',<br /> 'where' =&gt; '{"class_key":"msProduct"}',<br /> 'returnIds' =&gt; 1,<br /> ])}<br /> {/if}</p>
<p class="code"><br /> <br /> {if $resources &amp;&amp; $searchParam}<br /> {$_modx-&gt;runSnippet('!mFilter2', [<br /> 'parents' =&gt; 0,<br /> 'element' =&gt; 'msProducts',<br /> 'includeThumbs' =&gt; 'thumb',<br /> 'limit' =&gt; 9,<br /> 'onlyIndex' =&gt; false,</p>
<p class="code">'maxLimit' =&gt; 9,<br /> 'sortby' =&gt; '',<br /> 'includeTVs' =&gt; 'main_options',<br /> 'processTVs' =&gt; 'main_options',<br /> 'filters' =&gt; 'parent:categories',<br /> 'resources' =&gt; $resources,<br /> 'values_delimeter' =&gt; ';',<br /> 'suggestionsMaxResults' =&gt; 0,<br /> 'tpls' =&gt; '@FILE chunks/items/item.product.tpl, @FILE chunks/items/item.product_row.tpl',<br /> 'tplOuter' =&gt; '@FILE chunks/parts/search/part.search.mFilter2_outer.tpl',<br /> 'tplFilter.outer.default' =&gt; '@FILE chunks/parts/search/filters/part.search.filter.outer_parent.tpl',<br /> 'tplFilter.row.default' =&gt; '@FILE chunks/parts/search/filters/part.search.filter.parent.tpl',<br /> 'tplPageWrapper' =&gt; '@FILE chunks/base/pagination/base.pagination.wrapper.tpl',<br /> 'tplPage' =&gt; '@FILE chunks/base/pagination/base.pagination.page.tpl',<br /> 'tplPageActive' =&gt; '@FILE chunks/base/pagination/base.pagination.page_active.tpl',<br /> 'tplPageFirst' =&gt; '@INLINE',<br /> 'tplPageLast' =&gt; '@INLINE',<br /> 'tplPagePrev' =&gt; '@FILE chunks/base/pagination/base.pagination.page_prev.tpl',<br /> 'tplPageNext' =&gt; '@FILE chunks/base/pagination/base.pagination.page_next.tpl',<br /> 'tplPageFirstEmpty' =&gt; '@INLINE',<br /> 'tplPageLastEmpty' =&gt; '@INLINE',<br /> 'tplPagePrevEmpty' =&gt; '@FILE chunks/base/pagination/base.pagination.page_prev_empty.tpl',<br /> 'tplPageNextEmpty' =&gt; '@FILE chunks/base/pagination/base.pagination.page_next_empty.tpl',<br /> 'tplPageSkip' =&gt; '@FILE chunks/base/pagination/base.pagination.page_skip.tpl',<br /> ])}<br /> {elseif $searchParam}</p>
<p></p>
<p>сниппет&nbsp;<strong>mSearch2Strict</strong><br /><br /></p>
<p class="code">&lt;?php<br />/** @var modX $modx */<br />/** @var array $scriptProperties */<br />/** @var mSearch2 $mSearch2 */</p>
<p class="code">if (!$modx-&gt;loadClass('msearch2', MODX_CORE_PATH . 'components/msearch2/model/msearch2/', false, true)) {return false;}<br />$mSearch2 = new mSearch2($modx, $scriptProperties);<br />$mSearch2-&gt;pdoTools-&gt;setConfig($scriptProperties);<br />$mSearch2-&gt;pdoTools-&gt;addTime('pdoTools loaded.');</p>
<p class="code"><br />if (empty($queryVar)) {$queryVar = 'query';}<br />if (empty($parentsVar)) {$parentsVar = 'parents';}<br />if (empty($minQuery)) {$minQuery = $modx-&gt;getOption('index_min_words_length', null, 3, true);}<br />if (empty($htagOpen)) {$htagOpen = '';}<br />if (empty($htagClose)) {$htagClose = '';}<br />if (empty($outputSeparator)) {$outputSeparator = "\n";}<br />if (empty($plPrefix)) {$plPrefix = 'mse2_';}<br />$returnIds = !empty($returnIds);<br />$fastMode = !empty($fastMode);</p>
<p class="code">$class = 'modResource';<br />$found = array();<br />$output = null;<br />$query = !empty($_REQUEST[$queryVar])<br /> ? $mSearch2-&gt;getQuery(rawurldecode($_REQUEST[$queryVar]))<br /> : '';</p>
<p class="code">if (empty($resources)) {<br /> if (empty($query) &amp;&amp; isset($_REQUEST[$queryVar])) {<br /> $output = $modx-&gt;lexicon('mse2_err_no_query');<br /> }<br /> elseif (empty($query) &amp;&amp; !empty($forceSearch)) {<br /> $output = $modx-&gt;lexicon('mse2_err_no_query_var');<br /> }<br /> elseif (!empty($query) &amp;&amp; !preg_match('/^[0-9]{2,}$/', $query) &amp;&amp; mb_strlen($query,'UTF-8') &lt; $minQuery) {<br /> $output = $modx-&gt;lexicon('mse2_err_min_query');<br /> }</p>
<p class="code">$modx-&gt;setPlaceholder($plPrefix.$queryVar, $query);</p>
<p class="code">if (!empty($output)) {<br /> return !$returnIds<br /> ? $output<br /> : '';<br /> }<br /> //echo 1; exit;<br /> elseif (!empty($query)) {<br /> <br /> /*<br /> $decodedQuery = str_replace(' ', '%', rawurldecode($_REQUEST[$queryVar]));<br /> //$decodedQuery = rawurldecode($_REQUEST[$queryVar]);<br /> $q = $modx-&gt;newQuery('modResource');<br /> $q-&gt;leftJoin('msProductData', 'Data', 'modResource.id = Data.id');<br /> <br /> $q-&gt;where([<br /> [<br /> 'deleted' =&gt; false,<br /> 'published' =&gt; true,<br /> ],<br /> [<br /> 'pagetitle:LIKE' =&gt; '%' . $decodedQuery . '%',<br /> 'OR:longtitle:LIKE' =&gt; '%' . $decodedQuery . '%',<br /> 'OR:Data.article:LIKE' =&gt; '%' . $decodedQuery . '%'<br /> ]<br /> ]);<br /> */<br /> /*<br /> $q-&gt;where([<br /> [<br /> 'deleted' =&gt; false,<br /> 'published' =&gt; true,<br /> 'pagetitle:REGEXP' =&gt; '(\b' . preg_quote($decodedQuery, '/') . '\b)',<br /> 'OR:longtitle:REGEXP' =&gt; '(\b' . preg_quote($decodedQuery, '/') . '\b)',<br /> 'OR:Data.article:REGEXP' =&gt; '(\b' . preg_quote($decodedQuery, '/') . '\b)',<br /> ]<br /> ]);<br /> // Примените точный поиск, если запрос состоит из нескольких слов<br /> if (strpos($decodedQuery, ' ') !== false) {<br /> $q-&gt;where([<br /> 'deleted' =&gt; false,<br /> 'published' =&gt; true,<br /> 'OR:pagetitle:LIKE' =&gt; '%' . $decodedQuery . '%',<br /> 'OR:longtitle:LIKE' =&gt; '%' . $decodedQuery . '%',<br /> 'OR:Data.article:LIKE' =&gt; '%' . $decodedQuery . '%'<br /> ]);<br /> } else {<br /> $q-&gt;where([<br /> 'deleted' =&gt; false,<br /> 'published' =&gt; true,<br /> 'OR:pagetitle:LIKE' =&gt; '%' . $decodedQuery . '%',<br /> 'OR:longtitle:LIKE' =&gt; '%' . $decodedQuery . '%',<br /> 'OR:Data.article:LIKE' =&gt; '%' . $decodedQuery . '%'<br /> ]);<br /> }</p>
<p class="code">######<br /> $q-&gt;select('`modResource`.`id`');<br /> if ($q-&gt;prepare() &amp;&amp; $q-&gt;stmt-&gt;execute()) {<br /> $exact = $q-&gt;stmt-&gt;fetchAll(PDO::FETCH_COLUMN);<br /> }<br /> */<br /> <br /> $searchTerms = explode(" ", $query);<br /> //$searchTerms = ['2', 'контакта'];<br /> <br /> //print_r($searchTerms);</p>
<p class="code">// Базовые условия<br /> $conditions = [<br /> 'modResource.deleted' =&gt; false,<br /> 'modResource.published' =&gt; true,<br /> ];<br /> <br /> // Формируем условия LIKE для каждого слова<br /> foreach ($searchTerms as $term) {<br /> if (is_numeric($term)) {<br /> $conditions[] = ['AND:pagetitle:REGEXP' =&gt; '(^|\\s)'.$term.'(\\s|$)'];<br /> }else{<br /> $conditions[] = ['AND:pagetitle:LIKE' =&gt; '%' . $term . '%'];<br /> }<br /> }<br /> <br /> // Создаём запрос<br /> $searchQuery = $modx-&gt;newQuery('modResource');<br /> <br /> // Указываем выборку данных<br /> $searchQuery-&gt;select(['id', 'pagetitle', 'content']);<br /> <br /> // Добавляем условия<br /> $searchQuery-&gt;where($conditions);<br /> <br /> // Выводим сгенерированный SQL<br /> <br /> <br /> $ids = array();<br /> $resources = $modx-&gt;getCollection('modResource', $searchQuery);<br /> <br /> //$sql = $searchQuery-&gt;toSQL(); echo $sql;<br /> <br /> foreach ($resources as $resource) {<br /> //echo $resource-&gt;get('pagetitle') . '&lt;br&gt;';<br /> $ids[] = $resource-&gt;get('id');<br /> } <br /> <br /> //echo '&lt;br&gt;&lt;br&gt;';<br /> //echo 'найдено'.count($ids).'&lt;br&gt;'; <br /> //print_r($ids);<br /> <br /> <br /> <br /> if(count($ids)==0){<br /> $found = $mSearch2-&gt;Search($query);<br /> $ids = array_merge($exact, array_keys($found));<br /> }<br /> $resources = implode(',', $ids);<br /> if (empty($ids)) {<br /> if ($returnIds) {<br /> return '';<br /> }<br /> elseif (!empty($query)) {<br /> $output = $modx-&gt;lexicon('mse2_err_no_results');<br /> }<br /> if (!empty($tplWrapper) &amp;&amp; !empty($wrapIfEmpty)) {<br /> $output = $mSearch2-&gt;pdoTools-&gt;getChunk(<br /> $tplWrapper,<br /> array(<br /> 'output' =&gt; $output,<br /> 'total' =&gt; 0,<br /> 'query' =&gt; $query,<br /> 'parents' =&gt; $modx-&gt;getPlaceholder($plPrefix.$parentsVar),<br /> ),<br /> $fastMode<br /> );<br /> }<br /> if ($modx-&gt;user-&gt;hasSessionContext('mgr') &amp;&amp; !empty($showLog)) {<br /> $output .= '&lt;pre class="mSearchLog"&gt;' . print_r($mSearch2-&gt;pdoTools-&gt;getTime(), 1) . '&lt;/pre&gt;';<br /> }<br /> if (!empty($toPlaceholder)) {<br /> $modx-&gt;setPlaceholder($toPlaceholder, $output);<br /> return;<br /> }<br /> else {<br /> return $output;<br /> }<br /> }<br /> }<br />}elseif (strpos($resources, '{') === 0) {<br /> $found = $modx-&gt;fromJSON($resources);<br /> $resources = implode(',', array_keys($found));<br /> unset($scriptProperties['resources']);<br />}</p>
<p class="code">//echo 'выводим 2&lt;br&gt;'; <br />/*----------------------------------------------------------------------------------*/<br />if (empty($returnIds)) {<br /> // Joining tables<br /> $leftJoin = array(<br /> 'mseIntro' =&gt; array(<br /> 'class' =&gt; 'mseIntro',<br /> 'alias' =&gt; 'Intro',<br /> 'on' =&gt; $class . '.id = Intro.resource'<br /> )<br /> );<br /> // Fields to select<br /> $resourceColumns = !empty($includeContent)<br /> ? $modx-&gt;getSelectColumns($class, $class)<br /> : $modx-&gt;getSelectColumns($class, $class, '', array('content'), true);<br /> $select = array(<br /> $class =&gt; $resourceColumns,<br /> 'Intro' =&gt; 'intro'<br /> );<br /> $groupby = $class.'.id, Intro.intro';<br />} else {<br /> $leftJoin = array();<br /> $select = array($class . 'id');<br /> $groupby = $class.'.id';<br />}</p>
<p class="code">// Add custom parameters<br />foreach (array('leftJoin', 'select') as $v) {<br /> if (!empty($scriptProperties[$v])) {<br /> $tmp = $modx-&gt;fromJSON($scriptProperties[$v]);<br /> if (is_array($tmp)) {<br /> $$v = array_merge($$v, $tmp);<br /> }<br /> }<br /> unset($scriptProperties[$v]);<br />}</p>
<p class="code">// Default parameters<br />$default = array(<br /> 'class' =&gt; $class,<br /> 'leftJoin' =&gt; $leftJoin,<br /> 'select' =&gt; $select,<br /> 'groupby' =&gt; $groupby,<br /> 'return' =&gt; !empty($returnIds)<br /> ? 'ids'<br /> : 'data',<br /> 'fastMode' =&gt; $fastMode,<br /> 'nestedChunkPrefix' =&gt; 'msearch2_',<br />);<br />if (!empty($resources)) {<br /> $default['resources'] = is_array($resources)<br /> ? implode(',', $resources)<br /> : $resources;<br />}</p>
<p class="code">// Merge all properties and run!<br />$mSearch2-&gt;pdoTools-&gt;setConfig(array_merge($default, $scriptProperties), false);<br />$mSearch2-&gt;pdoTools-&gt;addTime('Query parameters are prepared.');<br />$rows = $mSearch2-&gt;pdoTools-&gt;run();</p>
<p class="code">$log = '';<br />if ($modx-&gt;user-&gt;hasSessionContext('mgr') &amp;&amp; !empty($showLog)) {<br /> $log .= '&lt;pre class="mSearchLog"&gt;' . print_r($mSearch2-&gt;pdoTools-&gt;getTime(), 1) . '&lt;/pre&gt;';<br />}</p>
<p class="code">// Processing results<br />if (!empty($returnIds)) {<br /> $modx-&gt;setPlaceholder('mSearch.log', $log);<br /> if (!empty($toPlaceholder)) {<br /> $modx-&gt;setPlaceholder($toPlaceholder, $rows);<br /> return '';<br /> }<br /> else {<br /> return $rows;<br /> }<br />}<br />elseif (!empty($rows) &amp;&amp; is_array($rows)) {<br /> $output = array();<br /> foreach ($rows as $k =&gt; $row) {<br /> // Processing main fields<br /> $row['weight'] = isset($found[$row['id']]) ? $found[$row['id']] : '';<br /> $row['intro'] = $mSearch2-&gt;Highlight($row['intro'], $query, $htagOpen, $htagClose);</p>
<p class="code">$row['idx'] = $mSearch2-&gt;pdoTools-&gt;idx++;<br /> $tplRow = $mSearch2-&gt;pdoTools-&gt;defineChunk($row);<br /> $output[] .= empty($tplRow)<br /> ? $mSearch2-&gt;pdoTools-&gt;getChunk('', $row)<br /> : $mSearch2-&gt;pdoTools-&gt;getChunk($tplRow, $row, $fastMode);<br /> }<br /> $mSearch2-&gt;pdoTools-&gt;addTime('Returning processed chunks');<br /> if (!empty($toSeparatePlaceholders)) {<br /> $output['log'] = $log;<br /> $modx-&gt;setPlaceholders($output, $toSeparatePlaceholders);<br /> }<br /> else {<br /> $output = implode($outputSeparator, $output) . $log;<br /> }<br />}<br />else {<br /> $output = $modx-&gt;lexicon('mse2_err_no_results') . $log;<br />}</p>
<p class="code">// Return output<br />if (!empty($tplWrapper) &amp;&amp; (!empty($wrapIfEmpty) || !empty($output))) {<br /> $output = $mSearch2-&gt;pdoTools-&gt;getChunk(<br /> $tplWrapper,<br /> array(<br /> 'output' =&gt; $output,<br /> 'total' =&gt; $modx-&gt;getPlaceholder($mSearch2-&gt;pdoTools-&gt;config['totalVar']),<br /> 'query' =&gt; $modx-&gt;getPlaceholder($plPrefix.$queryVar),<br /> 'parents' =&gt; $modx-&gt;getPlaceholder($plPrefix.$parentsVar),<br /> ),<br /> $fastMode<br /> );<br />}</p>
<p class="code">if (!empty($toPlaceholder)) {<br /> $modx-&gt;setPlaceholder($toPlaceholder, $output);<br />}<br />else {<br /> return $output;<br />}</p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/modx-revo-umnyj-poisk/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Что из себя представляет mini app в Telegram</title>

<link>https://ifreework.com/blog/telegram-boty-mini-app1/chto-iz-sebya-predstavlyaet-mini-app-v-telegram/</link>

<description><![CDATA[ <p><strong>Mini App</strong>&nbsp;в Telegram &mdash; это встроенные веб-приложения, которые работают внутри мессенджера, предоставляя пользователям дополнительные функциональные возможности без необходимости установки сторонних приложений. Они доступны через ботов Telegram и открываются прямо в чате или отдельном окне.</p>
<h3>Возможности Mini App:</h3>
<ol>
<li><strong>Интерактивность</strong>: Поддержка интерактивных интерфейсов, включая формы, галереи и калькуляторы.</li>
<li><strong>Интеграции</strong>: Возможность подключения к внешним API, CRM и базам данных.</li>
<li><strong>Удобная оплата</strong>: Поддержка встроенных платежных систем Telegram для покупок и подписок.</li>
<li><strong>Легкий доступ</strong>: Приложения запускаются мгновенно без установки и занимают меньше ресурсов.</li>
<li><strong>Кроссплатформенность</strong>: Работают на всех устройствах, где установлен Telegram.</li>
</ol>
<h3>Преимущества:</h3>
<ul>
<li><strong>Удобство для пользователей</strong>: Всё в одном месте &mdash; от общения до выполнения задач.</li>
<li><strong>Гибкость для бизнеса</strong>: Легкая настройка автоматизации, поддержки клиентов и продаж.</li>
<li><strong>Экономия времени</strong>: Минимальная разработка и отсутствие необходимости обновления через магазины приложений.</li>
</ul>
<p>Mini Apps идеально подходят для создания маркетинговых кампаний, автоматизации процессов и предоставления уникальных пользовательских сервисов.</p>
<p></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_1.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_2.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_3.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_4.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_5.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_6.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_7.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_8.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_9.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_10.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_11.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_12.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_13.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_14.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_15.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_16.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_17.svg" width="390" height="705" /></p>
<p><img src="https://ifreework.com/assets/images/miniapp/File_18.svg" width="390" height="705" /></p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/telegram-boty-mini-app1/chto-iz-sebya-predstavlyaet-mini-app-v-telegram/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>unserialize php online</title>

<link>https://ifreework.com/blog/unserialize-php-online/</link>

<description><![CDATA[ <script type="text/javascript">
<!--
function as_setAction(){
    jQuery("#feedbackForm_seo form:first")
    .unbind('submit')
    .live('submit',function(){
        if(typeof(as_reqStartCallback)=='function') as_reqStartCallback();
        var as_params = jQuery(this).serialize()+"&ajax_submit=#feedbackForm_seo";
        jQuery.ajax({
          url: "/rss/",
          type: "post",
          data: as_params,
          dataType: 'html',
          success: function(response){
            if(typeof(as_reqCompletCallback)=='function') as_reqCompletCallback();
            if(response=='success' || response.length <= 0){
                jQuery("#feedbackForm_seo").html("Спасибо! Ваше письмо отправлено.");
                if(typeof(as_successCallback)=='function') as_successCallback();
            }else{
                jQuery("#feedbackForm_seo").html(response);
            }
          },
          error: function(jqXHR,textStatus,errorThrown){
            alert(textStatus+' '+jqXHR.status+' '+errorThrown);
          }
        });
        return false;
    });
}
jQuery(document).bind('ready',as_setAction);
//-->
</script>
<div id="feedbackForm_seo">
 <form action="blog/unserialize-php-online/"  method="post">
  <p><b>Превести в человеческий вид:</b></p>

<textarea title="Серлизованная строка" name="otext" id="otext"></textarea>	 
<div class="line">
	<br>
  <p><input type="submit"  value="сделать"></p>
</div>	
 </form>
	[!unserialize-php-online!]
</div>

 ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/unserialize-php-online/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Определить IP сайта</title>

<link>https://ifreework.com/blog/show_ip/</link>

<description><![CDATA[ <script type="text/javascript">
<!--
function as_setAction(){
    jQuery("#feedbackForm_seo form:first")
    .unbind('submit')
    .live('submit',function(){
        if(typeof(as_reqStartCallback)=='function') as_reqStartCallback();
        var as_params = jQuery(this).serialize()+"&ajax_submit=#feedbackForm_seo";
        jQuery.ajax({
          url: "/rss/",
          type: "post",
          data: as_params,
          dataType: 'html',
          success: function(response){
            if(typeof(as_reqCompletCallback)=='function') as_reqCompletCallback();
            if(response=='success' || response.length <= 0){
                jQuery("#feedbackForm_seo").html("Спасибо! Ваше письмо отправлено.");
                if(typeof(as_successCallback)=='function') as_successCallback();
            }else{
                jQuery("#feedbackForm_seo").html(response);
            }
          },
          error: function(jqXHR,textStatus,errorThrown){
            alert(textStatus+' '+jqXHR.status+' '+errorThrown);
          }
        });
        return false;
    });
}
jQuery(document).bind('ready',as_setAction);
//-->
</script>
<div id="feedbackForm_seo">
 <form action="blog/show_ip/"  method="post">
  <p><b>Превести в человеческий вид:</b></p>
<div class="inp">	
	<input id="oemail" type="text" title="URL сайта" onfocus="this.select()" name="time" value="">
	 </div>
<div class="line">
  <p><input type="submit"  value="сделать"></p>
</div>	
 </form>
	[!show_ip!]
</div>

 ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/show_ip/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>тиньков эквайригн тиньков</title>

<link>https://ifreework.com/blog/other/tinkov-ekvajrign-tinkov/</link>

<description><![CDATA[ <p>с корзины сделать <a href="https://ifreework.com/assets/files/archive.zip">ссылку</a> на&nbsp;tinkoff_form.php<br />в админке тинькова прописать&nbsp;tinkoff.php</p>
<p></p>
<p>require_once $_SERVER["DOCUMENT_ROOT"]."/wp-load.php";</p>
<p><br />// $ord_id = $order-&gt;get_items();<br />// echo '#'.$order_id;</p>
<p>//print_r($_SESSION);<br />$f = WC()-&gt;cart-&gt;total;<br />//$items = WC()-&gt;cart-&gt;get_cart();<br />//echo apply_filters( 'woocommerce_cart_totals_fee_html', $cart_totals_fee_html, $fee );<br />$cart_data = WC()-&gt;session-&gt;get('cart');</p>
<p>// echo '&lt;pre&gt;';<br /> // print_r($cart_data);<br /> // echo '&lt;/pre&gt;';</p>
<p></p>
<p>//SELECT * FROM `wp_woocommerce_sessions` WHERE `session_value` LIKE '%bd0ee4a96ad3e5b8a48f00cb4e3a5865%' key<br />//$cart_data[array_keys($cart_data)[0]]['key']<br />global $wpdb;<br />if(!empty($cart_data[array_keys($cart_data)[0]]['key'])){<br />$fivesdrafts = $wpdb-&gt;get_results( "SELECT * FROM `wp_woocommerce_sessions` WHERE `session_value` LIKE '%".$cart_data[array_keys($cart_data)[0]]['key']."%' ORDER BY `wp_woocommerce_sessions`.`session_id` ASC" );<br /> foreach ( $fivesdrafts as $fivesdraft ) {<br /> $re = unserialize($fivesdraft-&gt;session_value);<br /> }<br />}</p>
<p>//echo "SELECT * FROM `wp_woocommerce_sessions` WHERE `session_value` LIKE '%".$cart_data[array_keys($cart_data)[0]]['key']."%' ORDER BY `wp_woocommerce_sessions`.`session_id` ASC&lt;br&gt;";<br />// foreach ($re as $key =&gt; $value) {<br />// $rew = unserialize($value);</p>
<p>// echo $key.'###&lt;pre&gt;';<br />// print_r($rew);<br />// echo '&lt;/pre&gt;';<br />// }<br />//$oo = $order-&gt;get_id();</p>
<p>$user_info = unserialize($re['customer']);<br />$user_cart = unserialize($re['guest_info']);<br />$cart_det = unserialize($re['cart']);<br />$cart_totals = unserialize($re['cart_totals']);//cart_totals</p>
<p>//$e = WC()-&gt;get_billing_phone( 'view' );</p>
<p><br /> // echo '&lt;pre&gt;';<br /> // print_r($user_cart);<br /> // print_r($user_info);<br /> // echo '&lt;/pre&gt;';<br /> if(empty($user_cart['billing_phone']) &amp;&amp; !empty($user_info['phone'])){<br /> // фикс для авторизованных<br /> $user_cart['billing_company'] = $user_info['company'];<br /> $user_cart['billing_email'] = $user_info['email'];<br /> $user_cart['billing_phone'] = $user_info['phone'];<br /> $user_cart['billing_address_1'] = $user_info['shipping_address'];<br /> $user_cart['billing_address_2'] = $user_info['shipping_address_2'];<br /> $user_cart['billing_city'] = $user_info['shipping_city'];<br /> $user_cart['billing_state'] = $user_info['shipping_state'];<br /> $user_cart['billing_postcode'] = $user_info['shipping_postcode'];<br /> $user_cart['billing_country'] = $user_info['country'];</p>
<p>}</p>
<p>//echo 'order'.$_COOKIE["order"];</p>
<p>if(!empty($_COOKIE["order"])){<br /> //echo 'нет номра';<br /> $order2 = wc_get_order($_COOKIE["order"] ); //2440.00 $order2-&gt;total<br /> if($order2-&gt;total!=$cart_totals['subtotal']){<br /> //пересчитать заказ<br /> $order2-&gt;remove_order_items( 'line_item' );<br /> foreach ($cart_det as $key =&gt; $value) {<br /> unset($args);<br /> if(is_array($value['variation'])){<br /> $args = array( <br /> 'variation' =&gt; array( 'attribute_pa_size' =&gt; $value['variation']['attribute_pa_size']),<br /> );<br /> }<br /> $order2-&gt;add_product( get_product( $value['product_id'] ), 1, $args );<br /> }<br /> }<br />}</p>
<p>if(empty($_COOKIE["order"]) ){ //empty($re['order_awaiting_payment']) &amp;&amp; <br /> //echo 'нет номра';<br /> //SELECT * FROM `f50832_ttw`.`wp_woocommerce_order_itemmeta` WHERE (CONVERT(`meta_id` USING utf8) LIKE '%66445%' OR CONVERT(`order_item_id` USING utf8) LIKE '%66445%' OR CONVERT(`meta_key` USING utf8) LIKE '%66445%' OR CONVERT(`meta_value` USING utf8) LIKE '%66445%')</p>
<p>// $fivesdrafts = $wpdb-&gt;get_results( "SELECT * FROM `wp_wacv_abandoned_cart_record` WHERE `id` = '".$re['wacv_cart_record_id']."'" );<br /> // foreach ( $fivesdrafts as $fivesdraft ) {<br /> // //$re = unserialize($fivesdraft-&gt;session_value);<br /> // $re['order_awaiting_payment'] = $fivesdraft-&gt;recovered_cart;<br /> // }<br /> if(empty($user_cart['billing_phone'])){<br /> if(!empty($_COOKIE["phone"])){<br /> $user_cart['billing_phone'] = $_COOKIE["phone"];<br /> }<br /> }<br /> if(!empty($user_cart['billing_phone'])){<br /> $order = wc_create_order();<br /> $address = array(<br /> 'first_name' =&gt; $user_cart['billing_company'],<br /> 'last_name' =&gt; '',<br /> 'company' =&gt; '',<br /> 'email' =&gt; $user_cart['billing_email'],<br /> 'phone' =&gt; $user_cart['billing_phone'],<br /> 'address_1' =&gt; $user_cart['billing_address_1'],<br /> 'address_2' =&gt; $user_cart['billing_address_2'],<br /> 'city' =&gt; $user_cart['billing_city'],<br /> 'state' =&gt; $user_cart['billing_state'],<br /> 'postcode' =&gt; $user_cart['billing_postcode'],<br /> 'country' =&gt; $user_cart['billing_country']<br /> );<br /> foreach ($cart_det as $key =&gt; $value) {<br /> unset($args);<br /> if(is_array($value['variation'])){<br /> $args = array( <br /> 'variation' =&gt; array( 'attribute_pa_size' =&gt; $value['variation']['attribute_pa_size']),<br /> );<br /> }<br /> $order-&gt;add_product( get_product( $value['product_id'] ), 1, $args );<br /> } <br /> $order-&gt;set_address( $address, 'billing' );<br /> $order-&gt;set_address( $address, 'shipping' );<br /> $item = new WC_Order_Item_Shipping();<br /> $item-&gt;set_method_title( "Доставка" ); // название<br /> $item-&gt;set_method_id( "flat_rate:14" ); // указываем ID существующего способа доставки<br /> $item-&gt;set_total( 450 ); // стоимость доставки (необязательно)<br /> $order-&gt;add_item( $item );<br /> $order-&gt;calculate_totals();<br /> $order-&gt;update_status( 'pending payment' );<br /> $order-&gt;add_order_note( 'Заказ создан' );<br /> $re['order_awaiting_payment'] = $order-&gt;id; <br /> //setcookie("order", $order-&gt;id, time()+3600);<br /> setcookie("order", $order-&gt;id, time()+3600, '/','.'.$_SERVER['HTTP_HOST']);<br /> header("Refresh: 0");<br /> //sleep(1);<br /> //DELETE FROM `wp_woocommerce_order_items` WHERE `wp_woocommerce_order_items`.`order_item_id` = 9093<br /> }else{<br /> // if(empty($_COOKIE["phone_err"])){<br /> // setcookie("phone_err", 1, time()+3600, '/','.'.$_SERVER['HTTP_HOST']);<br /> // header("Refresh: 0");<br /> // }<br /> //header("Refresh: 0");<br /> //echo '&lt;p&gt;Вы не указали номер телефона! Вернитесь к оформлению заказа.&lt;/p&gt;&lt;style&gt;.tinkoffPayRow{display:none}&lt;/style&gt;';<br /> } <br />}</p>
<p>if(!empty($_COOKIE["order"])){<br /> $re['order_awaiting_payment'] = $_COOKIE["order"];<br />}</p>
<p></p>
<p></p>
<p>//if($user_info['phone'] != $user_cart['phone']){}<br /> //$user_info = $user_cart;<br /> $user_info['first_name'] = $user_cart['billing_company'];<br /> $user_info['last_name'] = '';<br /> $user_info['email'] = $user_cart['billing_email'];<br /> $user_info['phone'] = $user_cart['billing_phone'];</p>
<p><br />//$user_info['phone'] = '+799923455665';</p>
<p>//$total = str_replace(".", "", $f);<br />//$total = $f;<br />$total = number_format($f, 0, '.', '');</p>
<p></p>
<p>?&gt;<br /> &lt;script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"&gt;&lt;/script&gt;<br /> &lt;script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"&gt;&lt;/script&gt;<br /> &lt;script&gt;<br /> $(document).ready(function(){<br /> $('#total').val(&lt;? echo $total; ?&gt;);</p>
<p>var value = JSON.stringify({<br /> "Email": '&lt;? echo $user_info['email']; ?&gt;',<br /> "Phone": '&lt;? echo $user_info['phone']; ?&gt;',<br /> "EmailCompany": '&lt;? echo $user_info['email']; ?&gt;',<br /> "Taxation": "patent",<br /> "Items": [<br /> {<br /> "Name": '&lt;? echo $user_info['first_name'].' '.$user_info['last_name']; ?&gt;',<br /> "Price": '&lt;? echo $total; ?&gt;00',<br /> "Quantity": 1.00,<br /> "Amount": '&lt;? echo $total; ?&gt;00',<br /> "PaymentMethod": "full_prepayment",<br /> "PaymentObject": "service",<br /> "Tax": "none"<br /> }<br /> ]<br /> }); <br /> $('#receipt').val(value);<br /> console.log(value);<br /> $("#frm1").submit();<br /> }); <br /> &lt;/script&gt;<br /> &lt;?<br /> // тест 1680446950739DEMO<br /> // боевой 1680446950739<br /> ?&gt;<br /> &lt;form name="TinkoffPayForm" onsubmit="pay(this); return false;" id="frm1" style="display: none"&gt;<br /> &lt;input class="tinkoffPayRow" type="hidden" name="terminalkey" value="1680446950739"&gt;<br /> &lt;input class="tinkoffPayRow" type="hidden" name="frame" value="false"&gt;<br /> &lt;input class="tinkoffPayRow" type="hidden" name="language" value="ru"&gt; <br /> &lt;input class="tinkoffPayRow" type="hidden" value="&lt;? echo $total; ?&gt;" name="amount"&gt;<br /> &lt;input class="tinkoffPayRow" type="hidden" value="&lt;? echo $re['order_awaiting_payment']; ?&gt;" name="order"&gt;<br /> &lt;input class="tinkoffPayRow" type="hidden" value="Оплата заказа в магазине time2win.ru" name="description"&gt;<br /> &lt;input class="tinkoffPayRow" type="hidden" value="&lt;? echo $user_info['first_name'].' '.$user_info['last_name']; ?&gt;" name="name"&gt;<br /> &lt;input class="tinkoffPayRow" type="hidden" value="&lt;? echo $user_info['email']; ?&gt;" name="email"&gt;<br /> &lt;input class="tinkoffPayRow" type="hidden" value="&lt;? echo $user_info['phone']; ?&gt;" name="phone"&gt;<br /> <br /> &lt;input class="tinkoffPayRow" type="hidden" name="receipt" id="receipt" value=""&gt;<br /> &lt;input class="tinkoffPayRow" type="submit" value="Оплатить онлайн картой"&gt;<br /> &lt;/form&gt;</p>
<p><code>&nbsp;</code></p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/other/tinkov-ekvajrign-tinkov/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>unserialize online</title>

<link>https://ifreework.com/blog/unserialize-online/</link>

<description><![CDATA[ <script type="text/javascript">
function selectText(){
    var oTextBox = document.getElementById('someTextField');
    oTextBox.focus();
    oTextBox.select();
}
	// onfocus="this.select()"
	//id="oemail"
</script> 

<div id="feedbackForm_seo">
	 <form action="blog/unserialize-online/"  method="get">
		<p><b>Превести в человеческий вид:</b></p>
		<!--div class="textar">	
			<textarea rows="10" cols="45" name="unserialize"></textarea>
		</div-->
		<div class="inp">	
			<input id="oemail" type="text" title="E-mail" onfocus="this.select()" name="rr" value="">
		</div>
		<div class="line">
		  <p><input type="submit"  value="Unserialize"></p>
		</div>	
	 </form>
	[!unserialize!]
</div>

 ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/unserialize-online/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Письма с сайта попадают в спам</title>

<link>https://ifreework.com/blog/other/pisma-s-sajta-popadayut-v-spam/</link>

<description><![CDATA[ <p>Довольно часто при не корректной найтройке почтового домена письма начинают не доходить до клиентов, а затем и до менеджеров.<br />Всё это можно исправить благодаря настройке почтового сервера, способа отправки писем с сайта и почтовых клиентов.<br /><br />Иногда бывает так, что приходится ещё и вытаскивать сайт из спам баз, чёрных списков, когда даже правильная настройка сервера не помагает.<br /><br />Всё это можно исправить, напишите мне, указав адрес вашего сайта</p>
<p>Проверить качество е-mail&nbsp;<a href="https://www.mail-tester.com">https://www.mail-tester.com</a></p>
<p>Проверить DKIM&nbsp;<a href="https://dkimcore.org/c/keycheck">https://dkimcore.org/c/keycheck</a></p>
<p></p>
<p><img src="https://ifreework.com/assets/images/spamemail/screenshot-2020-05-20-at-10.25.35.png" width="100%" /></p>
<p></p>
<p><img src="https://ifreework.com/assets/images/spamemail/screenshot-2020-05-20-at-10.24.38.png" width="100%" /></p>
<p></p>
<div class="order"><a href="https://ifreework.com/#order" onclick="return true;">Я не хочу спама!</a></div> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/other/pisma-s-sajta-popadayut-v-spam/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Сообщить о ложном срабатывании антивируса на ваш сайт</title>

<link>https://ifreework.com/blog/soobshhit-o-lozhnom-srabatyvanii-antivirusa-na-vash-sajt/</link>

<description><![CDATA[ <div class="messageContent">
<article>
<blockquote class="messageText SelectQuoteContainer ugc baseHtml">AegisLab:&nbsp;&nbsp;<a href="mailto:support@aegislab.com">support@aegislab.com</a><br /><br />Agnitum:&nbsp;&nbsp;<a href="mailto:trojans@agnitum.com">trojans@agnitum.com</a><br /><br />Ahnlab:&nbsp;&nbsp;<a href="mailto:e-support@ahnlab.com">e-support@ahnlab.com</a>,&nbsp;<a href="mailto:samples@ahnlab.com">samples@ahnlab.com</a><br /><br />Alibaba:&nbsp;&nbsp;<a href="mailto:virustotal@list.alibaba">virustotal@list.alibaba</a>-inc.com<br /><br />Alyac (Estsoft):&nbsp;&nbsp;<a href="mailto:esrc@estsecurity.com">esrc@estsecurity.com</a><br /><br />Antivir:&nbsp;&nbsp;<a href="mailto:cleanset@avira.com">cleanset@avira.com</a>,&nbsp;<a href="mailto:virus_malware@avira.com">virus_malware@avira.com</a>,&nbsp;<a href="mailto:virus@avira.com">virus@avira.com</a><br /><br />Antiy:&nbsp;&nbsp;<a href="mailto:avlsdk_support_vt@antiy.cn">avlsdk_support_vt@antiy.cn</a><br /><br />Avast:&nbsp;&nbsp;<a href="mailto:virus@avast.com">virus@avast.com</a><br /><br />AVG:&nbsp;&nbsp;<a href="http://www.avg.com/submit-sample" target="_blank" class="externalLink" rel="nofollow">http://www.avg.com/submit-sample</a><br /><a href="http://www.avg.com/us-en/whitelist" target="_blank" class="externalLink" rel="nofollow">http://www.avg.com/us-en/whitelist</a><br /><br />Baidu:&nbsp;&nbsp;<a href="mailto:bav@baidu.com">bav@baidu.com</a>,&nbsp;<a href="mailto:gaoyingchun@baidu.com">gaoyingchun@baidu.com</a><br /><br />BitDefender:&nbsp;&nbsp;<a href="mailto:virus_submission@bitdefender.com">virus_submission@bitdefender.com</a><br /><br />Bkav:&nbsp;&nbsp;<a href="mailto:fpreport@bkav.com">fpreport@bkav.com</a>,&nbsp;<a href="mailto:bkav@bkav.com">bkav@bkav.com</a><br /><br />ByteHero:&nbsp;&nbsp;<a href="mailto:bytehero@163.com">bytehero@163.com</a><br /><br />ClamAV:&nbsp;&nbsp;<a href="http://www.clamav.net/reports/fp" target="_blank" class="externalLink" rel="nofollow">http://www.clamav.net/reports/fp</a><br /><br />CMC:&nbsp;&nbsp;<a href="mailto:vulambang@cmcinfosec.com">vulambang@cmcinfosec.com</a>,&nbsp;<a href="mailto:support.is@cmclab.net">support.is@cmclab.net</a><br /><br />Comodo:&nbsp;&nbsp;<a href="mailto:malwaresubmit@avlab.comodo.com">malwaresubmit@avlab.comodo.com</a><br /><br />CrowdStrike:&nbsp;&nbsp;<a href="mailto:VTscanner@crowdstrike.com">VTscanner@crowdstrike.com</a><br /><br />Cybereason:&nbsp;&nbsp;<a href="mailto:vt-feedback@cybereason.com">vt-feedback@cybereason.com</a><br /><br />Cylance:&nbsp;&nbsp;<a href="mailto:cylancefilesubmit@cylance.com">cylancefilesubmit@cylance.com</a><br /><br />CyRadar:&nbsp;&nbsp;<a href="mailto:virustotal@cyradar.com">virustotal@cyradar.com</a><br /><br />DNS8:&nbsp;&nbsp;<a href="mailto:dns8@layer8.pt">dns8@layer8.pt</a><br /><br />DrWeb:&nbsp;&nbsp;<a href="mailto:vms@drweb.com">vms@drweb.com</a><br /><br />eGambit (Tehtris):&nbsp;&nbsp;<a href="https://tehtris.com/egambit_fp.php" target="_blank" class="externalLink" rel="nofollow">https://tehtris.com/egambit_fp.php</a><br /><a href="mailto:virus@tehtri-security.com">virus@tehtri-security.com</a><br /><br />Emsisoft:&nbsp;&nbsp;<a href="mailto:submit@emsisoft.com">submit@emsisoft.com</a>&nbsp;or&nbsp;<a href="mailto:fp@emsisoft.com">fp@emsisoft.com</a>&nbsp;(false positives)<br /><a href="https://www.emsisoft.com/en/support/contact/" target="_blank" class="externalLink" rel="nofollow">https://www.emsisoft.com/en/support/contact/</a><br /><br />Endgame:&nbsp;&nbsp;<a href="mailto:info@endgame.com">info@endgame.com</a><br /><br />ESET:&nbsp;&nbsp;<a href="https://support.eset.com/kb141/?page=content&amp;id=SOLN141" target="_blank" class="externalLink" rel="nofollow">https://support.eset.com/kb141/?page=content&amp;id=SOLN141</a><br /><br />F-Prot:&nbsp;&nbsp;<a href="mailto:viruslab@f-prot.com">viruslab@f-prot.com</a><br /><br />F-Secure:&nbsp;&nbsp;<a href="mailto:spyware-samples@f-secure.com">spyware-samples@f-secure.com</a>,&nbsp;<a href="mailto:vsamples@f-secure.com">vsamples@f-secure.com</a><br /><br />Forcepoint (websense):&nbsp;&nbsp;<a href="mailto:suggest@forcepoint.com">suggest@forcepoint.com</a><br /><br />Fortinet:&nbsp;&nbsp;<a href="mailto:submitvirus@fortinet.com">submitvirus@fortinet.com</a><br /><br />GData:&nbsp;&nbsp;<a href="https://www.gdatasoftware.com/faq/consumer/submit-a-suspicious-file-app-or-url" target="_blank" class="externalLink" rel="nofollow">https://www.gdatasoftware.com/faq/consumer/submit-a-suspicious-file-app-or-url</a><br /><br />Hacksoft:&nbsp;&nbsp;<a href="mailto:virus@hacksoft.com.pe">virus@hacksoft.com.pe</a><br /><br />Hauri:&nbsp;&nbsp;<a href="mailto:viruslab@hauri.co.kr">viruslab@hauri.co.kr</a><br /><br />Ikarus:&nbsp;&nbsp;<a href="mailto:fp@ikarus.at">fp@ikarus.at</a>,&nbsp;<a href="mailto:samples@ikarus.at">samples@ikarus.at</a><br /><br />Invincea:&nbsp;&nbsp;<a href="mailto:info@invincea.com">info@invincea.com</a><br /><br />Jiangmin:&nbsp;&nbsp;<a href="mailto:support@jiangmin.com">support@jiangmin.com</a>,&nbsp;<a href="mailto:shaojia@jiangmin.com">shaojia@jiangmin.com</a><br /><br />K7:&nbsp;&nbsp;<a href="mailto:reportfp@labs.k">reportfp@labs.k</a>7computing.com,&nbsp;<a href="mailto:k7viruslab@labs.k">k7viruslab@labs.k</a>7computing.com<br /><br />Kaspersky:&nbsp;&nbsp;<a href="mailto:newvirus@kaspersky.com">newvirus@kaspersky.com</a><br /><br />Kingsoft (Cheetah):&nbsp;&nbsp;<a href="mailto:operation@cmcm.com">operation@cmcm.com</a><br /><br />MAX (SaintSecurity):&nbsp;&nbsp;<a href="mailto:root@malwares.com">root@malwares.com</a><br /><br />McAfee:&nbsp;&nbsp;<a href="mailto:virus_research@mcafee.com">virus_research@mcafee.com</a><br /><br />McAfee-GW:&nbsp;&nbsp;<a href="mailto:virus_research_gateway@avertlabs.com">virus_research_gateway@avertlabs.com</a><br /><br />Microsoft:&nbsp;&nbsp;<a href="mailto:mmpc@submit.microsoft.com">mmpc@submit.microsoft.com</a><br /><br />Microworld:&nbsp;&nbsp;<a href="mailto:samples@escanav.com">samples@escanav.com</a><br /><br />NANO:&nbsp;&nbsp;<a href="http://www.nanoav.ru/index.php?option=com_content&amp;view=article&amp;id=15&amp;Itemid=83&amp;lang=en" target="_blank" class="externalLink" rel="nofollow">http://www.nanoav.ru/index.php?option=com_content&amp;view=article&amp;id=15&amp;Itemid=83&amp;lang=en</a><br /><a href="mailto:false@nanoav.ru">false@nanoav.ru</a><br /><br />Norman:&nbsp;&nbsp;<a href="mailto:analysis@norman.no">analysis@norman.no</a>,&nbsp;<a href="mailto:support@norman.com">support@norman.com</a><br /><br />nProtect (Inca):&nbsp;&nbsp;<a href="mailto:virus_info@inca.co.kr">virus_info@inca.co.kr</a><br /><br />Palo Alto:&nbsp;&nbsp;<a href="mailto:vt-pan-false-positive@paloaltonetworks.com">vt-pan-false-positive@paloaltonetworks.com</a><br /><br />Panda:&nbsp;&nbsp;<a href="mailto:falsepositives@pandasecurity.com">falsepositives@pandasecurity.com</a>,&nbsp;<a href="mailto:virussamples@pandasecurity.com">virussamples@pandasecurity.com</a><br /><br />Rising:&nbsp;&nbsp;<a href="http://mailcenter.rising.com.cn/filecheck_en/" target="_blank" class="externalLink" rel="nofollow">http://mailcenter.rising.com.cn/filecheck_en/</a><br /><br />QuickHeal:&nbsp;&nbsp;<a href="mailto:viruslab@quickheal.com">viruslab@quickheal.com</a><br /><br />Sentinel One:&nbsp;&nbsp;<a href="mailto:report@sentinelone.com">report@sentinelone.com</a><br /><br />Sophos:&nbsp;&nbsp;<a href="mailto:samples@sophos.com">samples@sophos.com</a><br /><br />Symantec:&nbsp;&nbsp;<a href="https://submit.symantec.com/false_positive/" target="_blank" class="externalLink" rel="nofollow">https://submit.symantec.com/false_positive/</a>,&nbsp;<a href="mailto:avsubmit@symantec.com">avsubmit@symantec.com</a><br /><br />Tencent:&nbsp;&nbsp;<a href="mailto:TAVfp@tencent.com">TAVfp@tencent.com</a><br /><br />TheHacker:<br /><br />Trapmine:&nbsp;&nbsp;<a href="mailto:virus@hacksoft.com.pe">virus@hacksoft.com.pe</a>,&nbsp;<a href="mailto:falsopositivo@hacksoft.com.pe">falsopositivo@hacksoft.com.pe</a><br /><br /><a href="mailto:fp@trapmine.com">fp@trapmine.com</a><br /><br />TrendMicro: &bull;&nbsp;&nbsp;<a href="https://www.trendmicro.com/en_us/about/legal/detection-reevaluation.html" target="_blank" class="externalLink" rel="nofollow">https://www.trendmicro.com/en_us/about/legal/detection-reevaluation.html</a><br />&bull;&nbsp;&nbsp;<a href="mailto:virus@trendmicro.com">virus@trendmicro.com</a>,&nbsp;<a href="mailto:virus_doctor@trendmicro.com">virus_doctor@trendmicro.com</a><br />&bull;&nbsp;&nbsp;<a href="http://esupport.trendmicro.com/solution/en-us/1037634.aspx" target="_blank" class="externalLink" rel="nofollow">http://esupport.trendmicro.com/solution/en-us/1037634.aspx</a><br /><br />Webroot:&nbsp;&nbsp;<a href="https://www.webroot.com/us/en/business/support/vendor-dispute-contact-us" target="_blank" class="externalLink" rel="nofollow">https://www.webroot.com/us/en/business/support/vendor-dispute-contact-us</a><br /><br />Trustwave:&nbsp;&nbsp;<a href="mailto:ADavidi@trustwave.com">ADavidi@trustwave.com</a><br /><br />VBA32:&nbsp;&nbsp;<a href="mailto:feedback@anti-virus.by">feedback@anti-virus.by</a><br /><br />VirusDie:&nbsp;&nbsp;<a href="mailto:partners@virusdie.com">partners@virusdie.com</a><br /><br />WhiteArmor:&nbsp;&nbsp;<a href="mailto:obu@whitearmor.ai">obu@whitearmor.ai</a><br /><br />Yandex:&nbsp;&nbsp;<a href="mailto:yandex-antivir@support.yandex.ru">yandex-antivir@support.yandex.ru</a><br /><br />Zillya:&nbsp;&nbsp;<a href="mailto:virus@zillya.com">virus@zillya.com</a><br /><br />Zoner:&nbsp;&nbsp;<a href="mailto:false@zonerantivirus.com">false@zonerantivirus.com</a>
<div class="messageTextEndMarker"></div>
</blockquote>
</article>
</div> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/soobshhit-o-lozhnom-srabatyvanii-antivirusa-na-vash-sajt/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>mod-pagespeed для Debian 8</title>

<link>https://ifreework.com/blog/mod-pagespeed-dlya-debian-8/</link>

<description><![CDATA[ <p><span>Для установки модуля потребуется добавить репозиторий на сервер:</span><br /><span>wget packages-repo0.fv.ee/fv.key -O - |apt-key add -</span><br /><span>echo "deb&nbsp;</span><a href="http://packages-repo0.fv.ee/" target="_blank">http://packages-repo0.fv.ee/</a><span>&nbsp;jessie main" &gt; /etc/apt/sources.list.d/fastvps-packages.list</span><br /><span>Далее обновление списка пакетов и установка</span><br /><span>apt-get update</span><br /><span>apt-get install nginx-module-pagespeed</span><br /><br /><span>После установки потребуется подключить модуль в основной конфигурационный файл nginx - /etc/nginx/nginx.conf</span><br /><span>load_module "/usr/lib/nginx/modules/ngx_pagespeed.so/ngx_pagespeed.so";</span></p>
<p><span><span>Далее, в каждый блок server требуется добавить следующие директивы:</span><br /><span>pagespeed On;</span><br /><span>pagespeed FileCachePath "/var/cache/ngx_pagespeed/";</span><br /><span>pagespeed EnableFilters combine_css,combine_javascript;</span></span></p>
<p><span><span>и перезагружаем&nbsp;<strong>nginx -s reload</strong></span></span></p>
<p><span><span><strong></strong></span></span>Очистка кеша rm -rf /var/cache/ngx_pagespeed/</p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/mod-pagespeed-dlya-debian-8/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>unixtime</title>

<link>https://ifreework.com/blog/unixtime/</link>

<description><![CDATA[ <script type="text/javascript">
function selectText(){
    var oTextBox = document.getElementById('someTextField');
    oTextBox.focus();
    oTextBox.select();
}
    (function () {
        const dateInput = document.getElementById('dateinput');

        dateInput.addEventListener('input', (event) => {
            let value = dateInput.value.replace(/\D/g, ''); // Удаляем все нецифровые символы
            if (value.length > 6) value = value.slice(0, 6); // Ограничение длины строки

            // Добавляем точки для форматирования даты
            if (value.length >= 2) value = value.slice(0, 2) + '.' + value.slice(2);
            if (value.length >= 5) value = value.slice(0, 5) + '.' + value.slice(5);

            dateInput.value = value; // Устанавливаем отформатированное значение
        });	
    }());	

</script> 
<script type="text/javascript">
<!--
function as_setAction(){
    jQuery("#feedbackForm_seo form:first")
    .unbind('submit')
    .live('submit',function(){
        if(typeof(as_reqStartCallback)=='function') as_reqStartCallback();
        var as_params = jQuery(this).serialize()+"&ajax_submit=#feedbackForm_seo";
        jQuery.ajax({
          url: "/rss/",
          type: "post",
          data: as_params,
          dataType: 'html',
          success: function(response){
            if(typeof(as_reqCompletCallback)=='function') as_reqCompletCallback();
            if(response=='success' || response.length <= 0){
                jQuery("#feedbackForm_seo").html("Спасибо! Ваше письмо отправлено.");
                if(typeof(as_successCallback)=='function') as_successCallback();
            }else{
                jQuery("#feedbackForm_seo").html(response);
            }
          },
          error: function(jqXHR,textStatus,errorThrown){
            alert(textStatus+' '+jqXHR.status+' '+errorThrown);
          }
        });
        return false;
    });
}
jQuery(document).bind('ready',as_setAction);
//-->
</script>
<div id="feedbackForm_seo">
 <form action="blog/unixtime/"  method="post">
  <p><b>Превести в человеческий вид:</b></p>
<div class="inp" style="float: none;">	
	<input id="oemail" type="text"onfocus="this.select()" name="time" value="[!unixtime?&tpl=`1`!]">
	 </div>
	 <br>
	 <div class="inp" style="float: none;">	
	<input id="dateInput" type="text" onfocus="this.select()" name="dateinput" value="[!unixtime?&tpl=`2`!]" placeholder="дд.мм.гг">
	 </div>
	 <br>
<div class="line">
  <p><input type="submit"  value="сделать"></p>
</div>	
 </form>
</div>

 ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/unixtime/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Пакетное преобразование дат в UNIXtime</title>

<link>https://ifreework.com/blog/paketnoe-preobrazovanie-dat-v-unixtime/</link>

<description><![CDATA[ <script type="text/javascript">
function selectText(){
    var oTextBox = document.getElementById('someTextField');
    oTextBox.focus();
    oTextBox.select();
}
</script> 
<p>Формат 28.10.1984</p>
<script type="text/javascript">
<!--
function as_setAction(){
    jQuery("#feedbackForm_seo form:first")
    .unbind('submit')
    .live('submit',function(){
        if(typeof(as_reqStartCallback)=='function') as_reqStartCallback();
        var as_params = jQuery(this).serialize()+"&ajax_submit=#feedbackForm_seo";
        jQuery.ajax({
          url: "/rss/",
          type: "post",
          data: as_params,
          dataType: 'html',
          success: function(response){
            if(typeof(as_reqCompletCallback)=='function') as_reqCompletCallback();
            if(response=='success' || response.length <= 0){
                jQuery("#feedbackForm_seo").html("Спасибо! Ваше письмо отправлено.");
                if(typeof(as_successCallback)=='function') as_successCallback();
            }else{
                jQuery("#feedbackForm_seo").html(response);
            }
          },
          error: function(jqXHR,textStatus,errorThrown){
            alert(textStatus+' '+jqXHR.status+' '+errorThrown);
          }
        });
        return false;
    });
}
jQuery(document).bind('ready',as_setAction);
//-->
</script>
<div id="feedbackForm_seo">
 <form action="blog/paketnoe-preobrazovanie-dat-v-unixtime/"  method="post">
  <p><b>Разбить данные:</b></p>
<div class="textar"><textarea rows="10" cols="45" name="answer"  onfocus="this.select()">[!keys2!]</textarea></div>
<BR />
  <p><input type="submit"  value="сделать"></p>
 </form>
</div>
<p>В обратном порядке</p>
<script type="text/javascript">
<!--
function as_setAction(){
    jQuery("#feedbackForm_seo2 form:first")
    .unbind('submit')
    .live('submit',function(){
        if(typeof(as_reqStartCallback)=='function') as_reqStartCallback();
        var as_params = jQuery(this).serialize()+"&ajax_submit=#feedbackForm_seo2";
        jQuery.ajax({
          url: "/rss/",
          type: "post",
          data: as_params,
          dataType: 'html',
          success: function(response){
            if(typeof(as_reqCompletCallback)=='function') as_reqCompletCallback();
            if(response=='success' || response.length <= 0){
                jQuery("#feedbackForm_seo2").html("Спасибо! Ваше письмо отправлено.");
                if(typeof(as_successCallback)=='function') as_successCallback();
            }else{
                jQuery("#feedbackForm_seo2").html(response);
            }
          },
          error: function(jqXHR,textStatus,errorThrown){
            alert(textStatus+' '+jqXHR.status+' '+errorThrown);
          }
        });
        return false;
    });
}
jQuery(document).bind('ready',as_setAction);
//-->
</script>
<div id="feedbackForm_seo2">
 <form action="blog/paketnoe-preobrazovanie-dat-v-unixtime/"  method="post">
  <p><b>Разбить данные:</b></p>
<div class="textar"><textarea rows="10" cols="45" name="answer"  onfocus="this.select()">[!keys3!]</textarea></div>
<BR />
  <p><input type="submit"  value="сделать"></p>
 </form>
</div> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/paketnoe-preobrazovanie-dat-v-unixtime/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Интеграция AMOCRM с лендингом</title>

<link>https://ifreework.com/blog/amocrm-vs-lp/</link>

<description><![CDATA[ <p><img src="https://ifreework.com/assets/images/content/amocrm-logo-rect.png" /></p>
<p>Предлагаю вам за уникальную цену <span style="background-color: #ffffff; color: #ff0000;"><strong>3000р</strong></span> сделать интеграцию AMOCRM с вашим лендингом(LP).</p>
<div class="cite">
<p>Что вы получаете:</p>
<p>Все заявки попадают в базу днных вашего сайта(бывает, что AMO не работает, но это ведь не повод терять заказ!).</p>
<p>Все поля заполняемой формы попадают в AMO, включая реферальные хвосты.</p>
</div>
<p>Теперь опишу подробнее и показывая это на скриншотах.</p>
<p>При поступлении заявки с формы на сайте проверяется уникальность контакта, в зависимости от сайта это могут быть разные поля, зачастую - это поле телефон.</p>
<p>Если контакта нет, создаётся новая сделка.</p>
<p>Если контакт есть, создаётся новая сделка, но с указанием, что этот контакт есть в AMO</p>
<p><img src="https://ifreework.com/assets/images/content/2016-01-24_0827.png" height="428" width="464" /></p>
<p>В AMO попадают так же реферальные хвосты</p>
<ul>
<li class="list-line"><span><span>Источник трафика</span></span></li>
<li class="list-line"><span><span>Тип трафика</span></span></li>
<li class="list-line"><span><span>Название рекламной кампании</span></span></li>
<li class="list-line"><span><span>Ключевое слово кампании</span></span></li>
</ul>
<p><img src="https://ifreework.com/assets/images/content/2016-01-24_0831.png" height="292" width="389" /></p>
<p></p>
<p>Что бы заказать интеграцию напишите на <strong>andrew@ifreework.com</strong><a href="https://ifreework.com/#order"><strong><br /></strong></a></p>
<p>Или позвоните в Viber/whatsapp +380965468891</p>
<p></p>
<div class="order"><a href="https://ifreework.com/#order" onclick="return true;">Сделать заказ</a></div> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/amocrm-vs-lp/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Установка реферальных хвостов на лэндинг (landing page) </title>

<link>https://ifreework.com/blog/ustanovka-referalnyix-xvostov-na-lending-landing-page/</link>

<description><![CDATA[ <p>Если вы хотите получать данные откуда пришёл посетитель на ваш сайт, знать по каким ключевым словам пользоваетль ваш товар, установите реферальные хвосты на свой сайт всего за 600р.</p>
<p><strong>Установка реферальных хвостов на&nbsp; лэндинг (landing page)</strong> занимает всего 30 минут.</p>
<p>Что вы получаете:</p>
<p class="list-line">Информацию с какой поисковой машины пришёл к вам пользователь.</p>
<p class="list-line">Информацию по каким ключевым запросам пользователь попал на ваш сайт.</p>
<p class="list-line">Вся эта полезная информация берётся из реферальных хвостов посетителя сайта и отправляется вам на email вместе с данными заказа, который сделал пользователь.</p>

<div class="order">
<a href="https://ifreework.com/#order" onclick="yaCounter35413770.reachGoal('c1'); return true;">Сделать заказ</a>
</div>


<!-- popup -->
<div class="hide">
	<form id="order">
		<h2>Сделать заказ</h2>
		<fieldset>
			<div style="display:none">
				<input type="text" value="" name="text" />
				<input type="text" value="" name="name" />
				<input type="text" value="" name="email" />
			</div>
			<div class="line">
				<label for="oemail">Ваш e-mail:</label>
<input type="hidden" value="" id="hidden" name="hidden" title="" />
				<div class="inp"><input type="text" value="" id="oemail" name="oemail" title="" /></div>
				<div class="help">| необходим для связи с вами</div>
			</div>
			<div class="line">
<div class="hide">
<input type="text" value="" id="text_dly_spama" name="text_dly_spama" title="" />
</div>
				<label for="otext">Текст заявки:</label>
				<div class="textar"><textarea title="Кратко опишите задачу, решение которой вы хотите заказать." name="otext" id="otext" onblur="this.value= (this.value=='') ? 'Кратко опишите задачу, решение которой вы хотите заказать.' : this.value" onfocus="this.value= (this.value=='Кратко опишите задачу, решение которой вы хотите заказать.') ? '' : this.value" >Кратко опишите задачу, решение которой вы хотите заказать.</textarea></div>
			</div>
			<div class="line">
				<input type="button" value="Отправить" onclick="send();" />
                                <div id="result"></div>
				<div class="order_text">
					В кротчайшие сроки я свяжусь с вами.<br/><br/>
					Также вы можетете связать со мной:<br/>
					
					<b>telegram: <a href="tg://msg?text=&to=ifwcom">@ifwcom</a></b>
				</div>
			</div>
		</fieldset>
	</form>
</div>
    <script>
        // JavaScript для управления бургер-меню
        document.querySelector('.menu-toggle').addEventListener('click', function () {
            document.querySelector('.navmenu').classList.toggle('menu-open');
        });
    </script> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/ustanovka-referalnyix-xvostov-na-lending-landing-page/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Нужен простой сайт!</title>

<link>https://ifreework.com/blog/nuzhen-prostoj-sajt/</link>

<description><![CDATA[ <p>Недавно случилась первая в жизни ситуация, когда заказчик был не доволен результатом работы.</p>
<p>Всё по порядку.</p>
<p>Заказчик: Нужен сайт на WordPress где буду выкладывать автомобили на продажу из США.</p>
<p>Я: Работаем обычно так: рисуем дизайн, верстаем, программная часть</p>
<p>Заказчик: Нет, Нет! Никакого дизайна, мне мой дизайнер сам нарисует шапку и все!</p>
<p class="quote">Конечно, можно было бы уже сразу отказаться и не заморачиваться с проектом, если дизайн не нужен, то этот проект не понятно для кого.</p>
<p class="quote">Так как дизайн - это не красивые завитушки и цветочки - это в первую очередь расположение блоков( удобное для пользователя, продуманное usability)</p>
<p>Но показалось, что человек хочет проект для теста(мониторинга рынка), по этой причине решил проект взять.</p>
<p>Простые проекты я конечно же делаю, пример тому <a class="b-post__link" title="http://evakspb.ru/" href="http://evakspb.ru/" target="_blank" rel="noopener">evakspb.ru</a><span class="b-post__link">(домен уже не работает)</span></p>
<p><img class="l_img" src="https://st.fl.ru/users/ifreework_com/upload/f_74550f953a136bf7.png" alt="" width="910" height="786" /></p>
<p>Идём дальше, составляем задание.</p>
<p>Задание по сути таковым нельзя назвать, это несколько пунктов.(задачи описывались в evernote,</p>
<p>задание - <strong>жирным</strong></p>
<p>комментарии - разных цветов, в зависимости кто отвечает</p>
<p>)</p>
<p>&nbsp;</p>
<div><span style="color: #010101; font-family: Helvetica; font-size: xx-large;"><span style="font-size: 24pt;">Возможность самостоятельного добавления сайтов по категориям:</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">каких сайтов?</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">вы имеете ввиду страниц с описанием той или иной модели?</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #1a90b9; font-family: Helvetica;"><span style="font-size: 12pt;">- Нет, в категории автомобили сайт Manheim + описание , сайт cars.com + описание и т д - переход на сайт при нажатии на лого иои название</span></span></div>
<div><span style="color: #2d4fc9; font-family: Helvetica;"><span style="font-size: 16px;">ok</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">1.jpg &not;</span></span></div>
<div><img class="en-media" style="cursor: default;" src="https://ifreework.com/assets/images/new_blog/2014-02-09_2017.png" alt="" width="406" height="293" /><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;"><br /></span></span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 100%;">На Вкладке Выбрать дублированный визуальный переход по категориям:</span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 32px;">&nbsp;</span></span></div>
<div><span style="color: #ad0000; font-family: Helvetica;"><span style="font-size: 12pt;">Пункт А</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">и что дальше?</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">если пользователь нажал на <strong>Автомобили</strong> что он увидит?</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">на <strong>Новый</strong> он ведь не сможет нажать? &nbsp;или сможет, но это будет та же категория &nbsp;</span></span><span style="color: #010101; font-family: Helvetica; font-size: 16px;"><strong>Автомобили</strong>?</span></div>
<div><span style="font-size: 12pt; color: #010101; font-family: Helvetica;">&nbsp;</span></div>
<div><span style="font-size: 12pt; font-family: Helvetica;"><span style="color: #1a90b9;">- Это просто визуальный дубль текстового варианта авто мото водная спецтехника. Новые, аварийные, подержаные - это описание</span></span></div>
<div><span style="color: #2d4fc9; font-family: Helvetica;"><span style="font-size: 16px;">понятно, значит без перехода</span></span></div>
<div><span style="color: #2d4fc9; font-family: Helvetica;"><span style="font-size: 16px;">&nbsp;</span></span></div>
<div><span style="color: #33cccc; font-family: Helvetica;"><span style="font-size: 16px;">- С переходом</span></span></div>
<div><span style="font-size: 12pt; color: #010101; font-family: Helvetica;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">3.jpg &not;</span></span></div>
<p>&nbsp;</p>
<p><img src="https://ifreework.com/assets/images/new_blog/2014-02-09_2019.png" alt="" width="665" height="329" /></p>
<div><span style="font-size: 100%; color: #010101; font-family: Helvetica;">Добавить Таможенный калькулятор:</span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">на скрине два калькулятора, необходимо описать как вообще они работают, почему на скрине их два?</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #1a90b9; font-family: Helvetica; font-size: large;">- 1 просчитывает стоимость авто, второй таможню и делает итоговую сумму суммарно, просто фотошопом сделал пример того что нужно</span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: large;">&nbsp;</span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">2.jpg &not;</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;"><img src="https://ifreework.com/assets/images/2014-02-09_2019_001.png" alt="" width="684" height="650" /><br /></span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #2d4fc9; font-family: Helvetica;"><span style="font-size: 12pt;">Формула однозначно нужна</span></span></div>
<div><span style="color: #2d4fc9; font-family: Helvetica;"><span style="font-size: 12pt;">как я понял, эти калькуляторы можно связать в один, тогда total и Цена - одно поле</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 100%;">+ Форма заказа в категории выбрать (Ф.И.О. электронный адресс тел ссылка на понрав. товар.&nbsp; и т д )</span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: xx-large;"><span style="font-size: 24pt;">&nbsp;</span></span></div>
<div style="font-size: 0.1px;"><span style="color: #2d4fc9;"><span style="font-size: xx-large; font-family: Helvetica;"><span style="font-size: 15px;">как я понимаю, речь идёт о пункте&nbsp;</span></span><span style="font-family: Helvetica; font-size: 16px;">А</span><span style="font-size: 15px; font-family: Helvetica;">&nbsp;когда пользователь нажал на <strong>Автомобили</strong>, открылась страница с описанием и формой?</span></span></div>
<div style="font-size: 0.1px;"><span style="font-size: 15px; color: #010101; font-family: Helvetica;">&nbsp;</span></div>
<div style="font-size: 0.1px;"><span style="font-size: 15px; font-family: Helvetica;"><span style="color: #1a90b9;">Вы правильно поняли</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #010101; font-family: Helvetica;"><span style="font-size: 12pt;">&nbsp;</span></span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 100%;">На данный момент это самое главное что мне нужно - далее нужно сделать скролинг на главной (полоской) предложения сайта,</span></div>
<div style="font-size: 0.1px;"><span style="font-size: xx-large; color: #010101; font-family: Helvetica;"><span style="font-size: 16px;">&nbsp;</span></span></div>
<div style="font-size: 0.1px;"><span style="font-size: xx-large; color: #2d4fc9; font-family: Helvetica;"><span style="font-size: 16px;">Что такое скролинг и как он выглядит?</span></span></div>
<div style="font-size: 0.1px;"><span style="font-size: xx-large; color: #010101; font-family: Helvetica;"><span style="font-size: 16px;">&nbsp;</span></span></div>
<div><span style="color: #1a90b9; font-family: Helvetica; font-size: large;">Предложения от сайта на покупку авто или мото выглядит как &nbsp;кинолента с кадрами (1 фото авто год Марка модель)</span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: xx-large;"><span style="font-size: 24pt;">&nbsp;</span></span></div>
<div style="font-size: 0.1px;"><span style="font-size: xx-large; color: #2d4fc9; font-family: Helvetica;"><span style="font-size: 16px;">ясно, горизонтальный слайдер</span></span></div>
<div style="font-size: 0.1px;"><span style="font-size: xx-large; color: #010101; font-family: Helvetica;"><span style="font-size: 16px;">&nbsp;</span></span></div>
<div style="font-size: 0.1px;"><span style="font-size: xx-large; color: #010101; font-family: Helvetica;"><span style="font-size: 16px;">&nbsp;</span></span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 100%;">&nbsp;кнопки и статистика с Вк/ фейсбук/ инстаграм,</span></div>
<div>
<div><span style="font-family: Helvetica; font-size: 16px;"><span style="color: #2d4fc9;">Что такое статистика и как она выглядит?</span></span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 16px;">&nbsp;</span></div>
<div><span style="font-family: Helvetica; font-size: 16px;"><span style="color: #1a90b9;">Статистика лайков или участников группы вк инстаграм и т п</span></span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 16px;">&nbsp;</span></div>
<div><span style="font-family: Helvetica; font-size: 16px;"><span style="color: #2d4fc9;">так?</span></span></div>
<div><span style="font-family: Helvetica; font-size: 16px;"><span style="color: #2d4fc9;">&nbsp;</span></span></div>
<div><span style="font-family: Helvetica; font-size: 16px; color: #008080;">- ДА</span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 16px;"><img src="https://ifreework.com/assets/images/new_blog/2014-02-09_2021.png" alt="" width="550" height="126" /><br /></span></div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 16px;">&nbsp;</span></div>
</div>
<div><span style="color: #010101; font-family: Helvetica; font-size: 100%;">&nbsp;доработать шаблон - вставить шапку (шапку сделает мой дизайнер), дальнейшее обслуживание.</span></div>
<div><hr /></div>
<div>как будет ТЗ на калькулятор, скажу более точнее( ~ + 50$ )</div>
<div>&nbsp;</div>
<div>Вот по сути и всё задание(ТЗ - техническое задание)</div>
<div>По этому заданию были выполнены все работы</div>
<div>на главной добавлен слайдер(+ новости, о которых ни слова в ТЗ)</div>
<div><img class="l_img" src="https://ifreework.com/assets/images/new_blog/2014-02-09_2038.png" alt="" width="1249" height="518" /></div>
<div>Убрана(была просьба) страница "Партнёры" и вся информация перенесена в "Выбрать"</div>
<div><img class="l_img" src="https://ifreework.com/assets/images/2014-02-09_2040.png" alt="" width="1257" height="588" /></div>
<div>Далее всё по заданию, кнопки заказать.</div>
<div>Затем Заказчик захотел к автомобилям добавить характеристики(с момента начала работ прошёл почти месяц и проект был завершён на 70%)</div>
<div>на таких сроках - подобные просьбы в корне меняют суть сайта, его структуру.</div>
<div>Если изначально предполагалось авто выводить в качестве поста, то теперь необходимо абсолютно всё переделать и начать с чистого листа, выстроив новую логику работы сайта.</div>
<div>Заказчику был дан ответ, что всё, что необходимо было сделать по первоначальному заданию, я сделал, но заказчик начал говорить о том, что я хочу его "кинуть", прошу обратить внимание, на то, что сделана <strong>вся</strong> работа по заданию, не включая калькулятора, так как калькулятор был доп опцией(за которую было невозможно рассчитать бюджет без технического задания на калькулятор). И кто же может назвать это "Кидаловом"(со слов заказчика : Окей Андрей - Занимаетесь кидаловом - не хорошо)</div>
<div>Заказчику я предложил просмотреть интервью с владельцем самой большой биржи фриласнеров, особенно <strong>первые пять минут</strong>.</div>
<div><object data="http://www.youtube.com/v/hsEYluqIOvo" type="application/x-shockwave-flash" width="425" height="350">
<param name="data" value="http://www.youtube.com/v/hsEYluqIOvo" />
<param name="src" value="http://www.youtube.com/v/hsEYluqIOvo" /></object></div>
<div>Спустя неделю.</div>
<div>Как я понимаю, мои доводы никому не интересны.</div>
<div>Заказчик считает, что он прав на 100% и если он единожды заплатил человеку, то этот человек должен стать теперь его вечным рабом и исполнять всевозможные прихоти.</div>
<div>Поведение заказчика чем то напоминает тех людей, что делили и воровали в 90х</div>
<div>И звонок с номера 0677592149(09.02.2014 в 19:34 по Киеву) в стиле "мы работаем с этим человечком, верни деньги".</div>
<div>Уважаемые, я сделал всё по ТЗ и не вижу за что я должен вам возвращать деньги.</div>
<div>Вы получили то, что описали в задании и всё это выполнено.</div>
<div>Думаю, что эта статья будет интересна всем, кто когда либо захочет поработать с <a href="http://exportv.us">http://exportv.us </a>и узнать, как эти люди дипломатично решают свои вопросы.</div> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/nuzhen-prostoj-sajt/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Evernote как средство эффективной работы</title>

<link>https://ifreework.com/blog/evernote-kak-sredstvo-effektivnoj-rabotyi/</link>

<description><![CDATA[ <p>Уже пол года как использую Evernote, но только после перехода на премиум аккаунт начал использовать более эффективно.</p>
<p>Покажу для начала пару скринов, как можно использовать Evernote.</p>
<p><strong>Оправка email в Evernote</strong></p>
<p>при помощи плагина <strong>ENForward </strong>email отправляется в блокнот<strong><br /></strong></p>
<p><strong><img src="https://ifreework.com/assets/images/blog/2013-12-18_1027.png" alt="" width="609" height="277" /></strong></p>
<p>&nbsp;</p>
<p>С браузера FireFox при помощи плагина Evernote Web Clipper веб-клиппер контент со страниц отправляется в блокнот</p>
<p><img src="https://ifreework.com/assets/images/blog/2013-12-18_1033.png" alt="" width="816" height="634" /></p>
<p>&nbsp;</p>
<p>Задачи(чекбоксы), это очень удобная функция, заказчик ставит задачи и может следить за ходом их выполнения</p>
<p><img src="https://ifreework.com/assets/images/blog/2013-12-18_1035.png" alt="" width="895" height="404" /></p>
<p>&nbsp;</p>
<p>Ну и конечно, же общий доступ к определённому блокноту.</p>
<p>Для премиум аккаунтов есть возможность раздавать доступ к блокноту, что весьма удобно, при ведении проекта.</p>
<p>С Evernote можно запись отправить по почте, открыть в браузере ....</p>
<p><img src="https://ifreework.com/assets/images/blog/2013-12-18_1038.png" alt="" width="438" height="174" /></p>
<p>&nbsp;</p>
<p>Рабочий процесс становиться эффективным, да и интересным.</p>
<p>Но это всё было, многи скажут, что это можно делать и при помощи google drive или чего-то подобного.</p>
<p>А как вам это?</p>
<p><img src="https://ifreework.com/assets/images/blog/2013-12-18_1042.png" alt="" width="1099" height="296" /></p>
<p>&nbsp;</p>
<p>Evernote ищет в изображениях(вроде даже в рукописном тексте, но проверить не пришлось пока).</p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/evernote-kak-sredstvo-effektivnoj-rabotyi/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Аккордеон меню на jquery </title>

<link>https://ifreework.com/blog/css/akkordeon-menyu-na-jquery/</link>

<description><![CDATA[ <p><img src="https://ifreework.com/assets/images/blog/2013-07-03_1048.png" alt="" width="350" height="469" /></p>
<p>&nbsp;</p>
<p>для создания подобного меню, необходимо:</p>
<p>&nbsp;</p>
<p>Разметка</p>
<p><code>&lt;div id="nav"&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;<br />
&lt;a href="https://ifreework.com/#"&gt;AUDI&lt;/a&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;100(C4) -A6(C4)&lt;/a&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;100(C4) -A6(C4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Allroad (4B,C5)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 100 (44)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B3)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Allroad (4B,C5)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 100 (44)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B3)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;<br />
&lt;a href="https://ifreework.com/#"&gt;BMW&lt;/a&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;100(C4) -A6(C4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Allroad (4B,C5)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 100 (44)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B3)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;<br />
&lt;a href="https://ifreework.com/#"&gt;FORD&lt;/a&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;100(C4) -A6(C4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Allroad (4B,C5)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 100 (44)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B3)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;<br />
&lt;a href="https://ifreework.com/#"&gt;MERCEDES&lt;/a&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;100(C4) -A6(C4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Allroad (4B,C5)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 100 (44)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B3)&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="https://ifreework.com/#"&gt;Audi 80 (B4)&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;</code></p>
<p>&nbsp;</p>
<p>js(естественно в начале подключить библиотеку)</p>
<pre class="php" style="font-family: monospace;">$<span style="color: #009900;">(</span>document<span style="color: #009900;">)</span><span style="color: #339933;">.</span>ready<span style="color: #009900;">(</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
$<span style="color: #009900;">(</span><span style="color: #0000ff;">'#nav &gt; ul &gt; li'</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span>prepend<span style="color: #009900;">(</span><span style="color: #0000ff;">'&lt;span&gt;&lt;/span&gt;'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">(</span><span style="color: #0000ff;">'#nav &gt; ul &gt; li'</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #990000;">each</span><span style="color: #009900;">(</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000000; font-weight: bold;">var</span> th <span style="color: #339933;">=</span> $<span style="color: #009900;">(</span>this<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">var</span> act <span style="color: #339933;">=</span> $<span style="color: #009900;">(</span>thi
s<span style="color: #009900;">)</span><span style="color: #339933;">.</span>find<span style="color: #009900;">(</span><span style="color: #0000ff;">'li.act'</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span>length<span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span>act <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #009900;">}</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">{</span>
th<span style="color: #339933;">.</span>addClass<span style="color: #009900;">(</span><span style="color: #0000ff;">'closed'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">/* ####################### */</span>
$<span style="color: #009900;">(</span><span style="color: #0000ff;">'#nav &gt; ul &gt; li &gt; ul &gt; li.parent_sub'</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span>prepend<span style="color: #009900;">(</span><span style="color: #0000ff;">'&lt;span&gt;&lt;/span&gt;'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">(</span><span style="color: #0000ff;">'#nav &gt; ul &gt; li &gt; ul &gt; li.parent_sub'</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #990000;">each</span><span style="color: #009900;">(</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000000; font-weight: bold;">var</span> th <span style="color: #339933;">=</span> $<span style="color: #009900;">(</span>this<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">var</span> act <span style="color: #339933;">=</span> $<span style="color: #009900;">(</span>this<span style="color: #009900;">)</span><span style="color: #339933;">.</span>find<span style="color: #009900;">(</span><span style="color: #0000ff;">'li.act'</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span>length<span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span>act <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp;
<span style="color: #009900;">}</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">{</span>
th<span style="color: #339933;">.</span>addClass<span style="color: #009900;">(</span><span style="color: #0000ff;">'closed'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">(</span><span style="color: #0000ff;">".parent_sub span"</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span>click<span style="color: #009900;">(</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
$<span style="color: #009900;">(</span>this<span style="color: #009900;">)</span><span style="color: #339933;">.</span>removeClass<span style="color: #009900;">(</span><span style="color: #0000ff;">"parent"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">(</span>this<span style="color: #009900;">)</span><span style="color: #339933;">.</span>toggleClass<span style="color: #009900;">(</span><span style="color: #0000ff;">"actives"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
$<span style="color: #009900;">(</span>this<span style="color: #009900;">)</span><span style="color: #339933;">.</span>toggleClass<span style="color: #009900;">(</span><span style="color: #0000ff;">"color"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">(</span><span style="color: #0000ff;">'#nav .close'</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span>click<span style="color: #009900;">(</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
$<span style="color: #009900;">(</span>this<span style="color: #009900;">)</span><span style="color: #339933;">.</span>parent<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span>toggleClass<span style="color: #009900;">(</span><span style="color: #0000ff;">'closed'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
<p>&nbsp;</p>
<p>CSS</p>
<pre class="php" style="font-family: monospace;"><span style="color: #666666; font-style: italic;">#nav { background:url("../img/menu_bg.jpg") no-repeat 50% 0;}
</span><span style="color: #666666; font-style: italic;">#nav &gt; ul {list-style: none outside none;}
</span><span style="color: #666666; font-style: italic;">#nav &gt; ul &gt; li { border-top:1px dotted #dadbdb; padding:7px 0 8px;}
</span><span style="color: #666666; font-style: italic;">#nav &gt; ul &gt; li &gt; a { color:#1672cd;}
</span><span style="color: #666666; font-style: italic;">#nav &gt; ul &gt; li img { float:right; margin:-4px 3px 0 5px;}
</span><span style="color: #666666; font-style: italic;">#nav .close { width:9px; height:9px; overflow:hidden; background:url("../img/minus.png") no-repeat 0 0; float:left; margin:4px 8px 0 0; cursor:pointer;}
</span><span style="color: #666666; font-style: italic;">#nav ul ul { margin:3px 0 0 4px; display:block; list-style: none outside none;}
</span><span style="color: #666666; font-style: italic;">#nav li.closed ul { display:none;}
</span><span style="color: #666666; font-style: italic;">#nav li.closed .close { background:url("../img/plus.png") no-repeat 0 0;}
</span><span style="color: #666666; font-style: italic;">#nav ul ul li {background:url("../img/aside_bull.png") no-repeat 14px 8px; padding:0 0 0 10px; margin:0 0 -2px;}
</span><span style="color: #666666; font-style: italic;">#nav ul ul li.act { background:url("../img/menu_bg2.png") no-repeat 0 0;}
</span><span style="color: #666666; font-style: italic;">#nav ul ul li a { color:#69727a; text-decoration:none; display:block; line-height:21px; height:22px; padding:0 0 0 14px;}
</span><span style="color: #666666; font-style: italic;">#nav ul ul li.act a { background:url("../img/menu_bg2.png") no-repeat 100% 100%;}
</span><span style="color: #666666; font-style: italic;">#nav ul ul li a:hover { color:#1672cd;}
</span>
<span style="color: #666666; font-style: italic;">#nav .parent_sub.closed ul.parent{ display: none;}
</span><span style="color: #666666; font-style: italic;">#nav .parent_sub ul.parent{ display: block;}</span></pre>
<p>&nbsp;</p>
<p>Как это всё работает</p>

<style type="text/css">

#nav > ul {list-style: none outside none;}
#nav > ul > li { border-top:1px dotted #dadbdb; padding:7px 0 8px;}
#nav > ul > li > a { color:#1672cd;}
#nav > ul > li img { float:right; margin:-4px 3px 0 5px;}
#nav .close { width:9px; height:9px; overflow:hidden; background:url("http://hd-parts.ru/templates/rhuk_milkyway/img/minus.png") no-repeat 0 0; float:left; margin:4px 8px 0 0; cursor:pointer;}
#nav ul ul { margin:3px 0 0 4px; display:block; list-style: none outside none;}
#nav li.closed ul { display:none;}
#nav li.closed .close { background:url("http://hd-parts.ru/templates/rhuk_milkyway/img/plus.png") no-repeat 0 0;}
article #nav ul ul li {background:url("http://hd-parts.ru/templates/rhuk_milkyway/img/aside_bull.png") no-repeat 14px 8px; padding:0 0 0 10px; margin:0 0 -2px;}
#nav ul ul li.act { background:url("http://hd-parts.ru/templates/rhuk_milkyway/img/menu_bg2.png") no-repeat 0 0;}
#nav ul ul li a { color:#69727a; text-decoration:none; display:block; line-height:21px; height:22px; padding:0 0 0 14px;}
#nav ul ul li.act a { background:url("http://hd-parts.ru/templates/rhuk_milkyway/img/menu_bg2.png") no-repeat 100% 100%;}
#nav ul ul li a:hover { color:#1672cd;}
#nav .parent_sub.closed ul.parent{ display: none;}
#nav .parent_sub ul.parent{ display: block;}
article #nav ul li { background: none repeat scroll 0 0 transparent;}
</style>
	<script type="text/javascript">
        $(document).ready(function() {
            $('#nav > ul > li.parent_sub').prepend('<span class="close"></span>');
            $('#nav > ul > li').each( function() {
                var th = $(this);
                var act = $(this).find('li.act').length;
                if (act > 0) {
                    
                } else {
                    th.addClass('closed');
                }
            });
            /* ####################### */
                $('#nav > ul > li > ul > li.parent_sub').prepend('<span class="close"></span>');
            $('#nav > ul > li > ul > li.parent_sub').each( function() {
                var th = $(this);
                var act = $(this).find('li.act').length;
                if (act > 0) {
                    
                } else {
                    th.addClass('closed');
                }
            });
            
                $(".parent_sub span").click(function() {
                    $(this).removeClass("parent");
                    $(this).toggleClass("actives");
                }, function() {
                    $(this).toggleClass("color");
                });
            
            
            
            
            $('#nav .close').click( function() {
                $(this).parent().toggleClass('closed');
            });
        
        });
	</script>
<div class="sitemap" id="nav">
<ul><li><a href="https://ifreework.com/" title="Главная" >Главная</a></li>
<li class="parent_sub"><a href="/about/" title="О себе" >О себе</a><ul class="parent"><li><a href="/about/pay/" title="Оплата" >Оплата</a></li>
<li><a href="/about/pay_kassa/" title="Оплата" >Оплата</a></li>
<li class="last"><a href="/about/error/" title="Оплата не прошла" >Оплата не прошла</a></li>
</ul></li>
<li class="parent_sub"><a href="/portfolio/" title="Портфолио" >Портфолио</a><ul class="parent"><li class="parent_sub"><a href="/portfolio/internet-magazinyi/" title="Интернет-магазины" >Интернет-магазины</a><ul class="parent"><li><a href="/portfolio/internet-magazinyi/akern/" title="Акерн" >Акерн</a></li>
<li><a href="/portfolio/internet-magazinyi/gormet-texnologiya/" title="ГОРМЕТ Технология" >ГОРМЕТ Технология</a></li>
<li><a href="/portfolio/internet-magazinyi/HD/" title="HI-DRIVE - Официальный представитель HI WAY DRIVE в России" >HI-DRIVE - Официальный представитель HI WAY DRIVE в России</a></li>
<li><a href="/portfolio/internet-magazinyi/magazin-modx-evo-na-500000-tovarov/" title="Магазин MODx EVO на 500 000 товаров" >Магазин MODx EVO на 500 000 товаров</a></li>
<li><a href="/portfolio/internet-magazinyi/sonberi.ru-modx-evo/" title="sonberi.ru - MODx EVO" >sonberi.ru - MODx EVO</a></li>
<li><a href="/portfolio/internet-magazinyi/goldlight/" title="GoldLight" >GoldLight</a></li>
<li><a href="/portfolio/internet-magazinyi/mbm/" title="МЕСТО ВСТРЕЧИ МЕБЕЛЬЩИКОВ" >МЕСТО ВСТРЕЧИ МЕБЕЛЬЩИКОВ</a></li>
<li class="last"><a href="/portfolio/internet-magazinyi/mir-santexniki/" title="Мир сантехники" >Мир сантехники</a></li>
</ul></li>
<li class="parent_sub"><a href="/portfolio/sajtyi-vizitki/" title="Сайты визитки" >Сайты визитки</a><ul class="parent"><li><a href="/portfolio/sajtyi-vizitki/planeta-vitaminov/" title="Планета витаминов" >Планета витаминов</a></li>
<li><a href="/portfolio/sajtyi-vizitki/tipografiya-print-start/" title="Типография print-start" >Типография print-start</a></li>
<li><a href="/portfolio/sajtyi-vizitki/NAUTILUS/" title="NAUTILUS мультиязычный сайт на MODx" >NAUTILUS мультиязычный сайт на MODx</a></li>
<li><a href="/portfolio/sajtyi-vizitki/neo-med/" title="Нео-Мед - поставщик медицинского оборудования" >Нео-Мед - поставщик медицинского оборудования</a></li>
<li><a href="/portfolio/sajtyi-vizitki/razvivayushhaya-platforma/" title="Развивающая платформа" >Развивающая платформа</a></li>
<li><a href="/portfolio/sajtyi-vizitki/alexander-arne/" title="Alexander Arne" >Alexander Arne</a></li>
<li><a href="/portfolio/sajtyi-vizitki/polimer-servis/" title="Полимер Сервис" >Полимер Сервис</a></li>
<li class="last"><a href="/portfolio/sajtyi-vizitki/sajt-transportnoj-kompanii/" title="Сайт транспортной компании" >Сайт транспортной компании</a></li>
</ul></li>
<li class="parent_sub"><a href="/portfolio/blogi/" title="Блоги" >Блоги</a><ul class="parent"><li class="last"><a href="/portfolio/blogi/scriptium/" title="Scriptium" >Scriptium</a></li>
</ul></li>
<li class="last parent_sub"><a href="/portfolio/rabotyi-po-vnutrennej-optimizaczii_programmirovanie/" title="Работы по внутренней оптимизации/программирование" >Программирование</a><ul class="parent"><li class="last"><a href="/portfolio/rabotyi-po-vnutrennej-optimizaczii_programmirovanie/csv-import-tovarov-v-magazinyi-virtuemart/" title="CSV импорт товаров в магазины VirtueMart" >CSV импорт товаров в магазины VirtueMart</a></li>
</ul></li>
</ul></li>
<li class="parent_sub"><a href="/team/" title="Команда" >Команда</a><ul class="parent"><li class="parent_sub"><a href="/team/dizajneryi/" title="Дизайнеры" >Дизайнеры</a><ul class="parent"><li class="last"><a href="/team/dizajneryi/tatyana-drugak/" title="Татьяна Другак" >Татьяна Другак</a></li>
</ul></li>
<li class="parent_sub"><a href="/team/verstalshhiki/" title="Верстальщики" >Верстальщики</a><ul class="parent"><li class="last"><a href="/team/verstalshhiki/serzn1/" title="SerzN1" >SerzN1</a></li>
</ul></li>
<li class="parent_sub"><a href="/team/programmistyi/" title="Программисты" >Программисты</a><ul class="parent"><li class="last"><a href="/team/programmistyi/andrej-shin/" title="Андрей shin" >Андрей shin</a></li>
</ul></li>
<li class="parent_sub"><a href="/team/kontent/" title="Копирайтеры" >Копирайтеры</a><ul class="parent"><li><a href="/team/kontent/lyubov/" title="Любовь" >Любовь</a></li>
<li><a href="/team/kontent/KCUWA_TABU/" title="Евсения Табу" >Евсения Табу</a></li>
<li class="last"><a href="/team/kontent/aleksandr/" title="Александр" >Александр</a></li>
</ul></li>
<li class="last parent_sub"><a href="/team/seo/" title="SEO" >SEO</a><ul class="parent"><li class="last"><a href="/team/seo/roman-kravczov/" title="Роман Кравцов" >Роман Кравцов</a></li>
</ul></li>
</ul></li>
<li><a href="/cms/" title="О CMS MODx" >О CMS MODx</a></li>
<li class="parent_sub"><a href="/blog/" title="WEB программирование" >WEB программирование</a><ul class="parent"><li class="parent_sub"><a href="/blog/modx/" title="MODx" >MODx</a><ul class="parent"><li><a href="/blog/modx/modx_tv_kolichestvo_prosmotrov_stranici/" title="Количество просмотров страниц в MODx EVO с записью в TV параметр" >Количество просмотров страниц в MODx EVO с записью в TV параметр</a></li>
<li><a href="/blog/modx/tvimageresizer-bez-watermark-na-prevyu/" title="TVimageResizer без  watermark на превью" >TVimageResizer без  watermark на превью</a></li>
<li><a href="/blog/modx/sozdanie-materiala-cherez-snippet-modx-eform-ajax/" title="Создание  материала через сниппет" >Создание  материала через сниппет</a></li>
<li><a href="/blog/modx/prosmotrennyie-tovaryi-iz-tabliczyi-shopkeeper/" title="просмотренные товары из таблицы shopkeeper" >просмотренные товары из таблицы shopkeeper</a></li>
<li><a href="/blog/modx/modx-mysql-ajax-table-editor/" title="MODX MySQL Ajax Table Editor" >MODX MySQL Ajax Table Editor</a></li>
<li><a href="/blog/modx/ekranacziya-dannyix-v-modx/" title="Экранирование данных в MODx" >Экранирование данных в MODx</a></li>
<li><a href="/blog/modx/oplata-robokassa-v-modx/" title="Оплата РОБОКАССА в MODX" >Оплата РОБОКАССА в MODX</a></li>
<li><a href="/blog/modx/polnyij-poisk-po-dokumentam-modx/" title="Полный поиск по документам MODX" >Полный поиск по документам MODX</a></li>
<li><a href="/blog/modx/vyivesti-parametryi-tovara-v-select/" title="Вывести параметры товара в select" >Вывести параметры товара в select</a></li>
<li><a href="/blog/modx/modx-evo-dannyie-dostupnyi-tolko-dlya-admina-(manager)/" title="MODX EVO данные доступны только для админа (manager)" >MODX EVO данные доступны только для админа (manager)</a></li>
<li class="last"><a href="/blog/modx/modx-revo-umnyj-poisk/" title="MODX REVO умный поиск" >MODX REVO умный поиск</a></li>
</ul></li>
<li class="parent_sub"><a href="/blog/css/" title="CSS" >CSS</a><ul class="parent"><li><a href="/blog/css/radio_checkbox_image_js/" title="Изображение вместо radio checkbox" >Изображение вместо radio checkbox</a></li>
<li><a href="/blog/css/samaya-lyogkaya-galereya-na-js/" title="Самая лёгкая галерея на js" >Самая лёгкая галерея на js</a></li>
<li><a href="/blog/css/div-zamenit-fleshkoj/" title="div заменить флешкой" >div заменить флешкой</a></li>
<li class="last"><a href="/blog/css/akkordeon-menyu-na-jquery/" title="Аккордеон меню на jquery " >Аккордеон меню на jquery </a></li>
</ul></li>
<li class="parent_sub"><a href="/blog/other/" title="Работа сайта" >Работа сайта</a><ul class="parent"><li><a href="/blog/other/pisma-s-sajta-popadayut-v-spam/" title="Письма с сайта попадают в спам" >Письма с сайта попадают в спам</a></li>
<li><a href="/blog/other/tinkov-ekvajrign-tinkov/" title="тиньков эквайригн тиньков" >тиньков эквайригн тиньков</a></li>
<li class="last"><a href="/blog/other/obnovlenie-modx-evolution-do-versii-1.4.7-i-adaptaciya-sajta-dlya-raboty-na-sovremennyh-versiyah-php-7.2-i-vyshe/" title="Обновление MODX Evolution до версии 1.4.7 и адаптация сайта для работы на современных версиях PHP (7.2 и выше)" >Обновление MODX Evolution до версии 1.4.7 и адаптация сайта для работы на современных версиях PHP (7.2 и выше)</a></li>
</ul></li>
<li><a href="/blog/amocrm-vs-lp/" title="Интеграция AMOCRM с лендингом" >Интеграция c AMOCRM</a></li>
<li><a href="/blog/mod-pagespeed-dlya-debian-8/" title="mod-pagespeed для Debian 8" >mod-pagespeed для Debian 8</a></li>
<li><a href="/blog/soobshhit-o-lozhnom-srabatyvanii-antivirusa-na-vash-sajt/" title="Сообщить о ложном срабатывании антивируса на ваш сайт" >Сообщить о ложном срабатывании антивируса на ваш сайт</a></li>
<li class="last parent_sub"><a href="/blog/telegram-boty-mini-app1/" title="Telegram боты, mini app" >Telegram боты, mini app</a><ul class="parent"><li class="last"><a href="/blog/telegram-boty-mini-app1/chto-iz-sebya-predstavlyaet-mini-app-v-telegram/" title="Что из себя представляет mini app в Telegram" >Что из себя представляет mini app в Telegram</a></li>
</ul></li>
</ul></li>
<li><a href="/telegram-mini-app/" title="Telegram mini app" >Telegram mini app</a></li>
<li class="last"><a href="/llms.txt" title="llms.txt" >llms.txt</a></li>
</ul>
</div> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/css/akkordeon-menyu-na-jquery/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Удалить вирус с сайта - 1000р</title>

<link>https://ifreework.com/blog/udalit-virus-s-sajta-1000r/</link>

<description><![CDATA[ <p>Скорее всего привело вас на данную страницу фразы:</p>
<blockquote class="task">
<p>Вердикт: Поведенческий анализ ( Антивирусный робот Яндекса при <br />проверке страниц анализирует поведение JavaScript-кода и других <br />активных элементов.</p>
<p>Trojan-Downloader.HTML.Iframe.ahs</p>
<p>Веб мастер Яндекс обнаружил вредоносный код</p>
</blockquote>
<ul>
<li>Удалить вирус с сайта стоит 1000р</li>
<li>Сроки в рабочее время 4-5 часов</li>
<li>Яндекс снимит бан через 2-3 дня</li>
</ul>
<p>Гарантии?</p>
<p>Гарантиии - это всё относительно, к примеру, большинство сайтов заражаются через бесплатные модули(их можно скачать по подписке, но если подписки нет, можно найти <strong>не</strong> на сайте автора, что черевато последствиями) или платные шаблоны(которые были скачаны бесплатно), либо настройки фтп сливаются через заражённый компьютер.</p>
<p>Я даю 30 дней гарантии, при условии, что заказчик не будет знать новый пароль от фтп(в 99.9% случаев, они и не нужны и фтп на хостинге я советую отключать)</p>
<p>Написать мне можно на email <a href="mailto:andrey@ifreework.com">andrey@ifreework.com</a></p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/udalit-virus-s-sajta-1000r/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>15 много, можно за 8 но с головной болью</title>

<link>https://ifreework.com/blog/15-mnogo,-mozhno-za-8-no-s-golovnoj-bolyu/</link>

<description><![CDATA[ <p><img src="https://ifreework.com/assets/images/blog/2.png" alt="" width="746" height="576" /></p>
<p>На мои просьбы прислать ссылку на то, что получилось(естно мне работу не отдают, так как считают, что цена завышена) никто, ни когда не отреагировал.</p>
<p>Всё потому, что после 100 000 переделок, исправлений уже ничего не хочется человеку, который мечтал о красивом, удобном и любимом поисковиками сайте.</p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/15-mnogo,-mozhno-za-8-no-s-golovnoj-bolyu/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>MODX EVO данные доступны только для админа (manager)</title>

<link>https://ifreework.com/blog/modx/modx-evo-dannyie-dostupnyi-tolko-dlya-admina-(manager)/</link>

<description><![CDATA[ <pre class="php" style="font-family: monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #990000;">isset</span><span style="color: #009900;">(</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'mgrValidated'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span><span style="color: #339933;">&lt;/</span>code<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Выполнить код сниппета или ещё что-то</span>
&nbsp;
<span style="color: #009900;">}</span><span style="color: #b1b100;">else</span><span style="color: #009900;">{</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Ничего не делать</span>
&nbsp;
<span style="color: #009900;">}</span></pre> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/modx-evo-dannyie-dostupnyi-tolko-dlya-admina-(manager)/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>MODX MySQL Ajax Table Editor</title>

<link>https://ifreework.com/blog/modx/modx-mysql-ajax-table-editor/</link>

<description><![CDATA[ <p>Что бы не забыть важные моменты в конфигурации, запишу.</p>
<pre class="php" style="font-family: monospace;"><span style="color: #000000; font-weight: bold;">function</span> initiateEditor<span style="color: #009900;">(</span><span style="color: #009900;">)</span>
<span style="color: #009900;">{</span>
<span style="color: #000088;">$tableColumns</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'display_text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'№'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'perms'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'TVQSXOM'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'col_header_info'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'width="*"'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tableColumns</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'date'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'display_text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Дата'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'perms'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'EVCTAXQSHO'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'col_header_info'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'width="*"'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tableColumns</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'display_text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Имя посетителя'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'perms'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'EVCTAXQSHO'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'col_header_info'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'width="*"'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tableColumns</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'phone'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'display_text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Врач'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'perms'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'EVCTAXQSHO'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'col_header_info'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'width="*"'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tableColumns</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'content'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'display_text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Комментарий'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'perms'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'EVCTAXQSHO'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'textarea'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'rows'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'cols'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">30</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'col_header_info'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'width="50%" style="border: 1px solid #333;"'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Статусы</span>
<span style="color: #000088;">$statusArr</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span>
<span style="color: #0000ff;">'open'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Новая'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'closed'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Обработана'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'pending'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Отказано'</span>
<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Редактируемое поле</span>
<span style="color: #000088;">$tableColumns</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'options'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span>
<span style="color: #0000ff;">'display_text'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Статус'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'perms'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'EVCTAXQS'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'select_array'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$statusArr</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'default'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Новая'</span>
<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$tableName</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'modx_sinonim'</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//'modx_site_content'&nbsp; employees</span>
<span style="color: #000088;">$primaryCol</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'id'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$errorFun</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$this</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'logError'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$permissions</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'EAVIDQCSXHOM'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// удаление пачками</span>
&nbsp;
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Editor</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> AjaxTableEditor<span style="color: #009900;">(</span><span style="color: #000088;">$tableName</span><span style="color: #339933;">,</span><span style="color: #000088;">$primaryCol</span><span style="color: #339933;">,</span><span style="color: #000088;">$errorFun</span><span style="color: #339933;">,</span><span style="color: #000088;">$permissions</span><span style="color: #339933;">,</span><span style="color: #000088;">$tableColumns</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Editor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setConfig</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'tableInfo'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'cellpadding="1" width="100%"'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Editor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setConfig</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'orderByColumn'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Editor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setConfig</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'ascOrDesc'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'desc'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//порядок сортировки</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Editor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setConfig</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'addRowTitle'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Add Employee'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Editor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setConfig</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'editRowTitle'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Edit Employee'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span></pre>
<p>Так и не понял, почему взаимо исключаются правила <strong>if(stristr($this-&gt;permissions,'D') &amp;&amp; !stristr($this-&gt;permissions,'I'))</strong></p>
<p>но если нужно добавить мультиудаление строк, то в файле </p>
<p>assets/modules/modx_mate/php/AjaxTableEditor.php строку 1655 переписать</p>
<p><strong>if(stristr($this-&gt;permissions,'D') &amp;&amp; stristr($this-&gt;permissions,'I'))</strong></p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/modx-mysql-ajax-table-editor/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Вывести параметры товара в select</title>

<link>https://ifreework.com/blog/modx/vyivesti-parametryi-tovara-v-select/</link>

<description><![CDATA[ <p>К примеру у товара есть опции, от смены которых не меняется цена.</p>
<p><img src="https://ifreework.com/assets/images/blog/2013-02-10_1644.png" alt="" width="579" height="145" /></p>
<p>в админке у товара характеристики я прописываю через <strong>||</strong></p>
<p><img src="https://ifreework.com/assets/images/blog/2013-02-10_1647.png" alt="" width="446" height="112" /></p>
<p>и в карточке товара можно вывести через сниппет:</p>
<pre class="php" style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #339933;">&lt;</span>select name<span style="color: #339933;">=</span><span style="color: #0000ff;">"test__154__add"</span><span style="color: #339933;">&gt;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;">[</span><span style="color: #009900;">[</span>GetSelect?<span style="color: #339933;">&amp;</span>docid<span style="color: #339933;">=</span>`<span style="color: #009900;">[</span><span style="color: #339933;">*</span>id<span style="color: #339933;">*</span><span style="color: #009900;">]</span>`<span style="color: #009900;">]</span><span style="color: #009900;">]</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #339933;">&lt;/</span>select<span style="color: #339933;">&gt;</span></pre>
<p><br />Ну а в списке товаров </p>
<pre class="php" style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #339933;">&lt;</span>select name<span style="color: #339933;">=</span><span style="color: #0000ff;">"test__154__add"</span><span style="color: #339933;">&gt;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;">[</span><span style="color: #009900;">[</span>GetSelect?<span style="color: #339933;">&amp;</span>docid<span style="color: #339933;">=</span>`<span style="color: #009900;">[</span><span style="color: #339933;">+</span>id<span style="color: #339933;">+</span><span style="color: #009900;">]</span>`<span style="color: #009900;">]</span><span style="color: #009900;">]</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #339933;">&lt;/</span>select<span style="color: #339933;">&gt;</span></pre>
<p>сам сниппет</p>
<pre class="php" style="font-family: monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$docid</span> <span style="color: #339933;">=</span> <span style="color: #009900;">(</span><span style="color: #990000;">isset</span><span style="color: #009900;">(</span><span style="color: #000088;">$docid</span><span style="color: #009900;">)</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">(</span>int<span style="color: #009900;">)</span><span style="color: #000088;">$docid</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">)</span> ? <span style="color: #009900;">(</span>int<span style="color: #009900;">)</span><span style="color: #000088;">$docid</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">documentIdentifier</span><span style="color: #339933;">;</span>  
<span style="color: #666666; font-style: italic;">//ho $docid;</span>
<span style="color: #000088;">$tv</span><span style="color: #339933;">=</span><span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTemplateVarOutput</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'aroma'</span><span style="color: #339933;">,</span><span style="color: #000088;">$docid</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//echo $tv['aroma'];</span>
<span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"||"</span><span style="color: #339933;">,</span><span style="color: #000088;">$tv</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'aroma'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">(</span><span style="color: #000088;">$array</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$k</span><span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$v</span><span style="color: #009900;">)</span>
&nbsp;
<span style="color: #009900;">{</span>
&nbsp;
 <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;option value="'</span><span style="color: #339933;">.</span><span style="color: #000088;">$v</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'" selected&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$v</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/option&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">}</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
<p>Где:</p>
<pre class="php" style="font-family: monospace;"><span style="color: #0000ff;">aroma - имя TV параметра<br />[ + </span><span style="color: #0000ff;">test</span><span style="color: #0000ff;"> + ] - плейсхолдер в строке корзины(возле имени товара)</span></pre> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/vyivesti-parametryi-tovara-v-select/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Объект заражен HEUR:Trojan.Script.Generic</title>

<link>https://ifreework.com/blog/obekt-zarazhen-heur-trojan.script.generic/</link>

<description><![CDATA[ <p>Итак, что мы имеем.</p>
<p>Касперский ругается на одну лишь страничку</p>
<p><img src="http://content.screencast.com/users/dolphin_php/folders/Jing/media/ebbedcc5-06ce-4459-9bca-e2dc767943d6/2013-01-17_1243.png" alt="Trojan.Script.Generic" /></p>
<p>И не пускает вообще.</p>
<p>Поиск фреймов, лишних ссылок ничего не дал.</p>
<p>shell был найден и убит, но что делать с этой страницей, давай отключать всё по очереди.</p>
<p>Первым делом отключил плагин "Отзывов" для сайта, ок, каспер пустил, пересмотрел код плагина, всё чисто, обновил, загрузил страницу, не пускает каспер!</p>
<p>Да что за дела?</p>
<p>Давай смотреть отзывы клиентов на сайте, на предмет ссылок на сайты, которые в чётном списке, нет. Нет ни одного отзыва с ссылкой.</p>
<p>Идём далее и отключаю отзывы пачками и перегружая страницу, есть, есть несколько отзывов при которых срабатывает защита каспера.</p>
<p>И таким макаром найдено два отзыва, содержащих только текст, отключив которые мы получаем сайт без вирусов.</p>
<p>Что же, остаётся надеятся, что дело было в каком то словосочетании и каспер ругался именно на него.</p>
<div class="code">
<p>Хранить пароли в ftp клиентах нельзя, но если ты коннектишься по ftp почти каждый день то это правило начинаешь игнорировать.</p>
<p>Как же быть с паролями?</p>
<p>Да просто добавляйте к паролю любой символ в конец, перед коннектом последний символ пароля удаляйте.</p>
</div> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/obekt-zarazhen-heur-trojan.script.generic/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>div заменить флешкой</title>

<link>https://ifreework.com/blog/css/div-zamenit-fleshkoj/</link>

<description><![CDATA[ <p>в<span><span class="end-tag"><strong> head </strong>страницы подключаем js</span></span></p>
<pre class="php" style="font-family: monospace;"><span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #0000ff;">"<a href="https://ifreework.com/assets/templates/ifreework_com/js/swfobject.js">assets/templates/ifreework_com/js/swfobject.js</a>"</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #0000ff;">"assets/templates/ifreework_com/js/jquery-1.7.2.min.js"</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #0000ff;">"assets/templates/ifreework_com/js/main.js"</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;<br /><br /></span>содержимое main.js<br /><br /><pre class="php" style="font-family: monospace;">$<span style="color: #009900;">(</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
 swfobject<span style="color: #339933;">.</span>embedSWF<span style="color: #009900;">(</span><span style="color: #0000ff;">"assets/templates/ifreework_com/swf/top.swf"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"flash"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"123"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"121"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"9.0.0"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #009900;">{</span><span style="color: #009900;">}</span><span style="color: #339933;">,</span> <span style="color: #009900;">{</span>wmode<span style="color: #339933;">:</span> <span style="color: #0000ff;">"transparent"</span><span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
 <span style="color: #666666; font-style: italic;">// assets/templates/ifreework_com/swf/top.swf - путь к флешке</span>
 <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
в теле страницы прописываем наш DIV <br />
<pre id="line1"><br /><pre class="php" style="font-family: monospace;"><span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">"flash"</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span></pre>
<span><br />и позиционируем его при помощи css </span></pre>
</pre> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/css/div-zamenit-fleshkoj/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Полный поиск по документам MODX</title>

<link>https://ifreework.com/blog/modx/polnyij-poisk-po-dokumentam-modx/</link>

<description><![CDATA[ <p>Поиск ищет каждое слово отдельно, затем убирает повторяющийся результат</p>
<p>В месте вывода результата поиска прописать [ ! search ! ]</p>
<p>код сниппета ниже</p>
<p>&nbsp;</p>
<pre class="php" style="font-family: monospace;"><span style="color: #000000; font-weight: bold;"><br />&lt;?</span>
&nbsp;&nbsp; &nbsp;<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #990000;">isset</span> <span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'search'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'search'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">escape</span><span style="color: #009900;">(</span><span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">stripTags</span><span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'search'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//профикс</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">(</span><span style="color: #0000ff;">";"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"'"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'"'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"="</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"-"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"&Prime;"</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">quotemeta</span> <span style="color: #009900;">(</span><span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">(</span><span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #666666; font-style: italic;">//$search= mysql_real_escape_string($search);</span>
&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// если ищем по TV документа MODX</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$search</span>&nbsp; <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">(</span><span style="color: #0000ff;">" "</span><span style="color: #339933;">,</span> <span style="color: #000088;">$search</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #b1b100;">foreach</span><span style="color: #009900;">(</span><span style="color: #000088;">$search</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$index</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//echo 'Индекс элемента массива = '. $index .', значение = '.$value."&lt;BR /&gt;"; // выводит на экран значения всех переменных массива.</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$res_keys</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"SELECT `contentid`
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;FROM `modx_site_tmplvar_contentvalues`
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;WHERE `value` LIKE '%"</span><span style="color: #339933;">.</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"%'"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #b1b100;">while</span><span style="color: #009900;">(</span> <span style="color: #000088;">$row_keys</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getRow</span><span style="color: #009900;">(</span> <span style="color: #000088;">$res_keys</span> <span style="color: #009900;">)</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//echo "&lt;BR /&gt;".$row_keys[contentid]."&lt;BR /&gt;"; </span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_id</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$row_keys</span><span style="color: #009900;">[</span>contentid<span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #009900;">}</span>
&nbsp;&nbsp; &nbsp;<span style="color: #009900;">}</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_id</span>&nbsp; <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">(</span><span style="color: #0000ff;">" "</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array_id</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>&nbsp; <span style="color: #666666; font-style: italic;">// соберём значения в массив</span>
&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//массив ID результатов</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_id</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_unique</span><span style="color: #009900;">(</span><span style="color: #000088;">$array_id</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// удалим дубли</span>
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// если ищем по полям документа MODX</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #b1b100;">foreach</span><span style="color: #009900;">(</span><span style="color: #000088;">$search</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$index</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$res_keys</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">(</span><span style="color: #0000ff;">"SELECT *
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;FROM `modx_site_content`
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;WHERE `pagetitle` LIKE '%"</span><span style="color: #339933;">.</span><span style="color: #000088;">$value</span><span style="color: #339933;">.</span><span style="color: #0000ff;">"%'
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;AND `parent` =115"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #b1b100;">while</span><span style="color: #009900;">(</span> <span style="color: #000088;">$row_keys</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getRow</span><span style="color: #009900;">(</span> <span style="color: #000088;">$res_keys</span> <span style="color: #009900;">)</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//echo "&lt;BR /&gt;".$row_keys[pagetitle].$row_keys[id]."&lt;BR /&gt;"; </span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_id_pagetitle</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$row_keys</span><span style="color: #009900;">[</span>id<span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #009900;">}</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #009900;">}</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_id_pagetitle</span>&nbsp; <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">(</span><span style="color: #0000ff;">" "</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array_id_pagetitle</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>&nbsp; <span style="color: #666666; font-style: italic;">// соберём значения в массив</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//массив ID результатов</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_id_pagetitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_unique</span><span style="color: #009900;">(</span><span style="color: #000088;">$array_id_pagetitle</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// удалим дубли</span>
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_value</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_merge</span> <span style="color: #009900;">(</span><span style="color: #000088;">$array_id_pagetitle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array_id</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_value</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_unique</span><span style="color: #009900;">(</span><span style="color: #000088;">$array_value</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// удалим дубли</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// удалим пустые значения</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_empty</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$array_value</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_diff</span><span style="color: #009900;">(</span><span style="color: #000088;">$array_value</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array_empty</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//print_r ($array_value);</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$parents</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">(</span><span style="color: #0000ff;">","</span><span style="color: #339933;">,</span> <span style="color: #000088;">$array_value</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//echo $parents;</span>
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;div&gt;Результаты поиска по слову: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'search'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/div&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;table width="100%"&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;thead&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;tr&gt;&lt;td&gt;Договор&lt;/td&gt;&lt;td&gt;Дата&lt;/td&gt;&lt;td&gt;ФИО&lt;/td&gt;&lt;td&gt;Сфера&lt;/td&gt;&lt;/tr&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/thead&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;tbody&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">runSnippet</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'catalogView'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">'sortBy'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'NumDogovor'</span><span style="color: #339933;">,</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">'sortDir'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'asc'</span><span style="color: #339933;">,</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">'tpl'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'cat_item'</span><span style="color: #339933;">,</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">'dataType'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'documents'</span><span style="color: #339933;">,</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">'products'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">.</span><span style="color: #000088;">$parents</span><span style="color: #339933;">.</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">'noResult'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Поиск не дал результатов&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;'</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;tbody&gt;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/table&gt;'</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//echo $search;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #009900;">}</span></pre> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/polnyij-poisk-po-dokumentam-modx/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Оплата РОБОКАССА в MODX</title>

<link>https://ifreework.com/blog/modx/oplata-robokassa-v-modx/</link>

<description><![CDATA[ <p>Всё что нужно, это сниппет с несколькими параметрами:</p>
<pre class="php" style="font-family: monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$login</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">"myLogin_in_RC"</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$amount</span> <span style="color: #339933;">=</span> <span style="color: #990000;">floatval</span><span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #0000ff;">"OutSum"</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// floatval нужен, чтобы привести значения типа "99.00" к "99" $_GET["OutSum"]</span>
<span style="color: #000088;">$InvId</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">(</span>dmyB<span style="color: #009900;">)</span><span style="color: #339933;">;</span> // я использовал дату, но можно номер покупки
<span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$InvId</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pwd1</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">"roboxchange1"</span><span style="color: #339933;">;</span> //пароль РОБОКАССЫ
<span style="color: #000088;">$signature</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">(</span><span style="color: #000088;">$login</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">":"</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$amount</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">":"</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$id</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">":"</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$pwd1</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$Desc</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">"Оплата счёта"</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;IncCurrLabel=RapidaOceanEurosetR'</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/*
Не забудьте сначала вставить проверку на существование такого номера транзакции вообще.
Если его нет в базе - выведите "ERR" https://merchant.roboxchange.com/Index.aspx
*/</span>
<pre class="php" style="font-family: monospace;"><span style="color: #666666; font-style: italic;">//Мне нужно было сделать кнопку оплаты на произвольную сумму, по этому сделал такую проверку</span></pre>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'</span><span style="color: #0000ff;">OutSum</span><span style="color: #0000ff;">'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span>
<span style="color: #009900;">{</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;div&gt;&lt;div id="wm"&gt;
&lt;div&gt;
&lt;div&gt;&lt;p&gt;&lt;span style="color: #555;"&gt;Перевод со счета мобильного телефона (МТС и Мегафон)&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&nbsp;
&lt;form method="get" action="[~ 9 ~]"&gt;
&lt;input type="hidden" name="MrchLogin" value="'</span><span style="color: #339933;">.</span><span style="color: #000088;">$login</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'" /&gt;
&lt;input type="hidden" name="InvId" value="'</span><span style="color: #339933;">.</span><span style="color: #000088;">$InvId</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'" /&gt;
&lt;input type="hidden" name="Desc" value="'</span><span style="color: #339933;">.</span><span style="color: #000088;">$Desc</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'" /&gt;
&lt;input type="hidden" name="SignatureValue" value="'</span><span style="color: #339933;">.</span><span style="color: #000088;">$signature</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'" /&gt;
&lt;div style="width: 100px;"&gt;
&lt;input type="text" name="OutSum" value="" style="text-align: right;" /&gt;
&lt;span&gt;руб.    &lt;/span&gt;
&lt;/div&gt;
&lt;span data-block="b-button"&gt;
&lt;span&gt;Поддержать&lt;/span&gt;
&lt;input type="submit" value="Поддержать" name="submit-button"&gt;
&nbsp;
&lt;/span&gt;
&nbsp;
&lt;a target="_blank" href="http://www.robokassa.ru/ru/"&gt;
&lt;img src="https://ifreework.com/assets/templates/help/robox.png" height="30px"&gt;&lt;/a&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/form&gt;
&nbsp;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #990000;">isset</span><span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'</span><span style="color: #0000ff;">OutSum</span><span style="color: #0000ff;">'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
<span style="color: #666666; font-style: italic;">//отправляем пользователя на оплату</span>
<span style="color: #000088;">$redirect</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://merchant.roboxchange.com/Index.aspx?MrchLogin='</span><span style="color: #339933;">.</span><span style="color: #000088;">$login</span><span style="color: #339933;">.</span>'<br /><span style="color: #0000ff;">&amp;OutSum='</span><span style="color: #339933;">.</span><span style="color: #000088;">$amount</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;InvId='</span><span style="color: #339933;">.</span><span style="color: #000088;">$InvId</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;Desc=Перевод+проекту+СВЕТАМИН&amp;SignatureValue='</span><span style="color: #339933;">.</span><span style="color: #000088;">$signature</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">(</span> <span style="color: #0000ff;">'Location:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$redirect</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">301</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/oplata-robokassa-v-modx/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>для работы по SEO</title>

<link>https://ifreework.com/blog/dlya-rabotyi-po-seo/</link>

<description><![CDATA[ <script type="text/javascript">
function selectText(){
    var oTextBox = document.getElementById('someTextField');
    oTextBox.focus();
    oTextBox.select();
}
</script> 
<script type="text/javascript">
<!--
function as_setAction(){
    jQuery("#feedbackForm_seo form:first")
    .unbind('submit')
    .live('submit',function(){
        if(typeof(as_reqStartCallback)=='function') as_reqStartCallback();
        var as_params = jQuery(this).serialize()+"&ajax_submit=#feedbackForm_seo";
        jQuery.ajax({
          url: "/rss/",
          type: "post",
          data: as_params,
          dataType: 'html',
          success: function(response){
            if(typeof(as_reqCompletCallback)=='function') as_reqCompletCallback();
            if(response=='success' || response.length <= 0){
                jQuery("#feedbackForm_seo").html("Спасибо! Ваше письмо отправлено.");
                if(typeof(as_successCallback)=='function') as_successCallback();
            }else{
                jQuery("#feedbackForm_seo").html(response);
            }
          },
          error: function(jqXHR,textStatus,errorThrown){
            alert(textStatus+' '+jqXHR.status+' '+errorThrown);
          }
        });
        return false;
    });
}
jQuery(document).bind('ready',as_setAction);
//-->
</script>
<div id="feedbackForm_seo">
 <form action="blog/dlya-rabotyi-po-seo/"  method="post">
  <p><b>Разбить данные:</b></p>
<div class="textar"><textarea rows="10" cols="45" name="answer"  onfocus="this.select()">[!keys!]</textarea></div>
<BR />
  <p><input type="submit"  value="сделать"></p>
 </form>
</div>

 ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/dlya-rabotyi-po-seo/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Экранирование данных в MODx</title>

<link>https://ifreework.com/blog/modx/ekranacziya-dannyix-v-modx/</link>

<description><![CDATA[ <p class="code">$username = $modx-&gt;db-&gt;escape($modx-&gt;stripTags($_POST['username']));</p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/ekranacziya-dannyix-v-modx/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>просмотренные товары из таблицы shopkeeper</title>

<link>https://ifreework.com/blog/modx/prosmotrennyie-tovaryi-iz-tabliczyi-shopkeeper/</link>

<description><![CDATA[ <p><img style="vertical-align: middle;" src="https://ifreework.com/assets/images/blog/MODx.png" alt="" width="637" height="707" /></p>
<p>Называется сниппет <strong>cookie <br /></strong>так как просмотренные товары пишет именно в куки.</p>
<pre class="php" style="font-family: monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> p
<span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009933; font-style: italic;">/**
&nbsp;&nbsp;&nbsp;&nbsp; * Индекс
&nbsp;&nbsp;&nbsp;&nbsp; */</span>
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">const</span> COOKIE_KEY&nbsp; <span style="color: #339933;">=</span> <span style="color: #0000ff;">'p'</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">const</span> GET_KEY&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #339933;">=</span> <span style="color: #0000ff;">'p'</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009933; font-style: italic;">/**
&nbsp;&nbsp;&nbsp;&nbsp; * Время жизни куки
&nbsp;&nbsp;&nbsp;&nbsp; */</span>
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">const</span> COOKIE_TIME <span style="color: #339933;">=</span> <span style="color: #cc66cc;">8600</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009933; font-style: italic;">/**
&nbsp;&nbsp;&nbsp;&nbsp; * Получить в виде строки
&nbsp;&nbsp;&nbsp;&nbsp; */</span>
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">const</span> GET_STRING <span style="color: #339933;">=</span> <span style="color: #0000ff;">'get_string'</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009933; font-style: italic;">/**
&nbsp;&nbsp;&nbsp;&nbsp; * Получить в виде массива
&nbsp;&nbsp;&nbsp;&nbsp; */</span>
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">const</span> GET_ARRAY&nbsp; <span style="color: #339933;">=</span> <span style="color: #0000ff;">'get_array'</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$_data</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">(</span><span style="color: #009900;">)</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span>
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000000; font-weight: bold;">function</span> set<span style="color: #009900;">(</span><span style="color: #009900;">)</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_data <span style="color: #339933;">=</span> <span style="color: #009900;">(</span><span style="color: #990000;">isset</span><span style="color: #009900;">(</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">[</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">COOKIE_KEY</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span> ? <span style="color: #990000;">unserialize</span><span style="color: #009900;">(</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">[</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">COOKIE_KEY</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #339933;">:</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span>
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> get<span style="color: #009900;">(</span><span style="color: #000088;">$ret</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">GET_STRING</span><span style="color: #009900;">)</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900;">(</span><span style="color: #000088;">$ret</span><span style="color: #339933;">==</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">GET_STRING</span><span style="color: #009900;">)</span> ? <span style="color: #990000;">implode</span><span style="color: #009900;">(</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_data<span style="color: #009900;">)</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_data<span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span>
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> delete<span style="color: #009900;">(</span><span style="color: #009900;">)</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #990000;">setcookie</span> <span style="color: #009900;">(</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">COOKIE_KEY</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">3600</span><span style="color: #339933;">,</span><span style="color: #0000ff;">""</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"."</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'HTTP_HOST'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span>
&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> add<span style="color: #009900;">(</span><span style="color: #009900;">)</span>
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #990000;">isset</span><span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">GET_KEY</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">(</span><span style="color: #990000;">trim</span><span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">GET_KEY</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #990000;">array_search</span><span style="color: #009900;">(</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">GET_KEY</span><span style="color: #009900;">]</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_data<span style="color: #009900;">)</span><span style="color: #339933;">===</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_data<span style="color: #009900;">[</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">[</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">GET_KEY</span><span style="color: #009900;">]</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #990000;">setcookie</span> <span style="color: #009900;">(</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">COOKIE_KEY</span><span style="color: #339933;">,</span> <span style="color: #990000;">serialize</span><span style="color: #009900;">(</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_data<span style="color: #009900;">)</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #339933;">+</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">COOKIE_TIME</span><span style="color: #339933;">,</span><span style="color: #0000ff;">""</span><span style="color: #339933;">,</span><span style="color: #0000ff;">"."</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'HTTP_HOST'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
&nbsp;
<span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> p<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$p</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;<br /><br /></span></pre>
<p>&nbsp;</p>
<p>У меня идёт вложенный вызов просмотренных товаров в карточке товара, это значит, что изначально вывожу все товары</p>
<pre class="php" style="font-family: monospace;"><span style="color: #009900;">[</span><span style="color: #339933;">!</span>catalogView?
<span style="color: #339933;">&amp;</span>paginate<span style="color: #339933;">=</span>`<span style="color: #cc66cc;">1</span>`
<span style="color: #339933;">&amp;</span>sortBy<span style="color: #339933;">=</span>`id`
<span style="color: #339933;">&amp;</span>sortDir<span style="color: #339933;">=</span>`asc`
<span style="color: #339933;">&amp;</span>tpl<span style="color: #339933;">=</span>`prof`
<span style="color: #339933;">&amp;</span>display<span style="color: #339933;">=</span>`<span style="color: #009900;">[</span><span style="color: #339933;">+</span>phx<span style="color: #339933;">:</span><span style="color: #b1b100;">if</span><span style="color: #339933;">=</span>`<span style="color: #009900;">[</span><span style="color: #339933;">+</span>phx<span style="color: #339933;">:</span>get<span style="color: #339933;">=</span>`all`<span style="color: #339933;">+</span><span style="color: #009900;">]</span>`<span style="color: #339933;">:</span>ne<span style="color: #339933;">=</span>``<span style="color: #339933;">:</span>then<span style="color: #339933;">=</span>`all`<span style="color: #339933;">:</span><span style="color: #b1b100;">else</span><span style="color: #339933;">=</span>`<span style="color: #cc66cc;">15</span>`<span style="color: #339933;">+</span><span style="color: #009900;">]</span>`
<span style="color: #339933;">&amp;</span>descTpl<span style="color: #339933;">=</span>`tovar`
<span style="color: #339933;">&amp;</span>toPlaceholder<span style="color: #339933;">=</span>`catalogViewOutput`
<span style="color: #339933;">&amp;</span>currentPageClass<span style="color: #339933;">=</span>`act`
<span style="color: #339933;">&amp;</span>lang<span style="color: #339933;">=</span>`prof`
<span style="color: #339933;">!</span><span style="color: #009900;">]</span></pre>
<p>а затем в чанке <strong>tovar</strong></p>
<p>вывожу просмотренные</p>
<pre class="php" style="font-family: monospace;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #339933;">&lt;</span>h2<span style="color: #339933;">&gt;</span>Недавно просмотренные товары<span style="color: #339933;">:&lt;/</span>h2<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #009900;">[</span><span style="color: #339933;">!</span>catalogView?
<span style="color: #339933;">&amp;</span>tpl<span style="color: #339933;">=</span>`prof_recent_list`
<span style="color: #339933;">&amp;</span>display<span style="color: #339933;">=</span>`<span style="color: #cc66cc;">5</span>`
<span style="color: #339933;">&amp;</span>sortDir<span style="color: #339933;">=</span>`desc`
<span style="color: #339933;">&amp;</span>descTpl<span style="color: #339933;">=</span>`tovar`
<span style="color: #339933;">&amp;</span>randomize<span style="color: #339933;">=</span>`<span style="color: #cc66cc;">1</span>`
<span style="color: #339933;">&amp;</span>skipDesc<span style="color: #339933;">=</span>`<span style="color: #cc66cc;">1</span>`
<span style="color: #339933;">&amp;</span>products<span style="color: #339933;">=</span>`<span style="color: #009900;">[</span><span style="color: #009900;">[</span>cookie<span style="color: #009900;">]</span><span style="color: #009900;">]</span>`
<span style="color: #339933;">!</span><span style="color: #009900;">]</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span></pre> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/prosmotrennyie-tovaryi-iz-tabliczyi-shopkeeper/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Создание  материала через сниппет</title>

<link>https://ifreework.com/blog/modx/sozdanie-materiala-cherez-snippet-modx-eform-ajax/</link>

<description><![CDATA[ <p>Для того, что-бы получить форму, которая работает на ajax нужно:</p>
<p>Html код формы</p>
<pre class="php" style="font-family: monospace;"><span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">"rightContent"</span><span style="color: #339933;">&gt;</span>
&nbsp;
&nbsp;
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsContainer"</span><span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>form method<span style="color: #339933;">=</span><span style="color: #0000ff;">"post"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipants"</span><span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"hidden"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"name2"</span> <span style="color: #339933;">/&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsName"</span><span style="color: #339933;">&gt;</span>Имя<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"name"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsName"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsLastname"</span><span style="color: #339933;">&gt;</span>Фамилия<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"lastname"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsLastname"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsAge"</span><span style="color: #339933;">&gt;</span>Возраст<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"age"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsAge"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsPhone"</span><span style="color: #339933;">&gt;</span>Телефон<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"phone"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsPhone"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsEmail"</span><span style="color: #339933;">&gt;</span>E<span style="color: #339933;">-</span>mail<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"email"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsEmail"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsTripMembersCount"</span><span style="color: #339933;">&gt;</span>Количество людей<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"trip_members_count"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsTripMembersCount"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsTripPurpose"</span><span style="color: #339933;">&gt;</span>Цель<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>select name<span style="color: #339933;">=</span><span style="color: #0000ff;">"trip_purpose"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsTripPurpose"</span><span style="color: #339933;">&gt;&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span><span style="color: #339933;">&gt;</span>Выбор цели<span style="color: #339933;">:&lt;/</span>option<span style="color: #339933;">&gt;&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">"Обучение"</span><span style="color: #339933;">&gt;</span>Обучение<span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">"Отдых"</span><span style="color: #339933;">&gt;</span>Отдых<span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">"Аренда"</span><span style="color: #339933;">&gt;</span>Аренда<span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;&lt;/</span>select<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label<span style="color: #339933;">&gt;</span>Даты поездки<span style="color: #339933;">:&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsTripStartDate"</span><span style="color: #339933;">&gt;</span>Начала<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"data_start"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsTripStartDate"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsTripEndDate"</span><span style="color: #339933;">&gt;</span>Окончания<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"data_end"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsComment"</span><span style="color: #339933;">&gt;</span>Комментарии<span style="color: #339933;">,</span> пожелания<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;&lt;</span>textarea cols<span style="color: #339933;">=</span><span style="color: #0000ff;">"40"</span> rows<span style="color: #339933;">=</span><span style="color: #0000ff;">"4"</span>&nbsp; name<span style="color: #339933;">=</span><span style="color: #0000ff;">"comment"</span> id<span style="color: #339933;">=</span><span style="color: #0000ff;">"formParticipantsComment"</span><span style="color: #339933;">&gt;&lt;/</span>textarea<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div&nbsp; style<span style="color: #339933;">=</span><span style="color: #0000ff;">"display:none"</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"data_rodots"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">""</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div<span style="color: #339933;">&gt;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #0000ff;">"button"</span> onclick<span style="color: #339933;">=</span><span style="color: #0000ff;">"send();"</span> name<span style="color: #339933;">=</span><span style="color: #0000ff;">"submit1"</span> value<span style="color: #339933;">=</span><span style="color: #0000ff;">"Отправить"</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">"result"</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;<br /><br /><br /></span></pre>
<p>&nbsp;</p>
<p>У формы есть id <strong>formParticipants </strong>все элементы этого id будут переданы обработчику формы.</p>
<p>Для страницы с формой, в head пропишем немного JS, который и будет отвечать за отправку данных с формы:</p>
<pre class="php code" style="font-family: monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #0000ff;">"text/javascript"</span><span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">function</span> send<span style="color: #009900;">(</span><span style="color: #009900;">)</span>
<span style="color: #009900;">{</span>
<span style="color: #000000; font-weight: bold;">var</span> data <span style="color: #339933;">=</span> $<span style="color: #009900;">(</span><span style="color: #0000ff;">'#formParticipants'</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #990000;">serialize</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $<span style="color: #339933;">.</span>ajax<span style="color: #009900;">(</span><span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type<span style="color: #339933;">:</span> <span style="color: #0000ff;">"POST"</span><span style="color: #339933;">,</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url<span style="color: #339933;">:</span> <span style="color: #0000ff;">"portfolio/internet-magazinyi/gormet-texnologiya/"</span><span style="color: #339933;">,</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data<span style="color: #339933;">:</span> <span style="color: #0000ff;">"data="</span><span style="color: #339933;">+</span>data<span style="color: #339933;">,</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success<span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">(</span>html<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $<span style="color: #009900;">(</span><span style="color: #0000ff;">"#result"</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #990000;">empty</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $<span style="color: #009900;">(</span><span style="color: #0000ff;">"#result"</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span>append<span style="color: #009900;">(</span>html<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">}</span>
&nbsp;
&nbsp;<span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></pre>
<p>&nbsp;</p>
<p>url - это адрес документа, который отвечает за обработку данных, шаблон blank, не кешируемый, не показывать в меню, в теле контента прописать вызов сниппета </p>
<pre class="php" style="font-family: monospace;"><span style="color: #009900;">[</span><span style="color: #339933;">!</span>send_data<span style="color: #339933;">!</span><span style="color: #009900;">]</span></pre>
<p>&nbsp;</p>
<p>Обработчик формы сниппет <strong>send_data</strong></p>
<pre class="php" style="font-family: monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">"Заявка с сайта"</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// $to - кому отправляем</span>
<span style="color: #000088;">$to</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'admin@ifreework.org'</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// $from - от кого</span>
<span style="color: #000088;">$from</span><span style="color: #339933;">=</span> <span style="color: #0000ff;">'admin@ifreework.org'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'phone'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'email'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">empty</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'data_rodots'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
<span style="color: #000088;">$mess</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'
Имя:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
Фамилия:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'lastname'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
Возраст:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'age'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
Телефон:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'phone'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
E-mail:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'email'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
Количество людей:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'trip_members_count'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
Цель:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'trip_purpose'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
&lt;label&gt;Даты поездки:&lt;/label&gt;
Начало:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'data_start'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
Конец:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'data_end'</span><span style="color: #009900;">]</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
Комментарии, пожелания:'</span><span style="color: #339933;">.</span><span style="color: #990000;">nl2br</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'comment'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;BR /&gt;
'</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #b1b100;">require_once</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'assets/libs/docmanager/document.class.inc.php'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$doc</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Document<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// создаём новый док</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$doc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Set</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'parent'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'50'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//куда&nbsp; пишем новый док</span>
&nbsp;&nbsp;&nbsp; <span style="color: #000088;">$doc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Set</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'pagetitle'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Заявка от '</span><span style="color: #339933;">.</span><span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">escape</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">// заголовок документа</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$doc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Set</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'alias'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post'</span><span style="color: #339933;">.</span><span style="color: #990000;">time</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//алиас</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$doc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Set</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'content'</span><span style="color: #339933;">,</span><span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">escape</span><span style="color: #009900;">(</span><span style="color: #000088;">$mess</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// наш контент</span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$doc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Set</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'template'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'3'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// наш шаблон</span>
&nbsp;&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">//$doc-&gt;Set('tvComment','post to comment');// если будут использоваться TV </span>
&nbsp;&nbsp; &nbsp;<span style="color: #000088;">$doc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Save</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// функция, которая отправляет наше письмо.</span>
<span style="color: #990000;">mail</span><span style="color: #009900;">(</span><span style="color: #000088;">$to</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #339933;">,</span><span style="color: #000088;">$mess</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'From:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$from</span><span style="color: #339933;">.</span> <span style="color: #0000ff;">"<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>"</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">"MIME-Version:1.0<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>Content-type: text/html; charset=utf-8"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mail</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'email'</span><span style="color: #009900;">]</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #339933;">,</span><span style="color: #000088;">$mess</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'From:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$from</span><span style="color: #339933;">.</span> <span style="color: #0000ff;">"<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>"</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">"MIME-Version:1.0<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>Content-type: text/html; charset=utf-8"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//print_r($_post); exit;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;span style="color:red"&gt;Спасибо, Ваши данные переданы.&lt;/span&gt;&lt;BR /&gt;'</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;
<span style="color: #009900;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #009900;">{</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'
Пожалуста, заполните обязательные поля.'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #000000; font-weight: bold;">?&gt;<br /><br /></span><span style="color: #000000;">&nbsp;</span></pre>
<p>В самом низу html формы есть div с id result- он будет выводить результат обработки данных формы.</p>
<p>Так же нужно подключить класс </p>
<pre class="php" style="font-family: monospace;"><a href="https://ifreework.com/assets/files/assets.zip"><span style="color: #0000ff;">document.class.inc.php</span></a></pre> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/sozdanie-materiala-cherez-snippet-modx-eform-ajax/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Самая лёгкая галерея на js</title>

<link>https://ifreework.com/blog/css/samaya-lyogkaya-galereya-na-js/</link>

<description><![CDATA[ <p>Часто приходится ставить галереи, предпочтение как всегда скорости работы, безконфликтности, простоты установки.</p>
<p>jsibox - это самое элегантное решение для галереи, всё что нужно, это подключить js скрипт </p>
<p id="line27"><span class="code">jsibox_basic.js</span><br /><br />а в атребуде ссылки прописать следущее</p>
<p class="code">&lt;span class="image"&gt;<br />&lt;a href="https://ifreework.com//" <strong>onclick="return jsiBoxOpen(this)" rel="rr"</strong>&gt;<br />&lt;img src="https://ifreework.com//tn_" /&gt;<br />&lt;/a&gt;<br />&lt;/span&gt;</p>
<p>Вот и всё, архив можно скачать <a href="https://ifreework.com/assets/files/jsibox_commented.zip">здесь</a></p>
<p><img style="vertical-align: middle;" src="https://ifreework.com/assets/images/2011-10-29_1437.png" alt="" width="581" height="595" /></p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/css/samaya-lyogkaya-galereya-na-js/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Изображение вместо radio checkbox</title>

<link>https://ifreework.com/blog/css/radio_checkbox_image_js/</link>

<description><![CDATA[ <p>Возможно не идеал, но на всех проектах применяю такой способ смены вида обычных input<strong>ов</strong></p>
<p>Итак есть :</p>
<p class="code">&lt;input id="brendbuk"&nbsp; name="brendbuk" value="да" type="checkbox"&nbsp; /&gt;</p>
<p class="code">&lt;input type="radio" value="Полуостров" name="radios" /&gt;</p>
<p>Что-бы зактыть input картинкой возьмём JS</p>
<p>Подключим jQuery и внизу кода, либо на странице где нужно сменить вид input<strong>ов </strong>прописать<strong>&nbsp;</strong></p>
<p class="code">&lt;script type="text/javascript"&gt;&nbsp;&nbsp;&nbsp; <br />$(function() {<br />&nbsp;&nbsp;&nbsp; $(document.body).addClass('js');<br /><br />&nbsp;&nbsp;&nbsp; $('#search input[type="text"], #subscribe input[type="text"]').focus( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var title = $(this).attr('title');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var val = $(this).val();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; val == title ? $(this).val('') : false;<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $('#search input[type="text"], #subscribe input[type="text"]').blur( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var title = $(this).attr('title');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var val = $(this).val();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; val == "" ? $(this).val(title) : false;<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $('#menu &gt; li').each( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var ul = $(this).find('ul');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (ul.length &gt; 0) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var div = $(this).find('div');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ul.css({visibility: 'visible'}).find('li:first').addClass('first-child').end();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var w = ul.width();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; div.css('width',w + 3);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (w+ul.offset().left &gt; $('#page').width() + $('#page').offset().left) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; div.css('margin-left', $('#page').width() + $('#page').offset().left - w - ul.offset().left - 3);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ul.css('visibility','');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $('#proj_l').click( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var line = $('#projs_line');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var frst = line.find('.proj:first');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; frst.appendTo(line);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $('#proj_r').click( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var line = $('#projs_line');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var last = line.find('.proj:last');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; last.prependTo(line);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $('#tr_nums a').click( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var href = $(this).attr('href');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $(this).parent().addClass('act').siblings().removeClass('act');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $(href).removeClass('hide').siblings('div').addClass('hide');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $('.checkbox').each( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var th = $(this);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var text = $(this).text();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var inp = th.find('input');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var name = inp.attr('name');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var val = inp.val();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var dis = false;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var che = "";<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; inp.attr('checked') ? che=" checked":che="";<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; inp.attr('checked') ? dis="":dis=" disabled='disabled'";<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; th.replaceWith("&lt;div class='check" + che + "'&gt;&lt;input type='hidden' value=" + val + " name='" + name + "'" + dis + "/&gt;" + text + "&lt;/div&gt;");<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $('.check').live('click', function () {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var th = $(this);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var inp = th.find('input');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; inp.attr('disabled') ? inp.removeAttr('disabled'):inp.attr('disabled','disabled');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; th.toggleClass('checked');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $('.radios').each( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var th = $(this);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var name = $(this).find('input:first').attr('name');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var val = $(this).find('input:checked').attr('value');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (val==undefined) val="";<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var rep = "&lt;div class='radio_g'&gt;&lt;input type='hidden' name='" + name + "' value='" + val + "' /&gt;";<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; th.find('.radio').each( function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var inp = $(this).find('input');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; inp.attr('checked') ? che=" checked":che="";<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var txt = $(this).text();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var vl = inp.val();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rep += "&lt;div class='radio_b" + che + "' val='" + vl + "'&gt;" + txt + "&lt;/div&gt;";<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rep += "&lt;/div&gt;";<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; th.replaceWith(rep);<br />&nbsp;&nbsp;&nbsp; });<br /><br />&nbsp;&nbsp;&nbsp; $('.radio_b').live('click', function() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var th = $(this);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var inp = $(this).parents('.radio_g').find('input');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var val = th.attr('val');<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; inp.val(val);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $(this).addClass('checked').siblings().removeClass('checked');<br />&nbsp;&nbsp;&nbsp; });<br /><br />});<br />&lt;/script&gt;</p>
<p>&nbsp;</p>
<p>А сами <strong>input</strong>ы заключить в html таким образом:</p>
<p class="code">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;div class="radios"&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;div class="radio"&gt;&lt;input type="radio" value="Полуостров" name="radios_configuraciya_stenda" /&gt;Полуостров&lt;/div&gt;.<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;div class="radio"&gt;&lt;input type="radio" value="Аренда" name="radios_configuraciya_stenda" /&gt;Аренда&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;div class="radio"&gt;&lt;input type="radio" value="Остров" name="radios_configuraciya_stenda" /&gt;Остров&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/div&gt;</p>
<p class="code">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;div class="checkbox"&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;input id="foto" name="foto" value="да" type="checkbox"&nbsp; /&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;label for="foto"&gt;Фото большого формата&lt;/label&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/div&gt;</p>
<p>&nbsp;</p>
<p>Всё, html прописали, js подключили, осталось дело лишь за css</p>
<p class="code">.check.checked {<br />&nbsp;&nbsp;&nbsp; background: url("../images/checked.png") no-repeat scroll 0 2px transparent;<br />}<br /><br />.check {<br />&nbsp;&nbsp;&nbsp; background: url("../images/check.png") no-repeat scroll 0 2px transparent;<br />&nbsp;&nbsp;&nbsp; color: #838485;<br />&nbsp;&nbsp;&nbsp; cursor: pointer;<br />&nbsp;&nbsp;&nbsp; display: block;<br />&nbsp;&nbsp;&nbsp; float: left;<br />&nbsp;&nbsp;&nbsp; font: 400 10px/14px tahoma;<br />&nbsp;&nbsp;&nbsp; height: 18px;<br />&nbsp;&nbsp;&nbsp; margin: 0 0 0 7px;<br />&nbsp;&nbsp;&nbsp; padding: 3px 0 3px 23px;<br />&nbsp;&nbsp;&nbsp; width: 107px;<br />}<br /><br />.radio_b.checked {<br />&nbsp;&nbsp;&nbsp; background: url("../images/checked.png") no-repeat scroll 0 2px transparent;<br />}<br /><br />.check, .radio_b {<br />&nbsp;&nbsp;&nbsp; background: url("../images/check.png") no-repeat scroll 0 2px transparent;<br />&nbsp;&nbsp;&nbsp; color: #838485;<br />&nbsp;&nbsp;&nbsp; font: 400 10px/14px tahoma;<br />&nbsp;&nbsp;&nbsp; height: 12px;<br />&nbsp;&nbsp;&nbsp; margin: 0 0 0 7px;<br />&nbsp;&nbsp;&nbsp; padding: 2px 0 4px 24px;<br />}</p>
<p>&nbsp;</p>
<p>Вот и всё, получаются вакие вот <strong>input</strong>ы</p>
<p><img style="float: left;" src="https://ifreework.com/assets/images/chekboks.jpg" alt="" width="200" height="77" /></p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/css/radio_checkbox_image_js/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>TVimageResizer без  watermark на превью</title>

<link>https://ifreework.com/blog/modx/tvimageresizer-bez-watermark-na-prevyu/</link>

<description><![CDATA[ <p>Особо расписывать нечего.</p>
<p>Обычно водяной знак служит как защита от кражи изображений с сайта, плагин для MODx EVO TVimageResizer добавляет водяной знак на изображения с которыми работает.</p>
<p>Но на малых превью, водяной знак смотриться не красиво, либо только портит превью, для того, что-бы не добавлять watermark на превью и на все изображения у которых размер меньше чем нужно, добавим условие в файл <strong>TVimageResizer.inc.php </strong>который находится тут assets\plugins\tvimageresizer\</p>
<p>Итак, версия TVimageResizer 1.9.4.4 строка 124.</p>
<p class="code">&nbsp;&nbsp;&nbsp; if($opt['width'] &gt; 150 ){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $thumb -&gt; Watermarkpngthumb = !empty($opt['watermark_thumb']) ? '../'.$opt['watermark_thumb'] : '../'.$opt['watermark'];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $thumb -&gt; Watermarktransparency = 100;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $thumb -&gt; Watermarkthumbposition = $opt['watermarkPos'];<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p>добавил условие, что если ширина картинки больше 150px, тогда ставим на ней watermark</p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/tvimageresizer-bez-watermark-na-prevyu/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 


<item>

<title>Количество просмотров страниц в MODx EVO с записью в TV параметр</title>

<link>https://ifreework.com/blog/modx/modx_tv_kolichestvo_prosmotrov_stranici/</link>

<description><![CDATA[ <p><strong>Количество просмотров страницы в MODx EVO</strong>, по этому поисковому запросу ничего не нашлось, пришлось написать плагин, который подсчитывает количество просмотров страницы, но не просто считает и записывает в базу, запись эту обновляет в <strong>TV </strong>параметре.</p>
<p>Тобишь при использовании простого плагина, мы можем ещё и<strong> фильтровать выводимые новости по популярности</strong>, вывести например самые просматриваемые страницы в MODx EVO.</p>
<p>Итак, создаём TV параметр с названием <strong>skolko&nbsp; </strong>и запоминаем его ID, пусть это будет 18(для примера).</p>
<p>Теперь создаём плагин <strong>PageCount</strong> и в код плагина свтавляем несколько строк:</p>
<p><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$table_prefix</span><span style="color: #339933;">;</span>
&nbsp;</p>
<p>
<span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">(</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'usertype'</span><span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'usertype'</span><span style="color: #009900;">]</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span> <span style="color: #009900;">}</span>
</p>
<p><span style="color: #b1b100;">if</span><span style="color: #009900;">(</span><span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">documentObject</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'donthit'</span><span style="color: #009900;">]</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'usertype'</span><span style="color: #009900;">]</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'manager'</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
&nbsp; 
&nbsp;
&nbsp; </p>
<p><span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$modx</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">documentIdentifier</span><span style="color: #339933;">;;</span>
&nbsp;&nbsp; </p>
<p><span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">"UPDATE `modx_site_tmplvar_contentvalues` SET value=value+1 WHERE tmplvarid =18 AND contentid="</span><span style="color: #339933;">.</span><span style="color: #000088;">$id</span><span style="color: #339933;">;</span>
&nbsp;&nbsp; &nbsp;</p>
<p><span style="color: #990000;">mysql_query</span><span style="color: #009900;">(</span> <span style="color: #000088;">$query</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
</p>
<p><span style="color: #009900;">}</span>
&nbsp;</p>
<p>
<span style="color: #b1b100;">return</span><span style="color: #339933;">;<br /><br /></span>Переменная 18 - это и есть ID нашего TV параметра.</p>
<p>Системные события <strong>OnWebPagePrerender</strong></p>
<p>И пожалуй, стоит сказать о маленькой фиче, что количество просмотра страницы менеджером, не учитывается.</p> ]]></description>

<pubDate></pubDate>

<guid isPermaLink="false">https://ifreework.com/blog/modx/modx_tv_kolichestvo_prosmotrov_stranici/</guid>

<dc:creator>ifreework.com</dc:creator>



</item> 
	</channel>
</rss>