"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,));