- Timestamp:
- 07/14/10 12:12:43 (19 months ago)
- Location:
- sandboxes/asandbox/branches/1.4/lib
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
sandboxes/asandbox/branches/1.4/lib/filter/doctrine/apostrophePlugin/base/BaseaPageFormFilter.class.php
r1659 r1753 27 27 'rgt' => new sfWidgetFormFilterInput(), 28 28 'level' => new sfWidgetFormFilterInput(), 29 'media_categories_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'aMediaCategory')), 29 30 'blog_categories_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'aBlogCategory')), 30 'media_categories_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'aMediaCategory')),31 31 )); 32 32 … … 45 45 'rgt' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))), 46 46 'level' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))), 47 'media_categories_list' => new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => 'aMediaCategory', 'required' => false)), 47 48 'blog_categories_list' => new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => 'aBlogCategory', 'required' => false)), 48 'media_categories_list' => new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => 'aMediaCategory', 'required' => false)),49 49 )); 50 50 … … 56 56 57 57 parent::setup(); 58 } 59 60 public function addMediaCategoriesListColumnQuery(Doctrine_Query $query, $field, $values) 61 { 62 if (!is_array($values)) 63 { 64 $values = array($values); 65 } 66 67 if (!count($values)) 68 { 69 return; 70 } 71 72 $query 73 ->leftJoin($query->getRootAlias().'.aMediaPageCategory aMediaPageCategory') 74 ->andWhereIn('aMediaPageCategory.media_category_id', $values) 75 ; 58 76 } 59 77 … … 73 91 ->leftJoin($query->getRootAlias().'.aBlogPageCategory aBlogPageCategory') 74 92 ->andWhereIn('aBlogPageCategory.blog_category_id', $values) 75 ;76 }77 78 public function addMediaCategoriesListColumnQuery(Doctrine_Query $query, $field, $values)79 {80 if (!is_array($values))81 {82 $values = array($values);83 }84 85 if (!count($values))86 {87 return;88 }89 90 $query91 ->leftJoin($query->getRootAlias().'.aMediaPageCategory aMediaPageCategory')92 ->andWhereIn('aMediaPageCategory.media_category_id', $values)93 93 ; 94 94 } … … 116 116 'rgt' => 'Number', 117 117 'level' => 'Number', 118 'media_categories_list' => 'ManyKey', 118 119 'blog_categories_list' => 'ManyKey', 119 'media_categories_list' => 'ManyKey',120 120 ); 121 121 } -
sandboxes/asandbox/branches/1.4/lib/form/doctrine/apostrophePlugin/base/BaseaPageForm.class.php
r1659 r1753 30 30 'rgt' => new sfWidgetFormInputText(), 31 31 'level' => new sfWidgetFormInputText(), 32 'media_categories_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'aMediaCategory')), 32 33 'blog_categories_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'aBlogCategory')), 33 'media_categories_list' => new sfWidgetFormDoctrineChoice(array('multiple' => true, 'model' => 'aMediaCategory')),34 34 )); 35 35 … … 49 49 'rgt' => new sfValidatorInteger(array('required' => false)), 50 50 'level' => new sfValidatorInteger(array('required' => false)), 51 'media_categories_list' => new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => 'aMediaCategory', 'required' => false)), 51 52 'blog_categories_list' => new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => 'aBlogCategory', 'required' => false)), 52 'media_categories_list' => new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => 'aMediaCategory', 'required' => false)),53 53 )); 54 54 … … 71 71 parent::updateDefaultsFromObject(); 72 72 73 if (isset($this->widgetSchema['media_categories_list'])) 74 { 75 $this->setDefault('media_categories_list', $this->object->MediaCategories->getPrimaryKeys()); 76 } 77 73 78 if (isset($this->widgetSchema['blog_categories_list'])) 74 79 { 75 80 $this->setDefault('blog_categories_list', $this->object->BlogCategories->getPrimaryKeys()); 76 }77 78 if (isset($this->widgetSchema['media_categories_list']))79 {80 $this->setDefault('media_categories_list', $this->object->MediaCategories->getPrimaryKeys());81 81 } 82 82 … … 85 85 protected function doSave($con = null) 86 86 { 87 $this->saveMediaCategoriesList($con); 87 88 $this->saveBlogCategoriesList($con); 88 $this->saveMediaCategoriesList($con);89 89 90 90 parent::doSave($con); 91 } 92 93 public function saveMediaCategoriesList($con = null) 94 { 95 if (!$this->isValid()) 96 { 97 throw $this->getErrorSchema(); 98 } 99 100 if (!isset($this->widgetSchema['media_categories_list'])) 101 { 102 // somebody has unset this widget 103 return; 104 } 105 106 if (null === $con) 107 { 108 $con = $this->getConnection(); 109 } 110 111 $existing = $this->object->MediaCategories->getPrimaryKeys(); 112 $values = $this->getValue('media_categories_list'); 113 if (!is_array($values)) 114 { 115 $values = array(); 116 } 117 118 $unlink = array_diff($existing, $values); 119 if (count($unlink)) 120 { 121 $this->object->unlink('MediaCategories', array_values($unlink)); 122 } 123 124 $link = array_diff($values, $existing); 125 if (count($link)) 126 { 127 $this->object->link('MediaCategories', array_values($link)); 128 } 91 129 } 92 130 … … 129 167 } 130 168 131 public function saveMediaCategoriesList($con = null)132 {133 if (!$this->isValid())134 {135 throw $this->getErrorSchema();136 }137 138 if (!isset($this->widgetSchema['media_categories_list']))139 {140 // somebody has unset this widget141 return;142 }143 144 if (null === $con)145 {146 $con = $this->getConnection();147 }148 149 $existing = $this->object->MediaCategories->getPrimaryKeys();150 $values = $this->getValue('media_categories_list');151 if (!is_array($values))152 {153 $values = array();154 }155 156 $unlink = array_diff($existing, $values);157 if (count($unlink))158 {159 $this->object->unlink('MediaCategories', array_values($unlink));160 }161 162 $link = array_diff($values, $existing);163 if (count($link))164 {165 $this->object->link('MediaCategories', array_values($link));166 }167 }168 169 169 }

