icq 775084, alexz006, , icq t.me/alexz15 | t.me/seodor

If there is a construction of the form {{@M_ACROS('Z',X,Y)}}, then:
'Z' - any characters to separate output content, eg, '<br>' or ', ' etc.
X,Y - amount of random content from X to Y.
Such macros can also be written like this: {{ @M_ACROS() }} - in which case one random value of the macro will be output.

Example 1: {{@SNIPP_TITLE('<br>',1,5)}} - On the page from 1 to 5 titles from the snippet on the current request, separated by a tag <br>.
Example 2: {{@Q_IMAGES_URL_SMALL()}} - will display a random URL on the page to a small copy of the sparse image.

 


Local (L)

Macros that do not parse anything.

{{@L_TITLE}}

Name of the site
{{@L_TITLE}}

{{@L_QUERY}}

Current search query on a page with a small letter. If empty, for example, on the main, then random from Keyword
{{@L_QUERY}}

{{@L_BQUERY}}

The current search query on a page with a capital letter. If empty, for example, on the main, then random from Keyword
{{@L_BQUERY}}

{{@L_QUERY_URL}}

The URL of the current page. If empty, for example, on the main, then the first of Keyword (tekushiy-poiskoviy-zapros.html)
{{@L_QUERY_URL}}

{{@L_MAP_URL('Z',X,Y)}}

Random internal URL from site map
{{@L_MAP_URL('<br>',2,5)}}

{{@L_MAP_KEY('Z',X,Y)}}

Random anchor from the site map with a small letter
{{@L_MAP_KEY('<br>',2,5)}}

{{@L_MAP_BKEY('Z',X,Y)}}

Random anchor from the site map with a capital letter
{{@L_MAP_BKEY('<br>',2,5)}}

{{@L_MAP_HREF('Z',X,Y)}}

Random link from the site map with a small letter
{{@L_MAP_HREF('<br>',2,5)}}

{{@L_MAP_BHREF('Z',X,Y)}}

Random link from the site map with a capital letter
{{@L_MAP_BHREF('<br>',2,5)}}

{{@L_RELATED_MAP_URL('Z',X,Y)}}

Similar current request internal URL from site map
{{@L_RELATED_MAP_URL()}}

{{@L_RELATED_MAP_KEY('Z',X,Y)}}

Similar current request anchor from the site map with a small letter
{{@L_RELATED_MAP_KEY('<br>',2,5)}}

{{@L_RELATED_MAP_BKEY('Z',X,Y)}}

Similar current request anchor from the site map with a capital letter
{{@L_RELATED_MAP_BKEY('<br>',2,5)}}

{{@L_RELATED_MAP_HREF('Z',X,Y)}}

A similar current request internal link from the site map with a small letter
{{@L_RELATED_MAP_HREF('<br>',2,5)}}

{{@L_RELATED_MAP_BHREF('Z',X,Y)}}

A similar current request internal link from the site map with a capital letter
{{@L_RELATED_MAP_BHREF('<br>',2,5)}}

{{@L_KEY('Z',X,Y)}}

Random keyword
{{@L_KEY('<br>',2,5)}}

{{@L_BKEY('Z',X,Y)}}

Random keyword with a capital letter
{{@L_BKEY('<br>',2,5)}}

{{@L_KEY_URL('Z',X,Y)}}

URL with random keyword (sluchayniy-keyword.html)
{{@L_KEY_URL()}}

{{@L_KEY_HREF('Z',X,Y)}}

Link with random keyword
{{@L_KEY_HREF('<br>',2,5)}}

{{@L_BKEY_HREF('Z',X,Y)}}

Link with a random keyword with a capital letter
{{@L_BKEY_HREF('<br>',2,5)}}

{{@L_RELATED_KEY('Z',X,Y)}}

A similar current query keyword (for outputting one keY you can write this: {{@L_RELATED_KEY()}})
{{@L_RELATED_KEY('<br>',2,5)}}

{{@L_RELATED_BKEY('Z',X,Y)}}

A similar current query keyword with a capital letter (for outputting one key you can write this: {{@L_RELATED_BKEY()}})
{{@L_RELATED_BKEY('<br>',2,5)}}

{{@L_RELATED_KEY_HREF('Z',X,Y)}}

A similar current query keyword reference to the page (for outputting one ke, you can write this: {{@L_RELATED_KEY_HREF()}})
{{@L_RELATED_KEY_HREF('<br>',2,5)}}

{{@L_RELATED_BKEY_HREF('Z',X,Y)}}

A similar current request a keyword-link to a page with a capital letter (you can write the following for the output of one key: {{@L_RELATED_BKEY_HREF()}})
{{@L_RELATED_BKEY_HREF('<br>',2,5)}}

{{@L_RELATED_KEY_URL('Z',X,Y)}}

A similar current request URL (for the output of a single kay can be written like this: {{@L_RELATED_KEY_URL()}})
{{@L_RELATED_KEY_URL()}}

{{@L_RANDNUM(X,Y)}}

Random number from X to Y.
It is possible still so:
{{mt_rand(X,Y)}}
{{@L_RANDNUM(2,5)}}

<l_randnum min="2" max="5" />

Analog macro {{@L_RANDNUM(X,Y)}}
<l_randnum min="2" max="5" />

{{@L_RANDIMG('folder/images')}}

Random URL on a picture from the folder /folder/images, displays a link like this folder/images/pict.jpg
{{@L_RANDIMG('folder/images')}}

<l_randimg src="folder/images" />

Analog macro {{@L_RANDIMG('folder/images')}}
<l_randimg src="folder/images" />

{{@L_RANDTXT('folder/txtfile.txt', 'Z', X,Y)}}

Random string from file /folder/txtfile.txt
{{@L_RANDTXT('folder/txtfile.txt', ' ', 2,5)}}

{{@L_BRANDTXT('folder/txtfile.txt', 'Z', X,Y)}}

Random string from file /folder/txtfile.txt with a capital letter
{{@L_BRANDTXT('folder/txtfile.txt', ' ', 2,5)}}

{{@L_DRANDTXT('folder/txtfile.txt', 'Z', X,Y)}}

Outputting a random string from a file /folder/txtfile.txt and its subsequent removal.

An additional load is created on the server!
{{@L_DRANDTXT('folder/txtfile.txt', ' ', 2,5)}}

{{@L_BDRANDTXT('folder/txtfile.txt', 'Z', X,Y)}}

Outputting a random string from a file /folder/txtfile.txt with a capital letter and its subsequent removal.

An additional load is created on the server!
{{@L_BDRANDTXT('folder/txtfile.txt', ' ', 2,5)}}

{{@L_RELATED_TXT('folder/txtfile.txt', 'Z', X,Y, B, 'Q', 'T')}}

Output of a random line, similar to the current query, from a file /folder/txtfile.txt, where:
Z - line separator;
X,Y - FROM and TO;
B - 1 - with a capital letter, 0 - with a small;
Q - a query that searches for similar strings;
T - The names of the tags that will be used to find the words (u,i,strong).

Default values:
Z='';
X,Y=1,1;
B=0;
Q='';
T='';

If no similar string is found, it will output a random.

Attention! If the search occurs in a large file and there is no matching line, the page generation will slow down!
{{@L_RELATED_TXT('folder/txtfile.txt', ' ', 2,5)}}

{{@L_RANDFILE('folder')}}

Outputting a random file from a folder folder
{{@L_RANDFILE('folder')}}

{{@L_DRANDFILE('folder')}}

Output a random file from the folder folder and then delete it (the folder folder must be writable)
{{@L_DRANDFILE('folder')}}

{{@L_RANDQUOTE('ucontent/txtfile.txt','Z',X,Y)}}

A random sentence from the file /ucontent/txtfile.txt. The sentence is the text before these characters: .!?
{{@L_RANDQUOTE('folder/txtfile.txt', ' ', 2,5)}}

[Hello|[Hi|YOW]|WaW]

Insert a random text from these, separated by "|". You can use any macros and specify many options. Nesting is supported.
[Hello|[Hi|YOW]|WaW]

{{@L_TRANS('текст')}}

Translates "text" into translit - tekst.html to get the URL
{{@L_TRANS('текст')}}

{{@L_TRANSLIT('текст')}}

Similar to the macro L_TRANS, but it is used only to translate text into translit (the links generated by it will not work)
{{@L_TRANSLIT('текст')}}

[STAT-X]content[/STAT]

The content between the macros will not change within the doorway. X - is any unique label.
[STAT-X]content[/STAT]

[COPY-X]Y[/COPY]

«Copies» the result of "Y" with the label "X" within the page.
[COPY-X]Y[/COPY]

[PASTE-X]

«Inserts» the result of "Y" with the label "X".
[PASTE-X]

{{@L_DATE_TIME('d.m.Y, H:i', -X)}}

Displays the current date, taking into account adding or subtracting X-hours and X-minutes, where d.m.Y, H:i - date output template (more info).
Example:
{{@L_DATE_TIME('d.m.Y, H:i', -23)}} will print the current date and take away from it 23 hours and 23 minutes (04.10.2013, 02:52.
You can simply write this: {{@L_DATE_TIME()}} - will show the current date and time.
{{@L_DATE_TIME('d.m.Y, H:i', -2)}}

{{@L_RANDSYM(X,Y,'Z')}}

Generating random characters, where Z are the characters from which the string will be generated, X-Y - FROM and TO characters in the string.

Example:
{{@L_RANDSYM(5,10,'0123456789')}} - will output from 5 to 10 random digits;
can be written as: {{@L_RANDSYM(5,10)}} - will output 5 to 10 random characters a-z0-9.
or so: {{@L_RANDSYM(10)}} - will output 10 random characters a-z0-9.
{{@L_RANDSYM(5,7,'')}}

{{@L_GEN_NIK()}}

Generates a nickname. The macro is written with brackets ()!
{{@L_GEN_NIK()}}

<l_repeat count="X,Y">template</l_repeat>

Template will be repeated from X to Y times. If Y is not, then repeat X times.

Example:
<l_repeat count="2,5">
line # {COUNTER}
</l_repeat>

where {COUNTER} is the number of the current repetition.

On the page you will see:
line # 1
line # 2
line # 3
<l_repeat count="2,5">
	{COUNTER}
</l_repeat>

<l_prob p="50">content</l_prob>

With 50% probability will output content to the page.
<l_prob p="50">content</l_prob>

<l_href cat="Z">Text</l_href>

Turn Text into a link, where Z is the category id or alternative category name.

Output:
<a href="cat/text.html" class="my_class">Text</a>
<l_href cat="Z" class="my_class">Text</l_href>

<l_keys_href count="X"><br></l_keys_href>

Random link from all the keys or site map.

Any html-attributes, as well as the attributes of the SEoDOR are supported:
count="X,Y" - from X [to Y] links;
cat="X,Y" - derive links from categories whose id is X[,Y,... etc.];
related="1" - Related links for current news;
sitemap="1" - output only those links that are already in the site map;

Outputs:
<a href="keyword.html" title="Keyword" class="my_class">Keyword</a>
<l_keys_href count="10" class="my_class"><br></l_keys_href>

<l_redirect href="PATH" url="URL">Анкор</l_redirect>

When you go to the PATH page, the redirect to URL.

Outputs:
<a href="path/">Keyword</a>
<l_redirect href="path/" url="http://google.com/search?q={{@L_QUERY}}" target="_blank" style="color:green">{{@L_QUERY}}</l_redirect>

<l_max_words count="X">Content</l_max_words>

Truncates Content to X words.
<l_max_words count="30">Content</l_max_words>

<no_cache expires="N">Y</no_cache>

Instead of Y, you can insert any content that will not be cached. This can be, for example, short news. "N" is the number of minutes for which the code inside the macro will be cached.

Example:
... here html ... cached content ...

<no_cache>

{{ @L_RANDNUM(1, 1000) }} {* - the page will always display a different number *}

</no_cache>

... html ... content ...


Warning: The template is also cached! CALL ONLY the results of code execution in the block <no_cache>Y</no_cache>
<no_cache expires="0">Y</no_cache>

<gen_img>Text</gen_img>

Generates a unique picture where Text is the text that will be added to the picture (optional).
Attributes:
width="400,500" - width FROM and TO. You can specify one value;
height="300,400" - height FROM and TO. You can specify one value;
count="200,500" - number of figures in the picture;
arc="1" - arc;
text="1" - numbers and letters;
string="1" - small numbers and letters;
ellipse="1" - ellipses;
rectangle="1" - rectangles;
alpha="1" - transparency of figures.

Other attributes are supported, for example alt, class etc.
<gen_img width="400,500" height="300" count="200,500" arc="1" text="1" string="1" ellipse="1" rectangle="1" alpha="1" alt="{{@L_BQUERY}}" class="my_class">Text</gen_img>

{{@GEN_IMG(X,Y,'Text')}}

Analog macro <gen_img>Text</gen_img>, where:
X - width;
Y - height;
Text - text to be added to the picture.
{{@GEN_IMG(500,300,@L_BQUERY)}}

<text_to_img>Text</text_to_img>

Generates a unique image from Text.
Attributes:
width="400,500" - width FROM and TO. You can specify one value;
font_size="15" - font size;
color="#000" - text color;
bgcolor="#ffffff" - background color of the picture;
bgimage="images/stars.jpg" - background image to be added to the picture;
bgrotate="1" - random background rotation;
font="" - path to the TTF font file. If empty, then Arial is used;
name="" - image file name. If empty, it will be generated based on the current keyword;

Other attributes are supported, for example alt, class etc.
<text_to_img width="400,500" font_size="15" color="#000" bgcolor="#ffffff" bgimage="images/stars.jpg" bgrotate="1" font="" name="" alt="{{@L_BQUERY}}" class="my_class">Text</text_to_img>

{{@TEXT_TO_IMG('text'...)}}

Analog macro <text_to_img>Text</text_to_img>

The transmitted parameters go in the following order:
text, width, font_size, color, bgcolor, bgimage, bgrotate, name, font

Example:
<img src="{{@TEXT_TO_IMG(@L_QUERY,300,12,'#000','#ffffff','images/stars.jpg',1,'','')}}" />
{{@TEXT_TO_IMG(@L_QUERY,300,12,'#000','#ffffff','images/stars.jpg',1,'','')}}

<my_img src="http://site.com/img.png" />

To download picture http://site.com/img.png to the uploads folder and displays a tag <img /> with the local path of the image.

The macro can be written so:
<my_img>
<img src="http://site1.com/img1.png" />
<img src="http://site2.com/img2.jpg" />
</my_img>
<my_img src="http://site.com/img.png" width="500" height="300" alt="{{@L_BQUERY}}" class="my_class" />

{{@MY_IMG('http://site.com/img.png')}}

Analog macro <my_img src="http://site.com/img.png" />

Example:
<img src="{{@MY_IMG('http://site.com/img.png')}}" />
{{@MY_IMG('http://site.com/img.png')}}

<decl_of_num num="X" t1="T1" t2="T2" t3="T3" />

Declination by case of number X, where:
X - число;
T1, T2, T3 - the text for declension.

Example:
<decl_of_num num="20" t1="comment" t2="comments" t3="comments" /> - will output "20 comments".

In "X" supported macros.
<decl_of_num num="20" t1="comment" t2="comments" t3="comments" />

{{@DECL_OF_NUM(X, T1, T2, T3)}}

Analog macro <decl_of_num num="X" t1="T1" t2="T2" t3="T3" />

Example:
{{@DECL_OF_NUM(2, 'comment', 'comments', 'comments')}} - will output "2 comments".

In "X" supported macros.
{{@DECL_OF_NUM(2, 'comment', 'comments', 'comments')}}

Content generation (L)

Used to uniquely content.

<panchenko count="X[,Y]">text</panchenko>

Generation according to the Panchenko algorithm from X to Y sentences, where text - content on the basis of which new content will be generated.
<panchenko count="15,20">text</panchenko>

<markov count="X[,Y]">text</markov>

Generated via a Markov chain from X to Y proposals, where text - content on the basis of which new content will be generated.
<markov count="15,20">text</markov>

<insert_to_text count="X[,Y]">text</insert_to_text>

Inserts into the text a keyword or a link to the page according to the attributes:
insert="T", where "T" - a type:
- query - current request
- key - random keyword
- key_href - random keyword in the form of a link
- map - link from map
- multi_map:group name - a link from a map for a random domain from the specified domain group. If the group is not specified, it will output a random link from the random domain map from any group.
- file_line - Inserting a line from file to text (requires attribute file, see below).
- file_quote - inserting a sentence from a file into text (requires attribute file, see below).
- rss_title - inserting a random title from rss to text (requires attribute rss_url, see below).
- rss_quote - inserting a random sentence from a rss tag <description> to text (requires attribute rss_url, see below).
- rss_content - inserting random content from the rss <description> tag into the text (an attribute is required rss_url, see below).
If you write types (T) with a comma, then there will be a random insertion from the specified types.
cat="id_category" - insert keywords from the desired category.
count="X[,Y]" - Number of insertions, where X - FROM [Y - TO]
parts="0" - to break keywords into words (1 - yes, 0 - no)
tags="strong,u,i" - Random tag names separated by commas that will surround the inserts
file="path_to_file.txt" - works in conjunction with attributes insert=file_line and insert=file_quote - the path to the file from which you want to insert the content.
rss_url="url_to_feed.rss" - works in conjunction with attributes insert=rss_title, insert=rss_quote and insert=rss_content - URL of the RSS feed from which you want to insert the content.
quote_sep=".,!?" - works in conjunction with attributes insert=file_quote и insert=rss_quote - the delimiter of sentences (if not specified, then by default ".!?").

Attention! Paste this macro on the text that has already been generated. For example:
<insert_to_text count="2"><panchenko count="10">{{@DONOR_CONTENT(' ',10,15)}}</panchenko></insert_to_text>
but not vice versa!
<insert_to_text insert="query,key,key_href,map" count="1,3" parts="0" tags="strong,u,i">text</insert_to_text>

News macros (N)

Using these macros, you can display short news, etc.

<full_news short_words="Z" />

<full_news short_words="Z"> text </full_news>,
where text - the generated text by another macro, and Z - the number of words that should be in the short news.

If you register a macro as in the example above, this text will be written into the database in the form of a short and complete news.

If the database already has text, the macro will print it.

If you set the macro like this:
<full_news />,
then it will only output the full news from the database, if it exists. If there is no complete news in the database, nothing will be output.
<full_news short_words="30">text</full_news>

{{@FULL_NEWS('text', 30)}}

Equivalent <full_news short_words="30">text</full_news>
{{@FULL_NEWS('text', 30)}}

<short_news />

Outputs a short news item of 30 words specified in the macro <full_news short_words="30">

The macro <short_news /> depends directly on the presence of a macro in the template <full_news /> - if it is not, then <short_news /> does not print anything.

It also will not output anything if the full and short news is not separated by a tag <!--more-->
<short_news />

{{@SHORT_NEWS()}}

Equivalent <short_news />
{{@SHORT_NEWS()}}

<user_data id="my_id" words="0" tags="1" />

Output user data with a label (id) my_id, where: words="0" - cutting down the content to the specified number of words (0 - output all the text), tags="1" - output content with html-tags or not.

You can write a macro like this:
<user_data id="my_id">Content</user_data>,
where Content - any dynamically generated content. Then the user data will be stored in the database (Content) with the label my_id, and when generating a new page, this Content will be displayed.
<user_data id="my_id" words="0" tags="1" />

{{@USER_DATA('my_id')}}

Analog macro <user_data id="my_id" />.

Parameters are transferred in the following order:
id, text (if there is no text, the macro will display the existing data from the database), words, tags.

Example 1:
{{@USER_DATA('my_id', '', 0, 1)}}
Example 2:
{{@USER_DATA('my_id')}}
{{@USER_DATA('my_id', '', 0, 1)}}

<get_news>template</get_news>

Output of news from the database.
Supports these attributes:

count="X,Y" - from X [to Y] news;
related="1" - similar news for current news;
cached="X" - where X:
  0 - output only NOT cached news,
  1 - output only cached news,
  2 - output all news.
  Default value - 1;
pagination="1" - indicates that for these news will work pagination (see below macro <pagination />);
sort="Z" - sorting news, where Z can be this:
  - date_desc - sort by date descending
  - date_asc - sort by date ascending
  - id_desc - sort by ID news in descending order
  - id_asc - sort by ID news in ascending order
sitemap="1" - output only those news, links to which already exist in the site map;
cat="X" - output news from categories whose id is X[,Y,... etc.];
  - If you set an empty attribute cat="", then it will output news for which the category is not assigned.
date="Z" - output news that is published Z:
  - day - today
  - week - week
  - month - month
  - year - year

Macro Template <get_news /> supports the following macros:
{KEY} - keyword with a small letter
{BKEY} - keyword with a capital letter
{URL} - URL to news
{POSTER_URL} - URL to poster for news, copied by macro {URL_POSTER}image.jpg{/URL_POSTER} or <img_poster src="image.jpg" />
{META_DESCRIPTION} - meta_description
{TAGS_TITLE} - news tags
{TAGS_HREF} - news tags in the form of links
{SHORT_NEWS} - short news
{FULL_NEWS} - full news
{DATE_CACHED('d.m.Y, H:i',-23)} - the caching time of news and minus 23 hours and 23 minutes
  Variants of writing a macro:
  - {DATE_CACHED('d.m.Y, H:i',-23)}
  - {DATE_CACHED('d.m.Y, H:i')}
  - {DATE_CACHED}
  - {DATE_CACHED('',0,1)} - will output 01 OCT 2018 (without minutes and seconds)
{USER_DATA-Z} - user data, where Z is the data label (or ID) that you want to output
{CATEGORY_ID} - Category IDs separated by commas, to which the news belongs
{CATEGORY_ALT} - alternate name of categories separated by commas, to which the news belongs
{CATEGORY_TITLE} - category names separated by a comma to which the news belongs
{CATEGORY_HREF} - comma-separated links to which the news belongs
{COMMENTS_COUNT} - count of comments in the news
{COUNTER} - number of repetitions of the macro <get_news>

Example:
<get_news count="5" cat="1,4">
<a href="{URL}" title="{KEY}">{BKEY}</a> ({DATE_CACHED('d.m.Y, H:i',0)}) <br>
{SHORT_NEWS}<br><br>
</get_news>


Output 5 news from categories ID 1 and 4:
<a href="keyword.html" title="keyword">Keyword</a> (23.12.2016, 01:15) <br> Short news<br><br>
...
<get_news count="5" cached="1" sort="date_desc">
	<a href="{URL}" title="{KEY}">{BKEY}</a>
</get_news>

<pagination range="3" />

Displays the news pagination for a macro <get_news pagination="1" /> (in which the attribute is specified pagination="1"), where range="3" - sphere of links.
<pagination range="3" />

<page_tags href="1" sep=", " class="tags" />

Displays tags as links for the current page.
If you do not specify the href attribute, it will display just the text.
<page_tags href="1" sep=", " class="tags" />

{{@PAGE_TAGS(', ', 1)}}

Equivalent <page_tags href="1" sep=", " class="tags" />
{{@PAGE_TAGS(', ', 1)}}

<img_poster src="image.jpg" />

<img_poster src="image.jpg" /> - will write the link into the database as a poster for the news and display it in the form of a tag: <img src="image.jpg" />

If you set the macro like this:
<img_poster />,
then it will only output the link from the database.
<img_poster src="{{ @Q_IMAGES_URL_SMALL() }}" alt="" align="left" />

{URL_POSTER}image.jpg{/URL_POSTER}

The second variant of recording the URL of the picture as a poster for the news.
<q_images count="1" sepage="2" mark="X" rand="1">
	<a href="{URL_BIG}" class="image">
		<img src="{URL_POSTER}{URL_SMALL}{/URL_POSTER}" alt="{{ @SNIPP_TITLE() }}" align="left" />
	</a>
</q_images>

{{@URL_POSTER('image.jpg')}}

The third variant of recording the URL of the picture as a poster for the news - will be written into the database as a poster for the news and will display its URL.
{{@URL_POSTER('image.jpg')}}

{{@DATE_CACHED('d.m.Y, H:i', -X)}}

Works in the page.html template and displays the caching date of the page, taking into account adding or subtracting X-hours and X-minutes, where d.m.Y, H:i - date output template (more info).
Example:
{{@DATE_CACHED('d.m.Y, H:i', -23)}} displays the date of caching the page and takes away from it 23 hours and 23 minutes (04.10.2013, 02:52.
You can simply write this: {{@DATE_CACHED()}} or {{@DATE_CACHED('',0,1)}} - will show the date and time of caching the page.
{{@DATE_CACHED('d.m.Y, H:i', -2)}}

{{@COMMENTS_COUNT}}

Works in the page.html template and displays count of comments in the news.
{{@COMMENTS_COUNT}}

Search, Tags and Sorting (T)

Search template macros: search.html, Tags: tags.html), and Sort: sort.html. In the templates also support other SEoDOR macros.

<search_result>template</search_result>

Output from the database the news corresponding to the search query or the tag.

template macros <search_result /> supports the following macros:
{KEY} - keyword with a small letter
{BKEY} - keyword with a capital letter
{URL} - URL to news
{META_DESCRIPTION} - meta_description
{TAGS_TITLE} - news tags
{TAGS_HREF} - news tags in the form of links
{SHORT_NEWS} - short news
{FULL_NEWS} - full news
{DATE_CACHED('d.m.Y, H:i',-23)} - the caching time of news and minus 23 hours and 23 minutes
  Variants of writing a macro:
  - {DATE_CACHED('d.m.Y, H:i',-23)}
  - {DATE_CACHED('d.m.Y, H:i')}
  - {DATE_CACHED}
  - {DATE_CACHED('',0,1)} - will output 01 OCT 2018 (without minutes and seconds)
{USER_DATA-Z} - user data, where Z - the data label (ID) that you want to output
{CATEGORY_ID} - Category IDs separated by commas, to which the news belongs
{CATEGORY_ALT} - alternate name of categories separated by commas, to which the news belongs
{CATEGORY_TITLE} - category names separated by a comma to which the news belongs
{CATEGORY_HREF} - links leading to categories separated by commas, to which the news belongs
{COMMENTS_COUNT} - count of comments in the news
{COUNTER} - number of repetitions of the macro <search_result>

Пример:
<search_result>
<p><a href="{URL}">{BKEY} <p style="padding-bottom:10px">
<a href="{URL}"><img src="{POSTER_URL}" alt="{KEY}" title="{KEY}" align="left" /></a> {SHORT_NEWS}...
</p>
</search_result>

<search_result>
	<p>
		<a href="{URL}">{BKEY}</a></p><p style="padding-bottom:10px"><a href="{URL}">
			<img src="{POSTER_URL}" alt="{KEY}" title="{KEY}" align="left" />
		</a>
		{SHORT_NEWS}...
	</p>
</search_result>

{{@pagination|raw}}

Pagination for search results
{{@pagination|raw}}

Content (Q)

Macros of text parsing on the current search request. That is, for example, we are on this page http://mydor.com/buy-viagra.html, means the current search query is "Buy Viagra"

{{@SNIPP_URL('Z',X,Y)}}

Output the specified number of random URLs to new pages generated on the basis of titles from snippets.

Warning Using this macro can lead to uncontrolled addition of new pages to the database!
{{@SNIPP_URL()}}

{{@SNIPP_TITLE('Z',X,Y)}}

Output the specified number of random titles from the snippet.
{{@SNIPP_TITLE(' ',1,3)}}

{{@SNIPP_DESCRIPTION('Z',X,Y)}}

Output the specified number of random sentences from the snippet.
{{@SNIPP_DESCRIPTION(' ',3,5)}}

{{@DONOR_CONTENT('Z',X,Y)}}

Output the specified number of random sentences from sparse donor sites.
{{@DONOR_CONTENT(' ',3,5)}}

<q_content>template</q_content>

Parsing text for a search query.
Supports these attributes:

count="2,5" - from 2 [to 5] repetitions template;
sepage="1,2" - from which page to start parsing the SE;
donors="5" - number of donors to be parsed. If you do not specify an attribute or 0, then donors will not be parsed;
min_donors="3" - minimum number of successfully sparsified donors;
query="query" - search query. If not specified, it will be the current search query;
mark="X" - macro label: if there are several macros in the template <q_content /> and for them the same marks are indicated, then the content will be parsed once and distributed to these macros.
If the tags are different or there are none at all, then for each macro there will be a separate parsing;
rand="1" - to mix sentences or not (1 - yes, 0 - no).

Macro Template <q_content /> supports inside such macros:
  - {SNIPP_URL} - will output a random URL to a new page generated on the basis of titles from snippets.
Warning! Using this macro can lead to uncontrolled addition of new pages to the database!
  - {SNIPP_TITLE} - will output a random Title from the snippet;
  - {SNIPP_DESCRIPTION} - will output a random sentence from the snippet;
  - {DONOR_CONTENT} - will output a random sentence from donor sites;

In turn, the above {MACROS} support the following parameters:
  {MACROS-(X,Y)-(Z)-[mark[i]]}, where:
  X and Y - FROM and TO count of content;
  Z - separator (e.g., <br> or " ");
  mark - any label with which you can output the same results {MACROS};
  [i] - <q_content /> template repetition counter.
Any parameters are optional.

Example:
<q_content count="2,5" sepage="1,2" donors="5" min_donors="3" query="" mark="X" rand="0">
<a href="{SNIPP_URL-[title[i]]}" title="{SNIPP_TITLE-[title[i]]}">{SNIPP_TITLE-[title[i]]}</a><br>
<h4>{SNIPP_TITLE-[title[i]]}</h4> - {SNIPP_DESCRIPTION-(2)}
{DONOR_CONTENT-(2,5)}
</q_content>

<q_content count="2,5" sepage="2" donors="5" min_donors="3" query="" mark="X" rand="0">
	{DONOR_CONTENT-(1,3)}
</q_content>

Pictures (Q)

Macros of image parsing on the current search request.

{{@Q_IMAGES_URL_SMALL('Z',X,Y)}}

Output the specified number of random URLs to the reduced copies of sparse images.
{{@Q_IMAGES_URL_SMALL()}}

{{@Q_IMAGES_URL_BIG('Z',X,Y)}}

Output the specified number of random URLs to full copies of sparse images.
{{@Q_IMAGES_URL_BIG()}}

<q_images>template</q_images>

Parsing of pictures on request.
Supports these attributes:
count="2,5" - from 2 [to 5] repetitions template;
sepage="1,2" - from which page to start parsing the SE;
query="query" - search query. If not specified, it will be the current search query;
mark="X" - macro label: if there are several <q_images /> macros in the template, and they have the same labels, then the content will be parsed once and distributed to those macros.
If the tags are different or there are none at all , then for each macro there will be a separate parsing;
rand="1" - to mix the results of parsing or not (1 - yes, 0 - no).
Attributes of image filters:
brightness="0" - Adjust brightness (range:-255 to 255)
contrast="0" - Adjust contrast (range:-100 to 100)
invert="0" - Invert image (0 or 1)
gray="0" - Convert to grayscale (0 or 1)
smooth="0" - Adjust smoothness (range: -8 to 8, but as its been used for a matrix operation, greater values are applyable too, but may lead to unusable results.)
emboss="0" - Emboss the image (0 or 1)
sepia="0" - Apply sepia effect (0 or 1)
pixelate="0" - Pixelate the image (range: 0 - 100)
blur="0" - Blur the image using Gaussian filter (0 or 1)
sketch="0" - Apply sketch effect (0 or 1)
hflip="0" - Flip on horizontal axis (0 or 1)
vflip="0" - Flip on vertical axis (0 or 1)
rotate="0" - Rotate image (range:-180 to 180)

Macro Template <q_images /> supports inside such macros:
  - {URL_SMALL} -URL to a thumbnail image;
  - {URL_BIG} - URL to full copy of the image;

Example:
<q_images count="5" sepage="1" query="" mark="X" rand="1">
<a href="{URL_BIG}"><img src="{URL_SMALL}" alt="" /></a><br>
</q_images>

<q_images count="5" sepage="1" query="" mark="X" rand="1" brightness="0" contrast="0" invert="0" gray="0" smooth="0" emboss="0" sepia="0" pixelate="0" sketch="0" hflip="0" vflip="0" rotate="0">
	<img src="{URL_SMALL}" alt="" />
	<br>
</q_images>

Video (Q)

Video parsing macros for the current search query.

{{@Q_VIDEO_URL('Z',X,Y)}}

Will output the URL to a new page generated based on the Name of the video.
Warning Using this macro can lead to uncontrolled addition of new pages to the database!
{{@Q_VIDEO_URL()}}

{{@Q_VIDEO_HREF('Z',X,Y)}}

A link to a new page generated based on the Video title.
Warning Using this macro can lead to uncontrolled addition of new pages to the database!
{{@Q_VIDEO_HREF('<br>',3,5)}}

{{@Q_VIDEO_TITLE('Z',X,Y)}}

Displays the title of the video.
{{@Q_VIDEO_TITLE(' ',3,5)}}

{{@Q_VIDEO_DESCRIPTION('Z',X,Y)}}

Displays the description of the video (if any).
{{@Q_VIDEO_DESCRIPTION(' ',3,5)}}

{{@Q_VIDEO_POSTER('Z',X,Y)}}

Output the original URL to the poster from the video.
{{@Q_VIDEO_POSTER()}}

{{@Q_VIDEO_POSTER_SMALL('Z',X,Y)}}

Output the URL to the thumbnail image of the poster from the video.
{{@Q_VIDEO_POSTER_SMALL()}}

{{@Q_VIDEO_POSTER_BIG('Z',X,Y)}}

Output the URL to the full poster image from the video.
{{@Q_VIDEO_POSTER_BIG()}}

{{@Q_VIDEO_EMBED('Z',X,Y)}}

Video-player Tube-Service.
{{@Q_VIDEO_EMBED()}}

{{@Q_VIDEO_MY_EMBED('Z',X,Y)}}

Video player Uppod. Only YouTube and RuTube are supported - for other parsers this macro is equivalent to a macro {{@Q_VIDEO_EMBED}}.
{{@Q_VIDEO_MY_EMBED()}}

<q_videos>template</q_videos>

Parsing video for the search query.
Supports these attributes:
count="2,5" - from 2 [to 5] repetitions template;
sepage="1,2" - from which page to start parsing the SE;
query="запрос" - search query. If not specified, it will be the current search query;
mark="X" - macro label: if there are several <q_images /> macros in the template, and they have the same labels, then the content will be parsed once and distributed to those macros.
If the tags are different or there are none at all , then for each macro there will be a separate parsing;
rand="1" - to mix the results of parsing or not (1 - yes, 0 - no).

Macro Template <q_content /> supports inside such macros:
  - {VIDEO_URL} - will output the URL to a new page generated based on the Title of the video;
  - {VIDEO_HREF} - will output a link to a new page generated based on the Title of the video.
Warning Using {VIDEO_URL} and {VIDEO_HREF} macros can lead to Uncontrolled addition of new pages to the database!
  - {VIDEO_TITLE} - displays the video Title;
  - {VIDEO_DESCRIPTION} - will display a Description of the video (if any);
  - {VIDEO_POSTER} - will output the original URL to the Poster from the video;
  - {VIDEO_POSTER_SMALL} - will display the URL on the thumbnail of the poster from the video;
  - {VIDEO_POSTER_BIG} - will display the URL to the full poster image from the video;
  - {VIDEO_EMBED} - video-player Tube-Service;
  - {MY_EMBED} - video player Uppod. Only YouTube and RuTube are supported - for other parsers this macro is equivalent to a macro {VIDEO_EMBED}.

Example:
<q_videos count="1" sepage="2" query="" mark="X" rand="1">
{MY_EMBED} </q_videos>

<q_videos count="1" sepage="2" query="" mark="X" rand="0">
	{MY_EMBED}
</q_videos>

Service (S)

Used to output different paths, categories, and so on.

{{@HOST}}

Website domain: site.com
{{@HOST}}

{{@S_DOR_URL}}

URL of the site including the folder (if specified): http://site.com/folder/
{{@S_DOR_URL}}

{{@S_RSS_URL}}

URL on RSS site feed: http://site.com/rss/
{{@S_RSS_URL}}

{{@S_SITEMAP_URL}}

URL to site map
{{@S_SITEMAP_URL}}

{{@S_TEMPL}}

The path to the current template path_to/my_template/
{{@S_TEMPL}}

{{@S_TEMPL_REAL}}

Outputs the real path to the template, while with the option "Show path to template /templates/template_name/, instead /public/view/templates/template_name/" {{@S_TEMPL}} displays an abridged path.
{{@S_TEMPL_REAL}}

{{@S_CAT_ID}}

ID of the current category
{{@S_CAT_ID}}

{{@S_CAT_IDS}}

ID of the current category, as well as its subcategories, separated by commas
{{@S_CAT_IDS}}

{{@S_CAT_TITLE}}

Title of current category
{{@S_CAT_TITLE}}

{{@S_CAT_DESCRIPTION|raw}}

Description of the current category
{{@S_CAT_DESCRIPTION|raw}}

{{@S_CAT_ALT}}

Alternate name of the current category (url)
{{@S_CAT_ALT}}

{{@S_CAT_HREF|raw}}

Link to the current category
{{@S_CAT_HREF|raw}}

{{@S_CAT_BREADCRUMBS|raw}}

Bread crumbs from categories
{{@S_CAT_BREADCRUMBS|raw}}

{{@S_PAGE_CAT_ID}}

All category IDs separated by commas, belonging to the current news
{{@S_PAGE_CAT_ID}}

{{@S_PAGE_CAT_ALT}}

All alternative names of categories separated by commas, belonging to the current news
{{@S_PAGE_CAT_ALT}}

{{@S_PAGE_CAT_TITLE}}

All category titles separated by commas, belonging to the current news
{{@S_PAGE_CAT_TITLE}}

{{@S_PAGE_CAT_HREF|raw}}

All links to categories separated by commas, belonging to the current news
{{@S_PAGE_CAT_HREF|raw}}

<s_include href="file.txt" />

Output the contents of the file file.txt
Equivalent function in PHP file_get_contents("file.txt"){{file_get_contents("file.txt")}}
<s_include href="file.txt" />

<meta_keywords />

Displays the tag: <meta name="keywords" content="keywords, for, pages" />
<meta_keywords />

<meta_description />

Displays the tag: <meta name="description" content="Description for the page" />
<meta_description />

<liveinternet />

It will output the universal code of the invisible counter liveinternet.ru
It is recommended to insert this macro in the template right after the <body> tag
<liveinternet />

stats_code

The code for the invisible counter of the Statistics module.
This code needs to be inserted into all templates right after the <body> tag
<script type="text/javascript">
	var q = '{{str_replace(array('/', '+'), array('_', '-'), base64_encode(@L_QUERY))}}',
	js = document.createElement('script');
	js.type = 'text/javascript';
	js.src = "{{@BASE}}{{Stats::instance()->slog}}?"+Math.random();
	document.body.appendChild(js);
</script>

<menu_cats />

Displays a menu of categories. Supports any HTML attributes, as well as the following:

li_class_active="active", where active - any name of the CSS class that will be assigned to the active category;
first_link="{{@S_DOR_URL}},Main" - build the first link in the menu, where {{@S_DOR_URL}} and Main - URL and anchor respectively;
last_link="{{@S_SITEMAP_URL}},Sitemap" - build the latest link in the menu, where {{@S_SITEMAP_URL}} and Sitemap - URL и anchor respectively.

Outputs something like:
<ul>
<li class="active">Category 1</li>
<li>Category 2</li>
</ul>

If there are subcategories, then the menu will also be nested.
<menu_cats class="navbar cf" li_class_active="active" first_link="{{@S_DOR_URL}},Main" last_link="{{@S_SITEMAP_URL}},Sitemap" />

<cats />

Displays categories based on parameters. Supports any HTML attributes, as well as the following.:

href="1" - display links or not;
sep - delimiter;
news_count="X,Y" - display categories only from X to Y news in them. You can simply specify X;
ids - output only with the specified category id, separated by commas;
limit - Max. number of categories;
sort - sorting: asc - ascending, desc - descending, rand - random, news_asc - by number of news in category ascending, news_desc - by number of news in category by descending;
let - display categories that start with the specified letters (case is important), separated by commas;
parent="1" - show only parent categories;
num_class - if specified, it performs two functions at once - activates the output of the number of news in the category and assigns the css-class for this number (like <span class="badge">100</span>);
num_brackets="1" - work if num_class is present - put the number of news in parentheses;
class - css class for category links.
<cats href="1" sep=", " let="" news_count="" ids="" limit="" sort="news_desc" parent="" num_brackets="1" num_class="" class="navbar cf" />

<tags />

Displays tags based on parameters. Supports any HTML attributes, as well as the following.:

href - display links or not;
sep - tag delimiter;
big - capitalize tags or not (in the database all tags are saved in lower case);
cat - display tags only from categories by id, separated by commas;
page - output tags by news id, separated by commas;
sort - sorting: asc - ascending, desc - descending, rand - randomly;
limit - Max. number of tags;
news_count="X,Y" - display Tags only from X to Y news in them. You can simply specify X;
let - display tags that start with the specified letters, separated by commas;
num_class - if specified, it performs two functions at once - activates the output of the number of news in the category and assigns the css-class for this number (like <span class="badge">100</span>);
num_brackets="1" - work if num_class is present - put the number of news in parentheses;
font_size="X,Y,Z" - if specified, it will add font size to tags, depending on the number of news items in them. X - font size FROM, Y - font size TO, Z - "px" or "%" (optional, default is "px");
class - css class that is assigned to tag links.
<tags href="1" sep=", " big="0" cat="" page="" sort="asc" limit="50" news_count="" let="" class="tags" />

<check_data />

The macro checks to see if a value exists in the specified macro.
Unlike macro <check if="...">...</check> this macro can also check the following macros:
{{@FULL_NEWS()}}
{{@SHORT_NEWS()}}
{{@USER_DATA('my_id')}}
{{@URL_POSTER()}}

Example:
<check_data if="{{@USER_DATA('my_id')}}">
<data_true>my_id: {{@USER_DATA('my_id')}}</data_true>
<data_false>Empty!</data_false>
</check_data>


You can also write this:
<check_data true="{{@USER_DATA('my_id')}}">
my_id: {{@USER_DATA('my_id')}}
</check_data>


<check_data false="{{@USER_DATA('my_id')}}">
Empty!
</check_data>
<check_data if="{{@USER_DATA('my_id')}}">
	<data_true>my_id: {{@USER_DATA('my_id')}}</data_true>
	<data_false>Empty!</data_false>
</check_data>

{{@CHECK_DATA(data)}}

It looks like the macro <check_data />, but can only return one of two values: true or false.

Examples:
{{@CHECK_DATA(@USER_DATA('my_id'))?'<span>my_id: '.@USER_DATA('my_id').'</span>':'Empty!'}}

<check if="{{@CHECK_DATA(@USER_DATA('my_id'))}}">
<true>my_id: {{@USER_DATA('my_id')}}</true>
<false>Empty!</false>
</check>
{{@CHECK_DATA(@USER_DATA('my_id'))?'<span>'.@USER_DATA('my_id').'</span>':''}}

Site Map (M)

Macros for the site map template (sitemap.html). The template also supports other dorgen macros.

{{@page}}

Site map page number
{{@page}}

{{@links|raw}}

List of links to cached site pages
{{@links|raw}}

{{@pagination|raw}}

Pagination for site map
{{@pagination|raw}}

Error pages (E)

Macros for the error template 403, 404 and 500 (error.html). The template also supports other dorgen macros.

{{@ERROR.code}}

Error code
{{@ERROR.code}}

{{@ERROR.status}}

Error Status
{{@ERROR.status}}

{{@ERROR.text}}

Error Text
{{@ERROR.text}}

{{@ERROR.trace|raw}}

The source of the error (it will not be output when the debug output option is disabled).
{{@ERROR.trace|raw}}

Comment module (I)

Comment module macros.

{{@I_COMM_KEY_PAGE('Z',X,Y)}}

Will output search requests from the current page, which came from the search engine.
{{@I_COMM_KEY_PAGE('<br>', 5, 10)}}

{{@I_COMM_KEY_PAGE_LINK('Z',X,Y)}}

Will output search requests from the current page with links to new pages of the site (keywords that came to the site).

Warning! Using this macro can lead to uncontrolled adding new pages to the database!
{{@I_COMM_KEY_PAGE_LINK('<br>', 5, 10)}}

{{@I_COMM_KEY_LAST('Z',X,Y)}}

Will output all the latest search queries, which came from the search engine.
{{@I_COMM_KEY_LAST('<br>', 5, 10)}}

{{@I_COMM_KEY_LAST_LINK('Z',X,Y)}}

Will output all the latest search queries, which came from the search engine, links to the pages where they were added.
{{@I_COMM_KEY_LAST_LINK('<br>', 5, 10)}}

Translator (I)

Automatic translator into different languages via Yandex, Google or Bing

<translate>text</translate>

Translates text from to
Supports the following attributes:
engine="rand" - "rand" - random translation service. You can specify specific: yandex, google, bing.;
from="auto" - "auto" - language autodetection. You can specify a specific (see below);
to="en" - what language the text will be translated into;
exclude="engine" - if engine="rand", then the "exclude" attribute will exclude the specified: yandex, google, bing.

Language support:
auto: Define language
az: Azerbaijani
sq: Albanian
am: Amharic
en: English
ar: Arabic
hy: Armenian
af: Afrikaans
eu: Basque
be: Belarusian
bn: Bengali
my: Burmese
bg: Bulgarian
bs: Bosnian
cy: Welsh
hu: Hungarian
vi: Vietnamese
haw: Hawaiian
gl: Galician
el: Greek
ka: Georgian
gu: gujarati
da: Danish
zu: zulu
iw: Hebrew
ig: Igbo
yi: Yiddish
id: Indonesian
ga: Irish
is: Icelandic
es: Spanish
it: Italian
yo: Yoruba
kk: Kazakh
kn: kannada
ca: Catalan
ky: Kyrgyz
zh-CN: Chinese
ko: Korean
co: Corsican
ht: Creole (Haiti)
ku: kurmanji
km: Khmer
xh: khosa
lo: Lao
la: Latin
lv: Latvian
lt: Lithuanian
lb: Luxembourgish
mk: Macedonian
mg: Malagasy
ms: Malay
ml: malayalam
mt: Maltese
mi: maori
mr: marathi
mn: Mongolian
de: German
ne: Nepali
nl: Dutch
no: Norwegian
pa: Punjabi
fa: Persian
pl: Polish
pt: Portuguese
ps: Pashto
ro: Romanian
ru: russian
sm: Samoan
ceb: Cebuano
sr: Serbian
st: sesotho
si: Sinhalese
sd: sindhi
sk: Slovak
sl: Slovenian
so: Somali
sw: Swahili
su: Sudanese
tg: Tajik
th: Thai
ta: Tamil
te: Telugu
tr: Turkish
uz: Uzbek
uk: Ukrainian
ur: urdu
tl: Filipino
fi: Finnish
fr: French
fy: Frisian
ha: hausa
hi: hindi
hmn: hmong
hr: Croatian
ny: cheva
cs: Czech
sv: Swedish
sn: shona
gd: Scottish (Gaelic)
eo: Esperanto
et: Estonian
jw: Javanese
ja: Japanese
<translate engine="rand" from="auto" to="en" exclude="">text</translate>

<translate text="text" />

Macro equivalent <translate>text</translate>

<translate text="text" engine="rand" from="auto" to="en" exclude="" />
<translate text="text" engine="rand" from="auto" to="en" exclude="" />

{{@TRANSLATE('text', 'engine', 'from', 'to', 'exclude')}}

Macro equivalent <translate>text</translate>

{{@TRANSLATE(@L_QUERY, 'rand', 'auto', 'ja', '')}}
{{@TRANSLATE(@L_QUERY, 'rand', 'auto', 'ja', '')}}

Macros F3

Additionally, you can use macros in templates Fat-Free Framework. For descriptions of macros, see the official website.