SilverStripe 3.1 — неправильный $BaseDir после портирования на XAMPP
-
21-12-2019 - |
Вопрос
после переноса моей полностью рабочей страницы SS3.1 с моего веб-сервера http://mydomain.de
к моему локально установленному XAMPP http://intranet/silverstripe
У меня проблема: базовый каталог в SS теперь неправильный.Это старый файл с веб-сервера /
но это должно быть /silverstripe
Я уже изменил его в .htaccess, чтобы mod_rewrite работал, но $BaseDir возвращает /
и если я попытаюсь использовать SS Sitesearch, меня перенаправят на home/SearchForm?Search=
вместо silverstripe/home/SearchForm?Search=
после отправки формы.
Может кто-нибудь, пожалуйста, помогите мне решить эту проблему.
заранее спасибо
РЕДАКТИРОВАТЬ:Я просто вызываю $SiteSearch в своем шаблоне.Но в моем Page.php функция изменена для поиска по объекту данных.
public function results($data, $form){
$results = $form->getResults();
$query = htmlspecialchars($data['Search'], ENT_QUOTES,'UTF-8');
$objects = ListingObject::get()->where("MATCH (Title, Link, Company, Category) AGAINST ('$query' IN BOOLEAN MODE)");
$results->merge($objects);
$data['Results'] = $results;
$data['Title'] = _t('SearchForm.SearchResults', 'Search Results');
$data['Query'] = $query;
return $this->customise($data)->renderWith(array('Page_results','Page'));
}
без этого кода тоже не работает
РЕШЕНИЕ:Я сожалею.Я нашел проблему.Я не вызывал $SiteSearch, потому что при создании страницы мне пришлось редактировать форму, поэтому я жестко запрограммировал ее...из-за этого отправленный URL теперь неверен.Мне очень жаль!
Решение
Возможно, вам придется установить альтернативный базовый URL-адрес в конфигурации SS.Добавьте это в свой config.yml
:
Director:
alternate_base_url: '/silverstripe'
Другие советы
$BaseDir
должно быть $BaseHref
в вашем шаблоне.