рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди: рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдирд╛

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

рдпрд╣ рдЖрд▓реЗрдЦ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдмрдирд╛рдХрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдЬреЗрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ рдПрдХ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓ рд▓реЗрдЦ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рд╕рд╛рдордЧреНрд░реА рдирд┐рд░реНрдорд╛рдг


рд╕рд╛рдордЧреНрд░реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдСрд░реНрдЪрд░реНрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рднрд╛рдЧреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг: рд╕рд╛рдордЧреНрд░реА рдЖрдЗрдЯрдо рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд░реНрдЧ, рд╕рд╛рдордЧреНрд░реА рдЖрдЗрдЯрдо рдХреЛ рдЯреИрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреИрдЧ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдиреВ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЗрдиреВред

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

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

рдореИрдк рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдХрдВрдЯреЗрдВрдЯ рдкрд╛рд░реНрдЯ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдСрд░реНрдЪрд░реНрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЦреЛрд▓реЗрдВред

Orchard рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ "codegen рдореЙрдбреНрдпреВрд▓ рдореИрдкреНрд╕ / рдЗрдирдХреНрд▓реВрдбрд┐рдВрдЧ: рдЯреНрд░реВ" рдЯрд╛рдЗрдк рдХрд░реЗрдВред "рдЗрдирдХреЙрд░рд╕реЛрд▓реНрдпреВрд╢рди" рдкреИрд░рд╛рдореАрдЯрд░ рдСрд░реНрдЪрд░реНрдб рдХреЛ рдСрд░реНрдЪрд░реНрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред

image

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

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ Module.txt рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдирд╛рдо, рд╡рд┐рд╡рд░рдг, рд╕рдВрд╕реНрдХрд░рдг, рд▓реЗрдЦрдХ рдФрд░ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рднреА рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдирдХрд╛рд░реАред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд┐рдирд╛ред рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 рдирд╛рдо: рдореИрдкреНрд╕ 
 рдПрдВрдЯреАрдлреЙрдЧрд░рд░реА: рд╕рдХреНрд╖рдо 
 рд▓реЗрдЦрдХ: рдСрд░реНрдЪрд░реНрдб рдЯреАрдо 
 рд╡реЗрдмрд╕рд╛рдЗрдЯ: http://orchardproject.net 
 рд╕рдВрд╕реНрдХрд░рдг: 1.0.0 
 OrchardVersion: 1.0.0 
 рд╡рд┐рд╡рд░рдг: рджреЗрд╢рд╛рдВрддрд░ рдФрд░ рдЕрдХреНрд╖рд╛рдВрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рд╛рдордЧреНрд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдЫрд╡рд┐ рдЬреЛрдбрд╝рддрд╛ рд╣реИред 
 рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ: 
     рдорд╛рдирдЪрд┐рддреНрд░: 
         рд╡рд┐рд╡рд░рдг: рджреЗрд╢рд╛рдВрддрд░ рдФрд░ рдЕрдХреНрд╖рд╛рдВрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рд╛рдордЧреНрд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдЫрд╡рд┐ рдЬреЛрдбрд╝рддрд╛ рд╣реИред 
         рд╢реНрд░реЗрдгреА: рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди </ span> 


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

image

рдСрд░реНрдЪрд░реНрдб рдореЗрдВ, рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХреНрд▓рд╛рд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдХреЙрдиреНрдЯреЗрдВрдЯрдкрд╛рд░реНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ MapRecord (ContentPartRecord) рдФрд░ MapPart (ContentPart) рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:

  System.ComponentModel.DataAnnotations рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
 Orchard.ContentManagement рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
 Orchard.ContentManagement.Records рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;

 рдиреЗрдорд╕реНрдкреЗрд╕ рдореИрдкреНрд╕.рдореЙрдбрд▓реНрд╕ {
     рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ MapRecord: ContentPartRecord {
         рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрднрд╛рд╕реА рдбрдмрд▓ рдЕрдХреНрд╖рд╛рдВрд╢ {рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ;  рд╕реЗрдЯ;  }
         рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрднрд╛рд╕реА рдбрдмрд▓ рджреЗрд╢рд╛рдВрддрд░ {рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ;  рд╕реЗрдЯ;  }
     }

     рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ MapPart: ContentPart <MapRecord> {
         [рдЖрд╡рд╢реНрдпрдХ]
         рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбрдмрд▓ рдЕрдХреНрд╖рд╛рдВрд╢
         {
             {рд░рд┐рдЯрд░реНрди рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЖрднрд╛рд░;  }
             рд╕реЗрдЯ {рд░рд┐рдХреЙрд░реНрдб.рдЕрдиреБрдкрд╛рдд = рдорд╛рди;  }
         }

         [рдЖрд╡рд╢реНрдпрдХ]
         рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбрдмрд▓ рджреЗрд╢рд╛рдВрддрд░
         {
             {return record.ongitude рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ;  }
             рд╕реЗрдЯ {рд░рд┐рдХреЙрд░реНрдб.рднрд╛рд░рдд = рдорд╛рди;  }
         }
     }
 } 


рдЕрдм рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред

image

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

рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк Orchard рдХреЛрдб рдЬрдирд░реЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХрдорд╛рдВрдб "рдХреЛрдбрдЬреИрди рдбреЗрдЯрд╛рдореЗрдиреНрдЧреНрд░реЗрд╢рди рдореИрдкреНрд╕" рдЪрд▓рд╛рдПрдВред

image

рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдлрд┐рд░ рд╕реЗ рдЖрдкрдХреЛ рд╕рдорд╛рдзрд╛рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛ред рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдорд┐рд▓реЗрдЧрд╛ред

image

рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдмрдирд╛рдПрдБ () рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдХреЗ рджреЛ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ MapRecord рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╕ рд╡рд░реНрдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдлрд╝рдВрдХреНрд╢рди рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░ рдХреНрд░рд┐рдПрдЯ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

  рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
 System.Collections.Generic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
 System.Data рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
 рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
 Orchard.ContentManagement.Drivers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
 Orchard.ContentManagement.MetaData рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
 Orchard.ContentManagement.MetaData.Builders рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
 Orchard.Core.Contents.Extensions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
 Orchard.Data.Migration рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;

 рдирд╛рдорд╕реНрдерд╛рди рдореИрдкреНрд╕ред рдбреЗрдЯрд╛рдЧреНрд░рд┐рдЧреЗрд╢рди {
     рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдХрд╛ рдкрд▓рд╛рдпрди: DataMigrationImpl {

         рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int рдмрдирд╛рдПрдБ () {
			 // рддрд╛рд▓рд┐рдХрд╛ MapRecord рдмрдирд╛рдирд╛
			 SchemaBuilder.CreateTable ("MapRecord", рддрд╛рд▓рд┐рдХрд╛ => рддрд╛рд▓рд┐рдХрд╛
				 .рдХрдВрдЯреЗрдВрдЯрдкрд╛рд░реНрдЯрдХрд╛рд░реНрдб ()
				 ред рдХреЙрд▓рдо ("рдЕрдХреНрд╖рд╛рдВрд╢", DbType.Double)
				 ред рдХреЙрд▓рдо ("рджреЗрд╢рд╛рдВрддрд░", DbType.Double)
			 );

             рдХрдВрдЯреЗрдВрдЯрдбрд┐рдлрд╛рдЗрдирдореЗрдВрдЯ рдореИрдирдЬрд░ред рдСрд▓реНрдЯрд░рдкрд╛рд░реНрдЯрдбрд┐рдлрд╛рдЗрдирдореЗрдВрдЯ (
                 typeof (MapPart)ред рдирд╛рдо, cfg => cfg.Attachable ());

             рд╡рд╛рдкрд╕реА 1;
         }
     }
 } 


AlterPartDefinition рдкрд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХреЗред using Maps.Models; рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ using Maps.Models; рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЕрдм рд╣рдорд╛рд░реЗ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝реЗрдВред рдПрдХ рдСрд░реНрдЪрд░реНрдб рд╣реИрдВрдбрд▓рд░ рдПрдХ рдРрд╕рд╛ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рднрд╛рдЧ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ IRepository <MapRecord> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреАред рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣реИрдВрдбрд▓рд░ \ MapHandler.cs рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

  рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
 Orchard.ContentManagement.Handlers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
 Orchard.Data рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;

 рдирд╛рдорд╕реНрдерд╛рди рдореИрдкреНрд╕рд╣реИрдВрдбрд▓рд░ {
     рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ MapHandler: ContentHandler {
         рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ MapHandler (IRepository <MapRecord> рднрдВрдбрд╛рд░) {
             рдлрд┐рд▓реНрдЯрд░ .dd (StorageFilter.For (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА));
         }
     }
 } 


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдСрд░реНрдЪрд░реНрдб рдбреНрд░рд╛рдЗрд╡рд░ рдПрдХ рдРрд╕рд╛ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рднрд╛рдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреЛрдИ рдирдХреНрд╢рд╛ рдХрд┐рд╕реА рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдзрд┐ рдЙрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдирд╛рдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рд╕реНрдкреНрд▓реЗрдЯрд╛рдЗрдкреНрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╡рд┐рд╡рд░рдг" рдпрд╛ "рд╕рд╛рд░рд╛рдВрд╢") рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрд╕реА рддрд░рд╣, "рд╕рдВрдкрд╛рджрдХ" рдбреНрд░рд╛рдЗрд╡рд░ рд╡рд┐рдзрд┐ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЗ рд╕рдВрдкрд╛рджрдХ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирдХреНрд╢реЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдХрд╛ рдЗрдирдкреБрдЯ рд╣реЛрдЧрд╛) рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕рд░рд▓ рд╣реЛрдЧрд╛, рд╣рдо рдкреНрд░рджрд░реНрд╢рди рд╕рдВрджрд░реНрдн рдФрд░ рд╕рдВрдкрд╛рджрдХ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рдирд╛рдордХ рдПрдХ рдЖрдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдЕрдиреБрд╕рд╛рд░, рдореИрдкрдбреНрд░рд╛рдЗрд╡рд░ рд╡рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВ:

  рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
 Orchard.ContentManagement рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
 Orchard.ContentManagement.Drivers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;

 рдиреЗрдорд╕реНрдкреЗрд╕ рдореИрдкреНрд╕рдбреНрд░рд╛рдЗрд╡рд░реНрд╕ {
     рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ MapDriver: ContentPartDriver <MapPart> {
         рд╕рдВрд░рдХреНрд╖рд┐рдд рдУрд╡рд░рд░рд╛рдЗрдб DriverResult рдбрд┐рд╕реНрдкреНрд▓реЗ (
             MapPart рд╣рд┐рд╕реНрд╕рд╛, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбрд┐рд╕реНрдкреНрд▓реЗ рдЯрд╛рдЗрдк, рдбрд╛рдпрдирд╛рдорд┐рдХ рд╢реЗрдк рд╣реЗрд▓реНрдкрд░) {

             рдХрдВрдЯреЗрдВрдЯрд╢реИрдк ("Parts_Map", () => shape рд╣реЗрд▓реНрдкрд░.рдкрд╛рд░реНрдЯреНрд╕_рдкрд╛рд░реНрдЯ
                 рджреЗрд╢рд╛рдВрддрд░: рднрд╛рдЧред рджреЗрд╢рд╛рдВрддрд░,
                 рдЕрдХреНрд╖рд╛рдВрд╢: рднрд╛рдЧред рдЕрдХреНрд╖рд╛рдВрд╢));
         }

         // рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
         рд╕рдВрд░рдХреНрд╖рд┐рдд рдУрд╡рд░рд░рд╛рдЗрдб DriverResult рд╕рдВрдкрд╛рджрдХ (
             MapPart рд╣рд┐рд╕реНрд╕рд╛, рдЧрддрд┐рд╢реАрд▓ рдЖрдХрд╛рд░ рд╣реЗрд▓реНрдкрд░) {

             рдХрдВрдЯреЗрдВрдЯрд╢реИрдк рд╡рд╛рдкрд╕ рдХрд░реЗрдВ ("Parts_Map_Edit",
                 () => рдЖрдХрд╛рд░
                     TemplateName: "рдкрд╛рд░реНрдЯреНрд╕ / рдореИрдк",
                     рдореЙрдбрд▓: рднрд╛рдЧ,
                     рдЙрдкрд╕рд░реНрдЧ: рдЙрдкрд╕рд░реНрдЧ));
         }
         // рдкреЛрд╕реНрдЯ
         рд╕рдВрд░рдХреНрд╖рд┐рдд рдУрд╡рд░рд░рд╛рдЗрдб DriverResult рд╕рдВрдкрд╛рджрдХ (
             MapPart рднрд╛рдЧ, IUpdateModel updater, рдЧрддрд┐рд╢реАрд▓ рдЖрдХрд╛рд░ рд╣реЗрд▓реНрдкрд░) {

             updater.TryUpdateModel (рднрд╛рдЧ, рдЙрдкрд╕рд░реНрдЧ, рдЕрд╢рдХреНрдд, рдЕрд╢рдХреНрдд);
             рд╡рд╛рдкрд╕реА рд╕рдВрдкрд╛рджрдХ (рднрд╛рдЧ, рдЖрдХрд╛рд░ рд╣реЗрд▓реНрдкрд░);
         }
     }
 } 


рдЕрдм рд╣рдо рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдкреНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╡реНрдпреВ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдкрд╛рд░реНрдЯреНрд╕ рдФрд░ рдПрдбрд┐рдЯрд░рдЯреЗрдореНрдкрд▓реЗрдЯ / рдкрд╛рд░реНрдЯреНрд╕ рдлреЛрд▓реНрдбрд░ рдЬреЛрдбрд╝реЗрдВред рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдирд╛рдо / EditorTemplates / Parts рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо Maps.cshtml рдХреЗ рддрд╣рдд рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реЗрдВ:

  @model Maps

 <Fieldset>
   <рдХрд┐рдВрд╡рджрдВрддреА> рдирдХреНрд╢рд╛ рдлрд╝реАрд▓реНрдб </ рдХрд┐рдВрд╡рджрдВрддреА>
            
   <div class = "editor-label">
     @ Html.LabelFor (рдореЙрдбрд▓ => рдореЙрдбрд▓.рд▓реАрдЯреНрдпреВрдб)
   </ Div>
   <div class = "editor-field">
     @ Html.TextBoxFor (model => model.Latitude)
     @ Html.ValidationMessageFor (model => model.Latitude)
   </ Div>

   <div class = "editor-label">
     @ Html.LabelFor (рдореЙрдбрд▓ => рдореЙрдбрд▓ред рд▓реЙрдиреНрдЧрд┐рдЯреНрдпреВрдб)
   </ Div>
   <div class = "editor-field">
     @ Html.TextBoxFor (model => model.Longitude)
     @ Html.ValidationMessageFor (model => model.Longitude)
   </ Div>
            
 </ Fieldset> 


рдФрд░ рджреГрд╢реНрдп / рднрд╛рдЧреЛрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде:

  <img alt = "рд╕реНрдерд╛рди" рдмреЙрд░реНрдбрд░ = "1" src = "http://maps.google.com/maps/api/staticmap? 
      & рдЬрд╝реВрдо = 14
      рдФрд░ рдЖрдХрд╛рд░ = 256x256
      & maptype = рд░реЛрдбрдореИрдк
      & рдорд╛рд░реНрдХрд░ = рд░рдВрдЧ: рдиреАрд▓рд╛ | @ Model.Latitude, @ Model.Longitude
      & рд╕реЗрдВрд╕рд░ = рдЧрд▓рдд "/> 


рдпреЗ рджреЛрдиреЛрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд╛рдж рдореЗрдВ рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдмрдбрд╝реЗ рдкреГрд╖реНрда рдХреЗ рдЫреЛрдЯреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЖрджреЗрд╢ рдФрд░ рд╕реНрдерд╛рди рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╣рдореЗрдВ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЬрдбрд╝ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ.рдиреЗрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  <рдкреНрд▓реЗрд╕рдореЗрдВрдЯ>
     <рдкреНрд▓реЗрд╕ Parts_Map = "рд╕рд╛рдордЧреНрд░реА: 10" />
     <Place Parts_Map_Edit = "рд╕рд╛рдордЧреНрд░реА: 7.5" />
 </ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ> 


рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ Parts_Map рдЖрдХреГрддрд┐ (рдЬреЛ рджреГрд╢реНрдп / рднрд╛рдЧ / Maps.cshtml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ) рд╕рд╛рдордЧреНрд░реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ 10 рд╕реНрдерд┐рддрд┐ рдкрд░ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рдХреЛ рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╣рдорд╛рд░реЗ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдСрд░реНрдЪрд░реНрдб рдПрдбрдорд┐рди рдкреИрдирд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред

image

рдЖрдк рдСрд░реНрдЪрд░реНрдб рдПрдбрдорд┐рди рдкреИрдирд▓ рдореЗрдВ "рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░" рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЕрдкрдиреЗ рдХрдВрдЯреЗрдВрдЯ рдкрд╛рд░реНрдЯ рдХреЛ рдПрдХ рдореМрдЬреВрджрд╛ рдХрдВрдЯреЗрдВрдЯ рдЯрд╛рдЗрдк рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╡реЗрдВрдЯ рдЯрд╛рдЗрдк рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдЖрд░реНрдЯрд┐рдХрд▓ Orchard CMS рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдмрдирд╛рдпрд╛ рдерд╛ : рдХрдВрдЯреЗрдВрдЯ рдЯрд╛рдЗрдкреНрд╕ рдмрдирд╛рдирд╛ ред

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреИрдирд▓ рдХреЗ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ рдкреГрд╖реНрда рдкрд░, рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

image

рднрд╛рдЧреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ, рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдорд╛рдирдЪрд┐рддреНрд░ рднрд╛рдЧ рдЙрдкрд▓рдмреНрдз рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛, рдЗрд╕реЗ рдЪреБрдиреЗрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

image

рдЕрдм, рд╕рд╛рдордЧреНрд░реА рдЕрдиреБрднрд╛рдЧ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдЖрдЗрдЯрдо рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдиреЗ рд╕реНрд╡рдпрдВ рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛: рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ред рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдЖрдЗрдЯрдо рдХреЛ рдкреБрдирдГ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВред

image

рдЕрдм рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЗ рдкреГрд╖реНрда рдкрд░ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рд┐рдд рдорд╛рдирдЪрд┐рддреНрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдореИрдк рдХреЗ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: Orchard.Module.Maps.1.0.0.nupkg ред рдпрд╣ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИрдВред

рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЛ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдмрджрд▓рдирд╛


рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рд╕реЗ рддреИрдпрд╛рд░ рд╡рд┐рдЬреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Migrations.cs рдХреА рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреА рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ UpdateFrom<version#> рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ ред

рдирд┐рдореНрди рдХреЛрдб рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдореИрдк рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдлрд╝рд╛рдЗрд▓ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

  System.Data рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
 рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
 Orchard.ContentManagement.MetaData рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
 Orchard.Core.Contents.Extensions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░;
 Orchard.Data.Migration рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;

 рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рдирдХреНрд╢реЗ
 {
     рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдХрд╛ рдкрд▓рд╛рдпрди: рдбреЗрдЯрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди
     {
         рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int рдмрдирд╛рдПрдБ ()
         {
             // рддрд╛рд▓рд┐рдХрд╛ MapRecord рдмрдирд╛рдирд╛
             SchemaBuilder.CreateTable ("MapRecord", рддрд╛рд▓рд┐рдХрд╛ => рддрд╛рд▓рд┐рдХрд╛
                 .ContentPartRecord ()
                 ред рдХреЙрд▓рдо ("рдЕрдХреНрд╖рд╛рдВрд╢", DbType.Single)
                 ред рдХреЙрд▓рдо ("рджреЗрд╢рд╛рдВрддрд░", DbType.Single)
             );

             ContentDefinitionManager.AlterPartDefinition (рдЯрд╛рдЗрдкреЛрдлрд╝ (MapPart)ред рдирд╛рдо, cfg => cfg
                 .Attachable ());

             рд╡рд╛рдкрд╕реА 1;
         }

         рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int UpdateFrom1 ()
         {
             // рд╣рдорд╛рд░реЗ рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╡рд┐рдЬреЗрдЯ рдХрдВрдЯреЗрдВрдЯ рдЯрд╛рдЗрдк рдмрдирд╛рдПрдВ
             ContentDefinitionManager.AlterTypeDefinition ("MapWidget", cfg => cfg
                 .WithPart ("рдореИрдкрдкрд╛рд░реНрдЯ")
                 .WithPart ("рд╡рд┐рдЬреЗрдЯрдЧрд╛рд░реНрдЯ")
                 .WithPart ("рдХреЙрдордирдкрд╛рд░реНрдЯ")
                 .WithSetting ("рд╕реНрдЯреАрд░рд┐рдпреЛрдЯрд╛рдЗрдк", "рд╡рд┐рдЬреЗрдЯ"));

             рд╡рд╛рдкрд╕реА 2;
         }
     }
 } 


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, UpdateFrom1 рд╡рд┐рдзрд┐ MapPart, WidgetPart рдФрд░ CommonPart рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдПрдХ MapWidget рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ (рд╕реНрдЯреАрд░рд┐рдпреЛрдЯрд╛рдЗрдк) рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред WidgetPart рдФрд░ CommonPart рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ Orchard рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рдзрд┐ 2 рд▓реМрдЯрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ред

рдЕрдм рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рддрдмреНрджреАрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд░реНрд╢рди


рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд╡рд┐рдЬреЗрдЯ рдмрдирд╛ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд╢рд╛рд╕рди рдкреИрдирд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВред рдпрд╣рд╛рдВ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдкрд░рдд рдФрд░ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

image

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдмрдирд╛рдХрд░ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ, рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдЬрд╛рдВрдЪ рдХреА, рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рдкреГрд╖реНрда рдкрд░, рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдкрд░, рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

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


All Articles