Может я что то не понимаю? Я нажимаю кнопку "протестировать решение" и любые решения у меня устанавливаются в отдельную папку такого типа site_cf Может я не ту кнопку нажимаю? Что значит "протестировать"? Может есть установка решения а не тестирование? И тогда оно будет устанавливать сайт на главную страницу (в корень) сайта?
Дмитрий Дмитрук написал: Может я что то не понимаю? Я нажимаю кнопку "протестировать решение" и любые решения у меня устанавливаются в отдельную папку такого типа site_cf Может я не ту кнопку нажимаю? Что значит "протестировать"? Может есть установка решения а не тестирование? И тогда оно будет устанавливать сайт на главную страницу (в корень) сайта?
Да, вы что-то не понимаете. Кнопка "протестировать решение" запускает мастер установки сайта с выбором установки "новый сайт" (т.е. пропускает шаг выбора в какой сайт произойдёт установка). Это вообще к мастеру не относится.
class SelectSiteStep extends CSelectSiteWizardStep
{
function InitStep()
{
parent::InitStep();
$wizard =& $this->GetWizard();
$wizard->solutionName = "Start_Bootstrap_Landing_Page";
$this->SetNextStep("site_settings");
}
}
Мы в этом шаге наследуемся от системного класса CSelectSiteWizardStep. Поэтому никаких настроек нет. Этот шаг выводит шаг "Выбор сайта":
При этом сам этот код ещё ничего не изменяет в системе! он просто принимает от пользователя данные и временно хранит их в памяти для дальнейших шагов мастера установки!
Если дальше в этом же мастере вы посмотрите на класс:
Код
class DataInstallStep extends CDataInstallWizardStep
{
}
То поймёте, что именно он запускает УСТАНОВКУ сайта. Причём он опять же наследуется от системного класса, я ничего не мудрю.
Что этот системный класс делает? Если кратко, то он идёт в /.last_version/install/wizards/coffeediz/Start_Bootstrap_Landing_Page/site/services/.services.php и смотрит список скриптов для установки. Выполняет он их прямо по очереди. Если какого-то файла из списка нет, то просто пропускает. Если какой-то файл содержит ошибки падает с ошибкой и предлагает пропустить шаг. Что интересного мы тут видим? Первый же файл - files.php Идём смотреть /.last_version/install/wizards/coffeediz/Start_Bootstrap_Landing_Page/site/services/main/files.php Видим использование интересной php функции CopyDirFiles. Думаю нет смысла объяснять что она делает? Касательно вопроса КУДА она это делает обратите внимание на константу WIZARD_SITE_PATH - она была установлена в зависимости от выбора пользователя на шаге 1 "Выбор сайта". Естественно, если вы выбрали из публичного интерфейса кнопку "тестировать решение", то битрикс ответил на вопрос выбора сайта за вас и у вас там какое-нибудь значение вроде /u00/www/site/site_cf/. Собственно этот файл описывает процесс копирования файлов публичной части.
Если вы отправитесь в дальнейшее путешествие по моему примеру, то увидите и как происходит копирование шаблона. Я специально дал ссылку на статью где происходит только создание сайта, копирование файлов публички и шаблона (без инфоблоков и прочего сложного функционала), чтобы новичок мог разобраться. Просто идите последовательно по моему мастеру - он очень прост.