Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π–ΡƒΡ€Π½Π°Π» PC Magazine/RE β„–09/2009Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 29

Автор PC Magazine/RE

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€“ это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ HTML-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ впослСдствии показываСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€“ это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ HTML-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ впослСдствии показываСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ, Ρ‚. Π΅. Π² ΠΈΡ… Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ HTML-ΠΊΠΎΠ΄Π° Π½Π° основС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ сайта Π±Π΅Π· Ρ€Π΅Π΄Π°ΠΊΡ‚ирования ΠΊΠΎΠ΄Π° модуля, ΠΏΡƒΡ‚Π΅ΠΌ измСнСния Ρ„Π°ΠΉΠ»Π° template.php ΠΈΠ»ΠΈ создания Ρ„Π°ΠΉΠ»Π°-шаблона.

Π’ нашСм случаС массив Π΄Π°Π½Π½Ρ‹Ρ… формируСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ currencies_contents(), Π° HTML-ΠΊΠΎΠ΄ создаСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ theme_currencies_block(), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°ΠΌ сСйчас прСдстоит ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½Ρƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ theme(), Ρ‚. Π΅. функция theme_currencies_block($argument) Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ theme('currencies_block', $argument). Π§Π΅ΠΌ Π²Ρ‹Π·Π²Π°Π½Π° эта Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ, я объясню Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

Для рСгистрации Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ hook_theme, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив ΠΈΠΌΠ΅Π½ примСняСмых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’ нашСм ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½Π° функция Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ theme_currencies_block(), которая Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€“ массив курсов Π²Π°Π»ΡŽΡ‚, поэтому рСализация Ρ…ΡƒΠΊΠ° hook_theme Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

function currencies_theme() {

  return array(

    'currencies_block' => array(

      'arguments' => array('result' => NULL),

    ),

  );

}

Π‘Π΅Π· Ρ‚Π°ΠΊΠΎΠΉ рСгистрации Π²Ρ‹Π·ΠΎΠ² theme('currencies_block', $argument) Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. Π‘Π°ΠΌΠ° функция Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ:

function theme_currencies_block($result) {

  $output = "<ul>";

  foreach($result as $k => $v) {

    if($v["diff"] > 0) {

      $color = "#5aaf43";

      $v["diff"] = "+" . $v["diff"];

    }

    else if($v["diff"] < 0) $color = "#f00";

    else if($v["diff"] == 0) $color = "#00f";

    $output .= "<li>" . $v["nominal"] . " " . $v["name"] . " = "

      . $v["value"] . " (<span style=\"color: " . $color . "\">"

      . $v["diff"] . "</span>)</li>";

  }

  $output .= "</ul>";

  return $output;

}

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ currencies_theme Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ указываСтся Π½Π°Π·Π²Π°Π½ΠΈΠ΅ currencies_block, Π° рСализация Π΅Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ имя theme_currencies_block(). НуТно это, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сайтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ наш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΌΠΎΠ³Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚. Π΅. ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Сю HTML-ΠΊΠΎΠ΄. Для этого ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΠ΅ со своСй Ρ‚Π΅ΠΌΠΎΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ template.php достаточно Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ слово theme Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ оформлСния, Ρ‚. Π΅. ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Ρ‚Π΅ΠΌΡ‹_оформлСния_currencies_block(). Π―Π΄Ρ€ΠΎ Drupal, ΠΊΠΎΠ³Π΄Π° встрСтит Π² ΠΊΠΎΠ΄Π΅ модуля Π²Ρ‹Π·ΠΎΠ² Π²ΠΈΠ΄Π° theme('currencies_block', $result), сначала ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ template.php ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚Π΅ΠΌΡ‹ оформлСния, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Ρ‚Π°ΠΌ Π΅Π΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ theme_currencies_block().

Π―Π΄Ρ€ΠΎ Drupal пытаСтся Π½Π°ΠΉΡ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ template.php ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚Π΅ΠΌΡ‹ оформлСния.

Π’ случаС Π±ΠΎΠ»ΡŒΡˆΠΈΡ… шаблонов ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ вынСсти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° template.php Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Для этого Π² массивС, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ…ΡƒΠΊΠ° hook_theme, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ template ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°-шаблона, Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»-шаблон с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π½Π΅Π΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .tpl.php. Π’ ΠΈΡ‚ΠΎΠ³Π΅ hook_theme() ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄:

function currencies_theme() {

  return array(

    'currencies_block' => array(

      'arguments' => array('result' => NULL),

      'template' => 'cur-block',

    ),

  );

}

Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ cur-block.tpl.php ΠΈ Ρ‚Π°ΠΊΠΈΠΌ содСрТимым:

<ul>

<?php

  foreach($result as $k => $v) {

    if($v["diff"] > 0) {

      $color = "#5aaf43";

      $v["diff"] = "+" . $v["diff"];

    }

    else if($v["diff"] < 0) $color = "#f00";

    else $color = "#00f";

    print "<li>" . $v["nominal"] . " " . $v["name"] . " = " .

      $v["value"] . " (<span style=\"color: " . $color . "\">" .

      $v["diff"] . "</span>)</li>";

  }

?>

</ul>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Currencies, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ достаточно ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» cur-block.tpl.php ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ оформлСния ΠΈ внСсти Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

БСйчас наш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ интСрфСйс администратора, ΡƒΠΌΠ΅Π΅Ρ‚ автоматичСски ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ сСрвСром, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Π΅ HTML-ΠΊΠΎΠ΄ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² кэшС. ΠžΡΡ‚Π°Π»Π°ΡΡŒ самая простая для программиста ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ значимая для посСтитСля сайта Ρ‡Π°ΡΡ‚ΡŒ β€“ Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° экран.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ currencies_menu() Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΡ‚ΡŒ ΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° page callback ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ currencies_contents(), которая ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π±Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (ΠΈΠ· кэша ΠΈΠ»ΠΈ ΠΎΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра) ΠΈ Π²Ρ‹Π²Π΅Π»Π° Π±Ρ‹ ΠΈΡ… Π½Π° экран Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π΅ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Но ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ курсы Π²Π°Π»ΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ страницСй, Π° Π² Π±Π»ΠΎΠΊΠ΅ (ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ особым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ элСмСнт, содСрТащий Π΄Π°Π½Π½Ρ‹Π΅) Π½Π° любой Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ сайта страницС. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ…ΡƒΠΊΠ° hook_block() (см. листинг 4).

Листинг 4

function currencies_block($op = 'list', $delta = 0,

    $edit = array()) {

  switch ($op) {

    case 'list':

    $blocks[0] = array(

      'info' => t('Currencies block'),

    );

    return $blocks;

    case 'view':

    switch ($delta) {

      case 0:

      $block['subject'] = t('Currencies block');

      $block['content'] = currencies_contents();

      break;

    }

    return $block;

  }

}

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ $op (сокращСниС ΠΎΡ‚ operation), содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, какая опСрация Π½Π°Π΄ Π±Π»ΠΎΠΊΠΎΠΌ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполняСтся. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ list сообщаСт ΠΌΠΎΠ΄ΡƒΠ»ΡŽ, Ρ‡Ρ‚ΠΎ информация ΠΎ Π½Π΅ΠΌ выводится Π² спискС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, здСсь ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ядру Drupal ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€“ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ модуля ΠΈ ряд Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ view Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° $op ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ просматриваСт страницу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ наш Π±Π»ΠΎΠΊ, ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ обязан Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ содСрТимоС. Для этого функция Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ассоциативный массив, элСмСнт с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ content ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ использован Π² качСствС содСрТимого Π±Π»ΠΎΠΊΠ°, Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ subject β€“ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСсколько Π±Π»ΠΎΠΊΠΎΠ², ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ $delta Ρ…ΡƒΠΊΠ° hook_block содСрТит индСкс ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Π»ΠΎΠΊΠ°.

ВсС, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° модуля Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°! Π’Π΅ΠΏΠ΅Ρ€ΡŒ администратор сайта, послС инсталляции модуля Currencies, ΠΌΠΎΠΆΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ созданный ΠΈΠΌ Π±Π»ΠΎΠΊ, для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² мСню Administer β€“ Blocks (admin/build/block), ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΌΡ‹ΡˆΠΊΠΎΠΉ строку с описаниСм Π±Π»ΠΎΠΊΠ° Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ€Π΅Π³ΠΈΠΎΠ½ (ΠΎΠ±Π»Π°ΡΡ‚ΡŒ страницы, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π±Π»ΠΎΠΊΠΎΠ²) ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния. Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°Ρ… модуля доступны стандартныС для Drupal срСдства управлСния Π±Π»ΠΎΠΊΠΎΠΌ: список страниц, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Π»ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ список страниц, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Π»ΠΎΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ), список Ρ€ΠΎΠ»Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ содСрТимому Π±Π»ΠΎΠΊΠ°, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Бсылки Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ

β€’ Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ: http://drupal.org/node/206754.

β€’ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² .info-Ρ„Π°ΠΉΠ»Π°Ρ…: http://drupal.org/node/231036.

β€’ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Schema API: http://drupal.org/node/146843.

β€’ Π’ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Schema API: http://drupal.org/node/159605.

β€’ ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ hook_menu(): http://api.drupal.org/api/function/hook_menu/6.

β€’ ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ Forms API: http://api.drupal.org/api/file/developer/topics/forms_api_reference.html/6.

β€’ ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ hook_block(): http://api.drupal.org/api/function/hook_block/6.


Новости. Π‘ 15 ΠΏΠΎ 15

ΠŸΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹

Компания Konica Minolta (www.konicaminolta.ru) объявила ΠΎ выпускС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°. (UPD, Universal Print Driver) для Π²ΡΠ΅Ρ… устройств ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Konica Minolta ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, совмСстимых с PCL6 ΠΈΠ»ΠΈ PostScript. ΠŸΠ°ΠΊΠ΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ компаниям с большим ΠΏΠ°Ρ€ΠΊΠΎΠΌ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ³ΠΎ оборудования; систСма автоматичСски распознаСт доступныС сСтСвыС устройства ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΡ… Π² Π²ΠΈΠ΄Π΅ списка, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ подходящиС. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° администраторы ΠΌΠΎΠ³ΡƒΡ‚ дистанционно Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹.

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ графичСский интСрфСйс, прСдоставляСт доступ ΠΊΠΎ всСм возмоТностям устройства, ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄ΠΎ Ρ„ΠΈΠ½ΠΈΡˆΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ качСства ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, всС основныС настройки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΡƒΠΌΠ°Π³ΠΈ ΠΈ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° Π²ΡΠ΅Ρ… устройствах Π±Π΅Π· установки Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ².

ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ поиска, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠ΅ устройство ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ. ΠŸΡ€ΠΈ нСобходимости ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ высококачСствСнныС Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° А3 Π² Π΄ΡƒΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ просто Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ характСристики, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ†Π²Π΅Ρ‚, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° А3 ΠΈ двусторонняя ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Π² поисковом ΠΎΠΊΠ½Π΅. Π’ ΠΎΠΊΠ½Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° появится список ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… устройств, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡Π΅.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Компания Entensys (www.usergate.ru) объявила ΠΎ выпускС UserGate Proxy & Firewall 5.2. БистСма прСдназначаСтся для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ локальной сСти ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΡƒΠ³Ρ€ΠΎΠ·, ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ β€“ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ блокирования HTTP-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ Content-Type, Ρ‡Ρ‚ΠΎ позволяСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Π²ΠΈΠ΄Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Π΅, Ρ„Π»ΡΡˆ-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ Π΄Ρ€.). ИзмСнСния Π² области ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности ΠΊΠΎΡΠ½ΡƒΠ»ΠΈΡΡŒ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ консолью ΠΈ сСрвСром β€“ Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ SSL-Π·Π°Ρ‰ΠΈΡ‚Π° всСх ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ этими модулями. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ°ΡΡ‚Π΅Ρ€ настройки, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Ρ… инструкций эта функция позволяСт быстро Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСрвСр. ИзмСнился ΠΈ Ρ€Π°Π·Π΄Π΅Π» статистики, появились Π½ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ (Β«ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ β€“ сайты» ΠΈ Β«Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ β€“ сайты»). ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий UserGate, автоматичСскоС восстановлСниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² случаС поврСТдСния ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. ЗарСгистрированныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ вСрсии 5.Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ бСсплатно.