\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Firestarter} \pdfinfo{ /Title (thunder-3.pdf) /Creator (Cheatography) /Author (Firestarter) /Subject (Thunder 3 Генератор Дорвеев Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{CF2F1D} \definecolor{LightBackground}{HTML}{FCF2F0} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Thunder 3 Генератор Дорвеев Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Firestarter} via \textcolor{DarkBackground}{\uline{cheatography.com/73802/cs/19458/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Firestarter \\ \uline{cheatography.com/firestarter} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 24th April, 2019.\\ Updated 24th April, 2019.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Системные требования}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Apache, под NginX и другие серверы тут \seqsplit{https://www.slimframework.com/docs/start/web-servers.html} \newline % Row Count 3 (+ 3) PHP 7.1 \newline % Row Count 4 (+ 1) mbstring \newline % Row Count 5 (+ 1) curl \newline % Row Count 6 (+ 1) php-xml \newline % Row Count 7 (+ 1) json% Row Count 8 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Установка скрипта}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{В файл \seqsplit{templates/public/blog/data/keywords}.txt положите свои ключи \newline % Row Count 2 (+ 2) В файл \seqsplit{templates/public/blog/data/text}.txt положите свою текстовку \newline % Row Count 4 (+ 2) {\bf{Установите права 777 на data/sitemap.txt}} \newline % Row Count 6 (+ 2) {\bf{Очистите подпапки папки cache в корне сайта}} \newline % Row Count 8 (+ 2) В config.php в корне сайта, установите view =\textgreater{} public =\textgreater{} template =\textgreater{} 'blog' \newline % Row Count 10 (+ 2) Откройте сайт в браузере% Row Count 11 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Настройки скрипта}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Смотрите в файле config.php \newline % Row Count 1 (+ 1) Каждая настрока детально \seqsplit{задокументирована}. \newline % Row Count 3 (+ 2) Тип кеширования: {\bf{cache-\textgreater{}type}}% Row Count 4 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{С чего начать}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Начните с изучения каталога {\bf{/templates/public/}} \newline % Row Count 2 (+ 2) Каждый шаблон может сильно отличатся, по этому изучайте примеры. вместе с этой шпаргалкой, вы очень быстро поймете как создавать свои шаблоны.% Row Count 8 (+ 6) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Глобальные переменные}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция eval позволяет выполнять любой PHP код помимо шаблонзатора.}} \newline % Row Count 3 (+ 3) {\bf{Пример использования:}} \newline % Row Count 4 (+ 1) \{\{ eval('echo 1+1;') \}\} \newline % Row Count 5 (+ 1) \{\% eval \%\} \newline % Row Count 6 (+ 1) echo \seqsplit{file\_get\_contents("/var/log/system}.log"); \newline % Row Count 7 (+ 1) \{\% endeval \%\} \newline % Row Count 8 (+ 1) {\bf{Переменная settings отображает все(любые) настройки сайта.}} \newline % Row Count 11 (+ 3) {\bf{Пример использования:}} \newline % Row Count 12 (+ 1) \{\{settings.base\_url\}\} \newline % Row Count 13 (+ 1) {\bf{Переменная cache\_id - айди для каждой страницы сайта. Служебная.}} \newline % Row Count 16 (+ 3) {\bf{Пример использования:}} \newline % Row Count 17 (+ 1) \{\{cache\_id\}\} \newline % Row Count 18 (+ 1) {\bf{Функция \seqsplit{cache\_save('global\_keyword'},'мама мыла раму') Запись \seqsplit{строки/объекта/массива} в глобальны кеш сайта.}} \newline % Row Count 22 (+ 4) {\bf{Пример использования:}} \newline % Row Count 23 (+ 1) \{\{cache\_save('global\_keyword','мама мыла раму')\}\} \newline % Row Count 25 (+ 2) {\bf{Функция \seqsplit{cache\_fetch('global\_keyword')} Чтение \seqsplit{строки/объекта/массива} из глобального кеша сайта.}} \newline % Row Count 29 (+ 4) {\bf{Пример использования:}} \newline % Row Count 30 (+ 1) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Глобальные переменные (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ \{\{cache\_fetch('global\_keyword')\}\} \newline % Row Count 1 (+ 1) {\bf{Фильтр pretty\_urlencede() кодирует ключ в ЧПУ ссылку.}} \newline % Row Count 3 (+ 2) {\bf{Пример использования:}} \newline % Row Count 4 (+ 1) \{\{ \seqsplit{keyword|pretty\_urlencede()} \}\} \newline % Row Count 5 (+ 1) {\bf{Фильтр pretty\_urldecede() декодирует ключ из ЧПУ ссылки.}} \newline % Row Count 7 (+ 2) {\bf{Пример использования:}} \newline % Row Count 8 (+ 1) \{\{ \seqsplit{keyword|pretty\_urldecede()} \}\}% Row Count 9 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Вывод счетчиков}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Переменная liveinternet отображает счетчик LIveinternet если сайт \seqsplit{зарегистрирован} в рейтинге.}} \newline % Row Count 4 (+ 4) {\bf{Пример использования:}} \newline % Row Count 5 (+ 1) \{\{liveinternet|raw\}\} \newline % Row Count 6 (+ 1) {\bf{Переменная piwik отображает ваш счетчик piwik. }} \newline % Row Count 8 (+ 2) {\bf{Для \seqsplit{автоматического} добавления \seqsplit{сайта(домена/поддомена)} в вашу piwik панель , настройте параметры "piwik-\textgreater{}url" и "piwik-\textgreater{}token\_auth" в config.php}} \newline % Row Count 13 (+ 5) {\bf{Пример использования:}} \newline % Row Count 14 (+ 1) \{\{piwik|raw\}\} \newline % Row Count 15 (+ 1) {\bf{ВНИМАНИЕ!!! После физического удаления Кеша, скрипт снова добавит домены в панель piwik. }}% Row Count 19 (+ 4) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Автопинги}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция ping() - для пинга страницы в ПС. \seqsplit{Рекомендовано} использовать с кешированием.}} \newline % Row Count 4 (+ 4) {\bf{Пример использования:}} \newline % Row Count 5 (+ 1) \{\{ping()\}\} \newline % Row Count 6 (+ 1) {\bf{Функция ping-sitemap() - для пинга Карты сайта в ПС Google, Bing и Яндекс.Блоги. Использовать только !!! с кешированием и на главной.}} \newline % Row Count 11 (+ 5) {\bf{Пример использования:}} \newline % Row Count 12 (+ 1) \{\{ping-sitemap()\}\}% Row Count 13 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры ХХХ контента}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция eporner\_last(keyword,5) - для получения последних 5(N) последних видео из сервиса eporner.com.}} \newline % Row Count 4 (+ 4) {\bf{Пример использования:}} \newline % Row Count 5 (+ 1) \{\% for video in eporner\_last('porn',5) \%\} \newline % Row Count 6 (+ 1) \{\{video.title\}\} - вывести заголовки \newline % Row Count 8 (+ 2) \{\{video.keywords\}\} - вывести ключевиые слова к видео \newline % Row Count 10 (+ 2) \{\{video.imgthumb\}\} - вывести большое превью \newline % Row Count 12 (+ 2) \{\{video.imgthumb320x240\}\} - вывести малое превью \newline % Row Count 14 (+ 2) \{\{video.embed|raw\}\} - вывести сам плеер с видео \newline % Row Count 16 (+ 2) \{\% endfor \%\} \newline % Row Count 17 (+ 1) {\bf{Функция \seqsplit{eporner\_advanced(keyword},5,25) - для получения последних 5(N) последних видео, начиная с 25(N) из сервиса eporner.com.}} \newline % Row Count 21 (+ 4) {\bf{Пример использования:}} \newline % Row Count 22 (+ 1) \{\% for video in eporner\_advanced('porn',5,25) \%\} \newline % Row Count 23 (+ 1) \{\{video.title\}\} - вывести заголовки \newline % Row Count 25 (+ 2) \{\{video.keywords\}\} - вывести ключевиые слова к видео \newline % Row Count 27 (+ 2) \{\{video.imgthumb\}\} - вывести большое превью \newline % Row Count 29 (+ 2) \{\{video.imgthumb320x240\}\} - вывести малое превью \newline % Row Count 31 (+ 2) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры ХХХ контента (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ \{\{video.embed|raw\}\} - вывести сам плеер с видео \newline % Row Count 2 (+ 2) \{\% endfor \%\} \newline % Row Count 3 (+ 1) {\bf{Функция eporner\_popular(10) - для получения 10(N) популярных видео из сервиса eporner.com.}} \newline % Row Count 6 (+ 3) {\bf{Пример использования:}} \newline % Row Count 7 (+ 1) \{\% for video in eporner\_popular(10) \%\} \newline % Row Count 8 (+ 1) \{\{video.title\}\} - вывести заголовки \newline % Row Count 10 (+ 2) \{\{video.keywords\}\} - вывести ключевиые слова к видео \newline % Row Count 12 (+ 2) \{\{video.imgthumb\}\} - вывести большое превью \newline % Row Count 14 (+ 2) \{\{video.imgthumb320x240\}\} - вывести малое превью \newline % Row Count 16 (+ 2) \{\{video.embed|raw\}\} - вывести сам плеер с видео \newline % Row Count 18 (+ 2) \{\% endfor \%\} \newline % Row Count 19 (+ 1) {\bf{Функция redtube\_search('porn','medium') - для поиска видео из сервиса redtube.com.}} \newline % Row Count 22 (+ 3) {\bf{Пример использования:}} \newline % Row Count 23 (+ 1) \{\% for porn in redtube\_search('porn','medium') \%\} \newline % Row Count 24 (+ 1) \{\{porn.video.title\}\} - вывести заголовок \newline % Row Count 26 (+ 2) \{\{porn.video.thumb\}\} - вывести большое превью \newline % Row Count 28 (+ 2) \{\{porn.video.default\_thumb\}\} - вывести \seqsplit{дополнительное} превью \newline % Row Count 30 (+ 2) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры ХХХ контента (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ \{\{porn.video.embed\_url\}\} - вывести плеер для видео \newline % Row Count 2 (+ 2) \{\{porn.video.publish\_date\}\} - вывести дату публикации \newline % Row Count 4 (+ 2) \{\{porn.video.rating\}\} - вывести рейтинг видео \newline % Row Count 6 (+ 2) \{\{porn.video.duration\}\} - вывести \seqsplit{продолжительность} видео \newline % Row Count 8 (+ 2) \{\% for image in porn.video.thumbs \%\} - вывести \seqsplit{дополнительные} превью \newline % Row Count 10 (+ 2) \{\{image.src\}\} \newline % Row Count 11 (+ 1) \{\% endfor \%\} \newline % Row Count 12 (+ 1) \{\% endfor \%\}% Row Count 13 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры сниппетов ПС}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция \seqsplit{snippets('ключевое} слово') \seqsplit{Универсальный} парсер Сниппетов из разных ПС .}} \newline % Row Count 3 (+ 3) {\bf{Пример использования:}} \newline % Row Count 4 (+ 1) \{\% set snippets = snippets(keyword) \%\} \newline % Row Count 5 (+ 1) \{\% for snippet in snippets \%\} \newline % Row Count 6 (+ 1) \{\{snippet.title\}\} \newline % Row Count 7 (+ 1) \{\{snippet.link\}\} \newline % Row Count 8 (+ 1) \{\{snippet.description\}\} \newline % Row Count 9 (+ 1) \{\% endfor \%\} \newline % Row Count 10 (+ 1) {\bf{Функция \seqsplit{rambler\_snippets('ключевое} слово') Парсер Рамблера }} \newline % Row Count 12 (+ 2) {\bf{Пример использования:}} \newline % Row Count 13 (+ 1) \{\% set snippets = \seqsplit{rambler\_snippets(keyword)} \%\} \newline % Row Count 14 (+ 1) \{\% for snippet in snippets \%\} \newline % Row Count 15 (+ 1) \{\{snippet.title\}\} \newline % Row Count 16 (+ 1) \{\{snippet.link\}\} \newline % Row Count 17 (+ 1) \{\{snippet.description\}\} \newline % Row Count 18 (+ 1) \{\% endfor \%\} \newline % Row Count 19 (+ 1) {\bf{Функция \seqsplit{google\_snippets('ключевое} слово', 10, 'ru') сниппеты из ПС Google.ru .}} \newline % Row Count 22 (+ 3) {\bf{Пример использования:}} \newline % Row Count 23 (+ 1) \{\% set google\_snippets = google\_snippets(keyword,10) \%\} \newline % Row Count 25 (+ 2) \{\% for snippet in google\_snippets \%\} \newline % Row Count 26 (+ 1) \{\{snippet.title\}\} \newline % Row Count 27 (+ 1) \{\{snippet.link\}\} \newline % Row Count 28 (+ 1) \{\{snippet.description\}\} \newline % Row Count 29 (+ 1) \{\% endfor \%\} \newline % Row Count 30 (+ 1) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры сниппетов ПС (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция \seqsplit{google\_clone\_one\_snippets('ключевое} слово') сниппеты из клона ПС Google.ru .}} \newline % Row Count 3 (+ 3) {\bf{Пример использования:}} \newline % Row Count 4 (+ 1) \{\% set google\_snippets = \seqsplit{google\_clone\_one\_snippets(keyword)} \%\} \newline % Row Count 6 (+ 2) \{\% for snippet in google\_snippets \%\} \newline % Row Count 7 (+ 1) \{\{snippet.title\}\} \newline % Row Count 8 (+ 1) \{\{snippet.link\}\} \newline % Row Count 9 (+ 1) \{\{snippet.description\}\} \newline % Row Count 10 (+ 1) \{\% endfor \%\} \newline % Row Count 11 (+ 1) {\bf{Функция \seqsplit{bing\_snippets('ключевое} слово', 'ru') сниппеты из ПС Bing.com}} \newline % Row Count 14 (+ 3) {\bf{Пример использования:}} \newline % Row Count 15 (+ 1) \{\% set bing\_snippets = bing\_snippets(keyword,'ru') \%\} \newline % Row Count 17 (+ 2) \{\% for snippet in bing\_snippets \%\} \newline % Row Count 18 (+ 1) \{\{snippet.title\}\} \newline % Row Count 19 (+ 1) \{\{snippet.link\}\} \newline % Row Count 20 (+ 1) \{\{snippet.description\}\} \newline % Row Count 21 (+ 1) \{\% endfor \%\} \newline % Row Count 22 (+ 1) {\bf{Функция \seqsplit{yahoo\_snippets('ключевое} слово', 'ru') сниппеты из ПС Yahoo.com}} \newline % Row Count 25 (+ 3) {\bf{Пример использования:}} \newline % Row Count 26 (+ 1) \{\% set yahoo\_snippets = yahoo\_snippets(keyword,10) \%\} \newline % Row Count 28 (+ 2) \{\% for snippet in yahoo\_snippets \%\} \newline % Row Count 29 (+ 1) \{\{snippet.title\}\} \newline % Row Count 30 (+ 1) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры сниппетов ПС (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ \{\{snippet.link\}\} \newline % Row Count 1 (+ 1) \{\{snippet.description\}\} \newline % Row Count 2 (+ 1) \{\% endfor \%\} \newline % Row Count 3 (+ 1) {\bf{Функция \seqsplit{sputnik\_snippets('ключевое} слово') сниппеты из ПС sputnik.ru.}} \newline % Row Count 6 (+ 3) {\bf{Пример использования:}} \newline % Row Count 7 (+ 1) \{\% set sputnik\_snippets = \seqsplit{sputnik\_snippets(keyword)} \%\} \newline % Row Count 9 (+ 2) \{\% for snippet in sputnik\_snippets \%\} \newline % Row Count 10 (+ 1) \{\{snippet.title\}\} \newline % Row Count 11 (+ 1) \{\{snippet.link\}\} \newline % Row Count 12 (+ 1) \{\{snippet.description\}\} \newline % Row Count 13 (+ 1) \{\% endfor \%\} \newline % Row Count 14 (+ 1) {\bf{Функция \seqsplit{duck\_snippets('ключевое} слово') сниппеты из ПС duckduckgo.com.}} \newline % Row Count 17 (+ 3) {\bf{Пример использования:}} \newline % Row Count 18 (+ 1) \{\% set duck\_snippets = duck\_snippets(keyword) \%\} \newline % Row Count 20 (+ 2) \{\% for snippet in duck\_snippets \%\} \newline % Row Count 21 (+ 1) \{\{snippet.title\}\} \newline % Row Count 22 (+ 1) \{\{snippet.link\}\} \newline % Row Count 23 (+ 1) \{\{snippet.description\}\} \newline % Row Count 24 (+ 1) \{\% endfor \%\} \newline % Row Count 25 (+ 1) {\bf{Функция \seqsplit{yandex\_xml\_snippets('ключевое} слово', 'login', 'api ключ', 'регион', 'язык', 10) сниппеты из ПС Yandex.ru последством Yandex.XML.}} \newline % Row Count 29 (+ 4) {\bf{Пример использования:}} \newline % Row Count 30 (+ 1) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры сниппетов ПС (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ \{\% set yandex\_snippets = \seqsplit{yandex\_xml\_snippets('ключевое} слово', 'login', 'api ключ', 'регион', 'язык', 10) \%\} \newline % Row Count 3 (+ 3) \{\% for snippet in yandex\_snippets \%\} \newline % Row Count 4 (+ 1) \{\{snippet.title\}\} \newline % Row Count 5 (+ 1) \{\{snippet.headline\}\} \newline % Row Count 6 (+ 1) \{\{snippet.url\}\} \newline % Row Count 7 (+ 1) \{\{snippet.domain\}\} \newline % Row Count 8 (+ 1) \{\{snippet.description\}\} \newline % Row Count 9 (+ 1) \{\% for passage in snippet.passages \%\} \newline % Row Count 10 (+ 1) \{\{passage\}\} \newline % Row Count 11 (+ 1) \{\% endfor \%\} \newline % Row Count 12 (+ 1) \{\% endfor \%\}% Row Count 13 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры вопросов ответов}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция \seqsplit{mail\_ru\_quetions('слово'}, 10) парсер \seqsplit{вопросов-ответов} из Маил Ру.}} \newline % Row Count 3 (+ 3) {\bf{Пример использования:}} \newline % Row Count 4 (+ 1) \{\% set quetions = \seqsplit{mail\_ru\_quetions(keyword},100) \%\} \newline % Row Count 6 (+ 2) \{\% for quetion in quetions \%\} \newline % Row Count 7 (+ 1) \{\{quetion.question\}\} \newline % Row Count 8 (+ 1) \{\% if quetion.banswer is not empty \%\} \newline % Row Count 10 (+ 2) \{\{quetion.banswer|striptags\}\} \newline % Row Count 11 (+ 1) \{\% else \%\} \newline % Row Count 12 (+ 1) \{\{quetion.answer|striptags\}\} \newline % Row Count 13 (+ 1) \{\% endif \%\} \newline % Row Count 14 (+ 1) \{\% endfor \%\} \newline % Row Count 15 (+ 1) {\bf{Функция \seqsplit{yahoo\_questions('слово'}, 'new') парсер \seqsplit{вопросов-ответов} из answers.yahoo.com.}} \newline % Row Count 18 (+ 3) {\bf{Пример использования:}} \newline % Row Count 19 (+ 1) \{\% set yahoo\_questions = yahoo\_questions(keyword,'new') \%\} \newline % Row Count 21 (+ 2) \{\% for quetion in yahoo\_questions \%\} \newline % Row Count 22 (+ 1) \{\{quetion.title\}\} \newline % Row Count 23 (+ 1) \{\{quetion.description\}\} \newline % Row Count 24 (+ 1) \{\% endfor \%\}% Row Count 25 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры подсказок ПС}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция \seqsplit{google\_suggests('ключевое} слово') поисковые подсказки из ПС Google.ru .}} \newline % Row Count 3 (+ 3) {\bf{Пример использования:}} \newline % Row Count 4 (+ 1) \{\% set google\_suggests = google\_suggests(keyword,10) \%\} \newline % Row Count 6 (+ 2) \{\% for suggest in google\_suggests \%\} \newline % Row Count 7 (+ 1) \{\{suggest\}\} \newline % Row Count 8 (+ 1) \{\% endfor \%\} \newline % Row Count 9 (+ 1) {\bf{Функция \seqsplit{yandex\_suggests('ключевое} слово') поисковые подсказки из ПС Yandex.ru .}} \newline % Row Count 12 (+ 3) Пример \seqsplit{использования:} \newline % Row Count 13 (+ 1) \{\% set yandex\_suggests = yandex\_suggests(keyword,10) \%\} \newline % Row Count 15 (+ 2) \{\% for suggest in yandex\_suggests \%\} \newline % Row Count 16 (+ 1) \{\{suggest\}\} \newline % Row Count 17 (+ 1) \{\% endfor \%\} \newline % Row Count 18 (+ 1) {\bf{Функция \seqsplit{nigma\_suggests('ключевое} слово') поисковые подсказки из ПС Nigma.ru .}} \newline % Row Count 21 (+ 3) {\bf{Пример использования:}} \newline % Row Count 22 (+ 1) \{\% set nigma\_suggests = nigma\_suggests(keyword,10) \%\} \newline % Row Count 24 (+ 2) \{\% for suggest in nigma\_suggests \%\} \newline % Row Count 25 (+ 1) \{\{suggest\}\} \newline % Row Count 26 (+ 1) \{\% endfor \%\} \newline % Row Count 27 (+ 1) {\bf{Функция \seqsplit{yahoo\_suggests('ключевое} слово') поисковые подсказки из ПС Yahoo.ru .}} \newline % Row Count 30 (+ 3) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры подсказок ПС (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\emph{*Пример использования:}} \newline % Row Count 1 (+ 1) \{\% set yahoo\_suggests = yahoo\_suggests(keyword,10) \%\} \newline % Row Count 3 (+ 2) \{\% for suggest in yahoo\_suggests \%\} \newline % Row Count 4 (+ 1) \{\{suggest\}\} \newline % Row Count 5 (+ 1) \{\% endfor \%\} \newline % Row Count 6 (+ 1) {\bf{Функция \seqsplit{ask\_suggests('ключевое} слово') поисковые подсказки из ПС Ask.com .}} \newline % Row Count 9 (+ 3) {\bf{Пример использования:}} \newline % Row Count 10 (+ 1) \{\% set ask\_suggests = ask\_suggests(keyword,10) \%\} \newline % Row Count 12 (+ 2) \{\% for suggest in ask\_suggests \%\} \newline % Row Count 13 (+ 1) \{\{suggest\}\} \newline % Row Count 14 (+ 1) \{\% endfor \%\} \newline % Row Count 15 (+ 1) {\bf{Функция \seqsplit{duck\_suggests('ключевое} слово') поисковые подсказки из ПС duckduckgo.com .}} \newline % Row Count 18 (+ 3) {\bf{Пример использования:}} \newline % Row Count 19 (+ 1) \{\% set duck\_suggests = duck\_suggests(keyword) \%\} \newline % Row Count 21 (+ 2) \{\% for suggest in duck\_suggests \%\} \newline % Row Count 22 (+ 1) \{\{suggest\}\} \newline % Row Count 23 (+ 1) \{\% endfor \%\} \newline % Row Count 24 (+ 1) {\bf{Функция \seqsplit{youtube\_suggests('ключевое} слово') поисковые подсказки из youtube.com .}} \newline % Row Count 27 (+ 3) {\bf{Пример использования:}} \newline % Row Count 28 (+ 1) \{\% set youtube\_suggests = \seqsplit{youtube\_suggests(keyword)} \%\} \newline % Row Count 30 (+ 2) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры подсказок ПС (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ \{\% for suggest in youtube\_suggests \%\} \newline % Row Count 1 (+ 1) \{\{suggest\}\} \newline % Row Count 2 (+ 1) \{\% endfor \%\} \newline % Row Count 3 (+ 1) {\bf{Функция yandex\_last({[}'скачать', 'android', 'торрент', 'torrent', 'фильм'{]}) последние запросы к ПС Яндек с возможностью фильтрации по слову или массиву слов.}} \newline % Row Count 9 (+ 6) {\bf{Пример использования:}} \newline % Row Count 10 (+ 1) \{\% set search = {[}'скачать', 'android', 'торрент', 'torrent', 'фильм'{]} \%\} \newline % Row Count 13 (+ 3) \{\% for k in yandex\_last(search) \%\} \newline % Row Count 14 (+ 1) \{\{ k \}\} \newline % Row Count 15 (+ 1) \{\% endfor \%\} \newline % Row Count 16 (+ 1) {\bf{Функция search\_query(filename) собирает ключевые слова по которым перешли на сайт и записывает их в filename.}} \newline % Row Count 20 (+ 4) {\bf{Пример использования:}} \newline % Row Count 21 (+ 1) \{\% set filename = settings.doc\_root \textasciitilde{} \seqsplit{'/templates/public/blog/data/keywords}.txt' \%\} \newline % Row Count 23 (+ 2) \{\{ search\_query(filename) \}\}% Row Count 24 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры изображений ПС}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция \seqsplit{google\_images('слово')} изображдения из ПС Google.}} \newline % Row Count 2 (+ 2) {\bf{Пример использования:}} \newline % Row Count 3 (+ 1) \{\% set google\_images = google\_images(keyword) \%\} \newline % Row Count 5 (+ 2) \{\% for image in google\_images \%\} \newline % Row Count 6 (+ 1) \{\{image\}\} \newline % Row Count 7 (+ 1) \{\% endfor \%\} \newline % Row Count 8 (+ 1) {\bf{Функция \seqsplit{snippets\_images('слово')} Безбанный парсер картинок.}} \newline % Row Count 10 (+ 2) {\bf{Пример использования:}} \newline % Row Count 11 (+ 1) \{\% set snippets\_images = \seqsplit{snippets\_images(keyword)} \%\} \newline % Row Count 13 (+ 2) \{\% for image in snippets\_images \%\} \newline % Row Count 14 (+ 1) \{\{image\}\} \newline % Row Count 15 (+ 1) \{\% endfor \%\} \newline % Row Count 16 (+ 1) {\bf{Функция \seqsplit{bing\_images('слово')} изображдения из ПС Bing.}} \newline % Row Count 18 (+ 2) {\bf{Пример использования:}} \newline % Row Count 19 (+ 1) \{\% set bing\_images = bing\_images(keyword) \%\} \newline % Row Count 21 (+ 2) \{\% for image in bing\_images \%\} \newline % Row Count 22 (+ 1) \{\{image\}\} \newline % Row Count 23 (+ 1) \{\% endfor \%\} \newline % Row Count 24 (+ 1) {\bf{Функция \seqsplit{flickr\_images('слово')} изображдения из flickr.com.}} \newline % Row Count 26 (+ 2) Пример \seqsplit{использования:} \newline % Row Count 27 (+ 1) \{\% set flickr\_images = flickr\_images(keyword) \%\} \newline % Row Count 29 (+ 2) \{\% for image in flickr\_images \%\} \newline % Row Count 30 (+ 1) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры изображений ПС (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ \{\{image\}\} \newline % Row Count 1 (+ 1) \{\% endfor \%\} \newline % Row Count 2 (+ 1) {\bf{Фильтр \{\{'http://site.com/image.png'|cache\_image\}\} для кеширования изображений по ссылке.}} \newline % Row Count 5 (+ 3) {\bf{Минимальный пример \seqsplit{использования(УРЛ} изображения остается таким как на сайта доноре):}} \newline % Row Count 9 (+ 4) \{\{'http://goodhealthgoal.com/wp-content/uploads/2015/09/Mesothelioma-Survival-Rates-Elderly.jpg'|cache\_image\}\} \newline % Row Count 12 (+ 3) Ссылка \seqsplit{преобразуется} в : \seqsplit{http://your.site.com/images/Mesothelioma-Survival-Rates-Elderly.jpg} \newline % Row Count 15 (+ 3) {\bf{Пример \seqsplit{использования} с ЧПУ(УРЛ изображения изменяется на урл ключевика):}} \newline % Row Count 18 (+ 3) \{\{'http://goodhealthgoal.com/wp-content/uploads/2015/09/Mesothelioma-Survival-Rates-Elderly.jpg'|cache\_image(keyword=keyword)\}\} \newline % Row Count 21 (+ 3) Ссылка \seqsplit{преобразуется} в : \seqsplit{http://your.site.com/images/mama-myla-ramu.jpg} \newline % Row Count 23 (+ 2) {\bf{Пример с модификацией \seqsplit{изображения(размер}, наклон и т.д):}} \newline % Row Count 26 (+ 3) \{\{'http://goodhealthgoal.com/wp-content/uploads/2015/09/Mesothelioma-Survival-Rates-Elderly.jpg'|cache\_image(keyword=keyword, rotate = 1, resize=\{'width':480, 'height':320\}, blur = 1, gamma = 1, contrast = 1, brightness=1, pixelate=2, flip = 'h')\}\} \newline % Row Count 32 (+ 6) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсеры изображений ПС (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Ссылка \seqsplit{преобразуется} в : \seqsplit{http://your.site.com/images/mama-myla-ramu.jpg} \newline % Row Count 2 (+ 2) {\bf{Все параметры:}} \newline % Row Count 3 (+ 1) rotate = 1 - поворот \newline % Row Count 4 (+ 1) resize=\{'width':480, 'height':320\} - изменить размер \newline % Row Count 6 (+ 2) blur = 1 - размытие \newline % Row Count 7 (+ 1) gamma = 1 - гамма \newline % Row Count 8 (+ 1) contrast = 1 - контраст \newline % Row Count 9 (+ 1) brightness=1 - яркость \newline % Row Count 10 (+ 1) pixelate=2 - размер зерна \newline % Row Count 11 (+ 1) flip = 'h' - отразить по \seqsplit{горизонтали(h)} или вертикали (v)% Row Count 13 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсер видео с ПС}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция \seqsplit{youtube\_videos('ключевое} слово') ссылки на видео из youtube .}} \newline % Row Count 3 (+ 3) {\bf{Пример использования:}} \newline % Row Count 4 (+ 1) \{\% set youtube\_videos = youtube\_videos(keyword,10) \%\} \newline % Row Count 6 (+ 2) \{\% for video in youtube\_videos \%\} \newline % Row Count 7 (+ 1) \{\{video.title\}\} \newline % Row Count 8 (+ 1) \{\{video.image\}\} \newline % Row Count 9 (+ 1) \{\{video.url\}\} \newline % Row Count 10 (+ 1) \{\% endfor \%\} \newline % Row Count 11 (+ 1) {\bf{Функция \seqsplit{vimeo\_videos('ключевое} слово') ссылки на видео из vimeo .}} \newline % Row Count 14 (+ 3) {\bf{Пример использования:}} \newline % Row Count 15 (+ 1) \{\% set vimeo\_videos = vimeo\_videos(keyword) \%\} \newline % Row Count 17 (+ 2) \{\% for video in vimeo\_videos \%\} \newline % Row Count 18 (+ 1) \{\{video\}\} \newline % Row Count 19 (+ 1) \{\% endfor \%\} \newline % Row Count 20 (+ 1) {\bf{Функция \seqsplit{dailymotion\_videos('ключевое} слово') ссылки на видео из dailymotion.com .}} \newline % Row Count 23 (+ 3) {\bf{Пример использования:}} \newline % Row Count 24 (+ 1) \{\% set dailymotion\_videos = \seqsplit{dailymotion\_videos(keyword)} \%\} \newline % Row Count 26 (+ 2) \{\% for video in dailymotion\_videos \%\} \newline % Row Count 27 (+ 1) \{\{video.title\}\} \newline % Row Count 28 (+ 1) \{\{video.url\}\} \newline % Row Count 29 (+ 1) \{\% endfor \%\} \newline % Row Count 30 (+ 1) } \tn \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Парсер видео с ПС (cont)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция \seqsplit{rutube\_videos('ключевое} слово') ссылки на видео из rutube.com}} \newline % Row Count 3 (+ 3) . \newline % Row Count 4 (+ 1) {\bf{Пример использования:}} \newline % Row Count 5 (+ 1) \{\% set rutube\_videos = rutube\_videos(keyword) \%\} \newline % Row Count 7 (+ 2) \{\% for video in rutube\_videos \%\} \newline % Row Count 8 (+ 1) \{\{video.title\}\} \newline % Row Count 9 (+ 1) \{\{video.url\}\} \newline % Row Count 10 (+ 1) \{\{video.image\}\} \newline % Row Count 11 (+ 1) \{\% endfor \%\} \newline % Row Count 12 (+ 1) {\bf{Функция video\_player('на видео') Преобразует ссылку на видео HTML код.}} \newline % Row Count 15 (+ 3) {\bf{Пример использования:}} \newline % Row Count 16 (+ 1) \{\% set vimeo\_videos = vimeo\_videos(keyword) \%\} \newline % Row Count 18 (+ 2) \{\{video\_player(youtube\_videos{[}1{]})|raw\}\}% Row Count 20 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Работы с файлами}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция \seqsplit{rand\_str\_from\_file('имя} файла в директории data', 10) выводит случайные строки из файла.}} \newline % Row Count 4 (+ 4) {\bf{Пример использования:}} \newline % Row Count 5 (+ 1) \{\% set lines = \seqsplit{rand\_str\_from\_file('keywords}.txt',10) \%\} \newline % Row Count 7 (+ 2) \{\% for line in lines \%\} \newline % Row Count 8 (+ 1) \{\{line\}\} \newline % Row Count 9 (+ 1) \{\% endfor \%\} \newline % Row Count 10 (+ 1) {\bf{Функция \seqsplit{rand\_text\_from\_file('имя} файла в директории data', 10) выводит случайные Предложения из файла.}} \newline % Row Count 14 (+ 4) {\bf{Пример использования:}} \newline % Row Count 15 (+ 1) \{\{ \seqsplit{rand\_text\_from\_file('keywords}.txt',10) \}\} \newline % Row Count 17 (+ 2) {\bf{Функция \seqsplit{string\_in\_file('Строка'}, 'white\_list.txt') Проверяет, существует ли строка в массиве строк из файла в папке data.}} \newline % Row Count 21 (+ 4) {\bf{Пример использования:}} \newline % Row Count 22 (+ 1) \{\% if \seqsplit{string\_in\_file('мама'},'white\_list.txt') \%\} \newline % Row Count 24 (+ 2) ДА \newline % Row Count 25 (+ 1) \{\% else \%\} \newline % Row Count 26 (+ 1) НЕТ \newline % Row Count 27 (+ 1) \{\% endif \%\}% Row Count 28 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{ТДС Доргена}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция getGeo() . Проверка Geo локации польователя, который зашел на страницу. }} \newline % Row Count 3 (+ 3) Может \seqsplit{использоваться} для \seqsplit{распределения} трафика из сайта оп ГЕО или вывода контента. \newline % Row Count 7 (+ 4) {\bf{Пример испозьзования:}} \newline % Row Count 8 (+ 1) \{\% set geo = getGeo() \%\} \newline % Row Count 9 (+ 1) \{\{geo.city.name\_ru\}\} \newline % Row Count 10 (+ 1) \{\{geo.city.name\_en\}\} \newline % Row Count 11 (+ 1) \{\{geo.region.name\_ru\}\} \newline % Row Count 12 (+ 1) \{\{geo.region.name\_en\}\} \newline % Row Count 13 (+ 1) \{\{geo.region.iso\}\} \newline % Row Count 14 (+ 1) \{\{geo.country.name\_en\}\} \newline % Row Count 15 (+ 1) \{\{geo.country.name\_en\}\} \newline % Row Count 16 (+ 1) \{\{geo.country.iso\}\} \newline % Row Count 17 (+ 1) {\bf{Пример слива:}} \newline % Row Count 18 (+ 1) \{\% set geo = getGeo() \%\} \newline % Row Count 19 (+ 1) \{\%if \seqsplit{geo.city.name\_ru=='Москва'} \%\} \newline % Row Count 20 (+ 1) тут html код для москвичей. \newline % Row Count 21 (+ 1) \{\% esleif \seqsplit{geo.city.name\_ru=='Киев'} \%\} \newline % Row Count 22 (+ 1) тут html код для киевлян. \newline % Row Count 23 (+ 1) \{\% else \%\} \newline % Row Count 24 (+ 1) тут html код для всех остальных. \newline % Row Count 26 (+ 2) \{\% endif \%\}% Row Count 27 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Клоака Доргена}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Функция isBot() . Проверка, На страницу зашел Поисковый Робот? }} \newline % Row Count 3 (+ 3) {\bf{Пример использования:}} \newline % Row Count 4 (+ 1) \{\% if isBot() == true \%\} \newline % Row Count 5 (+ 1) ДА \newline % Row Count 6 (+ 1) \{\% else \%\} \newline % Row Count 7 (+ 1) НЕТ \newline % Row Count 8 (+ 1) \{\% endif \%\} \newline % Row Count 9 (+ 1) {\bf{Функция isBotUserAgent() . Проверка, USER AGENT посетителя это USER AGENT Поискового Робота? }} \newline % Row Count 12 (+ 3) {\bf{Пример использования:}} \newline % Row Count 13 (+ 1) \{\% if isBotUserAgent() == true \%\} \newline % Row Count 14 (+ 1) ДА \newline % Row Count 15 (+ 1) \{\% else \%\} \newline % Row Count 16 (+ 1) НЕТ \newline % Row Count 17 (+ 1) \{\% endif \%\} \newline % Row Count 18 (+ 1) {\bf{Функция isBotIp() . Проверка, IP посетителя это IP Поискового Робота? }} \newline % Row Count 21 (+ 3) {\bf{Пример использования:}} \newline % Row Count 22 (+ 1) \{\% if isBotIp() == true \%\} \newline % Row Count 23 (+ 1) ДА \newline % Row Count 24 (+ 1) \{\% else \%\} \newline % Row Count 25 (+ 1) НЕТ \newline % Row Count 26 (+ 1) \{\% endif \%\}% Row Count 27 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}