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());
 }
 public static function copyTemplateContent(Partner $fromPartner, Partner $toPartner, $dontCopyUsers = false)
 {
     kEventsManager::enableDeferredEvents(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);
         }
     }
     $toPartner->save();
     // 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);
     categoryEntryPeer::setUseCriteriaFilter(false);
     self::copyCategories($fromPartner, $toPartner);
     self::copyEntriesByType($fromPartner, $toPartner, entryType::MEDIA_CLIP, $dontCopyUsers);
     self::copyEntriesByType($fromPartner, $toPartner, entryType::PLAYLIST, $dontCopyUsers);
     categoryEntryPeer::setUseCriteriaFilter(true);
     self::copyUiConfsByType($fromPartner, $toPartner, uiConf::UI_CONF_TYPE_WIDGET);
     self::copyUiConfsByType($fromPartner, $toPartner, uiConf::UI_CONF_TYPE_KDP3);
     kEventsManager::enableDeferredEvents(true);
 }