MODx рдХреНрд░рд╛рдВрддрд┐ред рдкрд░рд┐рдгрд╛рдоред рднрд╛рдЧ 1

MODx рдХреНрд░рд╛рдВрддрд┐ рдХреЛ рдЬрд╛рд░реА рд╣реБрдП рд╕рд╛рдврд╝реЗ рддреАрди рдорд╣реАрдиреЗ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдпрд╣ рддрд░реНрдХ рдирд╣реАрдВ рджреЗрдЧрд╛ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдмрд╣реБрдд рдХрдЪреНрдЪрд╛ рдерд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдерд╛ред MODx рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░, рдореИрдВрдиреЗ рдмрд╣реБрдд рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕рдВрджреЗрд╣ рджреЗрдЦрд╛ред рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп рд╣реИ, рдФрд░ рдХреБрдЫ рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдгред рдлрд┐рд▓рд╣рд╛рд▓ , рд╕рдВрд╕реНрдХрд░рдг 2.0.4-pl2 рдЙрдкрд▓рдмреНрдз рд╣реИ , рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ: рдХреНрдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдЪреБрдирд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдореЙрдбреЗрдХреНрд╕ рдЗрд╡реЛрд▓реНрдпреВрд╢рди (1.x) рдХреЛ рддреНрдпрд╛рдЧрдиреЗ рдФрд░ рд░реЗрд╡реЛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдпрдХ рд╣реИ? рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдирдИ рдкреНрд░рдгрд╛рд▓реА рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдореИрдВ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд▓рд┐рдП рдЦреЛрдЬрддрд╛ рд╣реВрдВред







MODx рдХреНрд░рд╛рдВрддрд┐ рдХреНрдпрд╛ рд╣реИ





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





рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА









рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕реАрдПрдордПрд╕ рдкрд░ рдХрд╛рдлреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ред рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рд╕реЛрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред





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



рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд░рд╕реАрд▓рд╛ рдирд╣реАрдВ рд╣реИред "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдкреНрд░реАрдЯреАрдиреЗрд╕" рдХреЗ рдвреЗрд░ рдХреЗ рдХрд╛рд░рдг рдПрдбрдорд┐рди рдЗрд╡реЛрд▓реНрдпреВрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдпрд╣ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд▓рдЯрдХрд╛ рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдореИрдВрдиреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреНрд▓рд┐рдЯреНрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛)ред



MODx рдХреНрд░рд╛рдВрддрд┐ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕





рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреГрдердХреНрдХрд░рдгред рдИрд╡реЛ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рд░ рддрдп рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рдХреЗрд╡рд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ ("рдкреНрд░рдмрдВрдзрдХреЛрдВ" рдХреЗ рд▓рд┐рдП)ред рд░реЗрд╡реЛ рдореЗрдВ, рдЖрдк рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣реЛрдВ рдХреЛ рд╕реМрдВрдк рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

"рд╕реБрд░рдХреНрд╖рд╛" -> "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣" -> "рдкрд╣реБрдВрдЪ рдиреАрддрд┐рдпрд╛рдВ" рдкрд░ рдЬрд╛рдПрдВред рдкрд╣реБрдБрдЪ рдиреАрддрд┐ рдХрд╛ рдирд╛рдо рдЪреБрдиреЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдкреНрд░рд╢рд╛рд╕рдХ") рдФрд░ "рдирдИ рдЕрдиреБрдорддрд┐" рдЬреЛрдбрд╝реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрд╛рджрди рдореЗрдВ "test_action"ред

рд╕рд╣реЗрдЬреЗрдВ рдФрд░ "рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рд╕рддреНрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ)ред рдЕрдм рдШрдЯрдХ рдХреЛрдб (рд╕реНрдирд┐рдкреЗрдЯ, рдкреНрд▓рдЧ-рдЗрди) рдХрд╣реАрдВ рднреА рд╕рдВрднрд╡ рд╣реИ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ "test_action" рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ:



if (!$modx->hasPermission('test_action')){ //     ,   " " return $modx->error->failure($modx->lexicon('access_denied')); }
      
      







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



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



рд╣рдо рд╕реНрдирд┐рдкреЗрдЯреНрд╕, рдкреНрд▓рдЧрдЗрдиреНрд╕, рдЪрдВрдХреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, "рдирд┐рд░реНрдпрд╛рдд рдкрд░рд┐рд╡рд╣рди рдкреИрдХреЗрдЬ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рд╕рдВрдЧреНрд░рд╣ рддреИрдпрд╛рд░ рдХрд░реЗрдВред рдЕрдм рдЗрд╕реЗ рдХреЛрд░ / рдкреИрдХреЗрдЬ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрдирд╛ рдФрд░ "рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрди" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред



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

1. рд╣рдорд╛рд░реЗ рдШрдЯрдХ ("рд╕рд┐рд╕реНрдЯрдо" -> "рдирд╛рдорд╕реНрдерд╛рди") рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рдмрдирд╛рдПрдВред



рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдкрд░, "рдкреНрд░рдмрдВрдзрдХ" рдШрдЯрдХ рдХреЗ "рдирд┐рдпрдВрддреНрд░рдХ" рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк MVC рдкреИрдЯрд░реНрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ "рдирд┐рдпрдВрддреНрд░рдХ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдЖрдкрдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рд╣реИред

2. "рд╕рд┐рд╕реНрдЯрдо" рдкрд░ рдЬрд╛рдПрдВ -> "рдХреНрд░рд┐рдпрд╛рдПрдБ"ред рд╣рдорд╛рд░реЗ "myextra" рдирд╛рдо рд╕реНрдерд╛рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, "рдпрд╣рд╛рдБ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдПрдБ" рдЪреБрдиреЗрдВред "рдХрдВрдЯреНрд░реЛрд▓рд░" рд▓рд╛рдЗрди рдореЗрдВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдкреАрдПрдЪрдкреА-рдлрд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд▓рд┐рдЦреЗрдВ, рдЬреЛ рдкрд╣рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╕реВрдЪрдХрд╛рдВрдХ" (index.php)ред

3. рдЕрдм рдореЗрди рдореЗрдиреНрдпреВ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рдмрдирд╛рдПрдВред рд╣рдо "рд╢реАрд░реНрд╖ рдореЗрдиреВ" рдмреНрд▓реЙрдХ рдореЗрдВ "рдШрдЯрдХ" рдЖрдЗрдЯрдо рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ "рдореЗрдиреВ рдЖрдЗрдЯрдо рдпрд╣рд╛рдВ рдмрдирд╛рдПрдВ" рдЪреБрдиреЗрдВред



4. рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ "рдирд┐рдпрдВрддреНрд░рдХ" рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рдореЗрд░реЗ index.php рдирд┐рдпрдВрддреНрд░рдХ рдХреА рд╕рд╛рдордЧреНрд░реА рд╣реИ:



 <?php $corePath = MODX_CORE_PATH.'components/myextra/'; $assetsUrl = MODX_BASE_URL.'assets/components/myextra/'; $controllersPath = $corePath.'controllers/'; $connectorUrl = $assetsUrl.'connector.php'; $cssUrl = $assetsUrl.'css/'; $jsUrl = $assetsUrl.'js/'; $output .= '<div><h2> </h2></div>'; $output .= '<div id="myextra-main-div"></div>'; return $output;
      
      







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



 $title = ' '; //    $modx->smarty->assign('title', $title); //  return $modx->smarty->fetch($corePath.'templates/main.tpl');
      
      







рдЖрдк PHP рдХреЛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдпрд╛ рдЖрдк рдПрдХреНрд╕рдЯреАрдЬреЗрдПрд╕ рдХрд╛ рдкреВрд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдорд╛рдиреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ (Ext.grid.GridPanel):



рдХреЛрд░ / рдШрдЯрдХ / myextra / index.php:



 <?php $corePath = MODX_CORE_PATH.'components/myextra/'; $assetsUrl = MODX_BASE_URL.'assets/components/myextra/'; $controllersPath = $corePath.'controllers/'; $connectorUrl = $assetsUrl.'connector.php'; $cssUrl = $assetsUrl.'css/'; $jsUrl = $assetsUrl.'js/'; //   HEAD $modx->regClientStartupHTMLBlock('<script type="text/javascript"> var myextra = {}; myextra.connector_url = "'.$connectorUrl.'"; </script>'); $modx->regClientStartupScript($jsUrl.'datagrid.js'); //  grid` $output .= '<h2> </h2>'; $output .= '<div id="myextra-main-div"></div>'; return $output;
      
      







рд╕рдВрдкрддреНрддрд┐ / рдШрдЯрдХ / myextra / js / datagrid.js:



 Ext.onReady(function(){ //   var store = new Ext.data.JsonStore({ url: myextra.connector_url, //   root: 'object.data', //JSON     totalProperty: 'object.total', //    idProperty: 'orderid', remoteSort: false, prettyUrls: false, fields: [ {name: 0}, {name: 1, type: 'int'}, {name: 2, type: 'float'}, {name: 3, type: 'int'} ] }); store.setDefaultSort(3, 'desc'); //   var grid = new Ext.grid.GridPanel({ store: store, columns: [ {header: " 1", width: 100, sortable: true, dataIndex: 0}, {header: " 2", width: 100, sortable: true, dataIndex: 1}, {header: " 3", width: 100, sortable: true, dataIndex: 2}, {header: " 4", width: 100, sortable: true, dataIndex: 3} ], renderTo:'myextra-main-div', //DIV     width:400, autoHeight: true, loadMask: true, bbar: new Ext.PagingToolbar({ pageSize: 5, //   store: store, //  displayInfo: true, displayMsg: ' {0} - {1}  {2}', emptyMsg: "  " }) }); //  store.load({params:{ action: 'mgr/datalist', // ("") start:0, limit:5 } }); });
      
      







рд╕рдВрдкрддреНрддрд┐ / рдШрдЯрдХ / myextra / рдХрдиреЗрдХреНрдЯрд░.php:



 <?php /** * Myextra Connector * * @package myextra */ require_once dirname(dirname(dirname(dirname(__FILE__)))).'/config.core.php'; require_once MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php'; require_once MODX_CONNECTORS_PATH.'index.php'; /* handle request */ $modx->request->handleRequest(array( 'processors_path' => $modx->getOption( 'core_path' ) . 'components/myextra/processors/', 'location' => '' ));
      
      







рдХреЛрд░ / рдШрдЯрдХ / myextra / рдкреНрд░реЛрд╕реЗрд╕рд░ / mgr / datalist.php:



 <?php $start = $scriptProperties['start']; //   $limit = $scriptProperties['limit']; //   $total = 50; $page = $start+1; //  ""  mysql- $limit_on_page = $total-($total-($page*$limit)); $outputArray = array(); for($i=$start*$limit;$i<$limit_on_page;$i++){ $outputArray[] = array(' '.($i+1),2,3,4); } $outputArray = array( 'total'=>$total, 'limit_on_page'=>$limit_on_page, 'data'=>$outputArray ); return $modx->error->success('',$outputArray);
      
      







рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдРрд╕реА рдЯреИрдмрд▓реЗрдЯ рдорд┐рд▓рддреА рд╣реИ:





рдПрдХреНрд╕рдЯреАрдЬреЗрдПрд╕ рд╕реАрдЦрдиреЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рдкрд╣рд▓реЗ рд▓рдЧрддрд╛ рдерд╛ред рдореБрдЦреНрдп рдЗрдЪреНрдЫрд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЯрди рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИред



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



рдкрд╣рд▓реЗ рднрд╛рдЧ рдХрд╛ рдЕрдВрддред



рдЗрд╕ рднрд╛рдЧ рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ MODx рдХреНрд░рд╛рдВрддрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИред



All Articles