Example #1
0
 /**
  * Checks if any groups are made yet. Depending on the client that is linked to Fork, it will
  * create default groups if none were found in CampaignMonitor. If they were, the user is
  * presented with an overview to import all groups and their subscribers in Fork.
  */
 private function checkForGroups()
 {
     // groups are already set
     if ($this->get('fork.settings')->get('Mailmotor', 'cm_groups_set')) {
         return false;
     }
     // no CM data found
     if (!BackendMailmotorCMHelper::checkAccount()) {
         return false;
     }
     // check if there are external groups present in CampaignMonitor
     if ($this->checkForExternalGroups()) {
         $this->redirect(BackendModel::createURLForAction('ImportGroups', 'Mailmotor'));
     }
     // fetch the default groups, language abbreviation is the array key
     $groups = BackendMailmotorModel::getDefaultGroups();
     // loop languages
     foreach (BL::getActiveLanguages() as $language) {
         // this language does not have a default group set
         if (!isset($groups[$language])) {
             // set group record
             $group['name'] = 'Website (' . strtoupper($language) . ')';
             $group['language'] = $language;
             $group['is_default'] = 'Y';
             $group['created_on'] = date('Y-m-d H:i:s');
             try {
                 // insert the group in CampaignMonitor
                 BackendMailmotorCMHelper::insertGroup($group);
             } catch (\CampaignMonitorException $e) {
                 // ignore
             }
         }
     }
     // we have groups set, and default groups chosen
     $this->get('fork.settings')->set('Mailmotor', 'cm_groups_set', true);
     $this->get('fork.settings')->set('Mailmotor', 'cm_groups_defaults_set', true);
 }