рдирдорд╕реНрддреЗ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╕реЗ
рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдореИрдВ рдЦреБрдж рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╕рдорд░реНрдердХ рдирд╣реАрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрднреА-рдХрднреА рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреЗрдбрд╝ рдмрдирд╛рдирд╛ рдЧрд▓рдд рд╣реИ)ред
рдореИрдВ рдЯрд┐рдкреНрдкрдгреА рдкреЗрдбрд╝ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдореЗрдиреВ рдкреЗрдбрд╝ рдмрдирд╛рдКрдВрдЧрд╛ред рдореЗрдиреВ рдмрдирд╛рдиреЗ рдХрд╛ рдореЗрд░рд╛ рддрд░реАрдХрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдЯреНрд░реА рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдПрдХ рдореЗрдиреВ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдмрдореЗрдирд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реА рдореЗрдиреВ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдпрд╣ рд╣реИ:
m_Id
m_Position
m_LineId
m_ParentId
m_Type
m_Title
m_Description
m_Data
рдЬрдм рдореИрдВ рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдХреЗ рд╣реИрд░рд╛рди рдерд╛, рддреЛ рдореИрдВ рдЦреБрдж рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдерд╛, рдореИрдВрдиреЗ рдЗрди рдЯреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдХреБрдЫ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдереЗ, рдХрд┐рд╕реА рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрди рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬреЛ рдореБрдЭреЗ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ, рдмрд╛рдХреА, рдкреЗрдбрд╝реЛрдВ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрдерд╛ рдХрд┐ рд╕рд┐рд░реНрдл 1 рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ рдордирдорд╛рдирд╛ рд╡рд┐рд╢рд╛рд▓ рдкреЗрдбрд╝ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдерд╛ рдФрд░, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ COUNT () рдФрд░ рдЕрдиреНрдп рдмрдХрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╡рд┐рдХреГрддрд┐ рдХреЗ рдмрд┐рдирд╛ред рдореИрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХрд╛ рдХреЛрдб рджреВрдВрдЧрд╛, рдЬреЛ рдореЗрдиреНрдпреВ рдЯреНрд░реА рдмрдирд╛рддрд╛ рд╣реИ:
class MenuFactory extends BaseClass { public $MenuTree; public $MenuList; private $level=0; public function GetMenu($menu_id, $return_as_list = false) {
рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдХрд╛ рдХреЛрдб:
class MenuItem { public $Id; public $Position; public $ParentId; public $LineId; public $Type; public $Title; public $Description; public $Data; public $Level; public $ChildMenus; }
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреИрд╕реЗ php рдХреЛрдб рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐
рдЧреЗрдЯрдореЗрдиреВ () рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдиреВ рдЯреНрд░реА рдФрд░ рдореЗрдиреВ рджреЛрдиреЛрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ 0 рд╕реЗ рдЕрдирдВрдд рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореЗрдиреВ рдЯреНрд░реА рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рд▓реЛрдб рд╣реЛрдЧрд╛ред
GetMenuPathTo () рд╡рд┐рдзрд┐ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛
рдЦреЛрдЬрддреА рд╣реИ , рдЬрд┐рд╕рдХреА рдЖрдИрдбреА рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдмреНрд░реЗрдбрдХреНрд░рдВрдм рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
CommonUtils :: DelPrefix () рдЖрдкрдХреЛ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
CommonUtils :: ObjectFromArray () рдЗрд╕рдореЗрдВ рд╕реМрдВрдкреЗ рдЧрдП рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рдХреЗ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рднрд░реА рдЬрд╛рдПрдЧреАред
рдореИрдВ рддрд░реНрдХ рдирд╣реАрдВ рджреЗрддрд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рдХреЛрдб рдХреЛ рдкрд╕рдВрдж рди рдХрд░реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреЗрд╡рд▓ 1 рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдореЗрдиреВ рдЯреНрд░реА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рднреА рд╕рдлрд▓рддрд╛ред
рдЕрдкрдбреЗрдЯ : // рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЬреЛ рд╢реИрд▓реА рдореЗрдВ рд╕реНрд╡рднрд╛рд╡ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ: "рдкреЗрдбрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП %% рдкрджреНрдзрддрд┐ рдирд╛рдо% рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛", рдпрд╛ "рдХреНрдпреЛрдВ рдирд╣реАрдВ%%%%%?", рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ: рдкреЗрдбрд╝ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред рдореИрдВ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд╛рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ% methodname% рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдзреНрдпрд╛рди рджрд┐рдП рдирд╣реАрдВ рдЫреЛрдбрд╝реА рдЬрд╛рдПрдЧреАред