рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ xslt рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

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

1. рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛


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

рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ
/themes -     /themes/index/main.xsl -   /themes/models/user.xsl -  ,      /themes/inc/functions.xsl -  - /themes/blocks/footer.xsl -   /themes/blocks/menu.xsl -   /themes/cabinet/main.xsl -        


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЦрд╛рддреЗ рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХрд╛ рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
  1. рдореБрдЦреНрдп рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ /themes/cecast/main.xsl рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо xml рдореЗрдВ рдкрд░рд┐рдгрд╛рдо (рддреИрдпрд╛рд░ html) рдбрд╛рд▓рддрд╛ рд╣реИред
  2. рдЗрд╕реА рддрд░рд╣ рдЕрдиреНрдп рдмреНрд▓реЙрдХ (рдореЗрдиреВ, рдкрд╛рдж) рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ xml рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ
  3. рдЕрдВрддрд┐рдо xml, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ /themes/index/main.xsl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо HTML рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╕реВрдЪрдХрд╛рдВрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ /themes/index/main.xsl рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
 <xsl:template match="page"> <head> <title><xsl:value-of select="title" /></title> </head> <body> <div class="page-container"> <xsl:value-of select="blocks/menu_top/html" disable-output-escaping="yes"/> <div class="main"> <xsl:value-of select="blocks/content/html" disable-output-escaping="yes"/> </div> <xsl:value-of select="blocks/footer/html" disable-output-escaping="yes"/> </div> </body> </xsl:template> 


2. рдирд╛рдорд╛рдВрдХрд┐рдд рдЯреЗрдореНрдкреНрд▓реЗрдЯ


Xslt рдЯреЗрдореНрдкрд▓реЗрдЯ xml рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкреВрд░реЗ рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреЛрдИ рдЦрд╛рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
 <xsl:template name="inc_show_user"> <xsl:param name="user"/> <img src="/img/{$user/userpic}.png"/> <xsl:value-of select="concat($user/first_name, ' ', $user/last_name)"/> </xsl:template> 
рдЬреЛ рдлрд╝рд╛рдЗрд▓ /themes/models/user.xsl рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред

рд╣рдо рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
 <xsl:call-template name="inc_show_user"> <xsl:with-param name="user" select="/*/cur_user"/> </xsl:call-template> 

рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
 <xsl:for-each select="users/item"> <xsl:call-template name="inc_show_user"> <xsl:with-param name="user" select="."/> </xsl:call-template> </xsl:for-each> 


рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдпрд╣ рдПрдХрддрд╛ рдЖрдкрдХреЛ рдЙрдирдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдмреЗрд╢рдХ, рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рддрд╕реНрд╡реАрд░ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ
 <xsl:template name="inc_show_user"> <xsl:param name="user"/> <xsl:choose> <xsl:when test="$user/userpic>0"> <img src="/img/{$user/userpic}.png"/> </xsl:when> <xsl:otherwise> <img src="/img/default.png"/> </xsl:otherwise> </xsl:choose> <xsl:value-of select="concat($user/first_name, ' ', $user/last_name)"/> </xsl:template> 


3. рдЖрдпрд╛рдд рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕


рдмреНрд▓реЙрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдЗрдХрд╛рдИ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ /themes/models/user.xsl рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
/Themes/cecast/main.xsl рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП, рдХрдиреЗрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛
 <xsl:import href="../models/user.xsl"/> 
(xsl: рдЖрдпрд╛рдд xsl рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ)

4. рд╡реНрдпреВ рдореЗрдВ php рдХреЛрдб рдХреА рд▓рд╛рдЗрди рдирд╣реАрдВ


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

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

рд╣рдореЗрд╢рд╛ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдХрд╛ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рд╣реИред
 function str_plural_form($n, $form1='', $form2='', $form5=''){ $lastN=$num%10; $lastT=$num%100; if($lastT>=10 && $lastT<=20){ return $form5; } switch ($lastN){ case 1: return $form1; case 2: case 3: case 4: return $form2; default: return $form5; } } 

рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ, xslt рдЖрдкрдХреЛ рд╕реАрдзреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
 <xsl:value-of select="php:function('str_plural_form', 1*$cnt_users, '', '', '')"/> 

рд▓реЗрдХрд┐рди рдпрд╣ рди рдХреЗрд╡рд▓ рдЕрдиреБрднрд╛рдЧ рдХреЗ рд╢реАрд░реНрд╖рдХ рдХрд╛ рдЦрдВрдбрди рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрддрд┐рд╡рд╛рдж рднреА рд╣реИред Xslt рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ php рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ рдмрдЪрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдХреНрдпрд╛ рдХрд░реЗрдВ? 2 рддрд░реАрдХреЗ рд╣реИрдВ:
  1. рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ str_plural_form рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рджреЗрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдВ
  2. рдПрдХ рдирд╛рдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕реЗ рд╣рдо /themes/inc/functions.xsl рдореЗрдВ рдбрд╛рд▓реЗрдВ

 <xsl:template name="f_plural_form"> <xsl:param name="num"></xsl:param> <xsl:param name="format">### ###</xsl:param> <xsl:param name="is_show_num">1</xsl:param> <xsl:param name="space"/> <xsl:param name="str1"></xsl:param> <xsl:param name="str2"></xsl:param> <xsl:param name="str5"></xsl:param> <xsl:if test="$is_show_num=1"> <xsl:value-of select="format-number($num, $format)"/> <xsl:choose> <xsl:when test="$space!=''"> <xsl:value-of select="$space" disable-output-escaping="yes"/> </xsl:when> <xsl:otherwise> <xsl:text> </xsl:text> </xsl:otherwise> </xsl:choose> </xsl:if> <xsl:variable name="lastN" select="$num mod 10"/> <xsl:variable name="lastT" select="$num mod 100"/> <xsl:choose> <xsl:when test="$lastT>=10 and 20>=$lastT"> <xsl:value-of select="$str5" disable-output-escaping="yes"/> </xsl:when> <xsl:when test="$lastN=1"> <xsl:value-of select="$str1" disable-output-escaping="yes"/> </xsl:when> <xsl:when test="$lastN=2 or $lastN=3 or $lastN=4"> <xsl:value-of select="$str2" disable-output-escaping="yes"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$str5" disable-output-escaping="yes"/> </xsl:otherwise> </xsl:choose> </xsl:template> 


рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛
 <xsl:call-template name="f_plural_form"> <xsl:with-param name="is_show_num">1</xsl:with-param> <xsl:with-param name="num" select="$cnt_users"/> <xsl:with-param name="str1"></xsl:with-param> <xsl:with-param name="str2"></xsl:with-param> <xsl:with-param name="str5"></xsl:with-param> </xsl:call-template> 


5. рд╕рдиреНрджрд░реНрдн


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


рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП LEFT JOIN рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд░реЗрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдгрдп рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рднреА рд╣реИрдВред рдкрд╣рд▓рд╛ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрддрд┐рд░реЗрдХ рд╣реИ (рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рджреВрд╕рд░рд╛ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рдиред рд╕рднреА рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдлрд┐рд░ рдЗрди рд╕реВрдЪрд┐рдпреЛрдВ рд╕реЗ user_id рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдФрд░ рдЗрд╕ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред рдПрдХ рдЬреНрдЮрд╛рдд рдкрддреЗ рдкрд░ xml рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдЬреЛрдбрд╝реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП / ref_usersред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдкреЛрд╕реНрдЯреНрд╕, active_users, online_users, ref_users рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ xml-document рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдирд╛рдорд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВрдЧреЗ
 <xsl:template name="inc_show_user_by_id"> <xsl:param name="user_id"/> <!--       id --> <xsl:variable name="cur_user" select="/*/ref_users/item[user_id=$user_id]"/> <xsl:call-template name="inc_show_user"> <xsl:with-param name="user" select="$cur_user"/> </xsl:call-template> </xsl:template> 
рдФрд░ рдЗрд╕реЗ /themes/models/user.xsl рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рдпрд╣ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕рдХреА рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реИред

рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдкрджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
 <xsl:for-each select="posts/item"> <xsl:call-template name="inc_show_user_by_id"> <!--    user_id   --> <xsl:with-param name="user_id" select="user_id"/> </xsl:call-template> <!--     --> <!-- ... --> </xsl:for-each> 


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


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

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


All Articles