public static function copyTemplateContent(Partner $fromPartner, Partner $toPartner, $dontCopyUsers = false) { $partnerCustomDataArray = $fromPartner->getCustomDataObj()->toArray(); $excludeCustomDataFields = kConf::get('template_partner_custom_data_exclude_fields'); foreach ($partnerCustomDataArray as $customDataName => $customDataValue) { if (!in_array($customDataName, $excludeCustomDataFields)) { $toPartner->putInCustomData($customDataName, $customDataValue); } } // copy permssions before trying to copy additional objects such as distribution profiles which are not enabled yet for the partner self::copyPermissions($fromPartner, $toPartner); self::copyUserRoles($fromPartner, $toPartner); kEventsManager::raiseEvent(new kObjectCopiedEvent($fromPartner, $toPartner)); self::copyAccessControls($fromPartner, $toPartner); self::copyFlavorParams($fromPartner, $toPartner); self::copyConversionProfiles($fromPartner, $toPartner); self::copyCategories($fromPartner, $toPartner); self::copyUiConfsByType($fromPartner, $toPartner, uiConf::UI_CONF_TYPE_WIDGET); self::copyUiConfsByType($fromPartner, $toPartner, uiConf::UI_CONF_TYPE_KDP3); // Launch a batch job that will copy the heavy load as an async operation kJobsManager::addCopyPartnerJob($fromPartner->getId(), $toPartner->getId()); }