Drupal 7 рдореЗрдВ рд▓рдЪреАрд▓реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛

рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: 09.06.2012
рдореИрдВ рд╡реЗрдмрдлреЙрд░реНрдо рдорд▓реНрдЯреАрдкрд▓ рдХрдВрдбреАрд╢рдВрд╕ рдореЙрдбреНрдпреВрд▓ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╡реЗрдмрдлреЙрд░реНрдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

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

рдкрд░рд┐рдЪрдпред


рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдЬрд▓реНрдж рд╣реА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдпрд╛ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдмрдирд╛рдиреЗ рдХреЗ рдХрд╛рдо рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛ред рдмреЗрд╢рдХ, рд╣рдорд╛рд░реЗ рд╕рдордп рдореЗрдВ рдХрд┐рд╕реА рднреА рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреЛ рдвреВрдВрдврдирд╛ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВ, рдЬрд┐рди рдкрд░ рдореИрдВ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╛рдзрд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░реВрдВрдЧрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ Drupal рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреАред

рдЧрддрд┐рд╢реАрд▓ рд╕рд╡рд╛рд▓ред


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдореЗрдВ рдХрдИ рдЬрдЯрд┐рд▓ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдмрдирд╛рдиреЗ рдХреЗ рдХрд╛рдо рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╢реНрди рд╕реНрд╡рдпрдВ рдкрд┐рдЫрд▓реЗ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЙрддреНрддрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдФрд░ рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдХреЗ рдЕрдВрддрд┐рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЙрддреНрдкрд╛рдж рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирдХрд╛рд░реЗрдВ:
  1. рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;
  2. рдХрдИ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ;
  3. рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░ рд╣реА рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
  4. рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ: "рдХреБрдЫ рд╕реВрдЪреАрдмрджреНрдз рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ", "рдХреБрдЫ рд╕реВрдЪреАрдмрджреНрдз рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ";
  5. рдПрдХ рд╕рд╛рде рдХрдИ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ;
  6. рд╢рд░реНрддреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди рдХрд░рддреЗ рд╕рдордп, AND / OR рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

рдЫрд╡рд┐

рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рддреАрди рдкреГрд╖реНрда рд╣реИрдВ рдФрд░ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рд╣реИред рдпрджрд┐ рдЙрд╕рдиреЗ рдкрд╣рд▓реЗ рджреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП "рд╣рд╛рдБ" рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдкреЗрдЬ 2 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреАрд╕рд░реЗ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдореЗрд╢рд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рджреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ "рдУрдЖрд░" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢рд░реНрддреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдзрдиреНрдпрд╡рд╛рдж рдкрд╛рда рд╕рдВрджреЗрд╢ рд╣рдореЗрд╢рд╛ рдкрд░рд┐рдгрд╛рдо рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреГрд╖реНрда 2 рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЙрд╕рдиреЗ рддреАрд╕рд░реЗ рдкреНрд░рд╢реНрди рдХрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЙрддреНрддрд░ рджрд┐рдпрд╛, рддреЛ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред

Drupal рдореЗрдВ рдПрдХ рд▓рдЪреАрд▓реА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ред


рдбреНрд░реБрдкрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡реЗрдмрдлреЙрд░реНрдо рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рднреА рдирд╣реАрдВред
рд╣рдо рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдкрддреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдШрдЯрдХреЛрдВ рдореЗрдВ рд╢рд░реНрддреЗрдВ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдХрдИ рд╢рд░реНрддреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рдХрд╛рд░ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрддреНрдпрдВрдд рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рд▓реЗрдЦ рдЗрд╕ рдХрдореА рдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред
рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
  1. рджреНрд░реБрдкрд╛рд▓ 4.резрек
  2. рд╡реЗрдмрдлреЙрд░реНрдо 7.x-3.18
Drupal рдФрд░ Webform рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВ [рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝реЗрдВ -> рд╡реЗрдмрдлреЙрд░реНрдо | / рдиреЛрдб / рдЬреЛрдбрд╝реЗрдВ / рд╡реЗрдмрдлреЙрд░реНрдо), рдЬрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреА рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХрд╛ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред
рдирдП рдиреЛрдб рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗрдмрдлреЙрд░реНрдо рдЯреИрдм рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдЯреИрдм рдкрд░, рдлреЙрд░реНрдо рдХреЛ рдЙрди рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ рдЬреЛ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред

рдЫрд╡рд┐

рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд╛рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ "question_X" рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ рдПрдХреНрд╕ рдкреНрд░рд╢реНрди рдХреА рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд╣реИред рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рд╣рд░ рдЬрдЧрд╣ рдПрдХ рд╣реА рдЙрддреНрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдШрдЯрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ ( рдХреБрдВрдЬреА | output_value ) рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ред

рдЫрд╡рд┐

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрдИ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░реЗ рдкреГрд╖реНрда рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ, рдПрдХ рд╢рд░реНрдд (рд╕рдВрдШрд╛рддреНрдордХ рдирд┐рдпрдо) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХред

рд╡рд┐рд╕реНрддреГрдд рд╡реЗрдмрдлрд╝реЙрд░реНрдо рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рд╣рдо Drupal рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣рдж рддрдХ crudely рдФрд░ atypically Webform рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рддрд╛рдХрд┐ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдХрдИ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (рджреЗрдЦреЗрдВ рд╡реЗрдмрдлреЙрд░реНрдо рдорд▓реНрдЯреАрдкрд▓ рдХрдВрдбреАрд╢рдВрд╕ )ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рдЖрдЗрдП 1 рд╕реЗ 10 рддрдХ рдШрдЯрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдВред рдбреНрд░реБрдкрд▓ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрд╢рд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдлрд╝реЙрд░реНрдо рдПрдкреАрдЖрдИ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рдЯреАрдХ рдирд╛рдо рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ HTML рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Firebug рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЗрдирдкреБрдЯ [name = "form_id"] рддрддреНрд╡ рдХрд╛ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдлреЙрд░реНрдо рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд┐рдд рд╣реИред

рдЫрд╡рд┐

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдорд╛рди "webform_component_edit_form" рд╣реИ ред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди "/webform/includes/webform.compords.inc" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред

529 рд▓рд╛рдЗрди рдкрд░, рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЕрдм рд╕рдмрдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ (рдЬреИрд╕реЗ webform_component_edit_form_validate , webform_component_edit_form_formubmit ) рдкрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдХреЛрдб рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдЯрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдШрдЯрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред

рдЫрд╡рд┐

рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдпрджрд┐ рд╣рдо рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрд╡рд▓ 10 рдмрд╛рд░ рддрддреНрд╡реЛрдВ рдХреЛ рдХреНрд▓реЛрди рдХрд░рдХреЗ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЬрд╛рджреВ рдирдВрдмрд░ 10 рдХреЛ рдПрдХ рдХрдордЬреЛрд░ рдирд┐рд░рдВрддрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд╣рдо рдЗрд╕реЗ Drupal variable_get рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЕрд╡рд╕рд░ рд╣реЛред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рд╕рд╢рд░реНрдд рдШрдЯрдХреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛрдб рдмрджрд▓реЗрдВ:
if ($conditional_components) { $extra_cond = array( 'conditional_component' => array( '#type' => 'select', '#title' => t('Component'), '#options' => webform_component_list($node, $conditional_components, FALSE, TRUE), '#description' => t('Select another component to decide whether to show or hide this component. You can only select components occurring before the most recent pagebreak.') ), 'conditional_operator' => array( '#type' => 'select', '#title' => t('Operator'), '#options' => array( '=' => t('Is one of'), '!=' => t('Is not one of') ), '#description' => t('Determines whether the list below is inclusive or exclusive.') ), 'conditional_values' => array( '#type' => 'textarea', '#title' => t('Values'), '#description' => t('List values, one per line, that will trigger this action. If you leave this blank, this component will always display.') ) ); $extra = $component['extra']; for ($i = 0; $i < variable_get('webform:max_conditional_rules', 10); $i++) { $condition_id = 'condition_'. $i; if (isset($extra[$condition_id]['values'])) { $condition_component_struct = $extra[$condition_id]['values']; $extra_cond['conditional_component']['#default_value'] = $condition_component_struct['conditional_component']; $extra_cond['conditional_operator']['#default_value'] = $condition_component_struct['conditional_operator']; $extra_cond['conditional_values']['#default_value'] = $condition_component_struct['conditional_values']; } $form['extra'][$condition_id] = array( '#type' => 'fieldset', '#title' => t('Conditional rule !num', array('!num' => $i + 1, )), '#collapsed' => TRUE, '#collapsible' => TRUE, '#tree' => TRUE, 'values' => $extra_cond, ); } } 


рдПрдХ рдЪреЗрдХ рдХрд░реЗрдВред рд╣рдо рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдкреГрд╖реНрда рдкрд░ рд╕реНрдерд┐рдд рдПрдХ рдордирдорд╛рдирд╛ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВрдЧреЗред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╢рд░реНрдд рдШрдЯрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред
рд╣рдо рдЗрд╕ рдлреЙрд░реНрдо рдореЗрдВ рдПрдХ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдПрдХ рд╕рд╛рде рд╣реИрдВред рдЖрдЗрдП рд╣рдорд╛рд░реЗ рджреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ: AND рдФрд░ OR ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдХреЗ рдмрд╛рдж, рддреБрд░рдВрдд рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:
 $form['extra']['algorithm'] = array( '#type' => 'select', '#options' => array( 'and' => t('AND'), 'or' => t('OR'), ), '#title' => t('Algorithm to evaluate conditions'), '#default_value' => isset($extra['algorithm']) ? $extra['algorithm'] : 'and', ); 


рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рде рдХрдИ рд╢рд░реНрддреЗрдВ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗред рдЕрдВрддрд┐рдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╡реЗрдм-рдлрд╝реЙрд░реНрдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реАрд▓реНрдб рдореЗрдВ рднрд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреБрд░рд╛рдирд╛ рдХреЛрдб рд░рд╣рддрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХ рд╢рд░реНрдд рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдВрдпреЛрдЬрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред
рдпрд╣ рдХреЛрдб рдвреВрдВрдврдирд╛ рдмрд╛рдХреА рд╣реИред рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рдл рд╕реЗ рдлрд╝реЙрд░реНрдо рдкреЗрдЬ рдкрд░ рдЬрд╛рдПрдБрдЧреЗ (рдХреЗрд╡рд▓ рд╡реНрдпреВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ) рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЗрдирдкреБрдЯ [name = "form_id"] рдХреЛ рдЦреЛрдЬреЗрдВ ред

рдЫрд╡рд┐

рдЗрд╕рдХрд╛ рдорд╛рди webform_client_form_1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдФрд░ рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рд╡рд┐рд╕реНрдордпрдХрд╛рд░реА рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдбреНрд░реБрдкрд▓ рдореЗрдВ рд╣реБрдХ_рдлреЙрд░реНрдо () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдВрддрд┐рдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд┐рд▓рд╛рди рдлреЙрд░реНрдо_ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рд╣реБрдХ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЙрд▓рдмреИрдХ webform_club_form рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ, рдФрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╛рд╕ рд╣реЛрдиреЗ рдХрд╛ рд╕реНрдерд╛рди рд╣реИ:
 /** * Implements hook_forms(). * * All webform_client_form forms share the same form handler */ function webform_forms($form_id) { $forms = array(); if (strpos($form_id, 'webform_client_form_') === 0) { $forms[$form_id]['callback'] = 'webform_client_form'; } return $forms; } 

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ (рдФрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдкрд░ рдХрд┐рдП рдЧрдП рдорд╛рдирдХ рдХреЙрд▓рдмреИрдХ рдореЗрдВ - webform_client_form_submit ) рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╢рд░реНрддреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреНрд░рд╕реНрддреБрдд рдХреЙрд▓рдмреИрдХ рдХреЗ рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 $form['#submit'] = array('webform_client_form_pages', 'webform_client_form_submit'); 

рдЪрд▓реЛ webform_client_form_pages рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ _webform_client_form_rule_check рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ TRUE рдпрд╛ FALSE рджреЗрддрд╛ рд╣реИ, рдФрд░ рдШрдЯрдХ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдпрд╛ рд▓рдВрдШрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
_Webform_client_form_rule_check рдореЗрдВ, $ рдШрдЯрдХ рддрд░реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡реЗрдм рдлреЙрд░реНрдо рдХреЗ рдХреБрдЫ рдШрдЯрдХ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИред рд╣рдо рдЗрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рджреЗрдп рд╕рднреА рд╢рд░реНрддреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
 $conditional_values = isset($component['extra']['conditional_values']) ? $component['extra']['conditional_values'] : NULL; $conditional_component = isset($component['extra']['conditional_component']) && isset($node->webform['components'][$component['extra']['conditional_component']]) ? $node->webform['components'][$component['extra']['conditional_component']] : NULL; $conditional_cid = $conditional_component['cid']; 


рд╣рдо рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдзреНрд╡рдЬ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЕрдВрддрддрдГ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ (рдЪреБрдиреЗ рд╣реБрдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдШрдЯрдХ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:
 $one_rule_passed = FALSE; 

рдЕрдЧрд▓рд╛ рдХрд╛рд░реНрдп рддрддреНрдХрд╛рд▓ рд╕рддреНрдпрд╛рдкрди рдХреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рддреБрд░рдВрдд рдмрд╛рдж рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:
 // Check the individual component rules. $show_component = $show_parent; 

рд╣рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ: рд╣рдо рдмрджрд▓реЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдкрд░рд┐рдгрд╛рдо рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ "рдпрд╛" рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкреВрд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдмрдирд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ "рдФрд░" рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо, рддреЛ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдкреВрд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рдмрдирд╛рддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рддреНрдпрд╛рдкрди рдХреЛрдб рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:
 // Check the individual component rules. $show_component = $show_parent; if ($show_component && ($page_num == 0 || $component['page_num'] == $page_num) && $conditional_component && strlen(trim($conditional_values))) { $input_values = array(); if (isset($form_state)) { $input_value = isset($form_state['values']['submitted'][$conditional_cid]) ? $form_state['values']['submitted'][$conditional_cid] : NULL; $input_values = is_array($input_value) ? $input_value : array($input_value); } elseif (isset($submission)) { $input_values = isset($submission->data[$conditional_cid]['value']) ? $submission->data[$conditional_cid]['value'] : array(); } $test_values = array_map('trim', explode("\n", $conditional_values)); if (empty($input_values) && !empty($test_values)) { $show_component = FALSE; } else { foreach ($input_values as $input_value) { if ($show_component = in_array($input_value, $test_values)) { break; } } } if ($component['extra']['conditional_operator'] == '!=') { $show_component = !$show_component; } } 


рдФрд░ рд╣рдо рддреБрд░рдВрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЧрдгрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 // Make the final decision if ($component['extra']['algorithm'] == 'or') { $result = $one_rule_passed; } elseif ($component['extra']['algorithm'] == 'and') { $result = array_search(FALSE, $show_component) !== FALSE; } else { $result = TRUE; } // Allow other modules to alter conditional check result $context = array('node' => $node, 'component' => $component, 'show_component' => $show_component, 'one_rule_passed' => $one_rule_passed, ); drupal_alter('webform_conditional_rules_result', $result, $context); // Private component? if ($component['extra']['private']) { $result = webform_results_access($node); } return $result; 

Drupal_alter рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреА, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЕрдиреБрдкрд╛рд▓ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рд▓реЗрдЦ рдореЗрдВ рдКрдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╡реЗрдм рдкреНрд░рдкрддреНрд░ рдШрдЯрдХреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, рд╣рдо рдкреГрд╖реНрда 2 рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рдкреГрд╖реНрда 3 рдкрд░, рдХреЗрд╡рд▓ рдкреНрд░рд╢реНрди 4 рдореЗрдВ рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░рдг рд╣реИ (рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░)ред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ:
  1. рдкреНрд░рд╢реНрди 1 [рд╣рд╛рдВ] рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ
  2. рдкреНрд░рд╢реНрди 2 [рдирд╣реАрдВ] рдореЗрдВ рд╕реЗ рдПрдХ рдирд╣реАрдВ рд╣реИ
  3. рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо "рдпрд╛" рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо рдкреГрд╖реНрда 4 рдкрд░, рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рддрднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рддреАрд╕рд░реЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдкреБрд╖реНрдЯрд┐рдХрд╛рд░рдХ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рдЕрдВрддрд┐рдо рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
  1. рдкреНрд░рд╢реНрди 3 [рд╣рд╛рдВ] рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдУрд░ рд╕реЗ рдлреЙрд░реНрдо рдкреЗрдЬ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн:

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


All Articles