рдПрдХ рд╕рд╛рдзрд╛рд░рдг HTML рдореЗрдиреВ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдЖрдЗрдЯрдо рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг

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



рдпрд╣ рдПрдХ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╕реВрдЪреА рдкрд░ рдПрдХ рдореЗрдиреВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ, рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рд╕рдХреНрд░рд┐рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ current active



рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛрдбрд╝реЗрдВ:



 <li class="current active"> <a href="#link">Current link</a> </li>
      
      







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





рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдк рд╕рд┐рдореНрдлрдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдЖрдкрдХреЗ рдкрд╛рд╕ KNPMenuBundle



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



рдЬреИрд╕реЗ OOP рдореЗрдиреВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ ActiveMenuItemBundle рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред



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





рд╕реНрдерд╛рдкрдирд╛



ActiveMenuItemBundle



рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╕рдВрдЧреАрддрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд┐рдореНрдлрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╣реИ :



 { "require": { "bw/active-menu-item-bundle": "1.1.*@dev" } }
      
      





рдФрд░ рдлрд┐рд░ рдмрдВрдбрд▓ рдХреЛ app/AppKernel.php



рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:



 public function registerBundles() { $bundles = array( // other bundles... new BW\ActiveMenuItemBundle\BWActiveMenuItemBundle(), );
      
      







рдХреЗ рдЙрдкрдпреЛрдЧ



рдЕрдм рдЖрдкрдХреЗ Twig рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдХрдИ рдирдП рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдЬреЛ рд╕рдХреНрд░рд┐рдп рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред



рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдореЗрдиреВ рдЖрдЗрдЯрдо рдорд╛рд░реНрдЧ рд╡рд░реНрддрдорд╛рди рдорд╛рд░реНрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, is_active



рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг 1:

 <li class="{{ 'route_name'|is_active }}"> <a href="{{ path('route_name') }}">Current link</a> </li>
      
      





рдпрджрд┐ рдорд╛рд░реНрдЧ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ current active



рд▓реМрдЯрд╛рдПрдЧрд╛ред



рдПрдХ рдмрд╣реБрд╕реНрддрд░реАрдп рдореЗрдиреВ рдХреЗ рдореВрд▓ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдорд╛рд░реНрдЧ рдЙрд╕рдХреЗ рдмрдЪреНрдЪреЗ рдХреЗ is_active



рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, is_active



рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ рдмрд╛рд▓ рдорд╛рд░реНрдЧреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛, рдФрд░ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рджрд┐рдП рдЧрдП рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рд░реВрдЯ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг 2:

 <li class="{{ is_active(['child_route_1', 'child_route_2'], 'parent_route') }}"> <a href="{{ path('parent_route') }}">Parent link</a> <ul> <li class="{{ 'child_route_1'|is_active }}"> <a href="{{ path('child_route_1') }}">Child link</a> </li> <li class="{{ 'child_route_2'|is_active }}"> <a href="{{ path('child_route_2') }}">Current link</a> </li> </ul> </li>
      
      





рдпрджрд┐ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ child_route_2



Current link



child_route_2



, рддреЛ current active



рдХрдХреНрд╖рд╛рдПрдВ рдЙрд╕реЗ рд╕реМрдВрдкреА рдЬрд╛рдПрдВрдЧреА, рдФрд░ рдХреЗрд╡рд▓ active



рд╡рд░реНрдЧ рдХреЛ рдЙрд╕рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдкреЗрд░реЗрдВрдЯ_рд░реВрдЯреЗ parent_route



рд╕рд╛рде рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ред



рдпрджрд┐ рдЖрдкрдХреЛ рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдЕрдиреБрд░реЛрдз URI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, is_active_uri



рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ is_active_uri



рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз URI рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рд╕рд┐рдореНрдлрдиреА рдмреЙрдХреНрд╕ рд╕реЗ рджрд┐рдП рдЧрдП path



рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг 3:

 <li class="{{ path('route_name')|is_active_uri }}"> <a href="{{ path('route_name') }}">Current link</a> </li>
      
      







рдбреЗрдореЛ



рдбреЗрдореЛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЗрд╡ рдореЛрдб рдХреЗ рд▓рд┐рдП app/config/routing_dev.yml



рдореЗрдВ рд░реВрдЯрд┐рдВрдЧ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 bw_active_menu_item: resource: "@BWActiveMenuItemBundle/Resources/config/routing.yml" prefix: /bw/demo/active-menu-item
      
      





рдлрд┐рд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд php app/console server:run



рд╢реБрд░реВ php app/console server:run



рдХреЛ рджреЗрд╡ рдореЛрдб рдореЗрдВ php app/console server:run



рдФрд░ рдкрддреЗ рдкрд░ рдЬрд╛рдПрдВ localhost:8000/bw/demo/active-menu-item/index



localhost:8000/bw/demo/active-menu-item/index



ред рдпрд╣рд╛рдБ Twig рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдбреЗрдореЛ рдХреЛрдб рд╣реИ ред



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



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

рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ - рдпрд╣рд╛рдВ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдлрд┐рд▓реНрдЯрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рди рджрд┐рдЦреЗрдВред



рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЖрдкрдХреЗ рдХрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВрдЧреЗ!



рдкреАрдПрд╕ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рддреАрд░ рдХреЛ рджрдмрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдорд╛рдЗрдирд╕ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХреНрдпреЛрдВ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рдиреА рдЙрдард╛рдПрдВред



All Articles