/** * DOCUMENT ME * @param mixed $addValues */ public function updateCategoriesList($addValues) { // Add any new categories (categories_list_add) $link = array(); if (!is_array($addValues)) { $addValues = array(); } foreach ($addValues as $value) { $existing = Doctrine::getTable('aCategory')->findOneBy('name', $value); if ($existing) { $aCategory = $existing; } else { $aCategory = new aCategory(); $aCategory['name'] = $value; } $aCategory->save(); $link[] = $aCategory['id']; } if (!is_array($this->values['categories_list'])) { $this->values['categories_list'] = array(); } foreach ($link as $id) { if (!in_array($id, $this->values['categories_list'])) { $this->values['categories_list'][] = $id; } } }
public function updateCategoriesList($addValues) { // Add any new categories (categories_list_add), and restore any // categories we didn't have the privileges to remove $link = array(); if (!is_array($addValues)) { $addValues = array(); } foreach ($addValues as $value) { $existing = Doctrine::getTable('aCategory')->findOneBy('name', $value); if ($existing) { $aCategory = $existing; } else { $aCategory = new aCategory(); $aCategory['name'] = $value; } $aCategory->save(); $link[] = $aCategory['id']; } if (!is_array($this->values['categories_list'])) { $this->values['categories_list'] = array(); } $reserved = $this->getAdminCategories(); foreach ($reserved as $category) { if (!in_array($category->id, $this->values['categories_list'])) { $this->values['categories_list'][] = $category->id; } } foreach ($link as $id) { if (!in_array($id, $this->values['categories_list'])) { $this->values['categories_list'][] = $id; } } }
/** * DOCUMENT ME * @param mixed $values * @return mixed */ public function updateCategoriesList(&$values) { $cvalues = isset($values['categories_list_add']) ? $values['categories_list_add'] : array(); $link = array(); if (!is_array($cvalues)) { $cvalues = array(); } foreach ($cvalues as $value) { $existing = Doctrine::getTable('aCategory')->findOneBy('name', $value); if ($existing) { $aCategory = $existing; } else { $aCategory = new aCategory(); $aCategory['name'] = $value; } $aCategory->save(); $link[] = $aCategory['id']; } if (!is_array($values['categories_list'])) { $values['categories_list'] = array(); } $values['categories_list'] = array_merge($link, $values['categories_list']); // Never allow a non-admin to remove categories they are not eligible to add $reserved = aArray::getIds($this->getAdminCategories()); foreach ($reserved as $id) { if (!in_array($id, $values['categories_list'])) { $values['categories_list'][] = $id; } } // Needed when this is an embedded form return $values['categories_list']; }