Drupal 7 рдХреЗ рд▓рд┐рдП рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП JS рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб

Drupal рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗ рд╣реИрдВред рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд▓реЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рдорд╛рдирдХ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд╣рд▓рд╛ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ html рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ - рд╕реНрд▓рд╛рдЗрд╕ред рдлрд┐рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреЗрдореНрдкрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЯреБрдХрдбрд╝реЗ рджреНрд╡рд╛рд░рд╛ рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рдПрдХреАрдХрд░рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рдХреБрдЫ рд╕рдВрд╢реЛрдзрди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдкрд╛рджрди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдмрд╛рдж рдХреА рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА, рдореИрдВ D7 рдХреЗ рд▓рд┐рдП JS рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрд▓рддрд┐рдпреЛрдВ рдФрд░ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбреНрд░реВрдкрд▓ рдХреЛрдбрд░реНрд╕ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЦреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рдЬрд┐рд╕реЗ рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ Drupal рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧреА, рдФрд░ рдпрд╣ рдХрдИ рд╕реАрдорд╛рдПрдВ рд▓рдЧрд╛рддреА рд╣реИ, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ Drupal рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ Drupal рдХреЗ рдмрд╛рд╣рд░ рд╕реНрд▓рд╛рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ред ред


JQuery рдХреЗ рдЪрд░ рдирд╛рдо


Drupal 7 рдореЗрдВ, рд╕рдВрд╕реНрдХрд░рдг 6 рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдк рдЗрд╕реЗ рд▓реЗ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ $ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ jQuery рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЪрд░ рдмрд╕ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдХреНрд╕рд░ рдЖрдкрдХреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬрдм рдЯрд╛рдЗрдкрд╕реЗрдЯ рдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬреЛ рд▓реЗрдЖрдЙрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдпрд╛ рдЖрдкрдиреЗ рдмрд╕ рдПрдХ рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реА рд╣реИ, рдФрд░ рдПрдХреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЪрд░ $ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рдбрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЖрдкрдХреЛ рд╣рд░ рдЬрдЧрд╣ $ jQuery рдХреЗ рд╕рд╛рде рдШреВрдордиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ:
$(function () { $('div.menu-expanded').hide(); $(....); }); 

рджреНрд░реБрдкрд╛рд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 (function ($) { $(function () { $('div.menu-expanded').hide(); $(...); }); }) (jQuery); 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдХреЛрдб рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд▓рдкреЗрдЯрдХрд░, рдорд╛рдирдХ рдЧреБрдВрдЬрд╛рдЗрд╢ рдЖрд╡рдВрдЯрди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, jQuery рд╡рд╕реНрддреБ $ рдХреЗ рдирд╛рдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдИред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреА рд▓рд┐рдкрд┐рдпреЛрдВ рдкрд░ рди рдЪрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЯрд╛рдЗрдкрд╕реЗрдЯреНрдЯрд░ рдХреЛ рддреБрд░рдВрдд рдРрд╕реА рддрдХрдиреАрдХ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

Drupal.behaviors


Drupal рдХреЗ рдкрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рддреИрдпрд╛рд░ рдШрдЯрдирд╛, Drupal.behaviors рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рдХрдИ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреА 6 рдореЗрдВ рдерд╛, рдмрд╕ рд▓рд┐рдЦрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ:
 $(function (){ $('a.tooltip').someTooltipPlugin(); }); 

рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рддрддреНрд╡, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде, рдкреГрд╖реНрда рдкрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рднреА рд╣реИрдВрдбрд▓рд░ рдЙрд╕ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рдЯрдХрд╛рдПрдВрдЧреЗ, рдпрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рд╛рдордЧреНрд░реА рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИред
рд╡реНрдпрд╡рд╣рд╛рд░рд╡рд╛рджреА рддрдВрддреНрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЬрдм рдкреГрд╖реНрда рддреИрдпрд╛рд░ рд╣реЛ рддреЛ рд╕рднреА рдХреЛрдб рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
 (function ($) { Drupal.behaviors.yourName = { attach : function(context, settings) { // Your code here. } }; })(jQuery); 

рдЗрд╕ рддрд░рд╣, рд╣рдордиреЗ рдЕрдкрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ - рдмрд╕ Drupal.behaviors рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдИ рдкреНрд░реЙрдкрд░реНрдЯреА рдЬреЛрдбрд╝реАред рдЗрд╕рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХреЙрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреНрд░реБрдкрд▓ рд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдпрджрд┐ рдпрд╣ рдПрдХ рдорд╛рдирдХ рдЕрдиреБрд░реЛрдз рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдкрддреНрд░ рдпрд╛ рджреГрд╢реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛)ред
рд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 Drupal.attachBehaviors(document, {}); 

Drupal Drupal.behaviors рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рдВрд▓рдЧреНрди рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред
рдкрд╣рд▓реЗ рддрд░реНрдХ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ (рдореИрдВрдиреЗ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рд╕рдордЭ рд╕реЗ рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕рд╛рдордЧреНрд░реА (DOM рддрддреНрд╡ рдпрд╛ рдЪрдпрдирдХрд░реНрддрд╛) рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ("рд╕рдВрд▓рдЧреНрди")ред рдпрд╣ рдорд╛рди рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕рдВрджрд░реНрдн рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдпрджрд┐ рд╣рдо рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЛрдб рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдкреГрд╖реНрда рдкрд░ рд╕рднреА рд▓рд┐рдВрдХ рдХреЛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╣рд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
 $('a...', context).someTooltipPlugin(); 

рдкрд╣рд▓реЗ, рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдкреВрд░реЗ рдкреГрд╖реНрда рдкрд░ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╕рднреА рд▓рд┐рдВрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░рдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд╣рд▓рд╛ рдХреЙрд▓ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред
рдлрд┐рд░, рд╡реНрдпрд╡рд╣рд╛рд░рд╡рд╛рджрд┐рдпреЛрдВ рдХреЛ рд╣рд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдирдИ рдкреНрд░рд╛рдкреНрдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрджрд░ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ ajax рдкреЗрдЬрд┐рдиреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рдЬрдм рд╣рдо рджреВрд╕рд░реЗ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреБрди: рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рди рдХрд┐ рдкреВрд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВред
рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рддрд░реНрдХ-рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ "рд╕рдВрд▓рдЧреНрди" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдордп, рдФрд░ рдкреЗрдЬ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдирд╣реАрдВред
рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП Nuanceред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рд▓реЗрдЖрдЙрдЯ рдкрд╣рд▓реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡реЗ рдЗрд╕реЗ рдбреНрд░реБрдкрд▓ рдкрд░ рдкреЗрдВрдЪ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ - рдХреЛрдб рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░рд╡рд╛рджрд┐рдпреЛрдВ рд╕реЗ рддреБрд░рдВрдд рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд▓реЗрдЖрдЙрдЯ рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрд╢реА рдбреНрд░реБрдкрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЧреИрд░-рдореМрдЬреВрдж рд╡реИрд░рд┐рдПрдмрд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЖрджрд┐ред
рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдбреНрд░реБрдкрд▓.рдЬреЗрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рдЬреЛ рдбреНрд░реБрдкрд▓ рдХреЛрд░ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред
рдЗрд╕ рддрд░рд╣ рд╣рдо Drupal рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдлреЙрд░реНрдо рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рднреА рдХреЛрдбрд░ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рд╛рдорд╛рдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рдмрдЬрд╛рдп рд╡реНрдпрд╡рд╣рд╛рд░рд╡рд╛рджрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реИред рдФрд░ рдЕрдВрджрд░ рд╣рдореЗрд╢рд╛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

jQuery.once


рдпрджрд┐ рдирдИ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рддреЛ рдЕрдм рд╣рдо рд╡рд┐рдкрд░реАрдд рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдХреБрдЫ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдПрдХ рд╣реА рддрддреНрд╡ рдХреЛ рджреЛ рдмрд╛рд░ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдкрд╣рд▓реА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╡рд░реНрдЧ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛, рдФрд░ рдЪрдпрдирдХрд░реНрддрд╛ рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдд рд╢рд╛рдорд┐рд▓ рд╣реИред
 $('a.tooltip:not(.processed)', context).addClass('processed').someTooltipPlugin(); 

рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЕрдВрджрд░ рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдПрдХ рдмрд╛рд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╣реА рддрдВрддреНрд░ jQuery.once рдкреНрд▓рдЧрдЗрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ D7 рдХреЛрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдкреГрд╖реНрда рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдКрдкрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЗрд╕ рддрд░рд╣ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 $(context).once('myIdentifier', function () { // Your code here. }); 

рдЬрд╣рд╛рдБ myIdentifier рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рдЙрд╕ рд╕рдВрд╕рд╛рдзрд┐рдд рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рдЫреЛрдЯреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 $(context).once(function () { // Your code here. }); 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд▓рдЧрдЗрди рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЕрдиреВрдареА рдХрдХреНрд╖рд╛ рдмрдирд╛рдПрдЧрд╛ред

рдмреЗрд╕ url


рдПрдХ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддреА - рд╡реЗ рдЖрдзрд╛рд░ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдореИрдВ рдЙрд╕реЗ рд╕рд┐рджреНрдз рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдорд┐рд▓рд╛ред
рдЗрд╕реЗ рдкрд╣рдЪрд╛рдирдирд╛ рдЖрд╕рд╛рди рд╣реИ - рдкрде рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╕реНрд▓реИрд╢:
var url = '/ ajax / my-рдореЙрдбреНрдпреВрд▓ / рдХреБрдЫ-рдПрдХреНрд╢рди';
рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рд╣реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╕ рд╕реНрд▓реИрд╢ рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдмреЗрд╕ рдпреВрдЖрд░рдПрд▓ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИрдВ ... рдЬреНрдпрд╛рджрд╛рддрд░, рдЬрдм рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рдФрд░ рдПрдПрдордЬреА рдЯреИрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрде рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред
рд╡рд┐рд╢реЗрд╖ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд╣реА рд╣реЛрдЧрд╛, рдЬреЛ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
 var url = Drupal.settings.basePath + 'ajax/my-module/some-action'; 


рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдкрде


рдПрдХ рдЫреЛрдЯреА рд╕реА рдЕрдиреБрд╢рдВрд╕рд╛ (рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ рдпрд╣ рдПрдХ рдорд╛рдирдХ рд╣реИ) - рдЬрдм рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдорд╛рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдЬрд╛рдХреНрд╕ рд╢рдмреНрдж рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗрдЧрд╛, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рднреА рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХреИрд╢ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░реЗрдВ, рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦреЗрдВ, рдЖрджрд┐ред рдлрд┐рд░ рдПрдХ рд╣рд╛рдЗрдлрд╝рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо - рдпрд╣ рддреБрд░рдВрдд рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИред рдпреВрдЖрд░рдПрд▓ рдХреА рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдлрд╝рди рди рд░рдЦреЗрдВ, рднрд▓реЗ рд╣реА рдХреЛрдИ рдЗрд╕реЗ рди рджреЗрдЦреЗ, рдПрдХ рд╣реА рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЕрдВрдбрд░рд▓рд╛рдЗрдВрдЧ рдХреЗ рд╕рд╛рде рдиреЛрдбреНрд╕ рдХреЗ рдЙрдкрдирд╛рдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ?
рдЗрд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП "рд╕рд╣реА" рдкрде рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЕрдЬрд╛рдХреНрд╕ / рдореЗрд░рд╛-рдореЙрдбреНрдпреВрд▓ / рдХреБрдЫ-рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реЛрдЧрд╛ред

рд▓рд╛рдЗрди рдЖрдЙрдЯрдкреБрдЯ


рдЬреЗрдПрд╕ рдореЗрдВ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХрдИ рдХрд╛рд░реНрдп рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реВрдБрдЧрд╛, рдмрд┐рдирд╛ рдЧрд╣рди рдХрд┐рдП - рд╡реЗ PHP рдХрд░реНрдиреЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рднреА рдПрдирд╛рд▓реЙрдЧ рд╣реИрдВ:
 //   . Drupal.t('text'); //  ""  . Drupal.checkPlain(name); //   ,    /  . Drupal.formatPlural(count, singular, plural, args, options); 

рд╡реЗ рд╕рднреА drupal.js рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрд░рдорд╢рдГ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

Source: https://habr.com/ru/post/In161039/


All Articles