public function processRecord($record, $columnMap, &$results, $preview = false)
 {
     $objID = parent::processRecord($record, $columnMap, $results, $preview);
     $_cache_groupByCode = array();
     // Add to predefined groups
     /** @var Member $member */
     $member = DataObject::get_by_id($this->objectClass, $objID);
     foreach ($this->groups as $group) {
         // TODO This isnt the most memory effective way to add members to a group
         $member->Groups()->add($group);
     }
     // Add to groups defined in CSV
     if (isset($record['Groups']) && $record['Groups']) {
         $groupCodes = explode(',', $record['Groups']);
         foreach ($groupCodes as $groupCode) {
             $groupCode = Convert::raw2url($groupCode);
             if (!isset($_cache_groupByCode[$groupCode])) {
                 $group = Group::get()->filter('Code', $groupCode)->first();
                 if (!$group) {
                     $group = new Group();
                     $group->Code = $groupCode;
                     $group->Title = $groupCode;
                     $group->write();
                 }
                 $member->Groups()->add($group);
                 $_cache_groupByCode[$groupCode] = $group;
             }
         }
     }
     $member->destroy();
     unset($member);
     return $objID;
 }
 /**
  * Tests {@link Convert::testRaw2URL()}
  * @todo test toASCII()
  */
 public function testRaw2URL()
 {
     URLSegmentFilter::config()->update('default_allow_multibyte', false);
     $this->assertEquals('foo', Convert::raw2url('foo'));
     $this->assertEquals('foo-and-bar', Convert::raw2url('foo & bar'));
     $this->assertEquals('foo-and-bar', Convert::raw2url('foo & bar!'));
     $this->assertEquals('foos-bar-2', Convert::raw2url('foo\'s [bar] (2)'));
 }
Ejemplo n.º 3
0
 /**
  * Overloaded to ensure the code is always descent.
  *
  * @param string
  */
 public function setCode($val)
 {
     $this->setField("Code", Convert::raw2url($val));
 }