Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php

Π₯ΡƒΠΊΠΈ Π² PHP, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Ρ…ΡƒΠΊΠΈ Π² PHP. ΠšΠΎΠΌΡƒ-Ρ‚ΠΎ Ρ…ΡƒΠΊΠΈ нравятся, ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π½Π΅Ρ‚, Π½ΠΎ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ с Π½ΠΈΠΌΠΈ приходится ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ β€” ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ…ΡƒΠΊΠΈ Π² PHP. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π² любом Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с WordPress постоянно с Π½ΠΈΠΌΠΈ сталкиваСтся. ИспользованиС Ρ…ΡƒΠΊΠΎΠ² Π΄Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ позволяСт сторонним Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π±Π΅Π· Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² основной ΠΊΠΎΠ΄.

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π•ΡΡ‚ΡŒ HTML шаблон ΠΈ ΠΎΠ½ ΡƒΠΆΠ΅ завСрстан. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ нСльзя Π²ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄ шаблона ΠΈ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π§Π°Ρ‰Π΅ всСго Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ HTML шаблон ΠΌΠ΅Ρ‚Π°-Ρ‚Π΅Π³Π°ΠΌΠΈ, стилями, скриптами Π² шапкС ΠΈΠ»ΠΈ Π² ΠΏΠΎΠ΄Π²Π°Π»Π΅.

ΠŸΡƒΡΡ‚ΡŒ сущСствуСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаблон страницы:

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

Код ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Как do_action ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ

Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всС названия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ…ΡƒΠΊΠ΅ хранятся Π² массивС. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, содСрТащая этот массив, являСтся глобальной ΠΈ доступна Π²ΠΎ всСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

ΠŸΡƒΡΡ‚ΡŒ массив ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ списки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ большой список, Π³Π΄Π΅ hook_name_x β€” это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Ρ…ΡƒΠΊΠ°, index_x_x β€” индСкс(порядковый Π½ΠΎΠΌΠ΅Ρ€) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ function_name_x_x Π² спискС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ…ΡƒΠΊΠ°.

ΠŸΡ€ΠΈ этом порядковый Π½ΠΎΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² спискС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для опрСдСлСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€” Ρ‡Π΅ΠΌ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса, Ρ‚Π΅ΠΌ Π½ΠΈΠΆΠ΅ эта функция Π±ΡƒΠ΄Π΅Ρ‚ Π² спискС, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‚Π΅ΠΌ ΠΏΠΎΠ·ΠΆΠ΅ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°.

ВсС это ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ спускаСтся Π½Π° Π»ΠΈΡ„Ρ‚Π΅ ΠΈ Ρƒ Π½Π΅Π³ΠΎ Π² Ρ€ΡƒΠΊΠ°Ρ… Ρ‚Π΅Ρ‚Ρ€Π°Π΄ΡŒ, каТдая страница ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ этаТу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ останавливаСтся Π»ΠΈΡ„Ρ‚, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС имССтся список Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ этаТС. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ названия этаТСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ…ΡƒΠΊΠ°ΠΌΠΈ, Π° элСмСнты списка(Π·Π°Π΄Π°Ρ‡ΠΈ) Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС, ΡΠ²Π»ΡΡŽΡ‚ΡΡ функциями, привязанными ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ…ΡƒΠΊΡƒ. ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ выполнСния Π·Π°Π΄Π°Ρ‡ опрСдСляСтся ΠΈΡ… ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² спискС, свСрху Π²Π½ΠΈΠ·.

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ Ρ…ΡƒΠΊΡƒ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ…ΡƒΠΊΡƒ слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ список. ΠŸΡ€ΠΈ этом Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π₯ΡƒΠΊΠΈ Π² PHP β€” Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ядра

ΠžΠ±Ρ‰Π°Ρ информация

МногиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ CS-Cart (Multi-Vendor) ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ…ΡƒΠΊΠΈ.

Π₯ΡƒΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ возмоТности ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ…ΡƒΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ:

Π₯ΡƒΠΊΠΈ располоТСны Π² функциях ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ядра CS-Cart.

ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ использования ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ…ΡƒΠΊΠ°ΠΌΠΈ:

Доступно ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΡƒΠΊΠΎΠ²:

Как выглядт ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊ?

Π₯ΡƒΠΊΠΈ Π² PHP выглядят Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ…ΡƒΠΊΡƒ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Ρ…ΡƒΠΊΡƒ.

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ‚Π΅ нСсколько Ρ…ΡƒΠΊΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ названия Ρ…ΡƒΠΊΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ:

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ…ΡƒΠΊΠ΅.

Ѐункция Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°: fn_[id_модуля]_[Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Ρ…ΡƒΠΊΠ°]($[ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹_Ρ…ΡƒΠΊΠ°_Ρ‡Π΅Ρ€Π΅Π·_Π·Π°ΠΏΡΡ‚ΡƒΡŽ])

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ доступны всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² Ρ…ΡƒΠΊ.

Π§Ρ‚ΠΎΠ±Ρ‹ функция ΠΌΠΎΠ³Π»Π° Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ снаруТи), ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ссылки ( &$param )

Π–ΠΈΠ²ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ Ρ‚ΠΎ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π΅, Ссли Ρ‚ΠΎΠ²Π°Ρ€Π° Π½Π΅Ρ‚ Π½Π° складС.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ ΠΊ послСднСму Ρ…ΡƒΠΊΡƒ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Π½Π°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля β€œΠœΠΎΠΈ измСнСния”:

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄:

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ρ…ΡƒΠΊΡƒ.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„Π°ΠΉΠ» app/addons/my_changes/func.php

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая сработаСт Π² Ρ…ΡƒΠΊΠ΅:

Π’ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ β€œΠœΠΎΠΈ измСнСния”.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fn_print_r($product_data); Π΄ΠΎ Ρ…ΡƒΠΊΠ°, послС Ρ…ΡƒΠΊΠ° ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ…ΡƒΠΊΠ°. Она распСчатаСт Π½Π° экран содСрТимоС массива.

Как я ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€?

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ с SMARTY Π±Π»ΠΎΠΊΠΎΠΌ для ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ SMARTY Π±Π»ΠΎΠΊΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· массива <$product_data>, Π² Ρ‚ΠΎΠΌ числС Π²Π°ΡˆΡƒ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ условий.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π₯ΡƒΠΊΠΈ β€” это просто

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php

Π₯ΡƒΠΊΠΈ β€” это тСхнология ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ‡ΡƒΠΆΠΈΡ… процСссах. Π₯ΡƒΠΊΠΈ, ΠΊΠ°ΠΊ ΠΈ любая достаточно мощная тСхнология, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ Π² Π±Π»Π°Π³ΠΈΡ… цСлях (сниффСры, Π°ΡƒΠ΄ΠΈΠΎ\Π²ΠΈΠ΄Π΅ΠΎΠ³Ρ€Π°Π±Π±Π΅Ρ€Ρ‹, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ПО, Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, багфиксинг) Ρ‚Π°ΠΊ ΠΈ со Π·Π»Ρ‹ΠΌ умыслом (трояны, кряки, ΠΊΠ΅ΠΉΠ»ΠΎΠ³Π³Π΅Ρ€Ρ‹). О Ρ…ΡƒΠΊΠ°Ρ… ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π°Π· писали ΠΈ Π½Π° Π₯Π°Π±Ρ€Π΅ ΠΈ Π½Π΅ Π½Π° Π₯Π°Π±Ρ€Π΅. Но Π²ΠΎΡ‚ Π² Ρ‡Ρ‘ΠΌ Π±Π΅Π΄Π° β€” ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ каТдая ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎ Ρ…ΡƒΠΊΠ°Ρ… Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ со Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π±Π·Π°Ρ†Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ Β«Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉΒ», Β«Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ памяти» ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ассСмблСрного ΠΊΠΎΠ΄Π°. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ каТдая Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° Π² тСкстС сниТаСт количСство Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ Π²Π΄Π²ΠΎΠ΅, Π° ΡƒΠΆ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ β€” Ρ‚Π°ΠΊ ΠΈ вовсС Π²Ρ‡Π΅Ρ‚Π²Π΅Ρ€ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒΡ, которая расскаТСт ΠΎ Ρ…ΡƒΠΊΠ°Ρ… просто. Под ΠΊΠ°Ρ‚ΠΎΠΌ Π½Π΅Ρ‚ ассСмблСра, Π½Π΅Ρ‚ слоТных Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² ΠΈ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π΄Π²Π° дСсятка строк ΠΎΡ‡Π΅Π½ΡŒ простого ΠΊΠΎΠ΄Π° Π½Π° Π‘++. Если Π²Ρ‹ Π΄Π°Π²Π½ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ…ΡƒΠΊΠΈ, Π½ΠΎ Π½Π΅ Π·Π½Π°Π»ΠΈ с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ β€” Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

РСальная Π·Π°Π΄Π°Ρ‡Π°

Для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ β€” поставим сСбС ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Π”Π°Π²Π°ΠΉΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сдСлаСм Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Firefox ΠΏΡ€ΠΈ Π·Π°Ρ…ΠΎΠ΄Π΅ Π½Π° Π₯Π°Π±Ρ€ писал Π² своём Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€!Β» вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ сСйчас (Π° сСйчас Ρ‚Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ΅Ρ‚ΡΡ «*** / Π₯Π°Π±Ρ€Π°Ρ…Π°Π±Ρ€ β€” Mozilla Firefox», Π³Π΄Π΅ *** β€” мСняСтся Π² зависимости ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»Π°). Π”Π°, я знаю, Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΊΠΎΠΉ исходников Firefox, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, ΡŽΠ·Π΅Ρ€ΡΠΊΡ€ΠΈΠΏΡ‚Π°ΠΌΠΈ ΠΈ Π΅Ρ‰Π΅ дСсятком способов. Но ΠΌΡ‹ Π² ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… цСлях сдСлаСм это Ρ…ΡƒΠΊΠ°ΠΌΠΈ.

БовсСм Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ

Когда Π’Ρ‹ запускаСтС любоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” опСрационная систСма создаёт Π΅Π³ΠΎ процСсс. Π“Ρ€ΡƒΠ±ΠΎ говоря, exe-Ρ„Π°ΠΉΠ» копируСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π΄Π°Π»Π΅Π΅ опрСдСляСтся ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (dll-Ρ„Π°ΠΉΠ»Ρ‹) Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ (эта информация записана Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ exe-Ρ„Π°ΠΉΠ»Π°), эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ищутся (Π² ΠΏΠ°ΠΏΠΊΠ΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ Π² систСмных ΠΏΠ°ΠΏΠΊΠ°Ρ…) ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ процСсса. ΠŸΠΎΡ‚ΠΎΠΌ опрСдСляСтся, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈ Π³Π΄Π΅ ΠΎΠ½ΠΈ находятся (Π² ΠΊΠ°ΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈ Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅). Бтроится Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠ° Π²ΠΈΠ΄Π° «функция SomeFunction1() β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° SomeLibrary1.dll β€” %адрСс_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ_SomeFunction1()%Β». Когда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ β€” ΠΎΠ½Π° Π½Π°ΠΉΠ΄Π΅Ρ‚ Π² своСй памяти Π½ΡƒΠΆΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, отсчитаСт Π½ΡƒΠΆΠ½Ρ‹ΠΉ адрСс ΠΈ пСрСдаст Ρ‚ΡƒΠ΄Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php

Π‘ΡƒΡ‚ΡŒ Ρ…ΡƒΠΊΠΈΠ½Π³Π° β€” Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ нуТная Π΅ΠΉ функция находится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php

ДСлаСтся это Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€” ΠΌΡ‹ пишСм свою Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ SomeLibrary2.dll, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ находится наша функция SomeFunction2(). Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‡ΡƒΠΆΠΎΠ³ΠΎ процСсса (Π² ОБ Windows Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция для этого) ΠΈ измСняСм Ρ‚Ρƒ ΡΠ°ΠΌΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΡƒ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я писал Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅, Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½Π° содСрТала запись «функция SomeFunction1() β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° SomeLibrary2.dll β€” %адрСс_нашСй_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ_SomeFunction2()%Β». Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всё описанноС Π² этом Π°Π±Π·Π°Ρ†Π΅, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ вСсьма ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ всСго β€” ΠΊΠ°ΠΊ устроСна ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² Windows, ΠΊΠ°ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΎ слоТно. Ну Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ, просто ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΈ Π±Π΅Π· этого. Если Π²Π°ΠΌ это Π½ΡƒΠΆΠ½ΠΎ β€” ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ (Π° Ρ…ΠΎΡ‚ΡŒ Π±Ρ‹ ΠΈΠ· Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² Π½Π°Ρ‡Π°Π»Π΅). ΠœΡ‹ ΠΏΠΎΠΉΠ΄Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡƒΡ‚Π΅ΠΌ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Microsoft Detours, которая сдСлаСт всю Π³Ρ€ΡΠ·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π·Π° нас.

ΠŸΠ°Ρ€Ρƒ слов ΠΎ Microsoft Detours

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpΠŸΡ€ΠΎΡΡ‚Π° Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ использовании
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpΠ’Π΅ΡΡŒΠΌΠ° эффСктивна
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpΠ₯ΠΎΡ€ΠΎΡˆΠ°Ρ докумСнтация
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpΠ‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π² исходниках
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Microsoft β€” Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Β«Π΄Ρ€ΡƒΠΆΠΈΡ‚Β» с ОБ
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpБСсплатна для ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ ΠΈ нСкоммСрчСских ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpНС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ знания ассСмблСра

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpΠ—Π°ΠΊΡ€Ρ‹Ρ‚Π°
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ phpΠ‘Ρ‚ΠΎΠΈΡ‚ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π΅Π½Π΅Π³ для коммСрчСского использования ΠΈΠ»ΠΈ Ρ…64-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Π’ Ρ†Π΅Π»ΠΎΠΌ, я Π±Ρ‹ посовСтовал Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ…ΡƒΠΊΠΎΠ² ΠΈΠΌΠ΅Π½Π½ΠΎ с Detours β€” Ссли это Π±ΡƒΠ΄Π΅Ρ‚ всСго лишь вашим Ρ€Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ этого Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚, Ρƒ вас быстро всё получится ΠΈ Π²Π°ΠΌ понравится. Если ΠΆΠ΅ Ρ…ΡƒΠΊΠΈ понадобятся Π² ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ β€” Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° бСсплатныС ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ (Π½ΠΎ Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС) Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚ΠΈΠΏΠ° mhook, ΠΊΡƒΠΏΠΈΡ‚Π΅ Detours ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ свой вСлосипСд (для послСдних Π΄Π²ΡƒΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½ΡƒΠΆΠ½Ρ‹ вСсьма вСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹).
О Ρ‚ΠΎΠΌ Π³Π΄Π΅ Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Detours я писал Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚.

Π₯ΠΈΡ‚Ρ€Ρ‹ΠΉ ΠΏΠ»Π°Π½

ΠšΡƒΠ΄Π° ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ…ΡƒΠΊ

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Firefox, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π₯Π°Π±Ρ€, доТидаСмся измСнСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΈ возвращаСмся Π² Api Monitor Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½Ρ‹ количСством Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€” ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сотни тысяч Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π·Π° нСсколько сСкунд ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. А ΠΌΡ‹ вСдь Π΅Ρ‰Π΅ ΠΈ слСдим Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π·Π° всСм. Π”Π°-Π΄Π°, это всё Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ происходит Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΎΠ³ΠΎ открытия всСго ΠΎΠ΄Π½ΠΎΠ³ΠΎ сайта Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅! А Π²Ρ‹ Π΅Ρ‰Π΅ ΠΆΠ°Π»ΡƒΠ΅Ρ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ эта ΠΏΠ°Ρ€Π° сСкунд β€” слишком Π΄ΠΎΠ»Π³ΠΎ. πŸ™‚

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php

Найти Π½ΡƒΠΆΠ½ΡƒΡŽ Π½Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ поиск ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Π’Π±ΠΈΠ²Π°Π΅ΠΌ Π² поиск Β«WM_SETTEXTΒ» ΠΈ убСТдаСмся, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SendMessageW с этим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ β€” с высокой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ это ΠΈ Π΅ΡΡ‚ΡŒ установка Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Β«WΒ» Π² ΠΊΠΎΠ½Ρ†Π΅ названия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” ΠΎΠ½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΅Ρ‘ юникодная вСрсия. Для установки Ρ…ΡƒΠΊΠΎΠ² Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ имя подмСняСмой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΅Π³ΠΎ Π·Π½Π°Π΅ΠΌ.

Π”Π΅Π»Π°Π΅ΠΌ свою Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ

4. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ свойства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ настроСк Π»ΠΈΠ½ΠΊΠ΅Ρ€Π° добавляСм Π² ΠΏΠΎΠ»Π΅ Additional Dependencies Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«C:\Program Files\Microsoft Research\Detours Express 3.0\lib.X86\detours.libΒ». Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρƒ вас ΠΏΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” смотря ΠΊΡƒΠ΄Π° установили Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Detours.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ исходник. Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Windows (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ SendMessageW) ΠΈ Detours (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ\ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ…ΡƒΠΊΠΈ).
Π’ слоТной Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд строкС β„–3 ΠΌΡ‹ всСго лишь сохраняСм Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SendMessageW Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ TrueSendMessageW. Π­Ρ‚ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для Π΄Π²ΡƒΡ… Ρ†Π΅Π»Π΅ΠΉ:

Ѐункция DllMain вызываСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… случаях β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π°Ρ‚Ρ‚Π°Ρ‡Π°\Π΄Π΅Ρ‚Π°Ρ‡Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊ процСссу. Π’ΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ всё просто. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π°Ρ‚Ρ‚Π°Ρ‡Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ…ΡƒΠΊΠΈ, Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄Π΅Ρ‚Π°Ρ‡Π° β€” ΡΠ½ΡΡ‚ΡŒ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Detour Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ это транзакциями, ΠΈ Π² этом Π΅ΡΡ‚ΡŒ смысл β€” ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли сразу нСсколько ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… захотят ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ…ΡƒΠΊΠΈ Π² ΠΎΠ΄ΠΈΠ½ процСсс. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π² этом ΠΊΠΎΠ΄Π΅ это строка

ИмСнно ΠΎΠ½Π° заставляСт процСсс Β«ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΒ» Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто настоящСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SendMessageW Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ MySendMessageW. Π Π°Π΄ΠΈ этой строки всё ΠΈ Π·Π°Ρ‚Π΅Π²Π°Π»ΠΎΡΡŒ. Если ΠΊΠΎΠΌΡƒ интСрСсно, ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ я писал Π°Π½Π°Π»ΠΎΠ³ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ это заняло Ρƒ мСня нСсколько нСдСль. Π’Ρ‹ Π²ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΈΡ… сэкономили β€” ΠΏΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Cotonti / Open Source PHP Content Management FrameworkContent Management Framework

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π₯ΡƒΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ исполнСния систСмы

#1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π₯ΡƒΠΊΠΈ?

Π₯ΡƒΠΊ (ΠΎΡ‚ Π°Π½Π³Π». hook) это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ мСсто Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π²ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ сторонний скрипт (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΈΠ»ΠΈ модуля), с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ исполнСния основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. МоТно Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Cotonti ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ PHP Ρ„Π°ΠΉΠ», зарСгистрированный ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ события (Ρ…ΡƒΠΊΠ°). Рассмотрим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ Π₯ΡƒΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ…ΡƒΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊΠΎ всСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ областивидимости (Π² контСкстС Π²Ρ‹Π·ΠΎΠ²Π°). Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:

Π’ΠΎ врСмя выполнСния Cotonti, ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ…ΡƒΠΊΠΈ это ваши ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ Π² Π΄Π΅Π»Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°. Π’ Cotonti ΠΈΡ… сущСствуСт достаточно большоС количСство, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ практичСски всС.

#2. Какой Ρ…ΡƒΠΊ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?

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

#2.1. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ…ΡƒΠΊΠΈ

НСкоторыС Ρ…ΡƒΠΊΠΈ Π² систСмС Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ практичСски всСгда ΠΈ строго Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°:

Π’ зависимости ΠΎΡ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΉ страницы сайта ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ…ΡƒΠΊΠΈ:

Π Π°Π· ΡƒΠΆ зашла Ρ€Π΅Ρ‡ΡŒ ΠΎ систСмных Ρ…ΡƒΠΊΠ°Ρ…, Ρ‚ΠΎ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ β€” Ρ…ΡƒΠΊΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» систСмных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΈ Ρ…ΡƒΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм:

(Note: Ρ‚Π΅Π³ доступСн для использования начиная с вСрсии 0.9.6 )

#2.2. ΠŸΡ€Π°Π²ΠΈΠ»Π° имСнования

ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… имСнования Ρ…ΡƒΠΊΠΎΠ². Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ Ρ…ΡƒΠΊΠΎΠ² состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слов Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. НапримСр:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ…ΡƒΠΊΠΈ php

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ…ΡƒΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΎ Ρ„Π°ΠΉΠ»Π΅ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ располоТСн ΠΊΠΎΠ΄-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ Ρ‚ΠΎΠΉ части ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ вызываСтся. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ рСкомСндуСтся ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ этих ΠΏΡ€Π°Π²ΠΈΠ» наимСнования, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ собствСнных Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. НиТС ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

#3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ шаблон Ρ„Π°ΠΉΠ»Π°-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прСдставлСн Π½ΠΈΠΆΠ΅:

ΠšΠ»ΡŽΡ‡ Tags ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π³ΠΎΠ², Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹Ρ… Π² процСссС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ β€” для отобраТСния Π² Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»Π΅ списка Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π³ΠΎΠ² ΠΈ ΠΈΠΌΠ΅Π½ шаблонов Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

Π§Ρ‚ΠΎ ΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ? Π”Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всС Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ! Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

Основной совСт Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для Cotonti β€”Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с изучСния ΠΊΠΎΠ΄Π°. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ β€” посмотритС Π½Π° ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ… (срСди Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ простыС ΠΈ понятныС Π΄Π°ΠΆΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…). Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ части β€” Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π° Π½Π΅Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚, посмотритС Π³Π΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ блиТайшиС Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ…ΡƒΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ происходит Π² этом кускС ΠΊΠΎΠ΄Π°. Cotonti написан Π² простой ΠΈ понятной Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΠΊΠΎΠ΄ исполняСтся достаточно Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ, поэтому ΠΌΠΎΠΆΠ½ΠΎ быстро Π² Π½Π΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ выполнСния, Π²Ρ‹ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ смоТСтС ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ. Для написания Π±ΠΎΠ»Π΅Π΅ слоТных ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π²Π°ΠΌ потрСбуСтся ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с нСсколькими Ρ…ΡƒΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Π½ΠΎ это ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСй Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ..

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΠΎΡ€ΠΎΠ±Π½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π° для написания своСго ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Как ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Π³ΠΎΠ² Π² шаблон Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° страницы ΠΈΠ»ΠΈ вывСсти ΠΊΠ°ΠΊΡƒΡŽ Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Π‘Π”.

#4. Π Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Под ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ здСсь понимаСтся любоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Cotonti. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ…ΡƒΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ для Π½ΠΈΡ… свой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ β€” самоС врСмя позаботится ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, захотят Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ вашС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅. И самый просто Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ² Ρ…ΡƒΠΊΠΎΠ² Π² мСстах Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятного Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ ядро систСмы:

ЗамСняСм строку ‘ myext.hook.name ‘ Π½Π° имя нашСго Ρ…ΡƒΠΊΠ° (ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ описанныС Π²Ρ‹ΡˆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° имСнования? ) ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ строку, Π½ΠΎ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ (6-Ρ‚ΠΈ ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ) Ρ„ΠΎΡ€ΠΌΡƒ записиruct для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» Π²Ρ‹Π΄Π΅Π»Π΅Π½ срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈ стороннСму Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΡ‡ΠΊΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.

НСсколько Π±ΠΎΠ»Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ выглядит ΠΊΠΎΠ΄ Π² случаС, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Ρ†ΠΈΠΊΠ»Π°:

Π‘ΡƒΡ‚ΡŒ ΠΊΠΎΠ΄Π° вынСсти Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cot_getextplugins() ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° для ускорСния выполнСния скрипта.

#4.1. Бписки Π²Ρ‹Π·ΠΎΠ²Π° Ρ…ΡƒΠΊΠΎΠ²

Π’ зависимости ΠΎΡ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° сайтС URL ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… для Π²Ρ‹Π²ΠΎΠ΄Π° страницы ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ нСсколько Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ путяни. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ упорядочСнный список Π²Ρ‹Π·ΠΎΠ²Π° основных Ρ…ΡƒΠΊΠΎΠ², для Ρ…ΠΎΡ€ΠΎΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… случаСв::

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: элСмСнты списка ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π·Π½Π°ΠΊΠΎΠΌ «(*)" ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π·ΠΎΠ² Ρ…ΡƒΠΊΠ°. Π₯ΡƒΠΊΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки «[]" ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ², Ρ‚.ΠΊ. ΠΈΡ… список ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° зависят ΠΎΡ‚ вСрси ядра ΠΈ Π½Π°Π±ΠΎΡ€Π° установлСнных Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ. Π₯ΡƒΠΊΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ систСмными ΠΈ описаны Π²Ρ‹ΡˆΠ΅.above).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π₯ΡƒΠΊΠΈ Π² PHP β€” Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ядра¢

ΠžΠ±Ρ‰Π°Ρ информация¢

МногиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ CS-Cart ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ…ΡƒΠΊΠΈ.

Π₯ΡƒΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ возмоТности ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ…ΡƒΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ:

Π₯ΡƒΠΊΠΈ располоТСны Π² функциях ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ядра CS-Cart.

ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ использования ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ…ΡƒΠΊΠ°ΠΌΠΈ:

Доступно ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΡƒΠΊΠΎΠ²:

Как выглядит ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊ?ΒΆ

Π₯ΡƒΠΊΠΈ Π² PHP выглядят Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ…ΡƒΠΊΡƒ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Ρ…ΡƒΠΊΡƒ.

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ‚Π΅ нСсколько Ρ…ΡƒΠΊΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ названия Ρ…ΡƒΠΊΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ:

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ…ΡƒΠΊΠ΅.

Ѐункция Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°: fn_[id_модуля]_[Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Ρ…ΡƒΠΊΠ°]($[ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹_Ρ…ΡƒΠΊΠ°_Ρ‡Π΅Ρ€Π΅Π·_Π·Π°ΠΏΡΡ‚ΡƒΡŽ])

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ доступны всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² Ρ…ΡƒΠΊ.

Π§Ρ‚ΠΎΠ±Ρ‹ функция ΠΌΠΎΠ³Π»Π° Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ снаруТи), ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ссылки ( &$param )

Π–ΠΈΠ²ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΒΆ

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ Ρ‚ΠΎ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π΅, Ссли Ρ‚ΠΎΠ²Π°Ρ€Π° Π½Π΅Ρ‚ Π½Π° складС.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ ΠΊ послСднСму Ρ…ΡƒΠΊΡƒ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Π½Π°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля β€œΠœΠΎΠΈ измСнСния”:

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄:

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ρ…ΡƒΠΊΡƒ.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„Π°ΠΉΠ» app/addons/my_changes/func.php

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая сработаСт Π² Ρ…ΡƒΠΊΠ΅:

Π’ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ β€œΠœΠΎΠΈ измСнСния”.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fn_print_r($product_data); Π΄ΠΎ Ρ…ΡƒΠΊΠ°, послС Ρ…ΡƒΠΊΠ° ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ…ΡƒΠΊΠ°. Она распСчатаСт Π½Π° экран содСрТимоС массива.

Как я ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€?

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ с SMARTY Π±Π»ΠΎΠΊΠΎΠΌ для ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ SMARTY Π±Π»ΠΎΠΊΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· массива <$product_data>, Π² Ρ‚ΠΎΠΌ числС Π²Π°ΡˆΡƒ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ условий.

Π Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉΒΆ

Π₯ΡƒΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ услвоий ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ:

Нам Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Multi-Vendor. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Ρ„Π°ΠΉΠ»Π΅ /app/functions/fn.multivendor.php создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Код для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈΒΆ

Или ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅:

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ появится Π² пСрСчислСнных рСдакциях, вторая ΠΆΠ΅ Ρ‡Π°ΡΡ‚ΡŒ β€” Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ НЕ появится Π² этих рСдакциях

Π₯ΡƒΠΊΠΈ Π² PHP скриптах¢

ВСрсионныС Ρ‚Π΅Π³ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„ΡƒΠΊΠ½Ρ†ΠΈΡŽ fn_allowed_for :

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *