"categories":["1","2","3"]
class PositionCreateProcessor extends modObjectCreateProcessor { public $classKey = 'rtPositions'; public $languageTopics = array('recroot:default'); public $objectType = 'recroot.position'; public function beforeSave() { $now = new DateTime(); $this->object->set('createdon',$now->format('Y-m-d h:i:s')); $title = $this->getProperty('title'); $company = $this->getProperty('company'); $type = $this->getProperty('type'); $source = $this->getProperty('source'); $applylink = $this->getProperty('applylink'); $categories = $this->getProperty('categories'); $description = $this->getProperty('description'); $expireson = $this->getProperty('expireson'); if (empty($title)) {$this->addFieldError('title',$this->modx->lexicon('recroot.position_err_ns_title'));} if (empty($company)) {$this->addFieldError('company',$this->modx->lexicon('recroot.position_err_ns_company'));} if (empty($type)) {$this->addFieldError('type',$this->modx->lexicon('recroot.position_err_ns_type'));} if (empty($source)) {$this->addFieldError('source',$this->modx->lexicon('recroot.position_err_ns_source'));} if (empty($applylink)) {$this->addFieldError('applylink',$this->modx->lexicon('recroot.position_err_ns_applylink'));} if (empty($categories)) {$this->addFieldError('categories',$this->modx->lexicon('recroot.position_err_ns_categories'));} if (empty($description)) {$this->addFieldError('description',$this->modx->lexicon('recroot.position_err_ns_description'));} if (empty($expireson)) {$this->addFieldError('expireson',$this->modx->lexicon('recroot.position_err_ns_expireson'));} return parent::beforeSave(); } public function afterSave() { $position_id = $this->object->get('id'); foreach ($categories as $category) { <-- dying here as $categories is undefined $newMap = $xpdo->newObject('rtPositionCategoriesMap',array('position_id' => $position_id,'category_id' => $category,)); $newMap->save(); $this->modx->log(modX::LOG_LEVEL_DEBUG, 'Mapped Category ' . $category . ' to position ' . $position_id); } return true; } } return 'PositionCreateProcessor';
This question has been answered by harveyev. See the first response.
$categories = $this->getProperty('categories');
$newMap = $this->modx->newObject('rtPositionCategoriesMap',array('position_id' => $position_id,'category_id' => $category,));