Пример #1
0
 /**
  * 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;
         }
     }
 }
Пример #3
0
 /**
  * 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'];
 }