Усталяваў на сайт. Наладзіў дадзены кампанент у адміністрацыйнай панэлі Joomla 3.8. Якое ж было маё здзіўленне, калі пры кліку па спасылцы [XML Sitemap] замест карты сайта адкрылася старонка з памылкай 500 Internal Server Error.
  Дапамагла тэма на.  Прычына была ў лішняй радку ў кампаненце карты. 
  У файле "components / com_xmap / helpers / xmap.php" у радку 12 бачым запіс: 
  require_once (JPATH_SITE. '/ includes / application.php'); 
  Калі закаментаваць гэты радок то кампанент заводзіцца. 
Але, давайце разбярэмся, што мы адключылі дадзенай запісам, і за што адказвае канструкцыя require_once?
require_once - канструкцыя аднакратных уключэнняў.
  У вялікіх PHP сцэнарах інструкцыі require прымяняюцца даволі часта.  Таму становіцца даволі складана кантраляваць, як бы выпадкова не ўключыць адзін і той жа файл некалькі разоў, што часцей за ўсё прыводзіць да памылкі, якую складана выявіць. 
  У PHP прадугледжана рашэнне дадзенай праблемы.  Выкарыстоўваючы канструкцыю аднакратнага ўключэння require_once можна быць упэўненым, што адзін файл не будзе ўключаны двойчы.  Працуе канструкцыя аднакратнага ўключэння require_once гэтак жа, як і require.  Розніца ў яе працы толькі ў тым, што перад уключэннем файла інтэрпрэтатар правярае, ці ўключаны правераны файл раней ці не.  Калі так, то файл не будзе ўключаны зноў. 
  Канструкцыя аднакратнага ўключэння require_once дазваляе ўключаць выдаленыя файлы, калі такая магчымасць ўключана ў канфігурацыйным файле PHP. 
Ўключэнне аддаленых файлаў
  PHP дазваляе працаваць з аб'ектамі URL, як са звычайнымі файламі.  Упакоўшчыкі, даступныя па змаўчанні, служаць для працы з выдаленымі файламі з выкарыстаннем пратаколу ftp або http. 
  Калі "URL fopen-абалонкі" уключаны ў PHP (як у канфігурацыі па змаўчанні), вы можаце спецыфікаваных файл, які падключаецца з выкарыстаннем URL (праз HTTP), замест лакальнага шляху.  Калі мэтавай сервер інтэрпрэтуе мэтавай файл як PHP-код, зменныя могуць перадавацца ў падключаецца файл з выкарыстаннем URL-радкі запыту, як у HTTP GET.  Строга кажучы, гэта не тое ж самае, што падключэнне файла і ўспадкоўванне ім вобласці бачнасці зменных бацькоўскага файла;  бо скрыпт працуе на выдаленым серверы, а вынік затым падключаецца ў лакальны скрыпт. 
  Для таго, каб выдаленае уключэнне файлаў было даступна, неабходна ў канфігурацыйным файле (php.ini) усталяваць allow_url_fopen = 1. 
  Звярніце ўвагу: Версіі PHP для Windows да PHP 4.3.0 не падтрымліваюць магчымасць выкарыстання аддаленых файлаў гэтай функцыяй нават у тым выпадку, калі опцыя allow_url_fopen ўключана. 
Ці ўсталёўваць наладу allow_url_fopen = 1, ці проста закаментаваць 12-ы радок у файле "components / com_xmap / helpers / xmap.php" - вырашаць Вам. Я не стаў эксперыментаваць з наладамі PHP і прыбраў require_once (JPATH_SITE. '/ Includes / application.php'); з кода кампанента.
У наступным артыкуле я апісаў працэс стварэння пункта меню ў выглядзе шрыфтавы абразкі.
На гэтым сёння ўсё. Поспехаў Вам у распрацоўцы.
Але, давайце разбярэмся, што мы адключылі дадзенай запісам, і за што адказвае канструкцыя require_once?