$updater->CopyFiles
подойдет, если нет напиши свою простенькую функцию, путь к файлу ты знаешь, php copy и готово ссылка.$arSites = array();
$dbRes = CSite::GetList($by='sort', $order='desc'));
while($arRes = $dbRes->Fetch()){
$arSites[$arRes['LID']] = $arRes;
}
foreach($arSites as $arSite) {
// тут обновляешь публичку
// как пример
$updater->CopyFiles("install/wizards/module/swp/site/public/ru", $arSite['DIR']);
}
AddMessage2Log($updater->errorMessage);
может чего интересного в логе будет.$updater->CopyFiles("install/wizards/module/swp/site/public/ru", "/"); //не работает
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
CModule::IncludeModule("iblock");
$res = CIBlock::GetList(
Array("SORT"=> "ASC"),
Array(
'TYPE'=>'webstudiosamovar_realty_catalogs',
'SITE_ID'=>SITE_ID,
'ACTIVE'=>'Y',
), true
);
while($ar_res = $res->Fetch())
{
$aMenuLinks[] = array($ar_res['NAME'], "catalog/".$ar_res['CODE']."/", array(), array("IMG" => $ar_res["PICTURE"], 'DESCRIPTION' => $ar_res['DESCRIPTION']));
}
?>
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
// echo "<pre style=' height: 3000px; text-align: left;'>";
// print_r($arResult);
// echo "</pre>";
?>
<style>
.menu_bLine ul li a:after, .menu_bLine ul li .active:after {
background: none !important;
.top--menu--item--desc{color:red;}
}
</style>
<?if (!empty($arResult)):?>
<ul>
<?
$num = 1;
foreach($arResult as $arItem):
if($arParams["MAX_LEVEL"] == 1 && $arItem["DEPTH_LEVEL"] > 1)
continue;
?>
<li>
<?if( stristr($APPLICATION->GetCurPage(false), $arItem["LINK"])):?>
<a href="<?=$arItem["LINK"]?>" class="active item<?=$num?>1" style="padding-top: 15px" >
<?else:?>
<a href="<?=$arItem["LINK"]?>" class="item<?=$num?>1" style="padding-top: 15px">
<?endif?>
<?
$URL = CFile::GetPath($arItem["PARAMS"]["IMG"]);
?>
<div style=" height: 35px; width: auto; margin-bottom: 5px;">
<img src="<?=$URL?>" alt="" style=" width: 30px;">
</div>
<?=$arItem["TEXT"]?>
<?if(isset($arItem["PARAMS"]["DESCRIPTION"]) && strlen($arItem["PARAMS"]["DESCRIPTION"])):?>
<div class="top--menu--item--desc"><?=$arItem["PARAMS"]["DESCRIPTION"];?></div>
<?endif;?>
</a>
</li>
<? $num++; ?>
<?endforeach?>
</ul>
<?endif?>
AddEventHandler
и $eventManager->addEventHandler
(условимся что $eventManager = \Bitrix\Main\EventManager::getInstance())AddEventHandler
вызывается $eventManager->addEventHandlerCompatible
$eventManager->addEventHandlerCompatible
так и в $eventManager->addEventHandler
вызывается $this->addEventHandlerInternal
где разница только в последнем параметре, который называется $version
и равен 1 и 2 соответственно