Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΠΌΠΈΠ·Π°ΡΠΈΠΈ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠ΅ 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).
ΠΠΈΡΡΠΈΠ½Π³ 4function 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.
ΠΡΠΈΠ½ΡΠ΅ΡΡ
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ 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.Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ.