рдиреМрд╕рд┐рдЦрд┐рдпрд╛ MODX рд░реЗрд╡реЛ рдиреЛрдЯреНрд╕


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

рдкрд░рд┐рдЪрдп


рддреЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ MODX рдХреНрдпрд╛ рд╣реИ (рд╡реИрд╕реЗ, рдпрд╣ рдЙрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ - MODX, рдФрд░ рд╣рдм рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ - MODX)? рдпрджрд┐ рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рдкрдврд╝рддреЗ рд╣реИрдВ - рддреЛ рдпрд╣ рд╕реАрдПрдордПрд╕ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, MODX CMS рдФрд░ CMF рдХреЗ рдмреАрдЪ рд▓рдЧрднрдЧ рдЖрдзрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреЛ рдХреЛрдИ рднреА MODX рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рд╡рд╣ рдЕрдиреНрдп рд▓реЗрдЦреЛрдВ рд╕реЗ рдЬрд▓реНрджреА рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдБрдЧрд╛ред

рдЪреВрдВрдХрд┐ MODX CMS рдФрд░ CMF рдХреЗ рдмреАрдЪ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП Wordpress рдпрд╛ Joomla рдЬреИрд╕реЗ рд╕рд░рд▓ CMS рдХреЛ рд╕реАрдЦрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рд▓реЗрдЦ рдХреБрдЫ рдРрд╕реА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдЕрдЯрдкрдЯреА рд▓рдЧрддреА рд╣реИрдВред



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


рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ nginx рдФрд░ PHP-FPM рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╕рд░реНрд╡рд░ рдкрд░ MODX Revo 2.2.4 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред
рдЪреВрдВрдХрд┐ MODX рдХреЛ рдЖрдо рддреМрд░ рдкрд░ Apache + PHP рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП nginx рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореЗрд░рд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
server { listen 80; server_name example.com *.example.com; #   MODX        . index index.php index.html; root /srv/http/example.com/public; access_log /srv/http/example.com/logs/http_access.log main buffer=50k; error_log /srv/http/example.com/logs/http_error.log; #    robots.txt.      ? location = /robots.txt { access_log off; log_subrequest off; log_not_found off; } #    favicon.ico location = /favicon.ico { access_log off; log_subrequest off; log_not_found off; } #    sitemap.xml location = /sitemap.xml { access_log off; log_subrequest off; log_not_found off; } #    *.css  *.js  location ~* ^.+\.(css|js)$ { access_log off; log_subrequest off; log_not_found off; } #     ,  location ~* ^.+\.(bmp|gif|jpg|jpeg|ico|png|swf)$ { access_log off; log_subrequest off; log_not_found off; } #      ,   ,   .htaccess, .git, .svn  .. location ~ /\. { deny all; } #        MODX.        ( ),   (   ).    ,    MODX-? location / { try_files $uri $uri/ @rewrite; } #  .    - MODX     index.php?q= -       . location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } #   php-fpm location ~ \.php$ { # php-fpm.   . fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /srv/http/example.com/public; #   ,   root fastcgi_param SCRIPT_FILENAME /srv/http/example.com/public$fastcgi_script_name; #   ,   root + $fastcgi_script_name include fastcgi_params; fastcgi_param REMOTE_ADDR $remote_addr; # ,  IP   PHP   localhost-. } } 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП, рд╢рд╛рдпрдж рдЙрдкрдпреБрдХреНрдд рд╣реИред рдпрд╣рд╛рдВ рд░реБрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рджреЛ рдЪреАрдЬреЗрдВ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, MODX (рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрдирд╕реА рдХреЗ рд▓рд┐рдП) рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
  server_name example.com *.example.com; #   MODX        . #        MODX.        ( ),   (   ).    ,    MODX-? location / { try_files $uri $uri/ @rewrite; } #  .    - MODX     index.php?q= -       . location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ MODX рдФрд░ рдмрд╛рдХреА рд╕рдм (рд╕рд╣реА рдирдЧрдиреЗрдХреНрд╕ CSS, JS, рдЪрд┐рддреНрд░ рдФрд░ PHP рдХреЗ рдмрд┐рдирд╛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛) рджреЛрдиреЛрдВ рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд▓рдЧрддрд╛ рд╣реИред
рд╕реНрдерд╛рдкрдирд╛ рд╕реНрд╡рдпрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдмрд╕ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рдмрд╛рд░ example.com/setup/ рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЗрдВрд╕реНрдЯреЙрд▓рд░ рд▓реЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдорд╛рдирд╡-рдЕрдиреБрдХреВрд▓ URL (рд╕реАрдПрдирд╕реА)


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, MODX рдореЗрдВ рд╕реАрдПрдирд╕реА рдЕрдХреНрд╖рдо рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ: рд╕рд┐рд╕реНрдЯрдо -> рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> рдлрд┐рд▓реНрдЯрд░ рдореЗрдВ "friendly_urls" рдбреНрд░рд╛рдЗрд╡ рдХрд░реЗрдВ рдФрд░ рдПрдВрдЯрд░ рджрдмрд╛рдПрдВ (рдЖрдк, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддреЗрдЬреА рд╕реЗ) -> рдореВрд▓реНрдп рдХреЛ "рд╣рд╛рдВ" рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ "рд╕рд╣реЗрдЬреЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ MODX рдореЗрдВ рд╕реЗрд╡ рдмрдЯрди рдЯреЙрдк рд░рд╛рдЗрдЯ рдХреЙрд░реНрдирд░ рдореЗрдВ рд╣реИред рдХрднреА-рдХрднреА рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЦреЛ рд╕рдХрддреА рд╣реИрдВ - рдХреНрдпреЛрдВрдХрд┐ MODX рдореЗрдВ рдХрднреА-рдХрднреА рдСрдЯреЛрд╕реИрд╡ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдирд╣реАрдВред
рдЗрд╕реА рддрд░рд╣, рд╣рдо рд╕реАрдПрдирд╕реА рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди "рдСрдЯреЛрдореИрдЯрд┐рдХ_рд▓рд┐рдпрд╛рд╕" рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред
рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реАрдПрдирд╕реА рдЪрд╛рд▓реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рд▓рд┐рдВрдХ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрдиреЗрдВрдЧреЗ:
 example.com/resourcename.html 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ .html рдЕрдВрдд рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ! рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд╕рд╛рдзрди рдХреА рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рд╕рдВрд╕рд╛рдзрди рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди)ред рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд┐рд╕реНрдЯрдо -> рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд GET рдкреИрд░рд╛рдореАрдЯрд░ рд╡реИрд╕реЗ рднреА рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
 example.com/news.html?date=05092012&nid=1 

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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рддреЛ, рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ URL рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде MODX рдореЗрдВ рдХреИрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╣реИ - рдмрддрд╛ рджреЗрдВ рдХрд┐ MODX рджрд┐рдП рдЧрдП URL рдкрд░ рдкреГрд╖реНрда рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ - рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж MODX рднреЗрдЬреЗрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, OnPageNotFound рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЙрдиреНрдирдд рд╕реАрдПрдирд╕реА рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХреЛрдб
 <?php if($modx->request->getResourceMethod()!="alias") return; $uri = $modx->resourceIdentifier; $uriChunks = explode("/", $uri); $paramNum=0; $uriChunksCount = count($uriChunks); $paramDelimiter="-"; //DO NOT use "/"! Set the desired delimiter here. for($i=$uriChunksCount-1;$i>0;$i--) { $parameter=explode($paramDelimiter, $uriChunks[$i], 2); if(count($parameter)!=2) return; $modx->request->parameters['GET'][$parameter[0]]=$parameter[1]; if(empty($modx->request->parameters['POST'][$parameter[0]])) $modx->request->parameters['REQUEST'][$parameter[0]]=$parameter[1]; $paramNum++; unset($uriChunks[$i]); $uri = implode("/", $uriChunks); if (array_key_exists($uri, $modx->aliasMap)) { $modx->sendForward($modx->aliasMap[$uri]); } } if($paramNum==($uriChunksCount-1)) { $parameter=explode($paramDelimiter, $uriChunks[0], 2); if(count($parameter)!=2) return; $modx->request->parameters['GET'][$parameter[0]]=$parameter[1]; if(empty($modx->request->parameters['POST'][$parameter[0]])) $modx->request->parameters['REQUEST'][$parameter[0]]=$parameter[1]; $modx->sendForward($modx->getOption('site_start', null, 1)); } 

рджрд░рдЕрд╕рд▓, рдпрд╣рд╛рдБ рд╢рд╛рдпрдж рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреАрдЬреЛрдВ рдкрд░ рд░реЛрдХ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ:
 $modx->request->getResourceMethod() 

рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реАрдПрдирд╕реА рдмрд┐рд▓реНрдХреБрд▓ рдЪрд╛рд▓реВ рд╣реИред
 $modx->resourceIdentifier 

рдпрд╣ рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдЪрд░ рдЕрдиреБрд░реЛрдзрд┐рдд URL рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
 $paramDelimiter="-"; 

рдпрд╣ рдЪрд░ рд╡рд┐рднрд╛рдЬрдХ рдХреЛ GET рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдирд╛рдо рдФрд░ рдЙрд╕рдХреЗ рдорд╛рди рдХреЗ рдмреАрдЪ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдк "/" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
 $modx->request->parameters['GET'][$parameter[0]]=$parameter[1]; if(empty($modx->request->parameters['POST'][$parameter[0]])) $modx->request->parameters['REQUEST'][$parameter[0]]=$parameter[1]; 

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде MODX GET рдФрд░ POST рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдкрдиреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИ:
 $modx->request->parameters['REQUEST'] = array_merge($modx->request->parameters['GET'], ($modx->request->parameters['POST']); 

рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ POST рд╕рд░рдгреА рдХрд╛ рдбреЗрдЯрд╛ REQUEST рд╕рд░рдгреА рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ, рддреЛ REQUEST рд╕рд░рдгреА рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
 if (array_key_exists($uri, $modx->aliasMap)) { $modx->sendForward($modx->aliasMap[$uri]); } 

рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдкреНрд░реЗрд╖рд┐рдд рд╣реИред рд╕рдВрдкреВрд░реНрдг рд╕реАрдПрдирд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ $ modx-> рдЙрдкрдирд╛рдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕рд╛рдзрди рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдпрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдЕрдВрдбрд░рд░реЗрдЯреЗрдб рдпреВрд░реА рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЕрднреА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред $ modx-> рднреЗрдЬрдиреЗ рдФрд░ рдЗрд╕ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рд╕рдВрднрд╡рдд: рддреБрд░рдВрдд рд▓рд┐рдВрдХ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ URL рдкреАрдврд╝реА рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдирд┐рдкреЗрдЯ рд▓рд┐рдЦрд╛, рдмрд╕ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХрд╛ URL рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред рдмреЗрд╢рдХ, рдЗрд╕реЗ рдкреАрдврд╝реА рдФрд░ рдЕрдиреНрдп рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рдирд┐рдЬреА рд╣реЛрдорд╡рд░реНрдХ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ :)
 <?php $currentURL=""; foreach($modx->request->getParameters() as $key => $value) { $currentURL.=$key."=".$value."&"; } $currentURL = $modx->makeUrl($modx->resource->get("id"), $modx->context->get("key"), $currentURL); return $currentURL; 

рджрд░рдЕрд╕рд▓, рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВред $ modx-> makeUrl URL рдмрдирд╛рддрд╛ рд╣реИред рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП - рдпрд╣ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдмрдирд╛рддрд╛ рд╣реИ - рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

MODX рдореЗрдВ рдорд▓реНрдЯреАрд╕рд╛рдЗрдЯ


рдПрдХ рд╣реА MODX рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдХрдИ рдбреЛрдореЗрди рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛

рджрд░рдЕрд╕рд▓, рдпрд╣ рд╡рд┐рд╖рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ ред рдореИрдВ рдЕрдкрдирд╛ рдирд┐рд░реНрдгрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдореБрдЦреНрдп рддрд░реАрдХреЛрдВ рдХреА рд╕реВрдЪреА рджреВрдВрдЧрд╛:
  1. рд╕рдВрдкрд╛рджрди index.phpред Index.php рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╕рдВрджрд░реНрдн рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреА рд╢рд░реНрддреЛрдВ рдХреЛ рдЕрдкрдиреА рд╕рдВрджрд░реНрдн рдХреА рдкрд╕рдВрдж рд╕реЗ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рддрд░реАрдХрд╛ рдкрд╕рдВрдж рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ: рдореВрд▓ modx рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдВрдкрд╛рджрдиред рдореБрдЭреЗ рдпрд╣ рддрдереНрдп рдХреНрдпреЛрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ? рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдИред рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИ (рдФрд░ рдПрд╕рдПрдордПрдл рдлреЛрд░рдо рдЗрдВрдЬрди рдХреА рддрд░рд╣ рдореБрдЭреЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ) рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рдореВрд▓ MODX рдлрд╛рдЗрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЗрдВрдЬрди рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
  2. OnHandleRequest рдЗрд╡реЗрдВрдЯ (рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреЛрд╖: рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдирд╛ - рд╡реЗрдм рд╕рдВрджрд░реНрдн рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ):
    1. рд╕рдВрдкрд╛рджрди index.php рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред рд╕рдм рдХреБрдЫ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ - рдЙрди рдбреЛрдореЗрди рдХреА рдПрдХ рд╕реВрдЪреА рдЬреЛ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдПрдХ рдХрдареЛрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реВрдЪреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддреА рд╣реИ, рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдд рд╣реЛрддреА рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдВрджрд░реНрдн рдирд╛рдо рдореЗрдВ рдбреЛрдореЗрди рдирд╛рдо (рдордВрдЪ рдХреЗ рд▓рд┐рдП рдордВрдЪ рд╕рдВрджрд░реНрдн редexample.com рдЙрдкрдбреЛрдореЗрди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИред
    2. рд╕рд╣реА рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реНрдХреИрди рдХрд░реЗрдВред рдЕрдзрд┐рдХрддрдо рд▓рдЪреАрд▓рд╛рдкрди, рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдСрдЯреЛ-рдирд┐рд░реНрдорд╛рдг, рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред



рдореИрдВ рдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБред рдореЗрд░рд╛ рдкреНрд▓рдЧрдЗрди рдкрд╛рда (рдпрд╛рдж рдХрд░реЗрдВ, OnHandleRequest рдШрдЯрдирд╛):
рдЧреЗрдЯрд╡реЗ рдкреНрд▓рдЧрдЗрди
 <?php if($modx->context->key!="mgr") { $object = $modx->getObject('modContextSetting', array('key' => 'multisite_http_host', 'value' => $modx->getOption('http_host'))); if($object) $modx->switchContext($object->get('context_key')); } 

рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рд╕рдВрджрд░реНрдн рдЧреБрдг рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ "multisite_http_host" рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдбреЛрдореЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реЗрдм рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдореИрдВ рджреЛ рдмрд╛рддреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, MODX рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ xPDO рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред xPDO рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ PHP рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реИред PHP рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд▓рдЧрднрдЧ рд╕рднреА MODX рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП xPDO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
 $object = $modx->getObject('modContextSetting', array('key' => 'multisite_http_host', 'value' => $modx->getOption('http_host'))); 

рдпрд╣ рдХреЛрдб рд╕рд┐рд░реНрдл рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрджрд░реНрдн рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╢рд░реНрддреЗрдВ рд╣реЛрддреА рд╣реИрдВ (рдЕрд░реНрдерд╛рддреН, рд╣рдорд╛рд░реЗ http рд╣реЛрд╕реНрдЯ рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде multisite_http_host рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреБрдВрдЬреА)ред рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рд╕рдВрджрд░реНрдн рдХреБрдВрдЬреА рдорд┐рд▓рддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╛рдкреНрдд рд╡рд╕реНрддреБ ($ рдСрдмреНрдЬреЗрдХреНрдЯ-> рдорд┐рд▓рддрд╛ рд╣реИ ("рд╕рдВрджрд░реНрдн_рдХреА"))ред
рджреВрд╕рд░реЗ, рд╣реИрдмреЗрд░рд╕рд░ XanderBass рдиреЗ рд╕рд╣реА рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛, рдЬрд┐рд╕рдХрд╛ рдЬрд╡рд╛рдм рдореИрдВ рдпрд╣рд╛рдВ рдирдХрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рддреЛ рдореИрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ "multisite_http_host" рдФрд░ рди рдХреЗрд╡рд▓ "http_host"?
рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рд╕рдВрджрд░реНрдн рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рддрдВрддреНрд░ рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрджрд░реНрдн рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, http_host рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧ рд╣реИред рдпрджрд┐ рдореИрдВрдиреЗ рд╕рдВрджрд░реНрдн рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ multisite_http_host рдХреЗ рдмрдЬрд╛рдп http_host рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рд╕реЗрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдмреЗрд╢рдХ, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдЗрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдбреЛрдореЗрди рдХреЗ рд╕рднреА рдЙрдк-рдбреЛрдореЗрди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ! рдпрд╛, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЛрдореЗрди рдХреЗ рдПрдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ: рд╕рдм 1 .example.com; рд╕рдм 2.example.com; рд╕рдм 3.example.com, рдЖрджрд┐)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, http_host рдореЗрдВ рдпрд╣ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА http_host рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж рд╣рдореЗрдВ рдореВрд▓ http_host рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╣реАрдВ рдФрд░ рд╣реИ ...

рдПрдХрд╛рдзрд┐рдХ рд╕рдВрджрд░реНрдн

рдХрднреА-рдХрднреА рдЖрдк рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕рд╛рде рдХрдИ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧрд┐рди рдореЙрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд▓рдЧрдЗрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдХрдИ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рд▓реЙрдЧ рдСрди рдХрд░рддрд╛ рд╣реИ ( OnWebLogin рдФрд░ OnWebLogout рдИрд╡реЗрдВрдЯреНрд╕ ):
Multiautentifikatsiya
 <?php $currentSiteGroup = $modx->getOption("multisite_site_group"); if(empty($currentSiteGroup)) return; $currentContext = $modx->context->get("key"); $currentContextSettings = $modx->getCollection('modContextSetting', array('key' => "multisite_site_group", "value" => $currentSiteGroup)); foreach($currentContextSettings as $currentContextSetting) { $contextKey = $currentContextSetting->get('context_key'); if($contextKey!="mgr" && $contextKey!=$currentContext) { if($user) { if($modx->event->name=="OnWebLogout") { $modx->user->removeSessionContext($contextKey); } else if($modx->event->name=="OnWebLogin") { $modx->user->addSessionContext($contextKey); $_SESSION['modx.'.$contextKey.'.session.cookie.lifetime']=$attributes["lifetime"]; } } } } 


рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдорд╛рди рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ "multisite_site_group" рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред
рдмрд╕ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:
рдпрд╣рд╛рдВ, рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдЦреЛрдЬ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдкрд┐рдЫрд▓реЗ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ getObject рдХреЗ рдмрдЬрд╛рдп getCollection рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢рд░реНрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред
 $modx->user->addSessionContext($contextKey); 

рдФрд░
 $modx->user->removeSessionContext($contextKey); 

рдмрд╕ рдЗрд╕ рдпрд╛ рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред
 $_SESSION['modx.'.$contextKey.'.session.cookie.lifetime']=$attributes["lifetime"]; 

рдЕрдиреНрдп рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рдХреЗ "рдЖрдЬреАрд╡рди" рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

рдлрд┐рд▓рд╣рд╛рд▓, рдпрд╣ рд╕рдм рдХреБрдЫ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдпрдж рдмрд╛рдж рдореЗрдВ рд╣реЛрдЧрд╛, рдЬрдм рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реВрдВрдЧрд╛ред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!

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


All Articles