Example #1
0
 function afterSave($created)
 {
     if ($created) {
         // its a creation
         $id = $this->getLastInsertID();
         $aro = new Aro();
         $aro->updateAll(array('alias' => '\'Group:' . $id . '\''), array('Aro.model' => 'Group', 'Aro.foreign_key' => $id));
     } else {
         // its an edit, we have to update the tree
         $data = $this->read();
         $parent_id = $data['Group']['parent_id'];
         $aro = new Aro();
         $aro_record = $aro->findByForeignKey($this->id);
         $parent_record = $aro->findByForeignKey($parent_id);
         if (empty($aro_record)) {
             // orphaned child
             $this->Aro->save(array('model' => $this->name, 'foreign_key' => $this->id, 'alias' => $this->name . ':' . $this->id, 'parent_id' => $parent_record['Aro']['id']));
         } else {
             // just moving nodes
             $this->Aro->save(array('model' => $this->name, 'foreign_key' => $this->id, 'alias' => $this->name . ':' . $this->id, 'parent_id' => $parent_record['Aro']['id'], 'id' => $aro_record['Aro']['id']));
         }
     }
     return true;
 }